Subject: Re: Kernels built from /usr/src won't boot
To: None <port-sparc@NetBSD.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: port-sparc
Date: 10/02/2003 12:24:52
> I've had similar problems with NetBSD-current/sparc64. I have a
> number of kernels with identical md5's, and some boot and some do
> not. In private email Manuel Bouyer suggested it was related to the
> disk blocks occupied by the kernels,
That would be my suspicion too.
> and an integer overflow somewhere in the boot code.
That seems less likely to me.
>>> How large is your / partition ?
>> %df -kl
>> Filesystem 1K-blocks Used Avail Capacity Mounted on
>> /dev/wd0a 7728318 3464694 3877208 47% /
>>> Less than 8G, shouldn't cause any problems.
I'd expect possible problems at four points:
(1) 1G, if the ROM code uses 6-byte CDBs. (I'd've hoped such code
would have been stamped out before the sparc64s were made, but the
ability of corporations to do stupid things amazes me.)
(2) 2G, if signed 32-bit byte offsets are relevant.
(3) 4G, if unsigned 32-bit byte offsets are relevant.
(4) 256T, where 10-byte CDBs (32-bit block numbers) run out.
I can't see why there would be any limit at 8G.
Limits (1) and (4) apply to where the blocks are relative to the
beginning of the disk and has nothing to do with partition placement;
limits (2) and (3) may be partition-relative or may not, depending on
where the relevant code is.
> fsdb of a bad kernel:
> fsdb (inum: 531508)> blks
> [block numbers in the range 2131232..2132608]
> fsdb of a good kernel:
> fsdb (inum: 531538)> blks
> [block numbers in the range 2077720..2087472]
These results are consistent with the 1G-limit theory, assuming your
boot partition begins at the beginning of the disk (and either it uses
half-K frags or the numbers printed by fsdb are post-fsbtodb()).
/~\ The ASCII der Mouse
\ / Ribbon Campaign
X Against HTML mouse@rodents.montreal.qc.ca
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B