Problem with parse_bootinfo on a Board with 2Mb of SRAM

Tom Rini trini at
Tue May 13 03:41:36 EST 2003

On Tue, May 06, 2003 at 07:40:51PM +0200, Christophe.LINDHEIMER at wrote:

> I am trying to start Linux with a custom board.
> This board has only 2Mb of SRAM.
> Linux crashes in the function parse_bootinfo.
> In my I have got __bss_start == 0xc0091000
> In parse_bootinfo I have :
> rec = ( struct bi_record *)_Align((ulong)__bss_start+(1<<20)-1, 1<<20))
> So rec equals 0xc0200000
> and then
> if (rec->tag != BI_FIRST )
> but this line crashes because it tries to access 0xc0200000 whereas my sram
> is between 0xc0000000 and 0xc01fffff.

There's a few issues here.  First, in 2.4 we do the 'bad' thing of
making up a magic location where these bi_recs are, on the fly.  If you
don't mind making an incompatible change (i.e., you would need to change
arch/ppc/boot/* as well as arch/ppc/kernel/setup.c, and
arch/ppc/kernel/head.S), you can do what will be done for 2.5, which is
to allow the location of the bi_recs to be picked by whatever booted the
kernel, and passed along in a register.  So for your 2mb board, you
could pick say 0xc01880000 as where to put them.  Or wherever you want,
that will be not part of the BSS.

Tom Rini

** Sent via the linuxppc-dev mail list. See

More information about the Linuxppc-dev mailing list