Skip to content

config: rockpi-e: change rkbin repository and use spl-blobs#10027

Open
chenxmqqqq wants to merge 1 commit into
armbian:mainfrom
chenxmqqqq:main
Open

config: rockpi-e: change rkbin repository and use spl-blobs#10027
chenxmqqqq wants to merge 1 commit into
armbian:mainfrom
chenxmqqqq:main

Conversation

@chenxmqqqq

@chenxmqqqq chenxmqqqq commented Jun 23, 2026

Copy link
Copy Markdown

Summary by CodeRabbit

  • Chores
    • Updated Rock Pi E board bootloader configuration to switch from the previous boot “binman” approach to an SPL “blobs” flow.
    • Added support for selecting specific firmware artifacts (DDR, BL31, and miniloader) via configurable blob references, and updated the board’s resulting boot component mappings accordingly.

@coderabbitai

coderabbitai Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 109d1cc1-1c0c-484c-8b41-020971d3a61f

📥 Commits

Reviewing files that changed from the base of the PR and between 4760db8 and a59bc1a.

📒 Files selected for processing (1)
  • config/boards/rockpi-e.conf
🚧 Files skipped from review as they are similar to previous changes (1)
  • config/boards/rockpi-e.conf

📝 Walkthrough

Walkthrough

The Rock Pi E board configuration switches its boot scenario from binman to spl-blobs. Five new variables define the RKBin repository URL, branch, and specific DDR/BL31/miniloader blob paths. A new post_family_config__rockpi_e_spl_blobs hook calls prepare_boot_configuration and sets UBOOT_TARGET_MAP to source BL31 and ROCKCHIP_TPL from those blobs alongside u-boot.itb.

Changes

Rock Pi E spl-blobs boot scenario

Layer / File(s) Summary
Boot scenario, blob variables, and UBOOT_TARGET_MAP hook
config/boards/rockpi-e.conf
BOOT_SCENARIO changes from binman to spl-blobs; RKBIN_GIT_URL, RKBIN_GIT_BRANCH, DDR_BLOB, BL31_BLOB, and MINILOADER_BLOB are added; new post_family_config__rockpi_e_spl_blobs function emits an alert, calls prepare_boot_configuration, and declares a global UBOOT_TARGET_MAP mapping BL31 and ROCKCHIP_TPL to the configured blobs with u-boot.itb as the idbloader component.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~5 minutes

Possibly related PRs

  • armbian/build#10017: Extends Rockchip SoC blob handling (DDR_BLOB/ROCKUSB_BLOB) and updates UBOOT_TARGET_MAP and SoC dispatch — the same blob-to-UBOOT_TARGET_MAP wiring pattern used here.

Suggested reviewers

  • amazingfate
  • igorpecovnik

Poem

🐇 Hop, hop, the blobs are here,
No more binman, spl is near!
BL31 and DDR align,
Rock Pi E boots, oh so fine.
The little rabbit cheers with glee — 🎉

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the main changes: updating the boot scenario from 'binman' to 'spl-blobs' and configuring RKBin repository variables for the rockpi-e board.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

Hey @chenxmqqqq! 👋

Thanks for submitting your first pull request to the Armbian project — we're excited to have you contributing! 🧡
Your effort doesn’t just improve Armbian — it benefits the entire community of users and developers.

If you'd like to stay informed about project updates or collaborate more closely with the team,
you can optionally share some personal contact preferences at armbian.com/update-data.
This helps us keep in touch without relying solely on GitHub notifications.

Also, don’t forget to ⭐ star the repo if you haven’t already — and welcome aboard! 🚀

@github-actions github-actions Bot added size/small PR with less then 50 lines 08 Milestone: Third quarter release Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... labels Jun 23, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@config/boards/rockpi-e.conf`:
- Around line 25-27: The declare -g UBOOT_TARGET_MAP assignment is fully
overwriting the variable after prepare_boot_configuration is called, which drops
any helper-added entries like BL32 and SPI-related targets. Instead of
reassigning UBOOT_TARGET_MAP completely, append the Rockchip-specific targets
(BL31, ROCKCHIP_TPL, and the image targets) to the existing UBOOT_TARGET_MAP to
preserve entries that were previously configured by the
prepare_boot_configuration function.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: a3e060ed-7519-4b6f-9372-7eb9dfe09c22

📥 Commits

Reviewing files that changed from the base of the PR and between ddd8583 and 4760db8.

📒 Files selected for processing (1)
  • config/boards/rockpi-e.conf

Comment on lines +25 to +27
prepare_boot_configuration

declare -g UBOOT_TARGET_MAP="BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB};;u-boot.itb idbloader.img"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Preserve prepare_boot_configuration extensions instead of overwriting the full map.

At Line 27, UBOOT_TARGET_MAP is fully reassigned after prepare_boot_configuration, which drops any helper-added entries (e.g., BL32 and SPI-related targets) from the family contract.

Suggested fix
 function post_family_config__rockpi_e_spl_blobs() {
         display_alert "$BOARD" "Using RK3328 vendor TPL blob" "info"

         prepare_boot_configuration

-        declare -g UBOOT_TARGET_MAP="BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB};;u-boot.itb idbloader.img"
+        # Keep scenario defaults/augmentations from prepare_boot_configuration
+        # and only inject the external TPL blob.
+        declare -g UBOOT_TARGET_MAP="ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB} ${UBOOT_TARGET_MAP}"
 }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
prepare_boot_configuration
declare -g UBOOT_TARGET_MAP="BL31=${RKBIN_DIR}/${BL31_BLOB} ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB};;u-boot.itb idbloader.img"
function post_family_config__rockpi_e_spl_blobs() {
display_alert "$BOARD" "Using RK3328 vendor TPL blob" "info"
prepare_boot_configuration
# Keep scenario defaults/augmentations from prepare_boot_configuration
# and only inject the external TPL blob.
declare -g UBOOT_TARGET_MAP="ROCKCHIP_TPL=${RKBIN_DIR}/${DDR_BLOB} ${UBOOT_TARGET_MAP}"
}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@config/boards/rockpi-e.conf` around lines 25 - 27, The declare -g
UBOOT_TARGET_MAP assignment is fully overwriting the variable after
prepare_boot_configuration is called, which drops any helper-added entries like
BL32 and SPI-related targets. Instead of reassigning UBOOT_TARGET_MAP
completely, append the Rockchip-specific targets (BL31, ROCKCHIP_TPL, and the
image targets) to the existing UBOOT_TARGET_MAP to preserve entries that were
previously configured by the prepare_boot_configuration function.

To support the DDR4 version of ROCK Pi E (V3.0).
Use Rockchip vendor TPL and BL31 blobs instead of binman for U-Boot.
Add rkbin repository configuration and blob paths.

Signed-off-by: Xinming Chen <chenxinming@radxa.com>
Comment on lines +18 to +19
DDR_BLOB="bin/rk33/rk3328_ddr_333MHz_v1.22.bin"
BL31_BLOB="bin/rk33/rk322xh_bl31_v1.49.elf"

@vidplace7 vidplace7 Jun 23, 2026

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These DDR and BL31 blobs should simply be committed to armbian/rkbin. Open a PR in there 👍

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I have already submitted a new PR. [https://github.com/armbian/rkbin/pull/48].

BOOTBRANCH_BOARD="tag:v2026.04"
BOOTPATCHDIR="v2026.04"
BOOT_SCENARIO="binman"
BOOT_SCENARIO="spl-blobs"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why?! One can still change blobs without leaving binman.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I previously tested my generated firmware using binman and found that DDR4 could not boot. It was identified as DDR3.

rockpi-e.conf:
BOOT_SCENARIO="binman"
RKBIN_GIT_URL="https://github.com/rockchip-linux/rkbin"
RKBIN_GIT_BRANCH="master"
DDR_BLOB="bin/rk33/rk3328_ddr_333MHz_v1.22.bin"
BL31_BLOB="bin/rk33/rk322xh_bl31_v1.49.elf"
MINILOADER_BLOB="bin/rk33/rk322xh_miniloader_v2.50.bin"

rock-pi-e boot log:
U-Boot TPL 2026.04_armbian-2026.04-S88dc-P4d0c-Hd9fb-V7915-Bd0d2-R448a (Jun 24 2026 - 08:58:27)
data training error
col error
data training error
DDR3, 333MHz
BW=16 Col=12 Bk=8 CS0 Row=16 CS=1 Die BW=8 Size=4096MB
Trying to boot from BOOTROM
Returning to boot ROM...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

08 Milestone: Third quarter release Hardware Hardware related like kernel, U-Boot, ... Needs review Seeking for review size/small PR with less then 50 lines

Development

Successfully merging this pull request may close these issues.

3 participants