Skip site navigation (1)Skip section navigation (2)
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>