AnsweredAssumed Answered

How to load an initramfs image using u-boot (i.MX28) ?

Question asked by Marcelo Barros on Jun 29, 2011
Latest reply on Sep 13, 2012 by Bill Sousan

Hello !

I have tried to load my kernel and a custom initramfs without success. For this purpose, I formatted a SD card like below:

* Partition 1 (FAT16): u-boot parameters
* Partition 2 (Sigmatel): u-boot image, prepared to be loaded by i.MX28 ROM
* Partition 3 (FAT16): kernel and initramfs files
* Partition 4 (ext3): rootfs

Using fatload, I loaded kernel to position 0x42000000 and initramfs to position 0x42300000 (kernel fits in 3MB). I used the kernel parameters related to ramfs:

root=/dev/ram0 rootfstype=ramfs initrd=0x42300000

However, after mounting the rootfs, kernel can not execute init. I have specified init as well, using initrd=/bin/ash or init=/bin/ash, just to test, no donuts for me in both cases.

Tired of this approach, I thought about the strategy of inserting initramfs inside kernel. I configured the kernel and provided such cpio image. The kernel size becomes bigger, as expected. However, when loading this kernel using fatload, I receive a bad CRC message and kernel can not be loaded.

I saw that ltib can generate two ramfs images: a standard cpio image or a u-boot (?) cpio image. I have used the first one since the second has a kind o header.

Anyone out there have booted the system using u-boot, kernel and and initramfs to help me ? The idea is to have a safe boot environment based on ramfs, only mounting the rootfs after checks and validations or fetching a new rootfs using ftp/tftp. Moreover, this way, it is possible to update the kernel, safe boot (ramfs) or rootfs file system in the field easily.

Thanks in advance !