epia800
SONE Takeshi
ts1 at cma.co.jp
Thu Sep 25 04:10:01 CEST 2003
On Wed, Sep 24, 2003 at 11:00:52PM -0600, Eric W. Biederman wrote:
> Right. My only other guess is that some of the lba48 support my be interacting
> in a strange way and causing problems. We always write the lba48 high
> registers but we don't set them in the lba case. It should not cause a problem.
Do you mean something like this:
====
--- ide.c.org 2003-08-26 20:53:10.000000000 +0900
+++ ide.c 2003-09-25 17:26:34.000000000 +0900
@@ -316,13 +316,15 @@
mdelay(50);
}
outb(cmd->feature, IDE_REG_FEATURE(ctrl));
- outb(cmd->sector_count2, IDE_REG_SECTOR_COUNT(ctrl));
+ if (cmd->command == IDE_CMD_READ_SECTORS_EXT) {
+ outb(cmd->sector_count2, IDE_REG_SECTOR_COUNT(ctrl));
+ outb(cmd->lba_low2, IDE_REG_LBA_LOW(ctrl));
+ outb(cmd->lba_mid2, IDE_REG_LBA_MID(ctrl));
+ outb(cmd->lba_high2, IDE_REG_LBA_HIGH(ctrl));
+ }
outb(cmd->sector_count, IDE_REG_SECTOR_COUNT(ctrl));
- outb(cmd->lba_low2, IDE_REG_LBA_LOW(ctrl));
outb(cmd->lba_low, IDE_REG_LBA_LOW(ctrl));
- outb(cmd->lba_mid2, IDE_REG_LBA_MID(ctrl));
outb(cmd->lba_mid, IDE_REG_LBA_MID(ctrl));
- outb(cmd->lba_high2, IDE_REG_LBA_HIGH(ctrl));
outb(cmd->lba_high, IDE_REG_LBA_HIGH(ctrl));
outb(cmd->command, IDE_REG_COMMAND(ctrl));
}
====
--
Takeshi
More information about the coreboot
mailing list