config: bootscripts: adjust meson64 U-Boot addresses for 512MB RAM boards - #10236
config: bootscripts: adjust meson64 U-Boot addresses for 512MB RAM boards#10236GalbertPi wants to merge 2 commits into
Conversation
Updated memory addresses for script and kernel in boot configuration, to fix a bug that impeded the OS boot on Radxa Zero models having less than 1 GB RAM (tested). See issue: armbian#10231
Hey @GalbertPi! 👋Thanks for submitting your first pull request to the Armbian project — we're excited to have you contributing! 🧡 If you'd like to stay informed about project updates or collaborate more closely with the team, Also, don’t forget to ⭐ star the repo if you haven’t already — and welcome aboard! 🚀 |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughThe Meson64 U-Boot boot script changes the script load address to ChangesMeson64 boot address configuration
Estimated code review effort: 1 (Trivial) | ~2 minutes Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Thanks for the fix — the direction is right, but
However, Suggest Radxa Zero (G12A) is unaffected by this issue — its reserved region ends at 0x08000000, which is why the test passed. A smoke boot on any GX board after the change would be great. |
|
Safest probably making per board override? |
Changed address for more wide-spread compatibility
|
Agreed — a per-board override is the safest path for this PR: the tested Radxa Zero gets the fix, the rest of the family stays untouched. Mechanics: give the board its own bootscript via Switching the whole meson64 family to the upstream U-Boot default addresses ( |
|
Hi, I just changed the address as per the first comment, with another commit! |
|
The update resolves my concern: 0x08000000/0x08080000 are the upstream U-Boot defaults and are safe per the DT reserved-memory layout on every SoC of the family (GX: secmon at 0x10000000 and 0x05000000–0x07300000 untouched; G12: secmon ends at 0x08000000). No objections to the family-wide variant in this form — it effectively syncs the script with the upstream layout. A smoke boot on a GX board (C2/Le Potato) before merging would still be nice; I can't run it myself — no GX hardware here. |
|
Sounds great! Let's keep this PR on standby until someone with GX hardware can run a quick smoke boot test—hopefully next week or as soon as possible—just to be 100% safe before merging. Thank you so much for double-checking the memory layouts and validating the global approach! |
|
Tests that would settle the family-safety question: GX (separate secmon layout in
G12/SM1 — already covered by the Radxa Zero test; extra datapoints (Odroid N2/C4/HC4, VIM3/VIM3L, BPi M5) are welcome but not blocking. The check boils down to: update |
|
Makes you wonder; why are these set at all in the script? Seeing as they are already preset by the Just removing them from the script should resolve the problem, no? |
|
Fair question — but the script can't rely on the compiled-in defaults, because it runs on the whole installed base, not just on a freshly built U-Boot:
So syncing the script's values to the upstream layout (what this PR does) is the right move; removing them only works in a world where everyone runs a freshly flashed U-Boot. |
|
Wouldn't using say |
|
It doesn't, for the same reason I raised with @pyavitz above: "the compiled-in values" are the values of the U-Boot already flashed on the board — and for the affected users that U-Boot is old and carries the old layout. Mechanically, extlinux.conf doesn't specify load addresses at all. The There's a practical side too. So u-boot-menu is an orthogonal topic rather than an alternative to this PR. Syncing the script's values with the upstream layout remains the way to fix both new and existing installs. |
|
Good morning! |
I am 1-2 months away from ability to run fleet wide tests of any PR. Automatically. |
Updated memory addresses for script and kernel in boot configuration, to fix a bug that impeded the OS boot on Radxa Zero models having less than 1 GB RAM (tested). See issue (and attached image below):
#10231
Description
This PR addresses a critical boot loop issue on low-RAM Amlogic meson64 boards (such as the Radxa Zero 512MB variant).
Context
The default hardware configuration template assigned
scriptaddrto0x32000000(800MB) andkernel_addr_rto0x34000000(832MB). While this works flawlessly on 1GB, 2GB, or 4GB models, it causes an immediate out-of-bounds memory allocation crash and silent CPU boot loop on 512MB hardware SKUs.Solution
Lowered
scriptaddrto0x10000000(256MB) andkernel_addr_rto0x08080000(128.5MB). This establishes a safe, lower common denominator that accommodates 512MB models perfectly without impacting variants with larger RAM capacities. Verified and fully working on physical hardware.Summary by CodeRabbit