Skip to content

install: the split NOR layout for the gk7205v500 family - #163

Merged
widgetii merged 1 commit into
masterfrom
install/split-gk7205v500
Oct 23, 2026
Merged

widgetii merged 1 commit into
masterfrom
install/split-gk7205v500

Conversation

@widgetii

Copy link
Copy Markdown
Member

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.

The gk7205v500 lite rootfs is 76 KiB short of its 5 MiB slot. Its
firmware now ships the split NOR package beside the fixed-slot one
(OpenIPC/firmware#2658), on a kernel (OpenIPC/linux#137) and a NOR U-Boot
(OpenIPC/u-boot#52) that know the layout. gk7205v500 joins NOR_SPLIT_SOCS,
so install writes firmware.bin.gk7205v500 at 0x50000 and erases the rest
of the chip.

gk7205v510 and gk7205v530 install that one gk7205v500 build, as their
NAND installs already do (_UBI_NAND_BOARD), so FIRMWARE_PACKAGE_BOARD
maps them to it. Each keeps its own -nor U-Boot. A fixed-slot package
named for the chip itself is still accepted. V500 recovery
(HiSiliconV500, the agent's donor) is unchanged.

Not run on hardware. The firmware side was checked in qemu-hisilicon
(OpenIPC/firmware#2658): lite at 8 MB and ultimate at 16 MB boot split
under the new and the published U-Boot, the overlay survives a power
cycle, and U-Boot recovery moves a fixed-slot install to the split image
over TFTP. qemu-hisilicon does not emulate the V500 boot ROM, so defib
install itself was not run against it.
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Enable split NOR installs for the gk7205v500 family

✨ Enhancement 🧪 Tests 📝 Documentation 🕐 10-20 Minutes

Grey Divider

AI Description

• Enable split NOR firmware installs for gk7205v500, erasing flash beyond the image.
• Map gk7205v510 and gk7205v530 to the shared firmware package while retaining chip-specific NOR
 U-Boot.
• Document the layout and test family package selection and split support.
Diagram

graph TD
  Chip["V500 chip"] --> Board["Package board"] --> Split["Split NOR selection"] --> Package["Shared firmware"] --> Installer["NOR installer"] --> Flash[("SPI NOR")]
  Chip --> Boot["Chip NOR U-Boot"] --> Installer
Loading
High-Level Assessment

Reuse of the existing split NOR path and package-board mapping is appropriate: the firmware family shares one build, while each chip retains its own NOR U-Boot. A separate V500 install path would duplicate established layout behavior.

Files changed (3) +12 / -5

Enhancement (1) +4 / -0
firmware.pyEnable shared V500 split NOR firmware selection +4/-0

Enable shared V500 split NOR firmware selection

• Maps gk7205v510 and gk7205v530 firmware packages to gk7205v500 and adds that package board to split NOR support. The existing chip-specific U-Boot asset selection is unchanged.

src/defib/firmware.py

Tests (1) +4 / -1
test_install_nor_split.pyCover V500 family split support and package mapping +4/-1

Cover V500 family split support and package mapping

• Extends data-level assertions to all three V500-family chips and checks that V530 maps to the V500 package and V510 accepts its split image.

tests/test_install_nor_split.py

Documentation (1) +4 / -4
CLAUDE.mdDocument V500 split NOR package mapping +4/-4

Document V500 split NOR package mapping

• Adds the gk7205v500 family to the documented split NOR boards and explains that V510 and V530 use the V500 firmware package.

CLAUDE.md

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can reply 'qodo' on any finding to push back, ask questions, or dig deeper

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@widgetii
widgetii merged commit e0a7b33 into master Oct 23, 2026
13 checks passed
widgetii added a commit to OpenIPC/website that referenced this pull request Oct 23, 2026
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.
widgetii added a commit to OpenIPC/wiki that referenced this pull request Oct 23, 2026
* 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant