Eric W. Biederman
ebiederman at lnxi.com
Thu Sep 25 00:28:01 CEST 2003
Steve Gehlbach <steve at nexpath.com> writes:
> Eric W. Biederman wrote:
> > Steve how does your 1.2G Caviar fail? Is it not detected or is the
> > problem something else?
> Everything works fine, it just gets the wrong data. I put in lots of printf's,
> it is using ide_read_sector_lba, all results are normal AFAICT. I printed out
> the sector (sector 0) that it read, it had about 50 initial values, then all
> zeros. The real sector 0 is pretty much all filled. I grep'ed for a couple of
> bytes from the bogus sector and they did not appear in the real sector, so I
> think all of the data is bogus, not just shifted or something.
> The cmd.device byte (=0xe0) (and the others in this structure) appear correct in
> comparing to ATA spec. Is there ever any confusion about what the first sector
> is (0 vs 1)? I could not find a specific statement in the ATA spec about this,
> but it is a long spec.
> I was going to force it to use ide_read_sector_chs but did not have time.
> I switched to using my CF drive and it worked fine, so I don't think it was
> cockpit trouble.
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.
But drives are diverse enough we might find some strange bugs.
At least we have not yet found a drive that we have spin up problems with yet.
More information about the coreboot