tizen: bootscript: unpack initramfs and pass its actual size to kernel 13/318713/3
authorMarek Szyprowski <m.szyprowski@samsung.com>
Mon, 7 Oct 2024 08:48:01 +0000 (10:48 +0200)
committerJaehoon Chung <jh80.chung@samsung.com>
Fri, 18 Oct 2024 02:06:21 +0000 (11:06 +0900)
commit397b434484ec9dc6b26d48d71eb55923fac48279
tree507f87882be305b6db7e938d3f2a125ba33309f7
parentc1be39f87f44eea24b3ea0922a8707a99a552937
tizen: bootscript: unpack initramfs and pass its actual size to kernel

The initramfs ramdisk image (CPIO compressed archive) is stored on the
separate ramdisk/ramdisk-recovery partitions, thus it is not possible to
determine size of the compresszed archive. Passing the size of the
partition as the size of initramfs image to the kernel instructs the
kernel to check if the remaining bytes are another CPIO archive with more
initramfs data.

Decompressing or interpreting such additional garbage bytes sometimes
fails, what results in kernel ignoring the whole initramfs data as broken
one and thus breaking the Tizen boot sequence.

To avoid such problems and dependency on unknown/garbage data from
ramdisk partitions, lets decompres initramfs data (CPIO gzip archive)
directly in u-boot and pass the kernel only the single, uncompressed CPIO
archive as iniramfs image.

Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Change-Id: Ic373477589e2b29f7bf89c803241bc29d6c7b983
tizen/bootscript/tizen-boot-rpi4.scr
tizen/bootscript/tizen-boot-vf2.scr