On Sun, 11 Apr 2004, Roman Kurakin wrote: > I remind you that now I have two problems. First one that FreeBSD uses > wrong assumption about which device should be CHS and which LBA: > > if (!ad_version(atadev->param->version_major) || > !(atadev->param->atavalid & ATA_FLAG_54_58) || !lbasize) > atadev->flags |= ATA_D_USE_CHS; > > True ATA device may not have ATA_FLAG_54_58 valid bit, and also due > to last ATA standard this bit is obsoleted. > > I also want to know why ata driver doesn't check LBA support from word 49? > May be this one check could solve my problems and didn't breake code for > non-ATA devices. Possibly for similar reasons. It's hard to tell what's in the LBA bit for pre-ATA devices older than LBA. Similarly for the lbasize words, but it's easier to do a sanity check on a 32-bit values that a 1-bit flag. > Second one, that only 20G part of my hard disk works with CHS. This is other > side of the same problem. Device should work in CHS mode. And it works > witch ICH5 controller. But with ICH2 it doesn't with out hack. > > I've checked standard again and I sew command 91h (Initialize drive > parameters). Check out the commands for limiting the (apparent) disk size. IIRC, the CHS limit can be set independently of the LBA limit, and some settings are harder than others so that they can't be cleared by old commands like 0x91. The limits may be set to prevent old drivers which only understand old commands from becoming confused by trying to actually use the whole disk. BruceReceived on Mon Apr 12 2004 - 15:55:48 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:50 UTC