Skip to content

Comments

Rock-4D: Add Edge + RK3576 Mainline U-Boot (with UFS support)#9421

Merged
HeyMeco merged 6 commits intoarmbian:mainfrom
HeyMeco:rk3576-uboot-mainline
Feb 20, 2026
Merged

Rock-4D: Add Edge + RK3576 Mainline U-Boot (with UFS support)#9421
HeyMeco merged 6 commits intoarmbian:mainfrom
HeyMeco:rk3576-uboot-mainline

Conversation

@HeyMeco
Copy link
Collaborator

@HeyMeco HeyMeco commented Feb 20, 2026

Description

This PR adds the edge branch to Rock-4D and enables mainline u-boot for this board.
Also patches mainline u-boot to support RK3576 UFS based boot from this series: https://patchwork.ozlabs.org/project/uboot/patch/20251210-rk3576-ufs-v1-1-a3f9e76eb66e@gmail.com

How Has This Been Tested?

  • Compile like ./compile.sh uboot BOARD=radxa-rock-4d BRANCH=edge and flash to spi
  • Boot edge image from ./compile.sh BOARD=radxa-rock-4d BRANCH=edge EXT=ufs DOCKER_ARMBIAN_BASE_IMAGE="debian:trixie"
  • Boot vendor image from ./compile.sh BOARD=radxa-rock-4d BRANCH=vendor EXT=ufs DOCKER_ARMBIAN_BASE_IMAGE="debian:trixie"

Checklist:

Please delete options that are not relevant.

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules

Summary by CodeRabbit

  • New Features

    • Mainline U-Boot path added for the Rock 4D board alongside existing vendor path
    • UFS boot support and UFS device reset integration
    • SPI-backed U-Boot environment storage option enabled
  • Improvements

    • Boot target order updated for mainline scenarios (MMC, SCSI/UFS, NVMe, USB, PXE/DHCP)
    • Kernel build targets extended to include edge branch variants

@github-actions github-actions bot added size/large PR with 250 lines or more 02 Milestone: First quarter release labels Feb 20, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 20, 2026

📝 Walkthrough

Walkthrough

Adds a mainline U-Boot path and boot-target reordering for the Radxa Rock 4D, enables UFS boot and SPI/UFS environment storage, introduces SPL UFS loader and Rockchip device-reset support, and updates device tree nodes and build/config wiring to support these features.

Changes

Cohort / File(s) Summary
Board config / U-Boot hooks
config/boards/radxa-rock-4d.conf
Added mainline U‑Boot path: post_family_config__rock4d_use_mainline_uboot() to set DDR/ATF/boot params and UBOOT_TARGET_MAP; post_config_uboot_target__rock4d_enable_ufs_and_spi_env() to enable UFS and SPI env; pre_config_uboot_target__rock4d_boot_order() to reorder boot targets; custom write_uboot_platform implementations and vendor postprocessing disabled for mainline.
Device tree (U-Boot)
patch/u-boot/v2026.01/dt_uboot/rk3576-rock-4d-u-boot.dtsi
Added &sfc0 flash node with boot phase properties and &ufshc node with power-supply phandles for UFS rails.
SPL UFS loader & build integration
patch/u-boot/v2026.04/v5-1-4-spl-Make-UFS-available-for-SPL-builds.patch
New SPL UFS loader common/spl/spl_ufs.c, added BOOT_DEVICE_UFS enum, Kconfig symbols (SPL_UFS_SUPPORT, raw dev/sector options), and Makefile wiring to include UFS sources in SPL builds.
Reset config & Makefile phase-awareness
patch/u-boot/v2026.04/v5-2-4-reset-rockchip-make-device-resets-available-in-SPL.patch
Added SPL_RESET_ROCKCHIP and RESET_HSDK Kconfig entries. Adjusted drivers/reset/Makefile to use CONFIG_$(PHASE_)RESET_ROCKCHIP for phase-aware object inclusion.
Rockchip UFS device-reset support
patch/u-boot/v2026.04/v5-3-4-ufs-rockchip-Add-device-reset-support.patch
Introduced GPIO-based device reset for Rockchip UFS: new ufs_rockchip_device_reset() callback, added device_reset GPIO descriptor to host struct, and registered callback in HBA ops; updated Kconfig dependencies.
RK3576 UFS boot path & SPL boot-order
patch/u-boot/v2026.04/v5-4-4-rockchip-spl-Add-support-for-booting-from-UFS.patch
Added BROM_BOOTSOURCE_UFS, mapping for UFS controller in RK3576 boot-device table, extended SPL boot-order resolution to detect and return BOOT_DEVICE_UFS, and updated device-tree boot-order handling for UFS.

Sequence Diagram

sequenceDiagram
    participant ROM as Boot ROM
    participant SPL as SPL Loader
    participant DevTree as Device Tree
    participant Reset as Rockchip Reset
    participant UFS as UFS Controller
    participant Storage as UFS Storage

    ROM->>SPL: Start, provide bootsource hint
    SPL->>DevTree: Query boot-order (mmc0, mmc1, scsi, nvme, ufs, ...)
    alt UFS present in boot-order
        SPL->>Reset: Initialize/reset controller
        Reset->>UFS: Provide device_reset GPIO
        SPL->>UFS: Initialize controller (SPL UFS loader)
        UFS->>Storage: Read raw U-Boot image
        Storage-->>UFS: U-Boot bytes
        UFS-->>SPL: Deliver image
        SPL->>SPL: Jump to U-Boot
    else fallback to other devices
        SPL->>...: Try next boot source
    end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~50 minutes

Poem

🐰 I nibble code where UFS roots run,
GPIOs blink and resets are done,
Device trees hum with rails aligned,
Mainline U‑Boot hops into mind —
Rock 4D wakes, the boot is fun! 🚀

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: adding Edge branch support and mainline U-Boot with UFS support for the Radxa Rock-4D board, which is directly supported by the changeset's primary objectives.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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 and usage tips.

@github-actions github-actions bot added Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... Patches Patches related to kernel, U-Boot, ... labels Feb 20, 2026
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (3)
config/boards/radxa-rock-4d.conf (1)

70-73: Use --enable/--disable for boolean Kconfig options instead of --set-val with "y"/"n".

Lines 70–73 use --set-val CONFIG_ENV_IS_NOWHERE "n" and similar, but the same file already uses --enable for boolean options on lines 64–67. The codebase conventions consistently use --enable and --disable for boolean configuration options, not --set-val with string values. Apply this pattern for consistency.

Proposed fix
-	run_host_command_logged scripts/config --set-val CONFIG_ENV_IS_NOWHERE "n"
-	run_host_command_logged scripts/config --set-val CONFIG_ENV_IS_IN_SPI_FLASH "y"
-	run_host_command_logged scripts/config --set-val CONFIG_ENV_SECT_SIZE_AUTO "y"
-	run_host_command_logged scripts/config --set-val CONFIG_ENV_OVERWRITE "y"
+	run_host_command_logged scripts/config --disable CONFIG_ENV_IS_NOWHERE
+	run_host_command_logged scripts/config --enable CONFIG_ENV_IS_IN_SPI_FLASH
+	run_host_command_logged scripts/config --enable CONFIG_ENV_SECT_SIZE_AUTO
+	run_host_command_logged scripts/config --enable CONFIG_ENV_OVERWRITE

Note: This same pattern appears in 6 board configs (nanopct6.conf, odroidm1.conf, rock-5b.conf, rock-5b-plus.conf, rock-5t.conf); consider applying the fix consistently across all of them.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/boards/radxa-rock-4d.conf` around lines 70 - 73, Replace the use of
scripts/config --set-val with the boolean flag form (--enable/--disable) for the
four Kconfig symbols to match project conventions: change CONFIG_ENV_IS_NOWHERE,
CONFIG_ENV_IS_IN_SPI_FLASH, CONFIG_ENV_SECT_SIZE_AUTO and CONFIG_ENV_OVERWRITE
to use --disable/--enable respectively (i.e., --disable CONFIG_ENV_IS_NOWHERE,
--enable CONFIG_ENV_IS_IN_SPI_FLASH, --enable CONFIG_ENV_SECT_SIZE_AUTO,
--enable CONFIG_ENV_OVERWRITE) and apply the same pattern to the other affected
board config files (nanopct6.conf, odroidm1.conf, rock-5b.conf,
rock-5b-plus.conf, rock-5t.conf).
patch/u-boot/v2026.01/4-4-rockchip-spl-Add-support-for-booting-from-UFS.patch (1)

117-125: Missing trailing period and Kconfig help indentation convention.

Line 124: The help text ends with "such as when using UFS storage" without a trailing period. This is a very minor cosmetic inconsistency with typical Kconfig help text conventions.

Proposed fix
-	  such as when using UFS storage
+	  such as when using UFS storage.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@patch/u-boot/v2026.01/4-4-rockchip-spl-Add-support-for-booting-from-UFS.patch`
around lines 117 - 125, The Kconfig entry for config SPL_RESET_ROCKCHIP has a
help paragraph missing a trailing period and its lines are not using the Kconfig
help indentation convention; update the help block for SPL_RESET_ROCKCHIP (the
"help" under config SPL_RESET_ROCKCHIP) so each help line is indented with a
single tab and append a period to the final sentence ("such as when using UFS
storage.").
patch/u-boot/v2026.01/2-4-spl-Make-UFS-available-for-SPL-builds.patch (1)

131-141: Duplicate object compilation is theoretical; no configurations enable both SPL_SATA and SPL_UFS_SUPPORT simultaneously.

The code duplication does exist: both ifdef CONFIG_SPL_SATA and ifdef CONFIG_SPL_UFS_SUPPORT blocks add identical scsi.o and scsi-uclass.o objects. However, no current defconfigs enable both options together. The patch itself introduces CONFIG_SPL_UFS_SUPPORT and it appears independently in four defconfigs (all RK3576 variants), while CONFIG_SPL_SATA is not enabled in any of the reviewed configurations. Make's standard behavior deduplicates identical objects during linking, so this is a minor code hygiene concern rather than a functional issue.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@patch/u-boot/v2026.01/2-4-spl-Make-UFS-available-for-SPL-builds.patch` around
lines 131 - 141, Duplicate obj lines for scsi (obj-$(CONFIG_SCSI) += scsi.o
scsi-uclass.o) appear in two separate conditionals (ifdef CONFIG_SPL_SATA and
ifdef CONFIG_SPL_UFS_SUPPORT) in drivers/scsi/Makefile; consolidate them to
avoid duplicated entries by moving the common obj line into a single conditional
that covers either SPL_SATA or SPL_UFS_SUPPORT (e.g., replace the two blocks
with one conditional that checks for SPL_SATA or SPL_UFS_SUPPORT via a
Make-compatible OR pattern such as ifneq/$(filter ...) or by nesting ifdefs to
ensure the single obj-$(CONFIG_SCSI) += scsi.o scsi-uclass.o is emitted only
once).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@patch/u-boot/v2026.01/2-4-spl-Make-UFS-available-for-SPL-builds.patch`:
- Around line 46-47: The Kconfig help text contains a full-width comma (U+FF0C)
in the string "Address on the block device to load U-Boot from," — replace that
character with a standard ASCII comma so the line reads "Address on the block
device to load U-Boot from,"; update the same help block that also mentions
"Units: UFS sectors (1 sector = 4096 bytes)." to ensure consistency and run a
quick grep for any other occurrences of U+FF0C in this Kconfig/help block to fix
them as well.

---

Nitpick comments:
In `@config/boards/radxa-rock-4d.conf`:
- Around line 70-73: Replace the use of scripts/config --set-val with the
boolean flag form (--enable/--disable) for the four Kconfig symbols to match
project conventions: change CONFIG_ENV_IS_NOWHERE, CONFIG_ENV_IS_IN_SPI_FLASH,
CONFIG_ENV_SECT_SIZE_AUTO and CONFIG_ENV_OVERWRITE to use --disable/--enable
respectively (i.e., --disable CONFIG_ENV_IS_NOWHERE, --enable
CONFIG_ENV_IS_IN_SPI_FLASH, --enable CONFIG_ENV_SECT_SIZE_AUTO, --enable
CONFIG_ENV_OVERWRITE) and apply the same pattern to the other affected board
config files (nanopct6.conf, odroidm1.conf, rock-5b.conf, rock-5b-plus.conf,
rock-5t.conf).

In `@patch/u-boot/v2026.01/2-4-spl-Make-UFS-available-for-SPL-builds.patch`:
- Around line 131-141: Duplicate obj lines for scsi (obj-$(CONFIG_SCSI) +=
scsi.o scsi-uclass.o) appear in two separate conditionals (ifdef CONFIG_SPL_SATA
and ifdef CONFIG_SPL_UFS_SUPPORT) in drivers/scsi/Makefile; consolidate them to
avoid duplicated entries by moving the common obj line into a single conditional
that covers either SPL_SATA or SPL_UFS_SUPPORT (e.g., replace the two blocks
with one conditional that checks for SPL_SATA or SPL_UFS_SUPPORT via a
Make-compatible OR pattern such as ifneq/$(filter ...) or by nesting ifdefs to
ensure the single obj-$(CONFIG_SCSI) += scsi.o scsi-uclass.o is emitted only
once).

In
`@patch/u-boot/v2026.01/4-4-rockchip-spl-Add-support-for-booting-from-UFS.patch`:
- Around line 117-125: The Kconfig entry for config SPL_RESET_ROCKCHIP has a
help paragraph missing a trailing period and its lines are not using the Kconfig
help indentation convention; update the help block for SPL_RESET_ROCKCHIP (the
"help" under config SPL_RESET_ROCKCHIP) so each help line is indented with a
single tab and append a period to the final sentence ("such as when using UFS
storage.").

@HeyMeco
Copy link
Collaborator Author

HeyMeco commented Feb 20, 2026

While it works I just realised I used an older series. This one should be the latest:
https://patchwork.ozlabs.org/project/uboot/patch/20260120-rk3576-ufs-v5-1-0edb61b301b7@gmail.com/

@HeyMeco HeyMeco force-pushed the rk3576-uboot-mainline branch from a001abf to 28d7195 Compare February 20, 2026 18:04
@HeyMeco
Copy link
Collaborator Author

HeyMeco commented Feb 20, 2026

Now ready to merge @SuperKali @igorpecovnik

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (2)
config/boards/radxa-rock-4d.conf (1)

74-80: Consider --enable/--disable for boolean Kconfig options.

Lines 75–78 use --set-val ... "y" / "n" for boolean configs (ENV_IS_NOWHERE, ENV_IS_IN_SPI_FLASH, ENV_SECT_SIZE_AUTO, ENV_OVERWRITE), while Lines 62–72 correctly use --enable for the same type. For consistency and clarity:

Suggested diff
-	run_host_command_logged scripts/config --set-val CONFIG_ENV_IS_NOWHERE "n"
-	run_host_command_logged scripts/config --set-val CONFIG_ENV_IS_IN_SPI_FLASH "y"
-	run_host_command_logged scripts/config --set-val CONFIG_ENV_SECT_SIZE_AUTO "y"
-	run_host_command_logged scripts/config --set-val CONFIG_ENV_OVERWRITE "y"
+	run_host_command_logged scripts/config --disable CONFIG_ENV_IS_NOWHERE
+	run_host_command_logged scripts/config --enable CONFIG_ENV_IS_IN_SPI_FLASH
+	run_host_command_logged scripts/config --enable CONFIG_ENV_SECT_SIZE_AUTO
+	run_host_command_logged scripts/config --enable CONFIG_ENV_OVERWRITE
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/boards/radxa-rock-4d.conf` around lines 74 - 80, The boolean Kconfig
flags set using run_host_command_logged scripts/config --set-val
(CONFIG_ENV_IS_NOWHERE, CONFIG_ENV_IS_IN_SPI_FLASH, CONFIG_ENV_SECT_SIZE_AUTO,
CONFIG_ENV_OVERWRITE) should use the boolean switches --enable / --disable
instead of --set-val "y"/"n" for consistency with other entries; update the
calls that reference these symbols to use scripts/config --enable
CONFIG_ENV_IN_SPI_FLASH (and --disable CONFIG_ENV_IS_NOWHERE) and likewise
convert CONFIG_ENV_SECT_SIZE_AUTO and CONFIG_ENV_OVERWRITE to --enable/--disable
so all boolean options follow the same pattern.
patch/u-boot/v2026.04/v5-1-4-spl-Make-UFS-available-for-SPL-builds.patch (1)

145-156: Duplicate scsi.o scsi-uclass.o entries when both SATA and UFS are enabled.

If both CONFIG_SPL_SATA and CONFIG_SPL_UFS_SUPPORT are set, scsi.o and scsi-uclass.o appear in obj-y twice. Kbuild deduplicates these, so it won't cause a build error, but a unified guard (e.g., ifdef CONFIG_SCSI with appropriate SPL gating) would be cleaner. Given this is upstream-aligned code, no action needed now.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@patch/u-boot/v2026.04/v5-1-4-spl-Make-UFS-available-for-SPL-builds.patch`
around lines 145 - 156, The Makefile adds scsi.o and scsi-uclass.o twice via
separate blocks for CONFIG_SPL_SATA and CONFIG_SPL_UFS_SUPPORT; consolidate to a
single guarded block to avoid duplicate entries by checking CONFIG_SCSI once and
then gating SPL support—e.g., under the existing CONFIG_XPL_BUILD/CONFIG_SCSI
guard, add a nested check that enables scsi.o scsi-uclass.o when either
CONFIG_SPL_SATA or CONFIG_SPL_UFS_SUPPORT is set (use nested ifdef/elif/endif
with CONFIG_SPL_SATA and CONFIG_SPL_UFS_SUPPORT around the obj-$(CONFIG_SCSI) +=
scsi.o scsi-uclass.o line so the objects are added only once).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@config/boards/radxa-rock-4d.conf`:
- Around line 19-53: post_family_config__rock4d_use_mainline_uboot()
unconditionally switches to mainline U-Boot which breaks vendor-branch builds;
add the same branch guard used in the companion functions so vendor builds keep
vendor U-Boot: at the start of post_family_config__rock4d_use_mainline_uboot()
check [[ "${BRANCH}" == "vendor" ]] && return 0 (or equivalent early return)
before any BOOT*/UBOOT_* assignments so BOOTSOURCE, BOOTBRANCH, BOOTCONFIG,
UBOOT_TARGET_MAP, and the write_uboot_platform* functions are only changed for
non-vendor branches.

---

Nitpick comments:
In `@config/boards/radxa-rock-4d.conf`:
- Around line 74-80: The boolean Kconfig flags set using run_host_command_logged
scripts/config --set-val (CONFIG_ENV_IS_NOWHERE, CONFIG_ENV_IS_IN_SPI_FLASH,
CONFIG_ENV_SECT_SIZE_AUTO, CONFIG_ENV_OVERWRITE) should use the boolean switches
--enable / --disable instead of --set-val "y"/"n" for consistency with other
entries; update the calls that reference these symbols to use scripts/config
--enable CONFIG_ENV_IN_SPI_FLASH (and --disable CONFIG_ENV_IS_NOWHERE) and
likewise convert CONFIG_ENV_SECT_SIZE_AUTO and CONFIG_ENV_OVERWRITE to
--enable/--disable so all boolean options follow the same pattern.

In `@patch/u-boot/v2026.04/v5-1-4-spl-Make-UFS-available-for-SPL-builds.patch`:
- Around line 145-156: The Makefile adds scsi.o and scsi-uclass.o twice via
separate blocks for CONFIG_SPL_SATA and CONFIG_SPL_UFS_SUPPORT; consolidate to a
single guarded block to avoid duplicate entries by checking CONFIG_SCSI once and
then gating SPL support—e.g., under the existing CONFIG_XPL_BUILD/CONFIG_SCSI
guard, add a nested check that enables scsi.o scsi-uclass.o when either
CONFIG_SPL_SATA or CONFIG_SPL_UFS_SUPPORT is set (use nested ifdef/elif/endif
with CONFIG_SPL_SATA and CONFIG_SPL_UFS_SUPPORT around the obj-$(CONFIG_SCSI) +=
scsi.o scsi-uclass.o line so the objects are added only once).

@SuperKali
Copy link
Member

@HeyMeco i will test if this similar configuration work on my side, i need some times, tomorrow afternoon surely

@github-actions github-actions bot added the Ready to merge Reviewed, tested and ready for merge label Feb 20, 2026
@github-actions
Copy link
Contributor

✅ This PR has been reviewed and approved — all set for merge!

@github-actions github-actions bot removed the Needs review Seeking for review label Feb 20, 2026
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (2)
config/boards/radxa-rock-4d.conf (2)

74-79: Mix of --set-val and --enable/--disable for boolean Kconfig options.

Lines 74–77 use --set-val ... "n" / --set-val ... "y" for boolean options where --disable / --enable would be the idiomatic form. Lines 78–79 correctly use --set-val for numeric values.

♻️ Suggested cleanup for boolean options
-	run_host_command_logged scripts/config --set-val CONFIG_ENV_IS_NOWHERE "n"
-	run_host_command_logged scripts/config --set-val CONFIG_ENV_IS_IN_SPI_FLASH "y"
-	run_host_command_logged scripts/config --set-val CONFIG_ENV_SECT_SIZE_AUTO "y"
-	run_host_command_logged scripts/config --set-val CONFIG_ENV_OVERWRITE "y"
+	run_host_command_logged scripts/config --disable CONFIG_ENV_IS_NOWHERE
+	run_host_command_logged scripts/config --enable CONFIG_ENV_IS_IN_SPI_FLASH
+	run_host_command_logged scripts/config --enable CONFIG_ENV_SECT_SIZE_AUTO
+	run_host_command_logged scripts/config --enable CONFIG_ENV_OVERWRITE
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/boards/radxa-rock-4d.conf` around lines 74 - 79, Replace the
non-idiomatic uses of scripts/config --set-val for boolean Kconfig keys with the
proper --enable/--disable flags: for CONFIG_ENV_IS_NOWHERE,
CONFIG_ENV_IS_IN_SPI_FLASH, CONFIG_ENV_SECT_SIZE_AUTO and CONFIG_ENV_OVERWRITE
use --disable or --enable as appropriate instead of --set-val "n"/"y"; keep
CONFIG_ENV_SIZE and CONFIG_ENV_OFFSET as --set-val since they are numeric.
Locate the lines calling run_host_command_logged scripts/config for those
CONFIG_ENV_* symbols and switch them to the corresponding --enable/--disable
invocation to follow the Kconfig boolean convention.

35-36: BOOTBRANCH pins to RC tag — plan to promote to final release once available.

tag:v2026.04-rc2 exists in u-boot upstream and is appropriate for edge now. The BOOTPATCHDIR="v2026.04" already anticipates the stable release name. Once the final v2026.04 tag is released, update BOOTBRANCH to tag:v2026.04 to track the stable release.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/boards/radxa-rock-4d.conf` around lines 35 - 36, BOOTBRANCH is
currently pinned to the release-candidate tag while BOOTPATCHDIR targets the
stable name; update BOOTBRANCH from "tag:v2026.04-rc2" to "tag:v2026.04" once
the final v2026.04 u-boot tag is published so both BOOTBRANCH and BOOTPATCHDIR
consistently reference the stable release. Locate the declarations for
BOOTBRANCH and BOOTPATCHDIR and change only the BOOTBRANCH value to
"tag:v2026.04" when the official tag exists, leaving BOOTPATCHDIR="v2026.04"
as-is. Ensure no other references still point to the -rc2 tag.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@config/boards/radxa-rock-4d.conf`:
- Around line 26-30: The comment next to BOOT_SCENARIO incorrectly states RK3576
was added in TF‑A v2.14; update that comment to reference TF‑A v2.13 while
leaving BOOT_SCENARIO, ATFBRANCH="tag:v2.14.0", and ATFPATCHDIR unchanged (i.e.,
only edit the comment text above BOOT_SCENARIO to say RK3576 support was added
in v2.13).

---

Nitpick comments:
In `@config/boards/radxa-rock-4d.conf`:
- Around line 74-79: Replace the non-idiomatic uses of scripts/config --set-val
for boolean Kconfig keys with the proper --enable/--disable flags: for
CONFIG_ENV_IS_NOWHERE, CONFIG_ENV_IS_IN_SPI_FLASH, CONFIG_ENV_SECT_SIZE_AUTO and
CONFIG_ENV_OVERWRITE use --disable or --enable as appropriate instead of
--set-val "n"/"y"; keep CONFIG_ENV_SIZE and CONFIG_ENV_OFFSET as --set-val since
they are numeric. Locate the lines calling run_host_command_logged
scripts/config for those CONFIG_ENV_* symbols and switch them to the
corresponding --enable/--disable invocation to follow the Kconfig boolean
convention.
- Around line 35-36: BOOTBRANCH is currently pinned to the release-candidate tag
while BOOTPATCHDIR targets the stable name; update BOOTBRANCH from
"tag:v2026.04-rc2" to "tag:v2026.04" once the final v2026.04 u-boot tag is
published so both BOOTBRANCH and BOOTPATCHDIR consistently reference the stable
release. Locate the declarations for BOOTBRANCH and BOOTPATCHDIR and change only
the BOOTBRANCH value to "tag:v2026.04" when the official tag exists, leaving
BOOTPATCHDIR="v2026.04" as-is. Ensure no other references still point to the
-rc2 tag.

@HeyMeco HeyMeco merged commit 77f919f into armbian:main Feb 20, 2026
13 checks passed
@SuperKali
Copy link
Member

I only just realized that there’s an error — everything was merged in a bit of a rush.

@HeyMeco, unfortunately I’m still having issues with U-Boot mainline, and I believe there’s still quite a bit of work to be done on the NanoPi M5. If you could please send a PR to move the DTSI file to the correct folder and verify that everything works as expected, that would be great.

In the meantime, I’ll continue running my tests on the NanoPi M5.

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

Labels

02 Milestone: First quarter release Hardware Hardware related like kernel, U-Boot, ... Patches Patches related to kernel, U-Boot, ... Ready to merge Reviewed, tested and ready for merge size/large PR with 250 lines or more

Development

Successfully merging this pull request may close these issues.

2 participants