By using the same custom kernel header magic in both OKLI lzma-loader, DTS, and makefile this hack is not necessary anymore However, "rootfs" size and checksum must now be supplied by the factory.bin image through a script that is accepted by the OEM upgrade script. This is because Senao OEM scripts assume a squashfs header exists at the offset for the original "rootfs" partition which is actually the kernel + rootfs in this implementation, and takes size value from the header that would be there with hexdump, but this offset is now the uImage header instead. This frees up 1 eraseblock previously used by the "fakeroot" partition for bypassing the OEM image verification. Also, these Senao devices with a 'failsafe' partition and the tar-gz factory.bin platform would otherwise require flashing the new tar-gz sysupgrade.bin afterward. So this also prevents having to flash both images when starting from OEM or 'failsafe' the OEM upgrade script verifies the header magic numbers, but only the first two bytes. Example: [ "${magic_word_kernel}" = "2705" ] && [ "${magic_word_rootfs}" = "7371" -o "${magic_word_rootfs}" = "6873" ] && errcode="0" therefore picked the magic number 0x73714f4b which is 'sqOK' Signed-off-by: Michael Pratt <mcpratt@pm.me>
85 lines
1.4 KiB
Text
85 lines
1.4 KiB
Text
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
|
|
|
|
#include <dt-bindings/mtd/partitions/uimage.h>
|
|
|
|
/ {
|
|
virtual_flash {
|
|
compatible = "mtd-concat";
|
|
|
|
devices = <&fwconcat0 &fwconcat1>;
|
|
|
|
partitions {
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
partition@0 {
|
|
compatible = "openwrt,uimage", "denx,uimage";
|
|
openwrt,ih-magic = <0x73714f4b>;
|
|
label = "firmware";
|
|
reg = <0x0 0x0>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
&spi {
|
|
status = "okay";
|
|
|
|
flash@0 {
|
|
compatible = "jedec,spi-nor";
|
|
reg = <0>;
|
|
spi-max-frequency = <20000000>;
|
|
|
|
partitions {
|
|
compatible = "fixed-partitions";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
partition@0 {
|
|
label = "u-boot";
|
|
reg = <0x0 0x40000>;
|
|
read-only;
|
|
};
|
|
|
|
partition@40000 {
|
|
label = "u-boot-env";
|
|
reg = <0x40000 0x10000>;
|
|
};
|
|
|
|
partition@50000 {
|
|
label = "custom";
|
|
reg = <0x50000 0x50000>;
|
|
read-only;
|
|
};
|
|
|
|
partition@a0000 {
|
|
label = "loader";
|
|
reg = <0xa0000 0x10000>;
|
|
read-only;
|
|
};
|
|
|
|
fwconcat1: partition@b0000 {
|
|
label = "fwconcat1";
|
|
reg = <0xb0000 0xf0000>;
|
|
};
|
|
|
|
fwconcat0: partition@1a0000 {
|
|
label = "fwconcat0";
|
|
reg = <0x1a0000 0x4d0000>;
|
|
};
|
|
|
|
partition@670000 {
|
|
label = "failsafe";
|
|
reg = <0x670000 0x180000>;
|
|
read-only;
|
|
};
|
|
|
|
art: partition@7f0000 {
|
|
label = "art";
|
|
reg = <0x7f0000 0x10000>;
|
|
read-only;
|
|
};
|
|
};
|
|
};
|
|
};
|