[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