ts-7000
[Top] [All Lists]

[ts-7000] Re: running root filesystem from ramdisk

To:
Subject: [ts-7000] Re: running root filesystem from ramdisk
From: "Hamish Avery" <>
Date: Thu, 22 Feb 2007 14:07:31 -0000
> 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 &amp; 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 &amp; 
communities. is subject to:
    http://docs.yahoo.com/info/terms/
 

<Prev in Thread] Current Thread [Next in Thread>
Admin

Disclaimer: Neither Andrew Taylor nor the University of NSW School of Computer and Engineering take any responsibility for the contents of this archive. It is purely a compilation of material sent by many people to the birding-aus mailing list. It has not been checked for accuracy nor its content verified in any way. If you wish to get material removed from the archive or have other queries about the archive e-mail Andrew Taylor at this address: andrewt@cse.unsw.EDU.AU