Skip to content

rockchip64: bump some boards u-boot to v2026.04#9662

Merged
igorpecovnik merged 4 commits intoarmbian:mainfrom
paolosabatino:rockchip64-uboot-v2026.04
Apr 14, 2026
Merged

rockchip64: bump some boards u-boot to v2026.04#9662
igorpecovnik merged 4 commits intoarmbian:mainfrom
paolosabatino:rockchip64-uboot-v2026.04

Conversation

@paolosabatino
Copy link
Copy Markdown
Contributor

@paolosabatino paolosabatino commented Apr 13, 2026

Description

Bump these rockchip64 boards to u-boot v2026.04:

  • OrangePi4 LTS
  • Radxa Rockpi-E
  • Dusun DSOM 010R
  • rk3318-box tv box series

Patches have been migrated/adapted from the previous version (v2025.10-rc5), in particular defconfigs and dts patches now leverage the defconfig, dt_uboot and dt_upstream_rockchip directories to simplify handling using simple plain text files instead of regular patches.

GitHub issue reference:
Jira reference number AR-2851
Jira reference number AR-2852

How Has This Been Tested?

  • Built a Debian Trixie image for OrangePi4 LTS, tested boot from sdcard, eMMC boot
  • Built a Debian Trixie image for Radxa Rockpi-E, tested boot from sdcard, eMMC boot
  • Compiled successfully u-boot and tested boot from sdcard on a live rk3318-box device
  • Complied successfully u-boot for dusun-dsom-010r

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
  • My changes generate no new warnings

Summary by CodeRabbit

Release Notes

  • New Features

    • Added support for RK3318 BOX and Dusun DSOM 010R boards with full hardware enablement
    • Enhanced Ethernet PHY support including integrated PHY power management and RMII/RGMII configuration
    • Improved USB controller reset handling on device removal
    • HDMI display controller disable capability
    • System firmware information support via SMBIOS
  • Chores

    • Updated boot firmware from v2025.10-rc5 to v2026.04 across supported boards

 * OrangePi4 LTS
 * Radxa Rockpi-E
 * Dusun DSOM 010R
 * rk3318-box tv box series
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 13, 2026

📝 Walkthrough

Walkthrough

This PR updates boot firmware references from v2025.10-rc5 to v2026.04 across four board configurations and introduces comprehensive U-Boot support for two new Rockchip boards: the RK3318 Box and Dusun DSOM 010R (RK3328). Changes include new board definitions, defconfigs, device tree files, and U-Boot driver patches for Ethernet, USB, HDMI, and display subsystems.

Changes

Cohort / File(s) Summary
Boot Configuration Version Updates
config/boards/dusun-dsom-010r.csc, config/boards/orangepi4-lts.conf, config/boards/rk3318-box.tvb, config/boards/rockpi-e.conf
Updated BOOTBRANCH_BOARD from tag:v2025.10-rc5 to tag:v2026.04 and aligned BOOTPATCHDIR from v2025.10 to v2026.04 across four board configurations.
U-Boot Defconfig Files
patch/u-boot/v2026.04/defconfig/dusun-dsom-010r-rk3328_defconfig, patch/u-boot/v2026.04/defconfig/rk3318-box_defconfig
Added new U-Boot defconfig files for RK3328 Dusun DSOM 010R and RK3318 Box with comprehensive peripheral and subsystem support (GPIO, MMC, USB, Ethernet, HDMI, power management, clocking, reset subsystems).
RK3318 Box Board Support
patch/u-boot/v2026.04/board_rk3318-box/rk3318-box-add-makefile.patch, board/rockchip/rk3318_box/..., include/configs/rk3318-box.h
Introduced new board target TARGET_BOX_RK3318 with Kconfig support files, board infrastructure (Makefile, MAINTAINERS, README), and public configuration header defining boot parameters and environment settings.
Ethernet/GMAC Support
patch/u-boot/v2026.04/board_rk3318-box/general-support-rmii-integrated-phy.patch
Extended Rockchip GMAC driver and device tree for RMII/RGMII PHY handling, integrated PHY power-up sequences, clock/reset wiring, and RK3229/RK3328 GMAC clock management with PHY reset control.
USB and Display Reset Handling
patch/u-boot/v2026.04/board_rk3318-box/rk3328-add-usb-reset-props.patch, patch/u-boot/v2026.04/board_rk3318-box/rk3328-fix-missing-hdmi-os.patch
Modified USB controller (DWC2/EHCI) removal sequences to assert/deassert resets; added RK3328 device tree USB reset properties; enhanced VOP video driver with reset control and timing sequences.
HDMI Display Control
patch/u-boot/v2026.04/general-dw-hdmi-disable.patch
Added new public API function dw_hdmi_disable() to disable HDMI pixel clock, TMDS, and PHY power in the DW-HDMI driver with declaration in header.
U-Boot Device Tree Configurations
patch/u-boot/v2026.04/dt_uboot/rk3318-box-u-boot.dtsi, patch/u-boot/v2026.04/dt_uboot/rk3328-dusun-dsom-010r-u-boot.dtsi, patch/u-boot/v2026.04/dt_upstream_rockchip/rk3318-box.dts, patch/u-boot/v2026.04/dt_upstream_rockchip/rk3328-dusun-dsom-010r.dts
Added four new device tree files defining board-level hardware configurations including fixed regulators, clocks, audio/video subsystems, pinctrl mappings, peripheral enablement, and SMBIOS system information for both boards.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~90 minutes

Possibly related PRs

Suggested labels

11

Suggested reviewers

  • igorpecovnik
  • rpardini
  • amazingfate

Poem

🐰 Two boards now bloom in firmware's spring,
With clocks and resets dancing on their wings,
From RMII to reset, the drivers sing,
New device trees sprout—oh, what joy they bring! 🌱

🚥 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 'rockchip64: bump some boards u-boot to v2026.04' directly and clearly describes the main change: updating U-Boot to version v2026.04 for rockchip64 boards, which matches the primary objective of the changeset.
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

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 05 Milestone: Second quarter release size/large PR with 250 lines or more Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... Patches Patches related to kernel, U-Boot, ... labels Apr 13, 2026
@github-actions github-actions bot added the Ready to merge Reviewed, tested and ready for merge label Apr 13, 2026
@github-actions
Copy link
Copy Markdown
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 Apr 13, 2026
Copy link
Copy Markdown
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: 7

🧹 Nitpick comments (1)
patch/u-boot/v2026.04/dt_upstream_rockchip/rk3328-dusun-dsom-010r.dts (1)

34-53: Keep the SMBIOS subtree in the U-Boot overlay only.

patch/u-boot/v2026.04/dt_uboot/rk3328-dusun-dsom-010r-u-boot.dtsi already carries the same u-boot,sysinfo-smbios data. Keeping another copy in dt_upstream_rockchip defeats the new split between upstream-style DTS content and U-Boot-only overrides, and leaves two places to maintain the same board strings.

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

In `@patch/u-boot/v2026.04/dt_upstream_rockchip/rk3328-dusun-dsom-010r.dts` around
lines 34 - 53, Remove the duplicated U-Boot-only SMBIOS subtree from the
upstream DTS: delete the "smbios" node that contains compatible =
"u-boot,sysinfo-smbios" and the nested system/baseboard/chassis properties from
this upstream-style file so SMBIOS strings are only provided in the U-Boot
overlay; ensure the board strings remain present in the existing U-Boot overlay
node (the u-boot dtsi that defines the same u-boot,sysinfo-smbios data) and do
not leave any other duplicate "smbios" nodes elsewhere.
🤖 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.04/board_rk3318-box/general-support-rmii-integrated-phy.patch`:
- Around line 802-815: The code calls ops->fix_rgmii_speed and
ops->fix_rmii_speed unguarded, which can dereference NULL when the ops struct
doesn't implement that callback; before calling either function in the switch on
eth_pdata->phy_interface, check that ops is non-NULL and that the specific
function pointer (ops->fix_rgmii_speed for PHY_INTERFACE_MODE_RGMII and
ops->fix_rmii_speed for PHY_INTERFACE_MODE_RMII) is set, return an appropriate
error (e.g. -ENOSYS or -ENXIO) if missing, and otherwise invoke the callback
with pdata and priv and propagate its return value; apply the same guarding
pattern to the other similar blocks (lines 830-877) that call these callbacks.
- Around line 174-180: The mask passed to rk_clrsetreg when updating
cru->cru_mode_con omits CPLL_MODE_MASK so CPLL_MODE_SLOW bits are never applied;
update the call(s) to rk_clrsetreg (the ones setting GPLL/APLL/CPLL modes) to
include CPLL_MODE_MASK in the first argument alongside GPLL_MODE_MASK and
APLL_MODE_MASK, and ensure the second argument still contains the CPLL_MODE_SLOW
<< CPLL_MODE_SHIFT value so the CPLL mode bits are actually written.

In `@patch/u-boot/v2026.04/board_rk3318-box/rk3328-add-usb-reset-props.patch`:
- Around line 35-38: The change replaced reset_release_bulk(&priv->resets) with
reset_assert_bulk/deassert calls but dropped the free and error handling; revert
to calling reset_release_bulk(&priv->resets) as the cleanup to free reset
handles (or call reset_assert_bulk/reset_deassert_bulk followed by
reset_release_bulk if you need to pulse) and restore error checks so any
non-zero return from reset_assert_bulk/reset_deassert_bulk is propagated (e.g.,
reintroduce the if (ret) return ret; pattern used in ehci-generic.c) to ensure
pulse failures are surfaced and the bulk is released.
- Around line 77-87: The DWC3 device node was given reset bindings but the
xhci_dwc3 driver in v2026.04 still calls reset_release_bulk() (via
xhci_dwc3_remove()), which will re-assert those resets on teardown; remove the
two added lines (the resets = <&cru SRST_USB2HOST_EHCIPHY>; and reset-names =
"ehci";) from the DWC3 node in the patch so the DWC3 node does not attach the
CRU reset, or alternatively implement the same assert-then-deassert bookkeeping
in xhci_dwc3_remove() (avoid calling reset_release_bulk() unguarded) to match
the EHCI/DWC2 remove behavior.

In `@patch/u-boot/v2026.04/board_rk3318-box/rk3328-fix-missing-hdmi-os.patch`:
- Around line 49-59: The code currently calls reset_get_bulk(&resets),
reset_assert_bulk(&resets), and reset_deassert_bulk(&resets) but ignores errors
from assert/deassert and never frees the acquired handles; update the flow so
that after reset_get_bulk succeeds you check the return of
reset_assert_bulk(&resets) and if it fails call reset_release_bulk(&resets) and
return the error, then proceed to deassert and check the return of
reset_deassert_bulk(&resets) and if that fails call reset_release_bulk(&resets)
and return the error, and on success call reset_release_bulk(&resets) before
returning success (use the existing ret variable and the resets bulk handle
names to implement this).

In `@patch/u-boot/v2026.04/defconfig/dusun-dsom-010r-rk3328_defconfig`:
- Around line 9-22: CONFIG_DEFAULT_FDT_FILE is still set to the Rock Pi E DTB
while CONFIG_DEFAULT_DEVICE_TREE is changed to rockchip/rk3328-dusun-dsom-010r;
update the CONFIG_DEFAULT_FDT_FILE value to match the device tree in
CONFIG_DEFAULT_DEVICE_TREE (replace "rockchip/rk3328-rock-pi-e.dtb" with the
corresponding "rockchip/rk3328-dusun-dsom-010r" DTB name) so any boot path using
fdtfile receives the correct board DTB; ensure the string exactly matches the
device tree basename used elsewhere in the defconfig.

In `@patch/u-boot/v2026.04/dt_upstream_rockchip/rk3318-box.dts`:
- Around line 519-525: In the bluetooth child node, correct the misspelled
property name "compatbile" to "compatible" so the driver can bind, and replace
the single-cell GPIO-style interrupt entry with proper interrupt parent and
type: add interrupt-parent = <&gpio1>; and set interrupts to reference the GPIO
line number cell (<RK_PD2 IRQ_TYPE_LEVEL_HIGH>) using the IRQ_TYPE_LEVEL_HIGH
flag instead of GPIO_ACTIVE_HIGH; keep other properties (e.g., shutdown-gpios,
brcm,bt-pcm-int-params) unchanged.

---

Nitpick comments:
In `@patch/u-boot/v2026.04/dt_upstream_rockchip/rk3328-dusun-dsom-010r.dts`:
- Around line 34-53: Remove the duplicated U-Boot-only SMBIOS subtree from the
upstream DTS: delete the "smbios" node that contains compatible =
"u-boot,sysinfo-smbios" and the nested system/baseboard/chassis properties from
this upstream-style file so SMBIOS strings are only provided in the U-Boot
overlay; ensure the board strings remain present in the existing U-Boot overlay
node (the u-boot dtsi that defines the same u-boot,sysinfo-smbios data) and do
not leave any other duplicate "smbios" nodes elsewhere.
🪄 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: f39ab436-6177-408f-9f5a-b3be15ae4d5d

📥 Commits

Reviewing files that changed from the base of the PR and between 43751f1 and 94bd038.

📒 Files selected for processing (17)
  • config/boards/dusun-dsom-010r.csc
  • config/boards/orangepi4-lts.conf
  • config/boards/rk3318-box.tvb
  • config/boards/rockpi-e.conf
  • patch/u-boot/v2026.04/board_orangepi4-lts/board-orangepi4-rockchip-tpl.patch
  • patch/u-boot/v2026.04/board_rk3318-box/general-support-rmii-integrated-phy.patch
  • patch/u-boot/v2026.04/board_rk3318-box/rk3318-box-add-dts.patch.disabled
  • patch/u-boot/v2026.04/board_rk3318-box/rk3318-box-add-makefile.patch
  • patch/u-boot/v2026.04/board_rk3318-box/rk3328-add-usb-reset-props.patch
  • patch/u-boot/v2026.04/board_rk3318-box/rk3328-fix-missing-hdmi-os.patch
  • patch/u-boot/v2026.04/defconfig/dusun-dsom-010r-rk3328_defconfig
  • patch/u-boot/v2026.04/defconfig/rk3318-box_defconfig
  • patch/u-boot/v2026.04/dt_uboot/rk3318-box-u-boot.dtsi
  • patch/u-boot/v2026.04/dt_uboot/rk3328-dusun-dsom-010r-u-boot.dtsi
  • patch/u-boot/v2026.04/dt_upstream_rockchip/rk3318-box.dts
  • patch/u-boot/v2026.04/dt_upstream_rockchip/rk3328-dusun-dsom-010r.dts
  • patch/u-boot/v2026.04/general-dw-hdmi-disable.patch

@github-actions github-actions bot added Needs review Seeking for review and removed Ready to merge Reviewed, tested and ready for merge labels Apr 13, 2026
Copy link
Copy Markdown
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.

🧹 Nitpick comments (1)
patch/u-boot/v2026.04/dt_upstream_rockchip/rk3318-box.dts (1)

53-73: Regulator nodes have unit addresses without reg properties.

The regulator@0 and regulator@1 node names include unit addresses, but there are no corresponding reg properties. Per device tree convention, the unit address suffix should match a reg property. Consider renaming to vcc-18 and vcc-io (without @N suffix), or use unique identifiers.

🔧 Suggested fix
 	regulators {
 		compatible = "simple-bus";
 		`#address-cells` = <0x01>;
 		`#size-cells` = <0x00>;

-		vcc_18: regulator@0 {
+		vcc_18: vcc-18-regulator {
 			compatible = "regulator-fixed";
 			regulator-name = "vccio_1v8";
 			regulator-min-microvolt = <1800000>;
 			regulator-max-microvolt = <1800000>;
 			regulator-always-on;
 		};

-		vcc_io: regulator@1 {
+		vcc_io: vcc-io-regulator {
 			compatible = "regulator-fixed";
 			regulator-name = "vccio_3v3";
 			regulator-min-microvolt = <3300000>;
 			regulator-max-microvolt = <3300000>;
 			regulator-always-on;
 		};
 	};
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@patch/u-boot/v2026.04/dt_upstream_rockchip/rk3318-box.dts` around lines 53 -
73, The regulator nodes use unit-addressed names regulator@0 and regulator@1 but
lack matching reg properties; rename those nodes to non-unit names (for example
vcc-18 and vcc-io or vcc_18 and vcc_io without `@N`) or add proper reg properties
so unit addresses match numeric phandles; update the node names referenced by
any consumers if present (look for vcc_18, vcc_io, regulator@0, regulator@1) to
keep device-tree references consistent.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@patch/u-boot/v2026.04/dt_upstream_rockchip/rk3318-box.dts`:
- Around line 53-73: The regulator nodes use unit-addressed names regulator@0
and regulator@1 but lack matching reg properties; rename those nodes to non-unit
names (for example vcc-18 and vcc-io or vcc_18 and vcc_io without `@N`) or add
proper reg properties so unit addresses match numeric phandles; update the node
names referenced by any consumers if present (look for vcc_18, vcc_io,
regulator@0, regulator@1) to keep device-tree references consistent.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: c8dc84ab-6f98-4fae-afac-54c10cbe759d

📥 Commits

Reviewing files that changed from the base of the PR and between 94bd038 and a86840a.

📒 Files selected for processing (2)
  • patch/u-boot/v2026.04/defconfig/dusun-dsom-010r-rk3328_defconfig
  • patch/u-boot/v2026.04/dt_upstream_rockchip/rk3318-box.dts
✅ Files skipped from review due to trivial changes (1)
  • patch/u-boot/v2026.04/defconfig/dusun-dsom-010r-rk3328_defconfig

@igorpecovnik igorpecovnik merged commit d9c43e1 into armbian:main Apr 14, 2026
18 checks passed
@paolosabatino paolosabatino deleted the rockchip64-uboot-v2026.04 branch April 14, 2026 09:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

05 Milestone: Second quarter release Hardware Hardware related like kernel, U-Boot, ... Needs review Seeking for review Patches Patches related to kernel, U-Boot, ... size/large PR with 250 lines or more

Development

Successfully merging this pull request may close these issues.

4 participants