Radxa E52C: add mainline U-Boot support and kernel target configuration#9366
Radxa E52C: add mainline U-Boot support and kernel target configuration#9366okrc wants to merge 1 commit intoarmbian:mainfrom
Conversation
Signed-off-by: okrc <[email protected]>
📝 WalkthroughWalkthroughThis pull request adds support for the Radxa E52C board powered by the RK3582 SoC. Changes include board configuration with mainline U-Boot support, initial RK3582 support in U-Boot with OTP-based device tree fixups, generic RK3588 configuration updates, and Radxa E52C-specific device tree and defconfig files. Changes
Sequence DiagramsequenceDiagram
participant UBoot as U-Boot
participant OTP as OTP Hardware
participant FDT as Device Tree
UBoot->>OTP: Read CPU code from OTP offset
OTP-->>UBoot: Return CPU code value
alt CPU code matches RK3582
UBoot->>OTP: Read ip-state (failed/disabled blocks)
OTP-->>UBoot: Return ip-state bitmask
UBoot->>UBoot: Apply disable policy based on FAIL_* masks
alt Cluster disabled
UBoot->>FDT: Remove/rename cpu-map clusters
end
alt GPU/Codec disabled
UBoot->>FDT: Fail gpu@, video-codec@, iommu@ nodes
end
UBoot->>FDT: Append rk3582 to soc-compatible
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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 |
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
config/boards/radxa-e52c.conf (1)
1-1:⚠️ Potential issue | 🟡 MinorBoard description says "octa core" but RK3582 is a 6-core SoC.
The RK3582 has 2× Cortex-A76 + 4× Cortex-A55 = 6 cores (confirmed by the patch commit message at line 10 of
1000-add-support-for-radxa-e52c.patchand the OTP/policy output showing 2 CPU cores failed from the RK3588's 8). Also, "SoC" appears twice in the description.Proposed fix
-# Rockchip RK3582 SoC octa core 4-16GB SoC eMMC USB3 +# Rockchip RK3582 hexa core 4-16GB SoC eMMC USB3
🧹 Nitpick comments (1)
patch/u-boot/v2026.01/board_radxa-e52c/0000-add-initial-rk3582-support.patch (1)
161-176:cluster1_removedis set unconditionally — fine in practice, but fragile if the DT structure were ever unexpected.On line 165,
cluster1_removed = trueexecutes regardless of whetherfdt_path_del_nodesucceeded. If the cluster1 node were absent from the DT, this would still trigger the cluster2 → cluster1 rename at line 175, which would also silently fail. Functionally harmless since the RK3588 DT is expected to always have cluster0/1/2, but a guard could prevent a misleading rename attempt.This is a very minor robustness nit on an upstream-authored patch, so no change is necessary.
Optional: guard `cluster1_removed` on success
if ((ip_state[0] & FAIL_CPU_CLUSTER1) == FAIL_CPU_CLUSTER1) { log_debug("remove cpu-map cluster1\n"); - fdt_path_del_node(blob, "/cpus/cpu-map/cluster1"); - cluster1_removed = true; + if (!fdt_path_del_node(blob, "/cpus/cpu-map/cluster1")) + cluster1_removed = true; }
|
I will build images and test this on radxa-e52c board. |
|
Nice. Maybe you could run |
schwar3kat
left a comment
There was a problem hiding this comment.
Tested okay on the board.
|
✅ This PR has been reviewed and approved — all set for merge! |
Summary by CodeRabbit
New Features
Documentation
Testing by schwar3kat