- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
Has anyone successfully used a u-boot Multi image to boot into Linux? I have zImage, initrd, and dtb that I want put into the image. My attempts so far have always resulted in: SOCFPGA_CYCLONE5# fatload mmc 0 0x2000000 zzzmultiimage reading zzzmultiimage 31098855 bytes read in 2718 ms (10.9 MiB/s) SOCFPGA_CYCLONE5# bootm 0x2000000 ## Booting kernel from Legacy Image at 02000000 ... Image Name: Multi image Image Type: ARM Linux Multi-File Image (gzip compressed) Data Size: 31098791 Bytes = 29.7 MiB Load Address: 00008000 Entry Point: 00008000 Contents: Image 0: 3407918 Bytes = 3.3 MiB Image 1: 27671672 Bytes = 26.4 MiB Image 2: 19183 Bytes = 18.7 KiB ## Loading init Ramdisk from multi component Legacy Image at 02000000 ... ## Flattened Device Tree from multi component Image at 02000000 Booting using the fdt at 0x03da3cf8 Uncompressing Multi-File Image ... Error: Bad gzipped data GUNZIP: uncompress, out-of-mem or overwrite error - must RESET board to recover resetting .. I have tried a range of load addresses (0x2000000 pictured above), all get the same message. I build the multi-image on the workstation using: mkimage -A arm -O linux -T multi -a 0x8000 -e 0x8000 -C gzip -n 'Multi image' -d uImage:uRamdiskExt3ARM:socfpga_cyclone5_sockit.dtb zzzMultiImage The .dtb comes straight from the kernel build. For the uImage I have tried:- using the zImage straight from the kernel build,
- the zImage wrapped by mkimage with:
- the Image straight from the kernel build, compressed with gzip -9, and then wrapped by mkimage with:
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Solution for anyone else down this path:
None of the components inside the multi-image are wrapped with mkImage. * The Linux kernel image is just the plain 'Image' generated by the kernel build, zipped with gzip -v9 Image. * The initrd is just a plain ol' ext3.gz * The dtb is also that generated by the kernel build. Put them together with: mkimage -A arm -O linux -T multi -a 0x8000 -e 0x8000 -C gzip -n 'Multi image: kernel, initrd, dtb' -d Image.gz:rootfs.ext3.gz:socfpga_cyclone5_sockit.dtb mxImage And to boot this on the target: # fatload mmc 0 0x2000000 mxImage # env set initrd_high 20000000 # env set bootargs console=ttyS0,115200 root=/dev/ram rw rootwait ramdisk_size=262144 # bootm 0x2000000 and you are off and running.... Environment size: 2124/4092 bytes SOCFPGA_CYCLONE5# bootm 0x2000000 # # Booting kernel from Legacy Image at 02000000 ... Image Name: Multi image Image Type: ARM Linux Multi-File Image (gzip compressed) Data Size: 31098663 Bytes = 29.7 MiB Load Address: 00008000 Entry Point: 00008000 Contents: Image 0: 3407854 Bytes = 3.2 MiB Image 1: 27671608 Bytes = 26.4 MiB Image 2: 19183 Bytes = 18.7 KiB # # Loading init Ramdisk from multi component Legacy Image at 02000000 ... # # Flattened Device Tree from multi component Image at 02000000 Booting using the fdt at 0x03da3c78 Uncompressing Multi-File Image ... OK reserving fdt memory region: addr=0 size=1000 Loading Ramdisk to 1e59c000, end 1ffffc38 ... OK Loading Device Tree to 03ff8000, end 03fffaee ... OK Starting kernel ... <snip> Have fun! --George
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page