Re: Help with booting with very large initrd

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Re: Help with booting with very large initrd

Reeve Yang
I had a similiar problem long time ago. I remember it was related to the size of ramdisk. Double check if your ramdisk size big enough.

On 8/25/06, Howard, Marc <[hidden email]> wrote:

I'm developing a PPC440GX based board that uses U-Boot to boot a
multi-file boot image composed of the kernel and a very large (> 96MB
uncompressed) initrd file.  The board has 512MB of RAM of which the
upper 16MB is reserved for dedicated hardware.  The 16MB block is
reserved via "mem=496M" and U-Boot is told to stay out of that area by
setting "initrd_high=1f000000".

Before anyone asks there are several reasons for doing things this way.
NFS is not an option in the target environment.

I can tftp the combined boot image to my board.  I checked the crc with
the crc32 command and it agrees exactly with the result obtained on the
host machine using the boot file.  Therefore there is not a "TFTP >32MB"
problem here.

If I boot I get the following:

=> boot
Waiting for PHY auto negotiation to complete... done
ENET Speed is 1000 Mbps - FULL duplex connection
Using ppc_4xx_eth2 device
TFTP from server ; our IP address is
Filename 'pMulti-ramdisk'.
Load address: 0x400000
Loading: *
Bytes transferred = 38825407 (2506dbf hex)
Automatic boot of image at addr 0x00400000 ...
## Booting image at 00400000 ...
   Image Name:   Linux-2.6.10_mvl401-440gx_eval-I
   Created:      2006-08-25   1:01:29 UTC
   Image Type:   PowerPC Linux Multi-File Image (gzip compressed)
   Data Size:    38825343 Bytes = 37 MB
   Load Address: 00000000
   Entry Point:  00000000
   Image 0:  1137986 Bytes =  1.1 MB
   Image 1: 37687343 Bytes = 35.9 MB
   Verifying Checksum ... OK
   Uncompressing Multi-File Image ... OK
   Loading Ramdisk to 1cc0e000, end 1efff02f ... OK
Linux version 2.6.10_mvl401-440gx_eval ([hidden email])
(gcc version 3.4.3 (MontaVista 3.4.3- 2006-07-21)) #46
Thu Aug 24 17:28:09 PDT 2006
IBM Ocotea port (MontaVista Software, Inc. <[hidden email]>)
Built 1 zonelists
Kernel command line: ramdisk_size=262144 root=/dev/ram rw
ip= off
PID hash table entries: 2048 (order: 11, 32768 bytes)

......stuff deleted......

RAMDISK driver initialized: 8 RAM disks of 262144K size 1024 blocksize
loop: loaded (max 8 devices)

......more stuff deleted......

eth0: link is down
eth0: link is up, 1000 FDX, pause enabled
IP-Config: Complete:
      device=eth0, addr=, mask=,
gw=,     host=scpu2, domain=, nis-domain=(none),
     bootserver=, rootserver=, rootpath=
RAMDISK: Compressed image found at block 0
crc error (orig 0x9a278d64, CRC_VALUE 0xa7bcd2e3 -- ignoring!
length error (orig = 0x0c000000, bytes_out = 0x0c000015 -- ignored
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 120k init
Warning: unable to open an initial console.
Kernel panic - not syncing: No init found.  Try passing init= option to
<0>Rebooting in 180 seconds..

(I modified lib/inflate.c so that the crc and length checks would
provide more info).

Since the overall file CRC is good and U-Boot checksums are also okay
this looks like some sort of size limitation with the inflate routine.
BTW, The kerenel was made assuming a 256MB ramdisk; likewise the command
line specs one as well.  The initrd image would fit easily in that

Have any of you worked on this problem before and come up with a


Marc Howard

Linuxppc-embedded mailing list
[hidden email]

Linuxppc-embedded mailing list
[hidden email]