> As far as I can tell, quite a lot of the linux boot sequence is slow
> and needlessly complicated. :)
>
> (That's no reason to make it any worse than it has to be, though...)
>From what I discover below, I am not sure that thats an option!
> Hmm... That's odd. You would think something that small would work.
>
> In my previous email, I gave the wrong file name for where that
> error message seems to be coming from. The correct location is
> arch/arm/mm/init.c in check_initrd().
>
> I looked at it again today, and it looks like maybe mi->bank[] is a
> description of all the regions of physical memory in the system.
> Near the end of bootmem_init(), I think the call to
> reserve_bootmem_node() is declaring the RAM occupied by the initrd
> to be unavailable to the system.
>
> You might want to get in to your kernel sources and print the
> values of phys_initrd_start and end, and the values it is comparing
> to in mi->bank[].
> That would at least give you some insight into what the system
> thinks the problem is.
I was reluctant to mess with the kernel code - a little knowledge can
be a dangerous thing and all that - but what you suggested seemed
pretty harmless... This is what I got:
MM: bank 0 start 0x00000000 end 0x00800000
MM: bank 1 start 0x01000000 end 0x01800000
MM: bank 2 start 0x04000000 end 0x04800000
MM: bank 3 start 0x05000000 end 0x05800000
MM: bank 4 start 0xe0000000 end 0xe0800000
MM: bank 5 start 0xe1000000 end 0xe1800000
MM: bank 6 start 0xe4000000 end 0xe4800000
MM: bank 7 start 0xe5000000 end 0xe5800000
Thus, the memory blocks are indeed not continuous, even within the two
greater addressing blocks - and the memory management to tie these
together does not seem to work at kernel boot time. The obvious
conclusion now is that the ramdisk must lie wholely within a bank, as
when I shift the smaller ramdisk to lie within one of the above blocks
it works OK. However, trying to put it into banks 4, 5, 6 or 7 fails
with:
"Specified address (0xe0000000) is not believed to be in RAM -
continue (y/n)?"
I don't know why this might be...
I am now guessing that its impossible to boot into a ramdisk greater
than 8Mb.
Many thanks for the help
/hamish
Yahoo! Groups - Join or create groups, clubs, forums & communities. Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups - Join or create groups, clubs, forums &
communities. is subject to:
http://docs.yahoo.com/info/terms/
|