Skip to content

install: hi3516ev300 on the split NOR layout, split-only - #161

Merged
widgetii merged 2 commits into
masterfrom
install/split-hi3516ev300
Oct 22, 2026
Merged

widgetii merged 2 commits into
masterfrom
install/split-hi3516ev300

Conversation

@widgetii

Copy link
Copy Markdown
Member

hi3516ev300's firmware now ships only the split NOR package, like hi3516cv6xx (OpenIPC/firmware#2656): its uImage (2008K with the split options) fills the 2 MiB slot, so a fixed-slot package cannot ship beside a split one. hi3518ev300 went split-only in the same PR; it is already in NOR_SPLIT_SOCS (#160).

  • hi3516ev300 joins NOR_SPLIT_SOCS, so install writes firmware.bin.hi3516ev300 at 0x50000 and erases the rest of the chip; its U-Boot is the published u-boot-hi3516ev300-nor.bin (split mode since nor: split layout on the hi3516ev200 family u-boot#48).
  • The refusal test that used hi3516ev300 as a chip without the split layout now uses hi3518ev200. CLAUDE.md lists it.

The split package appears with the next nightly. Not run on hardware; the firmware side was checked in qemu-hisilicon (8 MB lite, 16 MB ultimate: root on the split rootfs, overlay kept across a reboot). pytest tests/ --ignore=tests/fuzz: 1084 passed. ruff and mypy are clean.

hi3516ev300's firmware now ships only the split NOR package, like
hi3516cv6xx: its uImage (2009K with the split options) fills the 2 MiB
slot, so a fixed-slot package cannot ship beside a split one (OpenIPC/firmware#2656;
hi3518ev300 went split-only there too). It joins NOR_SPLIT_SOCS, so install writes
firmware.bin at 0x50000 and erases the rest of the chip. The refusal
test that used hi3516ev300 as a chip without the split layout now uses
hi3518ev200.

Not run on hardware; the firmware side was checked in qemu-hisilicon.
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Enable split NOR installation for hi3516ev300

✨ Enhancement 🧪 Tests 📝 Documentation 🕐 10-20 Minutes

Grey Divider

AI Description

• Add hi3516ev300 to split NOR support to match its newly split-only firmware package.
• Preserve split-layout refusal coverage using hi3518ev200, which remains unsupported.
• Document the supported SoC family and update the layout assertion.
Diagram

graph TD
  A["Install request"] --> B{"Split supported?"} -->|yes| C["Split NOR package"] --> D["Erase and write"] --> E["NOR flash"]
  B -->|no| F["Reject split package"]
  G["NOR U-Boot"] --> E
Loading
High-Level Assessment

Use the existing NOR_SPLIT_SOCS eligibility table and split installer. hi3516ev300 already has per-flash-type U-Boot selection and the standard 0x50000 firmware offset, so a separate install path would duplicate working behavior. The change enables split packages but does not add a code-level prohibition on fixed-slot packages.

Files changed (3) +9 / -7

Enhancement (1) +3 / -2
firmware.pyAdd hi3516ev300 to split NOR eligibility +3/-2

Add hi3516ev300 to split NOR eligibility

• Adds hi3516ev300 to NOR_SPLIT_SOCS, allowing the existing installer to accept its split NOR package. Revises the comment to explain why a fixed-slot package cannot ship alongside it.

src/defib/firmware.py

Tests (1) +4 / -3
test_install_nor_split.pyAdjust split support and refusal assertions +4/-3

Adjust split support and refusal assertions

• Asserts that hi3516ev300 supports split NOR. Moves the unsupported-chip refusal case to hi3518ev200 and retains a negative support assertion for hi3516cv500.

tests/test_install_nor_split.py

Documentation (1) +2 / -2
CLAUDE.mdDocument hi3516ev300 as split-only +2/-2

Document hi3516ev300 as split-only

• Updates the NOR layout guidance to include hi3516ev300 among the split-package SoCs.

CLAUDE.md

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

qodo-free-for-open-source-projects Bot commented Oct 22, 2026 •

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0) 🎨 UX issues (0) 🔗 Cross-repo conflicts (0) 📜 Skill insights (0)

Grey Divider


Remediation recommended

1. The documented install package disappears ✓ Resolved
Description
CLAUDE.md now identifies hi3516ev300 as split-only, but the installation command in README.md
still names openipc.hi3516ev300-nor-lite.tgz. When the split-only release replaces that fixed-slot
package, users following the example will be directed to a package that no longer ships instead of
the -split.tgz package.
Code

CLAUDE.md[R177-178]

+  hi3516cv300/ev100, the hi3516ev200 family -- hi3516ev300 split-only;
+  keyed by
Evidence
The changed documentation calls hi3516ev300 split-only; the README's complete-install example still
uses the filename without -split. The split-package naming convention is also documented beside
NOR_SPLIT_SOCS.

CLAUDE.md[176-182]
README.md[56-72]
src/defib/firmware.py[79-94]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The README's hi3516ev300 installation example names a fixed-slot package even though the PR moves this chip to a split-only release.
## Fix Focus Areas
- README.md[58-72]
- CLAUDE.md[176-181]
## Recommended Fix
Change the example to use `openipc.hi3516ev300-nor-lite-split.tgz` and adjust the adjacent description of the flashed layout to match.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Tip of the day
💡 Did you know, you can ask Qodo to dismiss a finding you disagree with, with your reason on record

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Comment thread CLAUDE.md
From review: hi3516ev300 now ships only openipc.hi3516ev300-nor-<variant>
-split.tgz, so the example named a package that will no longer be
published. Step 6 says what install writes for a split package, and the
U-Boot paragraph names OpenIPC/u-boot, which publishes these chips'
-nor/-nand builds since u-boot-xmedia stopped.
@widgetii
widgetii merged commit f8f6569 into master Oct 22, 2026
13 checks passed
@widgetii
widgetii deleted the install/split-hi3516ev300 branch October 22, 2026 04:44
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