UPDATE: ATA mkIII first official patches - please test!

M. Warner Losh imp at bsdimp.com
Wed Feb 16 07:58:17 PST 2005

In message: <20050216.131604.41667980.nyan at jp.FreeBSD.org>
            Takahashi Yoshihiro <nyan at jp.FreeBSD.org> writes:
: In article <20050215.135815.112575021.imp at bsdimp.com>
: Warner Losh <imp at bsdimp.com> writes:
: > > The following is the result when use SATA 200GB disk on pc98.  It is
: > > clearly that recognizing a geometry fails.
: > > 
: > > atapci0: <SiI 3114 SATA150 controller> port 0xc000-0xc00f,0x602c-0x602f,0x6030-0x6037,0x6028-0x602b,0x6020-0x6027 mem 0x20411000-0x204113ff irq 10 at device 17.0 on pci0
: > > ad4: <ST3200822AS/3.01> ATA-6 disk at ata2-master
: > > ad4: 190782MB (390721968 sectors), 387621 C, 16 H, 63 S, 512 B
: > > ad4: 16 secs/int, 1 depth queue, SATA150
: > > 
: > > BIOS Geometries:
: > >  1:1778ffff 0..6008=6009 cylinders, 0..255=256 heads, 1..255=255 sectors
: > 
: > Is this the geometry that the PC98 BIOS uses?
: Yes.

I see.  Let me see if I understand the implications:

	(1) This disk won't interoperate with other OSes on the pc98
	    machine because the pc98 partition format specifies things
	    in terms of CHS, but doesn't specify an actual geometry.
	(2) Further, since dp_scyl and dp_ecyl are both 16bits, we are
	    limited to 65535 cylinders.  The above geometry of 387621
	    violates this assumption.  So you can really only use
	    66059280 of the 390721968 sectors on this disk (or about 17%).
	(3) It is insufficent to fix this in geom_pc98 because that is
	    not used until after the partition is placed on the disk
	    and fdisk_pc98 needs the geometry to place that partition.
	(4) This only impacts newer ATA6 disks.  ATA5 and older appear
	    to be working properly.  ata6 disks need some other
	    mechanism to get this information, correct?

When I asked about the 'get the geometry from the BIOS' patches that
are circulating, I was told that it was hard to match the FreeBSD
device to the BIOS table.

Do I understand things correctly?


More information about the freebsd-stable mailing list