WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Conversation

@HeyMeco
Copy link
Collaborator

@HeyMeco HeyMeco commented Nov 12, 2025

Description

Use collabora patches to switch Rock5B+ and Rock5T to upstream u-boot on all branches.
Related to #8874

How Has This Been Tested?

Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.

  • Compiles
  • Test on Rock5B+
  • Test on Rock5T

Summary by CodeRabbit

  • New Features
    • Added support for ROCK 5T board with full hardware integration.
    • Enhanced ROCK 5B+ support with automatic device tree selection based on detected memory type.
    • Extended hardware feature support including HDMI, USB-C, PCIe, and power management configurations across ROCK 5 boards.
    • Updated bootloader to version v2025.10 with improved environment configurations.

@HeyMeco HeyMeco added this to the 25.11 milestone Nov 12, 2025
@github-actions github-actions bot added 11 Milestone: Fourth 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 Nov 12, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 12, 2025

Important

Review skipped

Auto reviews are limited based on label configuration.

🏷️ Required labels (at least one) (1)
  • Needs review

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

This pull request adds comprehensive support for Radxa ROCK 5B+, ROCK 5T boards and variants, including updated U-Boot mainline configurations, extensive device tree definitions for runtime board selection, and memory type detection to distinguish between LPDDR5 and LPDDR4 variants at boot time.

Changes

Cohort / File(s) Change Summary
Board Configuration Updates
config/boards/rock-5b-plus.conf, config/boards/rock-5t.conf
Renamed mainline U-Boot override hook in rock-5b-plus, updated boot configuration (U-Boot tag to v2025.10, defconfig, DTB path), defined local helper functions for platform writes. Added mainline U-Boot support functions and SPI environment configuration hook to rock-5t.
Device Tree Sources (v2025.04 Upstream Hacks)
patch/u-boot/v2025.04/board_rock-5t/0000-Prior-Upstream-DT-hacks.patch
Introduced Rock 3588 device tree files for ROCK 5B, 5B+, and 5T (rk3588-rock-5b*.dts(i), rk3588-rock-5b-plus*.dts(i)) with runtime-selectable device tree logic. Augmented base and extra DT fragments with HDMI audio, syscon/grf nodes, IOMMU/PCIe, VOP entries, regulators, power domains, and peripheral controllers.
Device Tree Modifications (v2025.04 DTS Rework)
patch/u-boot/v2025.04/board_rock-5t/0001-Add-Rock5T-dt-modifications.patch
Added upstream DTS modification file (rk3588-rock-5b-5bp-5t.dtsi) and integrated it into existing ROCK 5B/5B+ DTS files. Reworked HDMI/VOP, USB-C/PD, regulators, clocking, power management, pinctrl, and peripheral sections (combphy, i2c, spi, PCIe).
ROCK 5T Device Tree
patch/u-boot/v2025.04/board_rock-5t/0002-Add-Rock5T-dts-to-upstream-dir.patch
Added new standalone device tree source file (rk3588-rock-5t.dts) with ROCK 5T-specific peripheral definitions (analog-sound, leds, rfkill, regulators, HDMI, PCIe, pins).
ROCK 5T Board Support Implementation
patch/u-boot/v2025.04/board_rock-5t/0003-Add-Rock5T-support.patch
Implemented full ROCK5T RK3588 board support including Kconfig option (TARGET_ROCK5T_RK3588), board configuration directory, defconfig, header file, maintainers metadata, and device tree u-boot fragment (rk3588-rock-5t-u-boot.dtsi).
U-Boot Configuration (v2025.10 rock-5b-plus)
patch/u-boot/v2025.10/board_rock-5b-plus/0001-Set-NET_PREFER_ROM_MAC_ADDR.patch
Added CONFIG_NET_PREFER_ROM_MAC_ADDR=y to rock5b defconfig.
ROCK 5B+ Memory Type Detection
patch/u-boot/v2025.10/board_rock-5b-plus/0002-Add-ROCK-5BPlus-support.patch
Implemented runtime memory type detection via PMUGRF registers to distinguish LPDDR5 (ROCK 5B+) from LPDDR4 (ROCK 5B). Added rk3588_get_memory_type() function, rock5_get_model_devicetree() for memory-based DTB selection, and updated board_fit_config_name_match() and rk_board_late_init() to use detected memory type.

Sequence Diagram(s)

sequenceDiagram
    participant Boot as U-Boot Boot
    participant MemDetect as Memory Type Detection
    participant DTSelect as DTB Selection
    participant FDT as FDT Load/Match

    Boot->>MemDetect: rk_board_late_init()
    MemDetect->>MemDetect: rk3588_get_memory_type()
    MemDetect->>MemDetect: Read PMUGRF registers
    
    alt LPDDR5 Detected
        MemDetect-->>DTSelect: LPDDR5
        DTSelect->>DTSelect: rock5_get_model_devicetree()
        DTSelect-->>DTSelect: Return rk3588-rock-5b-plus.dtb
    else LPDDR4 or Unknown
        MemDetect-->>DTSelect: LPDDR4/Default
        DTSelect->>DTSelect: rock5_get_model_devicetree()
        DTSelect-->>DTSelect: Return rk3588-rock-5b.dtb
    end
    
    DTSelect->>FDT: Set fdtfile
    FDT->>FDT: board_fit_config_name_match()
    FDT-->>Boot: Appropriate DTB loaded
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

  • Device tree modifications: The v2025.04 patches introduce extensive multi-file device tree changes across HDMI, USB, regulators, power domains, and peripherals—requires careful validation of each addition and integration consistency.
  • Memory type detection logic: The new rk3588_get_memory_type() and rock5_get_model_devicetree() functions require verification of register access, memory type enumeration, and correct DTB mapping.
  • Board configuration refactoring: The hook renaming and restructuring in rock-5b-plus.conf along with new functions in rock-5t.conf need verification that triggers and scoping are correct.
  • ROCK 5T board support: The new board implementation across Kconfig, defconfig, headers, and DT fragments must be checked for consistency with existing RK3588 patterns.

Possibly related PRs

Suggested reviewers

  • rpardini
  • igorpecovnik
  • paolosabatino
  • pyavitz
  • krachlatte
  • ColorfulRhino

Poem

🐰 Hops of joy for ROCK boards new,
With memory tales of pink and blue—
LPDDR5 makes 5B+ shine so bright,
Device trees dance in boot's first light!
From 5B to 5T, the family grows—
Mainline U-Boot's where the magic flows! ✨

Pre-merge checks and finishing touches

✅ 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 accurately reflects the primary changes: adding upstream U-Boot support for Rock5B+ and Rock5T boards by applying Collabora patches.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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.

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: 4

🧹 Nitpick comments (1)
config/boards/rock-5t.conf (1)

17-28: Audio udev naming hook: only naming nit

The hook body is correctly tailored for Rock 5T, but the function is still named post_family_tweaks__rock5b_naming_audios. If this isn’t intentionally shared with Rock5B naming, consider renaming it to a rock5t-specific name for clarity; otherwise it’s fine to keep as-is.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between d7061f5 and 4211ae2.

📒 Files selected for processing (8)
  • config/boards/rock-5b-plus.conf (2 hunks)
  • config/boards/rock-5t.conf (2 hunks)
  • patch/u-boot/v2025.04/board_rock-5t/0000-Prior-Upstream-DT-hacks.patch (1 hunks)
  • patch/u-boot/v2025.04/board_rock-5t/0001-Add-Rock5T-dt-modifications.patch (1 hunks)
  • patch/u-boot/v2025.04/board_rock-5t/0002-Add-Rock5T-dts-to-upstream-dir.patch (1 hunks)
  • patch/u-boot/v2025.04/board_rock-5t/0003-Add-Rock5T-support.patch (1 hunks)
  • patch/u-boot/v2025.10/board_rock-5b-plus/0001-Set-NET_PREFER_ROM_MAC_ADDR.patch (1 hunks)
  • patch/u-boot/v2025.10/board_rock-5b-plus/0002-Add-ROCK-5BPlus-support.patch (1 hunks)
🧰 Additional context used
🧠 Learnings (23)
📓 Common learnings
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:76-86
Timestamp: 2025-03-31T22:20:48.475Z
Learning: For the Armbian build project, maintaining consistency with existing patches across U-Boot versions (such as between 2025.01 and 2025.04) is prioritized over refactoring individual patches for code improvements.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub or the PR API to get the complete picture of what files are being added or modified.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub API (https://api.github.com/repos/armbian/build/pulls/{pr_number}/files) to get the complete picture of what files are being added or modified, especially for U-Boot patches that will be applied during the build process.
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:73-75
Timestamp: 2025-03-31T22:20:41.849Z
Learning: When porting patches between U-Boot versions (like from 2025.01 to 2025.04), rpardini prefers to maintain patches as-is rather than introducing refactoring changes, even when potential improvements are identified. This approach prioritizes consistency and reduces the risk of introducing new issues.
Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:222-230
Timestamp: 2025-09-14T06:32:29.806Z
Learning: In the Armbian build system, the write_uboot_platform() function implementations follow different patterns across Rockchip family files. The newer standard (used in rockchip64_common.inc and rk3506) includes 'status=none' parameter in dd commands, while older implementations (rk3288, rk322x) use an older pattern without this parameter. The rk3506 implementation correctly follows the current Rockchip family standard.
Learnt from: rpardini
Repo: armbian/build PR: 8879
File: config/sources/families/uefi-x86.conf:0-0
Timestamp: 2025-11-06T15:36:04.682Z
Learning: As of PR #8879, the uefi-x86 family in the Armbian build system now includes kernel patches for the first time. The current and edge branches for uefi-x86 are specifically configured for Apple T2-based x86 machines, including T2-specific patches from the linux-t2 project and custom kernel configuration options for Apple hardware drivers.
Learnt from: leggewie
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-08-29T18:44:47.732Z
Learning: When creating GitHub issues for code improvements in the Armbian build project, include the relevant patches/diffs in the issue description or open a PR directly instead of just describing the changes. This makes it more efficient for the assignee to handle the improvements.
Learnt from: HackingGate
Repo: armbian/build PR: 8665
File: config/boards/photonicat2.csc:4-4
Timestamp: 2025-10-26T10:41:35.118Z
Learning: In the Armbian build system, rk3576 boards consistently use BOARDFAMILY="rk35xx" for both vendor and edge kernel targets. The rk35xx family configuration sources rockchip64_common.inc, which provides edge and current kernel branch definitions, making these branches available even though they're not defined directly in rk35xx.conf.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8886
File: patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-rev01.dts:9-9
Timestamp: 2025-11-08T06:39:24.527Z
Learning: In Armbian's Rockchip vendor kernel branches (rk35xx-vendor), device tree files may not require the same headers as mainline Linux. For example, input key definitions like KEY_BACK and KEY_VOLUMEUP may be handled differently in BSP kernels and don't necessarily need explicit includes like <dt-bindings/input/input.h> that would be required in mainline kernel device trees.
📚 Learning: 2025-11-08T06:39:24.527Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8886
File: patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-rev01.dts:9-9
Timestamp: 2025-11-08T06:39:24.527Z
Learning: In Armbian's Rockchip vendor kernel branches (rk35xx-vendor), device tree files may not require the same headers as mainline Linux. For example, input key definitions like KEY_BACK and KEY_VOLUMEUP may be handled differently in BSP kernels and don't necessarily need explicit includes like <dt-bindings/input/input.h> that would be required in mainline kernel device trees.

Applied to files:

  • patch/u-boot/v2025.04/board_rock-5t/0002-Add-Rock5T-dts-to-upstream-dir.patch
  • config/boards/rock-5t.conf
  • patch/u-boot/v2025.10/board_rock-5b-plus/0002-Add-ROCK-5BPlus-support.patch
  • patch/u-boot/v2025.04/board_rock-5t/0001-Add-Rock5T-dt-modifications.patch
  • patch/u-boot/v2025.04/board_rock-5t/0003-Add-Rock5T-support.patch
  • config/boards/rock-5b-plus.conf
  • patch/u-boot/v2025.04/board_rock-5t/0000-Prior-Upstream-DT-hacks.patch
📚 Learning: 2025-03-31T22:20:41.849Z
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:73-75
Timestamp: 2025-03-31T22:20:41.849Z
Learning: When porting patches between U-Boot versions (like from 2025.01 to 2025.04), rpardini prefers to maintain patches as-is rather than introducing refactoring changes, even when potential improvements are identified. This approach prioritizes consistency and reduces the risk of introducing new issues.

Applied to files:

  • patch/u-boot/v2025.04/board_rock-5t/0002-Add-Rock5T-dts-to-upstream-dir.patch
  • config/boards/rock-5t.conf
  • patch/u-boot/v2025.10/board_rock-5b-plus/0002-Add-ROCK-5BPlus-support.patch
  • patch/u-boot/v2025.04/board_rock-5t/0001-Add-Rock5T-dt-modifications.patch
  • patch/u-boot/v2025.04/board_rock-5t/0003-Add-Rock5T-support.patch
  • patch/u-boot/v2025.10/board_rock-5b-plus/0001-Set-NET_PREFER_ROM_MAC_ADDR.patch
  • config/boards/rock-5b-plus.conf
  • patch/u-boot/v2025.04/board_rock-5t/0000-Prior-Upstream-DT-hacks.patch
📚 Learning: 2025-09-14T06:32:29.806Z
Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:222-230
Timestamp: 2025-09-14T06:32:29.806Z
Learning: In the Armbian build system, the write_uboot_platform() function implementations follow different patterns across Rockchip family files. The newer standard (used in rockchip64_common.inc and rk3506) includes 'status=none' parameter in dd commands, while older implementations (rk3288, rk322x) use an older pattern without this parameter. The rk3506 implementation correctly follows the current Rockchip family standard.

Applied to files:

  • patch/u-boot/v2025.04/board_rock-5t/0002-Add-Rock5T-dts-to-upstream-dir.patch
  • config/boards/rock-5t.conf
  • patch/u-boot/v2025.10/board_rock-5b-plus/0002-Add-ROCK-5BPlus-support.patch
  • patch/u-boot/v2025.04/board_rock-5t/0001-Add-Rock5T-dt-modifications.patch
  • patch/u-boot/v2025.04/board_rock-5t/0003-Add-Rock5T-support.patch
  • patch/u-boot/v2025.10/board_rock-5b-plus/0001-Set-NET_PREFER_ROM_MAC_ADDR.patch
  • config/boards/rock-5b-plus.conf
  • patch/u-boot/v2025.04/board_rock-5t/0000-Prior-Upstream-DT-hacks.patch
📚 Learning: 2025-03-31T22:20:48.475Z
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:76-86
Timestamp: 2025-03-31T22:20:48.475Z
Learning: For the Armbian build project, maintaining consistency with existing patches across U-Boot versions (such as between 2025.01 and 2025.04) is prioritized over refactoring individual patches for code improvements.

Applied to files:

  • patch/u-boot/v2025.04/board_rock-5t/0002-Add-Rock5T-dts-to-upstream-dir.patch
  • config/boards/rock-5t.conf
  • patch/u-boot/v2025.10/board_rock-5b-plus/0002-Add-ROCK-5BPlus-support.patch
  • patch/u-boot/v2025.04/board_rock-5t/0001-Add-Rock5T-dt-modifications.patch
  • patch/u-boot/v2025.04/board_rock-5t/0003-Add-Rock5T-support.patch
  • patch/u-boot/v2025.10/board_rock-5b-plus/0001-Set-NET_PREFER_ROM_MAC_ADDR.patch
  • config/boards/rock-5b-plus.conf
  • patch/u-boot/v2025.04/board_rock-5t/0000-Prior-Upstream-DT-hacks.patch
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub or the PR API to get the complete picture of what files are being added or modified.

Applied to files:

  • patch/u-boot/v2025.04/board_rock-5t/0002-Add-Rock5T-dts-to-upstream-dir.patch
  • patch/u-boot/v2025.04/board_rock-5t/0001-Add-Rock5T-dt-modifications.patch
  • patch/u-boot/v2025.04/board_rock-5t/0003-Add-Rock5T-support.patch
  • patch/u-boot/v2025.04/board_rock-5t/0000-Prior-Upstream-DT-hacks.patch
📚 Learning: 2025-07-23T07:30:52.265Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8417
File: config/boards/orangepi5pro.csc:57-58
Timestamp: 2025-07-23T07:30:52.265Z
Learning: In the Armbian build system, BOOTPATCHDIR can contain board-specific subdirectories (e.g., board_orangepi5pro) for applying patches to specific boards only. The framework automatically checks if such board-specific subdirectories exist for the board being built and applies those patches accordingly.

Applied to files:

  • patch/u-boot/v2025.04/board_rock-5t/0002-Add-Rock5T-dts-to-upstream-dir.patch
  • patch/u-boot/v2025.04/board_rock-5t/0001-Add-Rock5T-dt-modifications.patch
  • patch/u-boot/v2025.04/board_rock-5t/0003-Add-Rock5T-support.patch
  • patch/u-boot/v2025.04/board_rock-5t/0000-Prior-Upstream-DT-hacks.patch
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub API (https://api.github.com/repos/armbian/build/pulls/{pr_number}/files) to get the complete picture of what files are being added or modified, especially for U-Boot patches that will be applied during the build process.

Applied to files:

  • patch/u-boot/v2025.04/board_rock-5t/0002-Add-Rock5T-dts-to-upstream-dir.patch
  • patch/u-boot/v2025.04/board_rock-5t/0001-Add-Rock5T-dt-modifications.patch
  • patch/u-boot/v2025.04/board_rock-5t/0000-Prior-Upstream-DT-hacks.patch
📚 Learning: 2025-10-26T10:41:35.118Z
Learnt from: HackingGate
Repo: armbian/build PR: 8665
File: config/boards/photonicat2.csc:4-4
Timestamp: 2025-10-26T10:41:35.118Z
Learning: In the Armbian build system, rk3576 boards consistently use BOARDFAMILY="rk35xx" for both vendor and edge kernel targets. The rk35xx family configuration sources rockchip64_common.inc, which provides edge and current kernel branch definitions, making these branches available even though they're not defined directly in rk35xx.conf.

Applied to files:

  • patch/u-boot/v2025.04/board_rock-5t/0002-Add-Rock5T-dts-to-upstream-dir.patch
  • config/boards/rock-5t.conf
  • patch/u-boot/v2025.10/board_rock-5b-plus/0002-Add-ROCK-5BPlus-support.patch
  • patch/u-boot/v2025.04/board_rock-5t/0001-Add-Rock5T-dt-modifications.patch
  • patch/u-boot/v2025.04/board_rock-5t/0003-Add-Rock5T-support.patch
  • config/boards/rock-5b-plus.conf
  • patch/u-boot/v2025.04/board_rock-5t/0000-Prior-Upstream-DT-hacks.patch
📚 Learning: 2025-11-02T20:49:56.719Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8849
File: config/boards/radxa-e54c.csc:14-28
Timestamp: 2025-11-02T20:49:56.719Z
Learning: In Armbian board configuration files (config/boards/*.conf, *.csc, etc.), do not use kernel_config_set, kernel_config_set_m, kernel_config_set_y, or custom_kernel_config__* functions to modify kernel configuration. Kernel configuration is associated with LINUXFAMILY/BOARDFAMILY, not individual BOARD. Board-specific kernel modifications cause inconsistency in kernel packages published to the apt repository because boards within a family share the same kernel packages. Kernel configuration changes must be made in the appropriate kernel config file (e.g., config/kernel/linux-*-*.config) or in family configuration files (config/sources/families/*.conf, *.inc) instead.

Applied to files:

  • config/boards/rock-5t.conf
  • patch/u-boot/v2025.04/board_rock-5t/0003-Add-Rock5T-support.patch
  • config/boards/rock-5b-plus.conf
📚 Learning: 2025-09-12T19:28:38.491Z
Learnt from: Grippy98
Repo: armbian/build PR: 8622
File: config/sources/families/k3.conf:66-66
Timestamp: 2025-09-12T19:28:38.491Z
Learning: In the Armbian k3 family build system (config/sources/families/k3.conf), builds do not fail when TIBOOT3_BOOTCONFIG is unset, even though tiboot3.bin is still listed in UBOOT_TARGET_MAP. The gating mechanism in pre_config_uboot_target__build_first_stage function works as intended to conditionally build/copy tiboot3.bin only when TIBOOT3_BOOTCONFIG is defined.

Applied to files:

  • config/boards/rock-5t.conf
  • config/boards/rock-5b-plus.conf
📚 Learning: 2025-09-11T06:06:52.328Z
Learnt from: SuperKali
Repo: armbian/build PR: 8608
File: lib/functions/compilation/patch/drivers_network.sh:361-363
Timestamp: 2025-09-11T06:06:52.328Z
Learning: For the RTW88 SDIO RF path detection fix patch (004-rtw88-sdio-rf-path-detection-fix.patch), SuperKali prefers using exact version matching (eq 6.1 || eq 6.16) rather than range checks, as the patch has only been tested on those specific kernel versions and may be mainstreamed soon.

Applied to files:

  • config/boards/rock-5t.conf
📚 Learning: 2025-09-14T06:29:18.958Z
Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:64-70
Timestamp: 2025-09-14T06:29:18.958Z
Learning: In the Armbian build system, vendor branch configurations in family files are designed to be shared across multiple SoCs within the same family that use the same vendor kernel tree. For example, rk35xx and rockchip-rk3588 families both use identical vendor branch settings (same KERNELSOURCE, KERNELBRANCH, and KERNELPATCHDIR), demonstrating that vendor branches are intentionally generic rather than SoC-specific.

Applied to files:

  • config/boards/rock-5t.conf
  • patch/u-boot/v2025.04/board_rock-5t/0003-Add-Rock5T-support.patch
  • config/boards/rock-5b-plus.conf
  • patch/u-boot/v2025.04/board_rock-5t/0000-Prior-Upstream-DT-hacks.patch
📚 Learning: 2025-09-07T17:39:32.272Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8586
File: config/boards/nanopi-r76s.conf:15-21
Timestamp: 2025-09-07T17:39:32.272Z
Learning: In the Armbian build system, the variables $BOARD and $SDCARD are always set by the build framework, so guard checks for these variables are unnecessary in board configuration files and hook functions.

Applied to files:

  • config/boards/rock-5t.conf
📚 Learning: 2025-10-14T05:08:11.785Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8754
File: config/boards/bestv-r3300-l.csc:14-16
Timestamp: 2025-10-14T05:08:11.785Z
Learning: In the Armbian build system, BOOTBRANCH_BOARD is a valid framework variable used as a fallback when BOOTBRANCH is unset. The framework checks BOOTBRANCH_BOARD before applying the default bootloader branch value (see config/sources/common.conf). Board configuration files can use BOOTBRANCH_BOARD to specify the bootloader branch.

Applied to files:

  • config/boards/rock-5t.conf
  • config/boards/rock-5b-plus.conf
📚 Learning: 2025-11-10T23:44:53.363Z
Learnt from: tabrisnet
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-11-10T23:44:53.363Z
Learning: For the RV1106 family in Armbian (config/sources/families/rockchip-rv1106.conf), udev.children-max=1 is set in the kernel boot parameters to prevent early-boot OOM errors. The RV1106 has a single-core CPU, so parallelism in udev child processes provides no practical benefit. Testing higher values is impractical due to the difficulty of monitoring at this early boot stage.

Applied to files:

  • config/boards/rock-5t.conf
  • patch/u-boot/v2025.04/board_rock-5t/0000-Prior-Upstream-DT-hacks.patch
📚 Learning: 2025-06-12T21:14:36.024Z
Learnt from: djurny
Repo: armbian/build PR: 8287
File: config/bootscripts/boot-sunxi.cmd:38-44
Timestamp: 2025-06-12T21:14:36.024Z
Learning: In config/bootscripts/boot-sunxi.cmd the unconditional "+1" increment in func_align_addr_next (when align_overlap_oboe_avoidance="on") is intentional. It compensates for a known off-by-one error in U-Boot where the end address is calculated as start+size instead of start+size-1, so the extra page prevents overlap. This behavior should not be “optimized away”.

Applied to files:

  • config/boards/rock-5t.conf
  • config/boards/rock-5b-plus.conf
📚 Learning: 2025-03-31T12:57:13.880Z
Learnt from: libiunc
Repo: armbian/build PR: 8033
File: config/kernel/linux-starfive2-vendor.config:43-43
Timestamp: 2025-03-31T12:57:13.880Z
Learning: For StarFive2 platform kernel configurations, maintain alignment with vendor-provided configurations rather than modifying security settings like SECCOMP. This ensures hardware compatibility as intended by the manufacturer.

Applied to files:

  • patch/u-boot/v2025.04/board_rock-5t/0003-Add-Rock5T-support.patch
📚 Learning: 2025-09-18T03:36:17.862Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8537
File: config/boards/qcom-robotics-rb5.conf:1-1
Timestamp: 2025-09-18T03:36:17.862Z
Learning: In Armbian board configuration files, .wip and .conf extensions require BOARD_MAINTAINER to be present and contain at least one maintainer. If no maintainer is present, the board support rules state it does not qualify for standard support and must be moved to community support (.csc extension). This is documented at https://docs.armbian.com/User-Guide_Board-Support-Rules/

Applied to files:

  • patch/u-boot/v2025.04/board_rock-5t/0003-Add-Rock5T-support.patch
📚 Learning: 2025-09-09T07:30:22.419Z
Learnt from: amazingfate
Repo: armbian/build PR: 8595
File: lib/functions/compilation/patch/drivers_network.sh:0-0
Timestamp: 2025-09-09T07:30:22.419Z
Learning: RTW_WARN_LMT sed workaround in driver_rtl8852bs() function in lib/functions/compilation/patch/drivers_network.sh is necessary for kernel 6.1 compatibility, even when the upstream wifi-rtl8852bs driver has the macro defined for newer kernels. The workaround ensures cross-kernel compatibility from 6.1 to 6.16+.

Applied to files:

  • patch/u-boot/v2025.10/board_rock-5b-plus/0001-Set-NET_PREFER_ROM_MAC_ADDR.patch
📚 Learning: 2025-11-10T22:05:40.490Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8913
File: config/sources/families/k3-beagle.conf:16-16
Timestamp: 2025-11-10T22:05:40.490Z
Learning: In the Armbian build system, kernel branches using non-mainline/vendor forks (like BeagleBoard's linux repository) should be named "vendor" or "vendor-rt" rather than "current" or "edge". The "current" and "edge" naming is reserved for mainline kernel branches. This affects both the case statement in family config files (e.g., `vendor | vendor-rt)` instead of `current | current-rt)`) and the corresponding KERNEL_TARGET declarations in board config files.

Applied to files:

  • config/boards/rock-5b-plus.conf
📚 Learning: 2025-11-06T15:36:04.682Z
Learnt from: rpardini
Repo: armbian/build PR: 8879
File: config/sources/families/uefi-x86.conf:0-0
Timestamp: 2025-11-06T15:36:04.682Z
Learning: As of PR #8879, the uefi-x86 family in the Armbian build system now includes kernel patches for the first time. The current and edge branches for uefi-x86 are specifically configured for Apple T2-based x86 machines, including T2-specific patches from the linux-t2 project and custom kernel configuration options for Apple hardware drivers.

Applied to files:

  • config/boards/rock-5b-plus.conf
📚 Learning: 2025-08-02T05:46:10.664Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-08-02T05:46:10.664Z
Learning: In the Armbian build system, the modern recommended approach for kernel configuration is to use the kernel-config command via "./compile.sh BOARD=boardname BRANCH=branchname kernel-config" instead of the deprecated KERNEL_CONFIGURE=yes flag. This provides a two-step workflow: configure using menuconfig, then build, with better transparency and control over configuration changes.

Applied to files:

  • config/boards/rock-5b-plus.conf
🔇 Additional comments (13)
config/boards/rock-5t.conf (2)

30-52: Mainline U‑Boot override for Rock 5T looks consistent

The override correctly switches Rock 5T to upstream U‑Boot v2025.04 with the matching rock5t-rk3588_defconfig, FDT file, and binman‑produced u-boot-rockchip*.bin artifacts, and uses the standard Rockchip dd pattern with status=none. This aligns with the existing Rockchip family approach and should be safe.

Please double‑check that ROCKCHIP_SPI_IMAGE in the selected defconfig indeed produces u-boot-rockchip.bin and u-boot-rockchip-spi.bin so UBOOT_TARGET_MAP stays in sync. Based on learnings.


55-62: SPI flash U‑Boot environment config shared with Rock5B

The SPI env settings (ENV in SPI flash at 0xc00000, size 0x20000, with ENV_IS_IN_SPI_FLASH and auto sector size) match the Rock5B+ mainline SPI setup and are reasonable for Rock 5T as well.

Please confirm that this helper is only invoked for the mainline U‑Boot build (and not vendor U‑Boot) to avoid configuring non‑existent options in other branches. Based on learnings.

patch/u-boot/v2025.04/board_rock-5t/0002-Add-Rock5T-dts-to-upstream-dir.patch (1)

12-123: Rock5T DTS looks consistent with shared 5B/5B+/5T topology

The new rk3588-rock-5t.dts cleanly extends the shared rk3588-rock-5b-5bp-5t.dtsi with Rock5T‑specific audio, HDMI‑in, LED, rfkill, PCIe regulator, and pinctrl wiring. The only oddity is the cosmetic mismatch between the label and node name for the PCIe regulator (vcc3v3_pcie2x1l1: regulator-vcc3v3-pcie2x1l2), but since references use the label and this file comes directly from the Collabora series, it’s reasonable to keep it unchanged unless upstream itself is updated.

If you sync with newer Collabora/upstream DTs later, it may be worth checking whether they standardised that node name and mirroring it here. Based on learnings.

patch/u-boot/v2025.10/board_rock-5b-plus/0002-Add-ROCK-5BPlus-support.patch (1)

37-96: DDR-type–based DT selection for ROCK 5B/5B+ looks correct

The new PMUGRF‑based DDR type detection and rock5_get_model_devicetree() mapping correctly distinguish LPDDR5 (5B+) from LPDDR4 (5B) and feed both board_fit_config_name_match() and rk_board_late_init(). This should allow a single U‑Boot image to boot both boards with the right DTB.

Please verify against the RK3588 TRM or current mainline U‑Boot that the RK3588_PMUGRF_OS_REG* bitfields and enum values exactly match the documented DRAM type encodings, since that’s the critical dependency here. Based on learnings.

config/boards/rock-5b-plus.conf (2)

30-52: Mainline U‑Boot override hook for Rock5B+ is coherent

The new post_family_config__rock5b_plus_use_mainline_uboot() cleanly switches this board to upstream U‑Boot v2025.10 with the correct mainline defconfig and DTB, while leaving the top‑level vendor defaults untouched. The binman‑based write_uboot_platform* helpers mirror the Rock5T setup and follow the current Rockchip standard (status=none in dd).

Since the function name changed from the older post_family_config_branch_edge__… pattern, please confirm that any callers / hook dispatch in the Rockchip family files were updated to reference post_family_config__rock5b_plus_use_mainline_uboot(). A quick rg "rock5b_use_mainline_uboot" across the tree should be enough. Based on learnings.


55-62: Shared SPI env configuration helper for mainline U‑Boot

The SPI env helper sets ENV_IS_IN_SPI_FLASH, auto sector size, and places a 128 KiB env at 0xc00000, matching the Rock5T configuration and modern Rockchip practice. Centralising this for mainline SPI boots on Rock5B+ makes sense.

Please ensure this helper is only wired into the mainline U‑Boot build path (not the vendor U‑Boot) to avoid failed scripts/config edits on configs that might lack these symbols.

patch/u-boot/v2025.04/board_rock-5t/0000-Prior-Upstream-DT-hacks.patch (1)

1-2871: Large RK3588 DT sync looks like a straight upstream import

This “[HACK] arm64: dts: rockchip: Copy recent DT for Rock 5B+” patch is a sizeable but coherent import of newer RK3588 DT pieces (base/extra dtsi, split 5B dtsi/dts, new 5B+ dts), and the changes read like a direct copy from recent Linux DTs (extra HDMI, PHY, PCIe IOMMU, RNG, HDMI‑RX CMA, etc.). Given the size and upstream origin, keeping it as‑is is the right call here.

If you later rebase onto a U‑Boot version that already carries these DT updates from Linux, please double‑check for duplication or conflicts and drop this patch once upstream covers the same content. Based on learnings.

patch/u-boot/v2025.04/board_rock-5t/0003-Add-Rock5T-support.patch (1)

25-321: Rock5T U‑Boot board support matches the expected RK3588 pattern

The new Rock5T board support (u‑boot dtsi, Kconfig entry, board Kconfig, defconfig, and header) follows the same structure as other RK3588 Radxa boards: correct TARGET_ROCK5T_RK3588, consistent DEFAULT_DEVICE_TREE/DEFAULT_FDT_FILE, SPI‑image settings, PCIe/USB/Type‑C/FUSB302 options, and a minimal board header extending rk3588_common.h. It lines up with the Armbian rock-5t.conf mainline override configuration.

It’s worth diffing this Rock5T support patch against the original Collabora/U‑Boot series (or current upstream if/when merged) to ensure no local drift has crept in, especially in the defconfig and Type‑C/FUSB302 settings. Based on learnings.

patch/u-boot/v2025.10/board_rock-5b-plus/0001-Set-NET_PREFER_ROM_MAC_ADDR.patch (1)

10-18: CONFIG_NET_PREFER_ROM_MAC_ADDR=y is correctly applied to Rock5B+ defconfig

This change aligns with the existing Rock5T configuration (v2025.04), where the same option is already enabled. The addition is consistent, minimal, and appropriate for boards with programmed MAC addresses.

patch/u-boot/v2025.04/board_rock-5t/0001-Add-Rock5T-dt-modifications.patch (4)

1037-1066: LGTM: USB Type-C configuration for Rock 5B+.

The USB Type-C sideband use (SBU) pin configuration and PHY setup are correctly implemented for the Rock 5B+ board variant.


546-554: eMMC configuration improved to HS400 mode.

The eMMC (sdhci) configuration has been upgraded:

  • Old: max-frequency = <150000000>; mmc-hs200-1_8v;
  • New: mmc-hs400-1_8v; mmc-hs400-enhanced-strobe;

This enhancement enables faster eMMC speeds and enhanced signal integrity. Good improvement for Rock 5B/5B+/5T boards.


571-584: SPI NOR flash power supply properly declared.

The SPI NOR flash configuration now correctly includes vcc-supply = <&vcc_3v3_s3>; which was missing in the previous version. This enables proper power management for the flash device.


1092-1262: Original review comment is incorrect - the vbus-supply change is a hardware fix, not a breaking change.

USB Type-C VBUS must default to 5V for standard compliance, and USB originally provided a nominal 5V of bus power (VBUS) from the host to connected devices. The Rock 5B patch correctly changes the USB Type-C controller's power supply from vcc12v_dcin (the board's 12V DC input rail) to vbus5v0_typec (a dedicated 5V regulator). This aligns Rock 5B with USB Type-C specifications and proper hardware design practices. The 12V input is for powering the board itself, not for the USB VBUS connector pin. This is a compliance improvement, not a regression.

@HeyMeco
Copy link
Collaborator Author

HeyMeco commented Nov 18, 2025

@igorpecovnik this is ready to merge now

@github-actions github-actions bot added the Ready to merge Reviewed, tested and ready for merge label Nov 18, 2025
@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 Nov 18, 2025
@HeyMeco HeyMeco merged commit 42cd31f into armbian:main Nov 19, 2025
11 checks passed
jonaswood01 added a commit to TexasInstruments/armbian-build that referenced this pull request Nov 25, 2025
* live_main_upstream/main: (227 commits)
  rockchip64: rewrite patches
  rockchip64: remove upstreamed fixes
  Change mainline to rc7, manually fix meson64 patch
  `Automatic` board configs status synchronise
  KERNEL_TEST_TARGET is just override. We won't both targets, so we have both.
  rk3576: nanopi-r76s: add mainline u-boot and fix USB3.0 host (armbian#8997)
  Rock-5B-Plus: Use upstream device-tree name
  Radxa E54c: change board support status
  `Automatic` board configs status synchronise
  `Automatic` board configs status synchronise
  build(deps): bump tj-actions/changed-files
  bananapi-r4 bpi-r4 board config - no video output
  build(deps): bump actions/checkout from 5 to 6
  Radxa Rock 2A and F: promote boards to standard support
  config: drop questing and resolute symlinks for package definitions
  Drop Thunderbolt in desktop packages, but enable in minimal, arch amd64 only
  Update radxa-e52c.conf
  boards / Helios4: reorder some lines in the config file
  boards / Helios4: Fix: libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
  boards / Helios4: fix 0002 patch after bump U-Boot v2025.10
  boards / Helios4: rebase previous u-boot patchset to v2025.10
  boards / Helios4: reenable Armbian patchset
  boards / Helios4: drop obsolete patches and those not applicable to helios4
  boards / Helios4: rename some patches in preparation for rebase
  boards / Helios4: enable SATA u-boot artifact
  boards / Helios4: switch U-Boot to mainline 2025.10
  radxa-rock-4d: Move to standard support (armbian#8981)
  Sync support status to match with /download
  Rock5B+: Udev rule for Radxa Display 8HD
  sunxi64: Enable KVM virtualization support for current kernel
  Discord x86: add external sources
  `Automatic` board configs status synchronise
  rock-5b: u-boot: edge: bump to v2026.01-rc2; use mainline ATF; bootorder; fancy u-boot
  Desktop (mainly Gnome ) - add additional packages, small fixes and improvements
  lib / main-config.sh: enable APA extension for questing and resolute builds. Closes: armbian#8966
  ti: configs: boards: Add BOOT_SOC variable
  ti: configs: boards: Add AM62L EVM (tmds62levm) board support
  Rock5B-Plus and Rock5T: Use upstream u-boot (armbian#8918)
  youyeetoo-r1: enable OUT1/OUT2 switches for es8323 headphone output on vendor kernel (armbian#8963)
  Fixing updating submodule
  Powere management - make it conditional, enable on UEFI targets, else disabled
  `Automatic` board configs status synchronise
  uefi: x86: current (6.12) and edge (6.18): add Apple T2 patches
  Add watchdog package into image, hardware watchdog works
  Allow Helios64 to do separate /boot partition only if root placed on fs than unbootable for device
  u-boot: prepare v2026.01 patch directory
  Move gxlimg to board level and some clean
  rockchip: cleanup and rewrite patches for `edge`
  rockchip: cleanup and rewrite patches for `current`
  nanopct6(-lts): u-boot: bump to v2026.01-rc2
  odroidhc4: u-boot: bump to v2026.01-rc2
  cm3588-nas: u-boot: bump to v2026.01-rc2, enable BTRFS support
  cm3588-nas: u-boot: fix `led-1` to `green` for preboot blinking
  khadas-vim3l: u-boot: bump to v2026.01-rc2, enable BTRFS and more
  nanopi-r6c: u-boot: bump to v2026.01-rc2; enable BTRFS support
  uefi-loong64-6.18: rewrite patches against v6.18-rc6, no changes
  mainline-kernel: bump 6.18 to v6.18-rc6
  jsoninfo: introduce `inventory-artifacts` cli
  artifact-kernel: include LINUXCONFIG and ARMBIAN_KERNEL_DEB_NAME in artifact_input_variables
  config/templates: introduce targets-all-kernels.yaml for optimized kernel inventory-ing
  Upgrade Allwinner CURRENT kernels to latest
  Generic bootscript template
  Enable bootscript templating
  `Automatic` board configs status synchronise
  BeagleBoard and Description Updates
  ti: configs: family: k3: Update vendor-edge to pull latest TI PSDK tag
  ti: configs: family: k3: Update to bootable Processor SDK release tag
  ti: configs: family: k3: Add upstream edge branch
  ti: configs: family: k3: Change current/edge to vendor/vendor-edge
  sm8250 current: Add support to load QUP SE Firmware via Linux subsystem
  `Automatic` board configs status synchronise
  extensions: gxlimg: Update repo URL
  nanopi-m6: drop vendor uboot
  nanopi-r6s: remove old legacy uboot files && update mainline uboot
  sm8250 current: Select all USB CAN adapters under the CAN USB interfaces menu as M
  sm8250 current: Select all USB network adapters under the USB_NET_DRIVERS menu as M
  tools: Bump `BATCAT_VERSION` from 0.25.0 to 0.26.0
  `Automatic` board configs status synchronise
  Add Ubuntu 25.10 / 26.04 questing and resolute as csc build target, demote Bookworm to csc
  Related to armbian/documentation#842, update extensions/gen-sample-extension-docs.sh to reference the opt-out docs for hooks
  rockchip: rk3576: Fix serial console to use UART0 (ttyS0) (armbian#8936)
  Drop patches that has been upstreamed - rockchip and sm8550
  orangepi5: drop vendor uboot
  MOTD: deterministic spacing, tidy and compact output
  Bugfix: quotes were downloading to wrong location
  maint: cleanup board config files (armbian#8929)
  Use next patch version when using main action script
  Helios64: workaround fancontrol /dev restriction vs Helios64 udev /dev symlinks
  Add type of bootable fs for ODroid-N2
  Preserve timestamps when copying log files
  Rockchip64: enable Qcom ath12 (wifi 7) support
  UFS: Fix CI behavior (armbian#8924)
  UFS: Fix ci config generation (armbian#8923)
  First login: create docker group and add normal user to it (armbian#8920)
  Framework: copy user provided first boot config at build time
  `Automatic` board configs status synchronise
  k3-beagle: Add config for BeagleBoard.org Linux and U-Boot
  k3: Factor out all K3 common configuration into k3_common.inc
  k3: Use CORESDK_TAG for setting ATFBRANCH
  beagley-ai: Switch current branch to 6.12 Beagle kernel
  ...

Signed-off-by: Jonas Wood <[email protected]>
jonaswood01 added a commit to TexasInstruments/armbian-build that referenced this pull request Nov 25, 2025
* live_main_upstream/main: (227 commits)
  rockchip64: rewrite patches
  rockchip64: remove upstreamed fixes
  Change mainline to rc7, manually fix meson64 patch
  `Automatic` board configs status synchronise
  KERNEL_TEST_TARGET is just override. We won't both targets, so we have both.
  rk3576: nanopi-r76s: add mainline u-boot and fix USB3.0 host (armbian#8997)
  Rock-5B-Plus: Use upstream device-tree name
  Radxa E54c: change board support status
  `Automatic` board configs status synchronise
  `Automatic` board configs status synchronise
  build(deps): bump tj-actions/changed-files
  bananapi-r4 bpi-r4 board config - no video output
  build(deps): bump actions/checkout from 5 to 6
  Radxa Rock 2A and F: promote boards to standard support
  config: drop questing and resolute symlinks for package definitions
  Drop Thunderbolt in desktop packages, but enable in minimal, arch amd64 only
  Update radxa-e52c.conf
  boards / Helios4: reorder some lines in the config file
  boards / Helios4: Fix: libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
  boards / Helios4: fix 0002 patch after bump U-Boot v2025.10
  boards / Helios4: rebase previous u-boot patchset to v2025.10
  boards / Helios4: reenable Armbian patchset
  boards / Helios4: drop obsolete patches and those not applicable to helios4
  boards / Helios4: rename some patches in preparation for rebase
  boards / Helios4: enable SATA u-boot artifact
  boards / Helios4: switch U-Boot to mainline 2025.10
  radxa-rock-4d: Move to standard support (armbian#8981)
  Sync support status to match with /download
  Rock5B+: Udev rule for Radxa Display 8HD
  sunxi64: Enable KVM virtualization support for current kernel
  Discord x86: add external sources
  `Automatic` board configs status synchronise
  rock-5b: u-boot: edge: bump to v2026.01-rc2; use mainline ATF; bootorder; fancy u-boot
  Desktop (mainly Gnome ) - add additional packages, small fixes and improvements
  lib / main-config.sh: enable APA extension for questing and resolute builds. Closes: armbian#8966
  ti: configs: boards: Add BOOT_SOC variable
  ti: configs: boards: Add AM62L EVM (tmds62levm) board support
  Rock5B-Plus and Rock5T: Use upstream u-boot (armbian#8918)
  youyeetoo-r1: enable OUT1/OUT2 switches for es8323 headphone output on vendor kernel (armbian#8963)
  Fixing updating submodule
  Powere management - make it conditional, enable on UEFI targets, else disabled
  `Automatic` board configs status synchronise
  uefi: x86: current (6.12) and edge (6.18): add Apple T2 patches
  Add watchdog package into image, hardware watchdog works
  Allow Helios64 to do separate /boot partition only if root placed on fs than unbootable for device
  u-boot: prepare v2026.01 patch directory
  Move gxlimg to board level and some clean
  rockchip: cleanup and rewrite patches for `edge`
  rockchip: cleanup and rewrite patches for `current`
  nanopct6(-lts): u-boot: bump to v2026.01-rc2
  odroidhc4: u-boot: bump to v2026.01-rc2
  cm3588-nas: u-boot: bump to v2026.01-rc2, enable BTRFS support
  cm3588-nas: u-boot: fix `led-1` to `green` for preboot blinking
  khadas-vim3l: u-boot: bump to v2026.01-rc2, enable BTRFS and more
  nanopi-r6c: u-boot: bump to v2026.01-rc2; enable BTRFS support
  uefi-loong64-6.18: rewrite patches against v6.18-rc6, no changes
  mainline-kernel: bump 6.18 to v6.18-rc6
  jsoninfo: introduce `inventory-artifacts` cli
  artifact-kernel: include LINUXCONFIG and ARMBIAN_KERNEL_DEB_NAME in artifact_input_variables
  config/templates: introduce targets-all-kernels.yaml for optimized kernel inventory-ing
  Upgrade Allwinner CURRENT kernels to latest
  Generic bootscript template
  Enable bootscript templating
  `Automatic` board configs status synchronise
  BeagleBoard and Description Updates
  ti: configs: family: k3: Update vendor-edge to pull latest TI PSDK tag
  ti: configs: family: k3: Update to bootable Processor SDK release tag
  ti: configs: family: k3: Add upstream edge branch
  ti: configs: family: k3: Change current/edge to vendor/vendor-edge
  sm8250 current: Add support to load QUP SE Firmware via Linux subsystem
  `Automatic` board configs status synchronise
  extensions: gxlimg: Update repo URL
  nanopi-m6: drop vendor uboot
  nanopi-r6s: remove old legacy uboot files && update mainline uboot
  sm8250 current: Select all USB CAN adapters under the CAN USB interfaces menu as M
  sm8250 current: Select all USB network adapters under the USB_NET_DRIVERS menu as M
  tools: Bump `BATCAT_VERSION` from 0.25.0 to 0.26.0
  `Automatic` board configs status synchronise
  Add Ubuntu 25.10 / 26.04 questing and resolute as csc build target, demote Bookworm to csc
  Related to armbian/documentation#842, update extensions/gen-sample-extension-docs.sh to reference the opt-out docs for hooks
  rockchip: rk3576: Fix serial console to use UART0 (ttyS0) (armbian#8936)
  Drop patches that has been upstreamed - rockchip and sm8550
  orangepi5: drop vendor uboot
  MOTD: deterministic spacing, tidy and compact output
  Bugfix: quotes were downloading to wrong location
  maint: cleanup board config files (armbian#8929)
  Use next patch version when using main action script
  Helios64: workaround fancontrol /dev restriction vs Helios64 udev /dev symlinks
  Add type of bootable fs for ODroid-N2
  Preserve timestamps when copying log files
  Rockchip64: enable Qcom ath12 (wifi 7) support
  UFS: Fix CI behavior (armbian#8924)
  UFS: Fix ci config generation (armbian#8923)
  First login: create docker group and add normal user to it (armbian#8920)
  Framework: copy user provided first boot config at build time
  `Automatic` board configs status synchronise
  k3-beagle: Add config for BeagleBoard.org Linux and U-Boot
  k3: Factor out all K3 common configuration into k3_common.inc
  k3: Use CORESDK_TAG for setting ATFBRANCH
  beagley-ai: Switch current branch to 6.12 Beagle kernel
  ...

Signed-off-by: Jonas Wood <[email protected]>
jonaswood01 added a commit to TexasInstruments/armbian-build that referenced this pull request Nov 25, 2025
* live_main_upstream/main: (227 commits)
  rockchip64: rewrite patches
  rockchip64: remove upstreamed fixes
  Change mainline to rc7, manually fix meson64 patch
  `Automatic` board configs status synchronise
  KERNEL_TEST_TARGET is just override. We won't both targets, so we have both.
  rk3576: nanopi-r76s: add mainline u-boot and fix USB3.0 host (armbian#8997)
  Rock-5B-Plus: Use upstream device-tree name
  Radxa E54c: change board support status
  `Automatic` board configs status synchronise
  `Automatic` board configs status synchronise
  build(deps): bump tj-actions/changed-files
  bananapi-r4 bpi-r4 board config - no video output
  build(deps): bump actions/checkout from 5 to 6
  Radxa Rock 2A and F: promote boards to standard support
  config: drop questing and resolute symlinks for package definitions
  Drop Thunderbolt in desktop packages, but enable in minimal, arch amd64 only
  Update radxa-e52c.conf
  boards / Helios4: reorder some lines in the config file
  boards / Helios4: Fix: libfdt fdt_path_offset() returned FDT_ERR_NOTFOUND
  boards / Helios4: fix 0002 patch after bump U-Boot v2025.10
  boards / Helios4: rebase previous u-boot patchset to v2025.10
  boards / Helios4: reenable Armbian patchset
  boards / Helios4: drop obsolete patches and those not applicable to helios4
  boards / Helios4: rename some patches in preparation for rebase
  boards / Helios4: enable SATA u-boot artifact
  boards / Helios4: switch U-Boot to mainline 2025.10
  radxa-rock-4d: Move to standard support (armbian#8981)
  Sync support status to match with /download
  Rock5B+: Udev rule for Radxa Display 8HD
  sunxi64: Enable KVM virtualization support for current kernel
  Discord x86: add external sources
  `Automatic` board configs status synchronise
  rock-5b: u-boot: edge: bump to v2026.01-rc2; use mainline ATF; bootorder; fancy u-boot
  Desktop (mainly Gnome ) - add additional packages, small fixes and improvements
  lib / main-config.sh: enable APA extension for questing and resolute builds. Closes: armbian#8966
  ti: configs: boards: Add BOOT_SOC variable
  ti: configs: boards: Add AM62L EVM (tmds62levm) board support
  Rock5B-Plus and Rock5T: Use upstream u-boot (armbian#8918)
  youyeetoo-r1: enable OUT1/OUT2 switches for es8323 headphone output on vendor kernel (armbian#8963)
  Fixing updating submodule
  Powere management - make it conditional, enable on UEFI targets, else disabled
  `Automatic` board configs status synchronise
  uefi: x86: current (6.12) and edge (6.18): add Apple T2 patches
  Add watchdog package into image, hardware watchdog works
  Allow Helios64 to do separate /boot partition only if root placed on fs than unbootable for device
  u-boot: prepare v2026.01 patch directory
  Move gxlimg to board level and some clean
  rockchip: cleanup and rewrite patches for `edge`
  rockchip: cleanup and rewrite patches for `current`
  nanopct6(-lts): u-boot: bump to v2026.01-rc2
  odroidhc4: u-boot: bump to v2026.01-rc2
  cm3588-nas: u-boot: bump to v2026.01-rc2, enable BTRFS support
  cm3588-nas: u-boot: fix `led-1` to `green` for preboot blinking
  khadas-vim3l: u-boot: bump to v2026.01-rc2, enable BTRFS and more
  nanopi-r6c: u-boot: bump to v2026.01-rc2; enable BTRFS support
  uefi-loong64-6.18: rewrite patches against v6.18-rc6, no changes
  mainline-kernel: bump 6.18 to v6.18-rc6
  jsoninfo: introduce `inventory-artifacts` cli
  artifact-kernel: include LINUXCONFIG and ARMBIAN_KERNEL_DEB_NAME in artifact_input_variables
  config/templates: introduce targets-all-kernels.yaml for optimized kernel inventory-ing
  Upgrade Allwinner CURRENT kernels to latest
  Generic bootscript template
  Enable bootscript templating
  `Automatic` board configs status synchronise
  BeagleBoard and Description Updates
  ti: configs: family: k3: Update vendor-edge to pull latest TI PSDK tag
  ti: configs: family: k3: Update to bootable Processor SDK release tag
  ti: configs: family: k3: Add upstream edge branch
  ti: configs: family: k3: Change current/edge to vendor/vendor-edge
  sm8250 current: Add support to load QUP SE Firmware via Linux subsystem
  `Automatic` board configs status synchronise
  extensions: gxlimg: Update repo URL
  nanopi-m6: drop vendor uboot
  nanopi-r6s: remove old legacy uboot files && update mainline uboot
  sm8250 current: Select all USB CAN adapters under the CAN USB interfaces menu as M
  sm8250 current: Select all USB network adapters under the USB_NET_DRIVERS menu as M
  tools: Bump `BATCAT_VERSION` from 0.25.0 to 0.26.0
  `Automatic` board configs status synchronise
  Add Ubuntu 25.10 / 26.04 questing and resolute as csc build target, demote Bookworm to csc
  Related to armbian/documentation#842, update extensions/gen-sample-extension-docs.sh to reference the opt-out docs for hooks
  rockchip: rk3576: Fix serial console to use UART0 (ttyS0) (armbian#8936)
  Drop patches that has been upstreamed - rockchip and sm8550
  orangepi5: drop vendor uboot
  MOTD: deterministic spacing, tidy and compact output
  Bugfix: quotes were downloading to wrong location
  maint: cleanup board config files (armbian#8929)
  Use next patch version when using main action script
  Helios64: workaround fancontrol /dev restriction vs Helios64 udev /dev symlinks
  Add type of bootable fs for ODroid-N2
  Preserve timestamps when copying log files
  Rockchip64: enable Qcom ath12 (wifi 7) support
  UFS: Fix CI behavior (armbian#8924)
  UFS: Fix ci config generation (armbian#8923)
  First login: create docker group and add normal user to it (armbian#8920)
  Framework: copy user provided first boot config at build time
  `Automatic` board configs status synchronise
  k3-beagle: Add config for BeagleBoard.org Linux and U-Boot
  k3: Factor out all K3 common configuration into k3_common.inc
  k3: Use CORESDK_TAG for setting ATFBRANCH
  beagley-ai: Switch current branch to 6.12 Beagle kernel
  ...

Signed-off-by: Jonas Wood <[email protected]>
@oryjkov
Copy link

oryjkov commented Nov 27, 2025

I noticed that mainline uboot broke the ability to boot from a USB drive. It fails to detect a USB disk when scanning the bus. radxa's uboot works (albeit only on one of the 2 blue USB-A connectors). I haven't dug in deeper yet.

I'm relying on USB boot as a backup for when sd card dies.

I haven't tested NVMe boot.

@HeyMeco
Copy link
Collaborator Author

HeyMeco commented Nov 27, 2025

I'm relying on USB boot as a backup for when sd card dies.

I only validated nvme and sd / emmc. For usb boot we usually recommend the edk2-rk3588 project as an alternative to uboot. You’re also not forced to use the new uboot and can keep the radxa one on spi and it will continue to work with armbians boot script.

It's just part of a broader move to deprecate the downstream uboot as that isn’t compatible with modern build hosts

@oryjkov
Copy link

oryjkov commented Nov 27, 2025

Thanks - yes, I did go back to radxa's uboot for now. I previously tried edk2-rk3588, but something did not quite work for me. Perhaps I'll revisit this.

While I have your attention, do you know if there is a good reason why mainline uboot is not using UHS sd card reads? Not a big deal, but could cut a few seconds from boot time.

Thanks again

@HeyMeco
Copy link
Collaborator Author

HeyMeco commented Nov 27, 2025

Not a big deal, but could cut a few seconds from boot time.

Most likely that the upstream driver doesn’t support faster speeds. I didn’t notice a slow down on my devices but I also didn’t measure boot time. I can keep this in mind for the future and sorry for the inconvenience.

@oryjkov
Copy link

oryjkov commented Nov 27, 2025 via email

@oryjkov
Copy link

oryjkov commented Nov 28, 2025

I noticed that USB was not powered in the upstream u-boot. Turns out the regulator definition is just missing the pinctrl ( Radxa uboot has this definition). The following diff works for me to power on usb and boot from a flash drive.

Would be nice to have this upstreamed

--- a/dts/upstream/src/arm64/rockchip/rk3588-rock-5b.dtsi
+++ b/dts/upstream/src/arm64/rockchip/rk3588-rock-5b.dtsi
@@ -136,6 +136,10 @@
                regulator-always-on;
                regulator-min-microvolt = <5000000>;
                regulator-max-microvolt = <5000000>;
+               enable-active-high;
+               gpios = <&gpio1 RK_PA1 GPIO_ACTIVE_HIGH>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&vcc5v0_host_en>;
                vin-supply = <&vcc5v0_sys>;
        };

@@ -481,6 +485,12 @@
                        rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
                };
        };
+
+       usb {
+               vcc5v0_host_en: vcc5v0-host-en {
+                       rockchip,pins = <1 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
 };

 &pwm1 {

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

Labels

11 Milestone: Fourth 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.

4 participants