Repository navigation
gk7205v500: the split NOR image, as on the gk7205v200 family - #2658
Conversation
The gk7205v500 lite rootfs is 5044K of its 5120K slot. Lite and ultimate use general/scripts/post-image-split.sh with BR2_OPENIPC_NOR_FIXED_PACKAGE=y: the fixed-slot package as before, plus -split. gk7205v500.generic.config turns on MTD_SPLIT_FIRMWARE (named "firmware"), MTD_SPLIT_UIMAGE_FW, MTD_SPLIT_SQUASHFS_ROOT and MTD_ROOTFS_ROOT_DEV (OpenIPC/linux#137); its U-Boot has the split mode since OpenIPC/u-boot#52. Only these two defconfigs use this kernel config, and both ship -split, so no fixed-only build gets a split-capable kernel. gk7201v200 has its own config and is unchanged. Built locally with the kernel branch: - gk7205v500_lite: uImage 1935K of 1983K, squashfs 5044K of 5120K, firmware.bin 7040K of 7616K; -lite.tgz and -lite-split.tgz. - gk7205v500_ultimate: uImage 1935K, squashfs 6528K, firmware.bin 8512K of 15808K; nor-ultimate, nor-ultimate-split and nand-ultimate (the same six files as on latest). Tested in qemu-hisilicon (gk7205v500 8 and 16 MB, gk7205v510/v530 16 MB): the split firmware.bin under the new U-Boot and under the published u-boot-gk7205v500-nor.bin ("root=/dev/mtdblock3 ignored"), root on 31:4, login, the overlay kept across a reset; the fixed-slot package under both: root on 31:3. Not run on hardware.
PR Summary by QodoAdd split NOR images for gk7205v500 lite and ultimate
AI Description
Diagram
High-Level Assessment
Files changed (3)
|
Code Review by Qodo
1. Split firmware has no hardware proof
|
The gk7205v500 firmware now ships the split NOR package beside the fixed-slot one (OpenIPC/firmware#2658). Its kernel (OpenIPC/linux#137) and NOR U-Boot (OpenIPC/u-boot#52) both know the layout. - `gk7205v500` joins `NOR_SPLIT_SOCS`, so `install` writes `firmware.bin.gk7205v500` at 0x50000 and erases the rest of the chip. - `FIRMWARE_PACKAGE_BOARD` maps gk7205v510/v530 to `gk7205v500`, the one build the family installs, as NAND already does (`_UBI_NAND_BOARD`). Each keeps its own `-nor` U-Boot. A fixed-slot package named for the chip itself is still accepted. - V500 boot-ROM recovery (`HiSiliconV500`) and the agent's donor are unchanged. Local: `pytest` (1084 passed), `ruff`, `mypy` clean. Not run on hardware. The firmware side was checked in qemu-hisilicon (see OpenIPC/firmware#2658): split boot under the new and the published U-Boot, the overlay kept across a power cycle, and U-Boot recovery from a fixed-slot install to the split image. qemu-hisilicon does not emulate the V500 boot ROM, so `defib install` itself was not run against it.
gk7205v500 ships the split NOR package beside the fixed-slot one since OpenIPC/firmware#2658, on a kernel (OpenIPC/linux#137) and a -nor U-Boot (OpenIPC/u-boot#52) that scan the layout. nor_split on gk7205v500, gk7205v510 and gk7205v530 lets the wizard give the split install where the -split package is published, as on the gk7205v200 family. gk7205v510 installs the gk7205v500 build on NOR too, as defib does since OpenIPC/defib#163 and as gk7205v530 already did here. Its own openipc.gk7205v510-nor-lite.tgz dates from 2026-10-02 and has no defconfig behind it any more. Without the move, deleting that stale asset from the release would leave v510 with no NOR download. v510 keeps its own -nor and -nand U-Boot. nand_board, which only v510 used, has no user now; the field stays. Tests: the fixture index loses the v510 package and gains the two gk7205v500 -split packages (sizes and digests from the latest release). boards.json moves v510 to the gk7205v500 build. The nand_board wizard test becomes TestV510InstallsTheV500Build: v510's NOR and NAND installs use the gk7205v500 build, and NOR uses the split firmware.bin.gk7205v500. The golden is regenerated for the three V500 SoCs. go test ./... (uncached) passes.
* nor-split: the Hi3516EV200 family, Hi3516EV300 split-only - nor-split-layout: Hi3516EV200, Hi3518EV300 and Hi3516DV200 ship the split package beside the fixed-slot one (OpenIPC/firmware#2655, on OpenIPC/linux#131 and OpenIPC/u-boot#48); Hi3516EV300 lite and ultimate ship the split package only, its kernel filling the 2 MiB kernel slot (neo keeps fixed slots). Going back to fixed slots lists them accordingly. - sysupgrade: `sysupgrade -k -r` installs the split layout on them. Checked in qemu-hisilicon (hi3516ev200, hi3518ev300, hi3516ev300; 8 and 16 MB). Not run on hardware. * nor-split: the GK7205V500 family GK7205V500 ships the split package beside the fixed-slot one (OpenIPC/firmware#2658, on OpenIPC/linux#137 and OpenIPC/u-boot#52). GK7205V510 and GK7205V530 install that one gk7205v500 build, as defib (OpenIPC/defib#163) and the site's installer do. Each keeps its own u-boot-<soc>-nor.bin. sysupgrade -k -r takes the split package on them too, and they go back to fixed slots the same way. Checked in qemu-hisilicon (gk7205v500 8 and 16 MB, gk7205v510/v530 16 MB). Not run on hardware. * sysupgrade: the split list is for NOR cameras, and Hi3516EV300 lite and ultimate From review: the list of SoCs whose sysupgrade -k -r installs the split package now says it is about NOR flash, and points NAND cameras to their own layout page. Hi3516EV300 is listed for lite and ultimate only: neo keeps fixed slots, as the layout page says.
The gk7205v500 lite rootfs is 5044K of its 5120K slot. The split layout lets kernel and rootfs share one budget.
gk7205v500_liteand_ultimateusegeneral/scripts/post-image-split.shwithBR2_OPENIPC_NOR_FIXED_PACKAGE=y: the fixed-slot package as before, plus-split.gk7205v500.generic.configturns onMTD_SPLIT_FIRMWARE(named "firmware"),MTD_SPLIT_UIMAGE_FW,MTD_SPLIT_SQUASHFS_ROOTandMTD_ROOTFS_ROOT_DEV(gk7205v500 family: the split NOR layout, from the device tree linux#137). Its U-Boot has the split mode since nor: split layout on the gk7205v500 family u-boot#52.-split, so no fixed-only build gets a split-capable kernel. gk7201v200 has its own config and is unchanged.Built locally:
-lite.tgzand-lite-split.tgz.Tested in qemu-hisilicon (gk7205v500 machine), with lite and ultimate rebuilt on the merged kernel (OpenIPC/linux#137) and U-Boot rebuilt from the merged OpenIPC/u-boot#52 tree:
sfc: split NOR layout, device tree partitions; firmware/kernel/rootfs/rootfs_data (0x730000); root on 31:4; login promptSeeding 2048 bits and crediting(the seed the first boot saved in the overlay); jffs2 overlay read from the host keeps.openipc-overlay,etc/fw_env.config,crond.rebootu-boot-gk7205v500-nor.binroot=/dev/mtdblock3 ignored, the flash names its own root; root on 31:4; loginrun fwupdover TFTP fetchesfirmware.bin.gk7205v500(7208960 bytes), erases 0x50000 to the end of the chip, writes it (byte-identical on flash); reboots split, root 31:4Not tested: sysupgrade inside Linux, because the console login stops at the Majestic EULA, and automation does not accept it. Not run on hardware. The kernel has 48K of headroom against the 1983K a fixed-slot package beside a split one may use; past that, gk7205v500 would go split-only like hi3516ev300.