rockchip64: bump some boards u-boot to v2026.04#9662
rockchip64: bump some boards u-boot to v2026.04#9662igorpecovnik merged 4 commits intoarmbian:mainfrom
Conversation
* OrangePi4 LTS * Radxa Rockpi-E * Dusun DSOM 010R * rk3318-box tv box series
📝 WalkthroughWalkthroughThis 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
Estimated code review effort🎯 4 (Complex) | ⏱️ ~90 minutes Possibly related PRs
Suggested labels
Suggested reviewers
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 |
|
✅ This PR has been reviewed and approved — all set for merge! |
There was a problem hiding this comment.
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.dtsialready carries the sameu-boot,sysinfo-smbiosdata. Keeping another copy indt_upstream_rockchipdefeats 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
📒 Files selected for processing (17)
config/boards/dusun-dsom-010r.cscconfig/boards/orangepi4-lts.confconfig/boards/rk3318-box.tvbconfig/boards/rockpi-e.confpatch/u-boot/v2026.04/board_orangepi4-lts/board-orangepi4-rockchip-tpl.patchpatch/u-boot/v2026.04/board_rk3318-box/general-support-rmii-integrated-phy.patchpatch/u-boot/v2026.04/board_rk3318-box/rk3318-box-add-dts.patch.disabledpatch/u-boot/v2026.04/board_rk3318-box/rk3318-box-add-makefile.patchpatch/u-boot/v2026.04/board_rk3318-box/rk3328-add-usb-reset-props.patchpatch/u-boot/v2026.04/board_rk3318-box/rk3328-fix-missing-hdmi-os.patchpatch/u-boot/v2026.04/defconfig/dusun-dsom-010r-rk3328_defconfigpatch/u-boot/v2026.04/defconfig/rk3318-box_defconfigpatch/u-boot/v2026.04/dt_uboot/rk3318-box-u-boot.dtsipatch/u-boot/v2026.04/dt_uboot/rk3328-dusun-dsom-010r-u-boot.dtsipatch/u-boot/v2026.04/dt_upstream_rockchip/rk3318-box.dtspatch/u-boot/v2026.04/dt_upstream_rockchip/rk3328-dusun-dsom-010r.dtspatch/u-boot/v2026.04/general-dw-hdmi-disable.patch
patch/u-boot/v2026.04/board_rk3318-box/general-support-rmii-integrated-phy.patch
Show resolved
Hide resolved
patch/u-boot/v2026.04/board_rk3318-box/general-support-rmii-integrated-phy.patch
Show resolved
Hide resolved
patch/u-boot/v2026.04/defconfig/dusun-dsom-010r-rk3328_defconfig
Outdated
Show resolved
Hide resolved
patch/u-boot/v2026.04/board_rk3318-box/rk3318-box-add-dts.patch.disabled
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
🧹 Nitpick comments (1)
patch/u-boot/v2026.04/dt_upstream_rockchip/rk3318-box.dts (1)
53-73: Regulator nodes have unit addresses withoutregproperties.The
regulator@0andregulator@1node names include unit addresses, but there are no correspondingregproperties. Per device tree convention, the unit address suffix should match aregproperty. Consider renaming tovcc-18andvcc-io(without@Nsuffix), 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
📒 Files selected for processing (2)
patch/u-boot/v2026.04/defconfig/dusun-dsom-010r-rk3328_defconfigpatch/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
Description
Bump these rockchip64 boards to u-boot v2026.04:
Patches have been migrated/adapted from the previous version (v2025.10-rc5), in particular defconfigs and dts patches now leverage the
defconfig,dt_ubootanddt_upstream_rockchipdirectories 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?
Checklist:
Please delete options that are not relevant.
Summary by CodeRabbit
Release Notes
New Features
Chores