From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from nz-out-0102.google.com (nz-out-0102.google.com [64.233.162.207]) by ozlabs.org (Postfix) with ESMTP id 58588679FD for ; Tue, 29 Aug 2006 09:26:33 +1000 (EST) Received: by nz-out-0102.google.com with SMTP id i1so940512nzh for ; Mon, 28 Aug 2006 16:26:30 -0700 (PDT) Message-ID: <198592450608281626h6b3ced67i8a3d993053e75669@mail.gmail.com> Date: Mon, 28 Aug 2006 23:26:30 +0000 From: "Reeve Yang" To: "Howard, Marc" Subject: Re: Help with booting with very large initrd In-Reply-To: <91B22F93A880FA48879475E134D6F0BE02F33401@CA1EXCLV02.adcorp.kla-tencor.com> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_134602_2794066.1156807590115" References: <91B22F93A880FA48879475E134D6F0BE02F33401@CA1EXCLV02.adcorp.kla-tencor.com> Cc: linuxppc-embedded List-Id: Linux on Embedded PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , ------=_Part_134602_2794066.1156807590115 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline 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 wrote: > > Hi, > > 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 192.168.168.108; our IP address is 192.168.168.111 > Filename 'pMulti-ramdisk'. > Load address: 0x400000 > Loading: * > done > 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 > Contents: > 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 (cram@toaster.kla-tencor.com) > (gcc version 3.4.3 (MontaVista 3.4.3-25.0.107.0601076 2006-07-21)) #46 > Thu Aug 24 17:28:09 PDT 2006 > IBM Ocotea port (MontaVista Software, Inc. ) > Built 1 zonelists > Kernel command line: ramdisk_size=262144 root=/dev/ram rw > console=ttyS0,115200 > ip=192.168.168.111:192.168.168.108::255.255.255.0:scpu2:eth0: off > mem=496M > 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=192.168.168.111, mask=255.255.255.0, > gw=255.255.255.255, host=scpu2, domain=, nis-domain=(none), > bootserver=192.168.168.108, rootserver=192.168.168.108, 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 > kernel. > <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 > space. > > Have any of you worked on this problem before and come up with a > solution? > > Thanks, > > Marc Howard > > > > _______________________________________________ > Linuxppc-embedded mailing list > Linuxppc-embedded@ozlabs.org > https://ozlabs.org/mailman/listinfo/linuxppc-embedded > ------=_Part_134602_2794066.1156807590115 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline 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 <Marc.Howard@kla-tencor.com > wrote:
Hi,

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 192.168.168.108 ; our IP address is 192.168.168.111
Filename 'pMulti-ramdisk'.
Load address: 0x400000
Loading: *
done
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
   Contents:
   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 (cram@toaster.kla-tencor.com)
(gcc version 3.4.3 (MontaVista 3.4.3-25.0.107.0601076 2006-07-21)) #46
Thu Aug 24 17:28:09 PDT 2006
IBM Ocotea port (MontaVista Software, Inc. <source@mvista.com>)
Built 1 zonelists
Kernel command line: ramdisk_size=262144 root=/dev/ram rw
console=ttyS0,115200
ip=192.168.168.111:192.168.168.108::255.255.255.0:scpu2:eth0: off
mem=496M
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=192.168.168.111, mask=255.255.255.0,
gw=255.255.255.255,     host=scpu2, domain=, nis-domain=(none),
     bootserver=192.168.168.108, rootserver=192.168.168.108, 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
kernel.
<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
space.

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

Thanks,

Marc Howard



_______________________________________________
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded

------=_Part_134602_2794066.1156807590115--