Repository navigation
install: the split NOR image is a uImage + squashfs - #155
Conversation
OpenIPC moves the split NOR layout's firmware.bin from a FIT to the legacy uImage followed by the squashfs at the next 64 KiB block, and the kernel now finds the layout's partitions and root in its own device tree, whatever the bootloader passes. Any U-Boot that bootm's a uImage at 0x50000 boots it, the factory XM U-Boot included, which has no FIT. - split_image_end() reads the uImage header (data size at bytes 12..15) instead of a FIT's totalsize; the shape checks are otherwise the same. - The warning on a plan without the uboot stage goes: the U-Boot already on the flash boots the image whichever it is. - README and the firmware table say uImage. Tests: the split fixture is a uImage; a FIT now fails the shape check.
PR Summary by QodoSupport uImage-based split NOR firmware
AI Description
Diagram
High-Level Assessment
Files changed (5)
|
Code Review by Qodo
1.
|
A uImage header declaring zero data bytes rounds up to the first 64 KiB block, so a squashfs there passed the shape check and the install would have flashed an image with no kernel.
OpenIPC moves the split NOR layout's firmware.bin from a FIT to the legacy
uImage followed by the squashfs at the next 64 KiB block, and the kernel
now finds the layout's partitions and root in its own device tree,
whatever the bootloader passes. Any U-Boot that bootm's a uImage at
0x50000 boots it, the factory XM U-Boot included, which has no FIT.
instead of a FIT's totalsize; the shape checks are otherwise the same.
on the flash boots the image whichever it is.
Tests: the split fixture is a uImage; a FIT now fails the shape check.
Matches OpenIPC/linux#97, OpenIPC/firmware#2623 and OpenIPC/u-boot#20 (all merged). The format was verified on hardware with sysupgrade and in QEMU;
defib installof the uImage split image itself has not been run on a camera.