Date: Tue, 13 Oct 1998 05:11:04 +1000 From: Bruce Evans <bde@zeta.org.au> To: bright@hotjobs.com, seggers@semyam.dinoco.de Cc: current@FreeBSD.ORG, zach@gaffaneys.com Subject: Re: wd, crash dumps and strange geometries (was: Re: bitten 3 times already. ) Message-ID: <199810121911.FAA22479@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>> What I see here is what I'd expect for about 16.000 sectors/cylinder. >> That's not a reasonable number and I guess the driver thinks it has 16 >> heads and 1023 sectors/cylinder due to using LBA. LBA is essentially equivalent to CHS with 65536 cylinders, 16 heads, and 256 sectors/track (except CHS can't actually handle 64 sectors/track; sector numbers start at 1 and there are 8 sector bits, so the limit is 255 sectors/track). The 1023 "sectors/cylinder" limit is actually 1024 total cylinders in the partition table and 65536 cylinders in the IDE interface. >I took a closer look, thought about this and noticed that the para- >meters you get are from the enforcement of 15 heads with the flags you >set. This in itself doesn't matter for normal accesses as you use LBA >and that doesn't need a geometry. >Now comes the fun part. If the drive thinks it has 16 heads (that is >the shipping default for the DHEA-38451 according to the web site) and >you use the geometry for 15 heads the CHS addressing will be wrong and >maybe this is what somehow caused the failure you saw. Now I understand this. There is an off by 1 error in the WDOPT_FORCEHD() rule. 15 should mean that the maximum head number is 15 and the total number of heads is 16, like it does almost everywhere else. As it is there is no way to force the normal (maximum and best) value of 16 heads. Big drives should all use this for their default translation mode; anything less reduces the usable drive size to even less than the 504MB limit under ancient BIOSes. Please ignore previous mail where I got the maximum number of heads and sectors/track wrong :-). The limits are 255 heads and 63 sectors/track only in the partition table, but they are 16 heads and 255 sectors/track at the IDE interface level. The head limit should be 256 in the partition table, but so many entities are confused about this that the natural limit can't be used. Bruce To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199810121911.FAA22479>