[U-Boot-Users] How to boot Multi-file image?

llandre
2005-08-29T10:43:19Z

Hi Wolfgang,

I followed the same procedure you described but the decompressed image
partially
overwrote the compressed image. I fixed the tftp download address and now
the kernel boots
perfectly.

Thanks for your help and best regards,
llandre

DAVE Electronics System House - R&D Department
web: http://www.dave-tech.it
email: r&d2 at dave-tech.it

>In message <6.2.1.2.0.20050826164053.02f4ae60@192.168.2.1> you wrote:
> > I made a multi-file imgage as described here
> > http://www.denx.de/twiki/bin/view/DULG/CombiningKernelAndRamdisk
> > but I can't boot it bacuse the kernel does not find the ramdisk image.
> > How to say to the kernel where to find it? Isuspect I'm missing some
> > command line parameters ...
>
>Enable debugging to see if all ATAGs are passed correctly...
>
>Here is how it works for me (with a 2.4 kernel):
>
>
>Normal "uImage" and "uRamdisk":
>
> -> mkimage -l uImage
> Image Name: ARM Linux-2.4.27
> Created: Tue Jan 18 22:51:40 2005
> Image Type: ARM Linux Kernel Image (gzip compressed)
> Data Size: 697368 Bytes = 681.02 kB = 0.67 MB
> Load Address: 0x20008000
> Entry Point: 0x20008000
> -> mkimage -l uRamdisk
> Image Name: Simple Embedded Linux Framework
> Created: Wed Nov 10 01:35:20 2004
> Image Type: ARM Linux RAMDisk Image (gzip compressed)
> Data Size: 1502217 Bytes = 1467.01 kB = 1.43 MB
> Load Address: 0x00000000
> Entry Point: 0x00000000
>
>Extract raw (compressed) images:
>
> -> dd if=uImage of=kernel.gz bs=64 skip=1
> 10896+1 records in
> 10896+1 records out
> -> dd if=uRamdisk of=ramdisk.gz bs=64 skip=1
> 23472+1 records in
> 23472+1 records out
>
>Build multi-file image:
>
> -> mkimage -A arm -T multi -C gzip -a 0x20008000 -e 0x20008000 -n
> 'Multi-File Test Image' -d kernel.gz:ramdisk.gz uMulti
> Image Name: Multi-File Test Image
> Created: Sun Aug 28 00:15:01 2005
> Image Type: ARM Linux Multi-File Image (gzip compressed)
> Data Size: 2199597 Bytes = 2148.04 kB = 2.10 MB
> Load Address: 0x20008000
> Entry Point: 0x20008000
> Contents:
> Image 0: 697368 Bytes = 681 kB = 0 MB
> Image 1: 1502217 Bytes = 1467 kB = 1 MB
>
>
>On the target:
>
>Download:
>
>=> tftp $(loadaddr) cmcpu2/uMulti
>TFTP from server 192.168.1.1; our IP address is 192.168.20.1
>Filename 'cmcpu2/uMulti'.
>Load address: 0x20800000
>Loading: #################################################################
> #################################################################
> #################################################################
> #################################################################
> #################################################################
> #################################################################
> ########################################
>done
>Bytes transferred = 2199661 (21906d hex)
>
>
>Check:
>
>=> imi 20800000
>
>## Checking Image at 20800000 ...
> Image Name: Multi-File Test Image
> Created: 2005-08-27 22:15:01 UTC
> Image Type: ARM Linux Multi-File Image (gzip compressed)
> Data Size: 2199597 Bytes = 2.1 MB
> Load Address: 20008000
> Entry Point: 20008000
> Contents:
> Image 0: 697368 Bytes = 681 kB
> Image 1: 1502217 Bytes = 1.4 MB
> Verifying Checksum ... OK
>
>Boot:
>
>=> print bootargs
>bootargs=root=/dev/ram rw
>ip=192.168.20.1:192.168.1.1:192.168.1.254:255.255.0.0:cmcpu2:eth0:off panic=1
>=> bootm 20800000
>## Booting image at 20800000 ...
> Image Name: Multi-File Test Image
> Created: 2005-08-27 22:15:01 UTC
> Image Type: ARM Linux Multi-File Image (gzip compressed)
> Data Size: 2199597 Bytes = 2.1 MB
> Load Address: 20008000
> Entry Point: 20008000
> Contents:
> Image 0: 697368 Bytes = 681 kB
> Image 1: 1502217 Bytes = 1.4 MB
> Verifying Checksum ... OK
> Uncompressing Multi-File Image ... OK
>
>Starting kernel ...
>
>Linux version 2.4.27-vrs1 (wd at atlas.denx.de) (gcc version 3.3.3 (DENX ELDK
>3.1 3.3.3-8)) #1 Tue Jan 18 22:49:47 MET 2005
>CPU: Arm920Tid(wb) revision 0
>Machine: ATMEL AT91RM9200
>On node 0 totalpages: 4096
>zone(0): 4096 pages.
>zone(1): 0 pages.
>zone(2): 0 pages.
>Kernel command line: root=/dev/ram rw
>ip=192.168.20.1:192.168.1.1:192.168.1.254:255.255.0.0:cmcpu2:eth0:off panic=1
>Calibrating delay loop... 34.50 BogoMIPS
>Memory: 16MB = 16MB total
>Memory: 13080KB available (1289K code, 271K data, 56K init)
>Dentry cache hash table entries: 2048 (order: 2, 16384 bytes)
>Inode cache hash table entries: 1024 (order: 1, 8192 bytes)
>Mount cache hash table entries: 512 (order: 0, 4096 bytes)
>Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
>Page-cache hash table entries: 4096 (order: 2, 16384 bytes)
>CPU: Testing write buffer: pass
>POSIX conformance testing by UNIFIX
>Linux NET4.0 for Linux 2.4
>Based upon Swansea University Computer Society NET3.039
>Initializing RT netlink socket
>Starting kswapd
>Installing knfsd (copyright (C) 1996 okir at monad.swb.de).
>JFFS2 version 2.1. (C) 2001 Red Hat, Inc., designed by Axis Communications AB.
>RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
> Amd/Fujitsu Extended Query Table v1.3 at 0x0040
>number of CFI chips: 1
>cfi_cmdset_0002: Disabling fast programming due to code brokenness.
>Creating 5 MTD partitions on "CMC PU2 flash":
>0x00000000-0x00020000 : "Firmware"
>0x00020000-0x00030000 : "Environment"
>0x00030000-0x000f0000 : "Kernel"
>0x000f0000-0x00780000 : "Filesystem 1"
>0x00780000-0x00800000 : "Filesystem 2"
>i2c-core.o: i2c core module version 2.6.1 (20010830)
>i2c-dev.o: i2c /dev entries driver module version 2.6.1 (20010830)
>ttyS0 at MMIO 0xfefc0000 (irq = 6) is a AT91_SERIAL
>ttyS1 at MMIO 0xfefc4000 (irq = 7) is a AT91_SERIAL
>ttyS2 at MMIO 0xfefc8000 (irq = 8) is a AT91_SERIAL
>ttyS3 at MMIO 0xfefcc000 (irq = 9) is a AT91_SERIAL
>ttyS4 at MMIO 0xfefff200 (irq = 1) is a AT91_SERIAL
>eth0: Link now 100-FullDuplex
>eth0: AT91 ethernet at 0xfefbc000 int=24 100-FullDuplex (f6:70:1d:61:b5:9d)
>eth0: Davicom 9196 PHY (Copper)
>AT91 Watchdog Timer enabled (5 seconds)
>Found AT91 i2c
>I2C: RS5C372 RTC driver successfully loaded
>CMC buzzer driver $Revision: 0.2 $
>CMC digital IO driver $Revision: 0.2 $
>Serial driver version 0.03 (2004-12-17) with no serial options enabled
>ttyS5 at 0xc2084000 (irq = 29) is a TI16752
>ttyS6 at 0xc2086000 (irq = 30) is a TI16752
>NET4: Linux TCP/IP 1.0 for NET4.0
>IP Protocols: ICMP, UDP, TCP
>IP: routing cache hash table of 512 buckets, 4Kbytes
>TCP: Hash tables configured (established 1024 bind 2048)
>eth0: Link now 100-FullDuplex
>IP-Config: Complete:
> device=eth0, addr=192.168.20.1, mask=255.255.0.0, gw=192.168.1.254,
> host=cmcpu2, domain=, nis-domain=(none),
> bootserver=192.168.1.1, rootserver=192.168.1.1, rootpath=
>NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
>NetWinder Floating Point Emulator V0.97 (double precision)
>RAMDISK: Compressed image found at block 0
>Freeing initrd memory: 1467K
>VFS: Mounted root (ext2 filesystem).
>Freeing init memory: 56K
>
>
>BusyBox v0.60.5 (2004.11.10-00:31+0000) Built-in shell (msh)
>Enter 'help' for a list of built-in commands.
>
>#