[U-Boot] And what about fitImages and ram disks?
Daniel Schwierzeck
daniel.schwierzeck at gmail.com
Mon Jun 17 11:27:08 UTC 2019
Hi Patrick,
Am Fr., 14. Juni 2019 um 23:05 Uhr schrieb Patrick Doyle <wpdster at gmail.com>:
>
> I just created my initramfs and inserted it into my fit-image.its
> file. When I booted, I saw the following:
>
> Trying 'ramdisk' ramdisk subimage
> Description: Bootstrap ramdisk
> Type: RAMDisk Image
> Compression: gzip compressed
> Data Start: 0x811ae9f0
> Data Size: 2613908 Bytes = 2.5 MiB
> Architecture: MIPS
> OS: Linux
> Load Address: 0x00000000
> Entry Point: 0x00000000
> Hash algo: sha256
> Hash value:
> 0faa7c3e4927b685cd5a050112ea6b90ad4dec4e4ea8627b4f589bfc60082eba
> Verifying Hash Integrity ... sha256+ OK
> Uncompressing Kernel Image ... OK
> Loading Ramdisk to 83ad9000, end 83d57294 ... OK
> Loading Ramdisk to 8385a000, end 83ad8294 ... OK
> [ 0.000000] Linux version 4.14.115-yocto-standard-custom
> (oe-user at oe-host) (gcc version 8.3.0 (GCC)) #1 Fri Jun 14 19:49:57 UTC
> 2019
> [ 0.000000] Board has DDR2
> [ 0.000000] Analog PMU set to hw control
> [ 0.000000] Digital PMU set to hw control
> [ 0.000000] SoC Type: MediaTek MT7688 ver:1 eco:2
> [ 0.000000] bootconsole [early0] enabled
> [ 0.000000] CPU0 revision is: 00019655 (MIPS 24KEc)
> [ 0.000000] MIPS: machine is MediaTek LinkIt Smart 7688
> [ 0.000000] Determined physical RAM map:
> [ 0.000000] memory: 04000000 @ 00000000 (usable)
> [ 0.000000] Initrd not found or empty - disabling initrd
>
> Does anybody have any hints as to why the Ramdisk would be relocated twice?
This have been fixed with e5151666364e64e6ca6e554e3d53f2a53fbc1800.
> Does anybody have any hints as to why the kernel didn't notice the ramdisk?
Could you share your U-Boot version and board config, particulary the
CONFIG_MIPS_BOOT_* options.
For boot with DT hand-over you'll need
6943cc9732202b9c65990cff9f74cea6b8173e09 with mainline Linux.
>
> As you may notice, I am building these images with Yocto. The Yocto
> documentation advvices to bundle the initramfs with the kernel image,
> which I can do. But I am presented with two options here: bundle it
> with the kernel (which has been around since forwver), or bundle it in
> the FIT Image. I decided to assume that the Yocto documentation was a
> bit out of date and started by bundling it with my FIT image.
I strongly recommend a FIT image with separate Linux, initramfs and DT
images and to use DT hand-over by U-Boot (CONFIG_MIPS_BOOT_FDT) when
booting from traditional flash media. Then you have the full
flexibility with making initramfs optional or to support multiple DT
blobs. If you want to boot from a file system (e.g. FAT32 on MMC) you
could checkout CONFIG_DISTRO and don't use U-Boot's mkimage at all.
>
> I will try doing what the documentation said to do next, but in the
> mean time, I thought I would ask what others have experienced with
> booting FIT Images with RAM disks. (For my particular application, I
> only ever need one configuration, with one kernel, one fdt, and one
> ramdisk, all of which could be bundled into the one kernel... so
> arguably, I don't need the flexibility of bundling it in the FIT
> image).
>
> Thanks for any tips.
Another advantage of FIT is the massively decreased build times during
development. You can simply update initramfs or DTB's of a kernel
image within (mili-)seconds because you don't need to invoke Linux
Kbuild to re-link vmlinux and to run some compression algo afterwards.
But I'm not sure how relevant this is inside the Yocto build
environment.
--
- Daniel
More information about the U-Boot
mailing list