Skip to content

Conversation

@SuperKali
Copy link
Member

@SuperKali SuperKali commented Nov 26, 2025

Description

Add initial support for the Youyeetoo YY3588 board:

  • RK3588 octa-core (4x Cortex-A76 + 4x Cortex-A55)
  • 2.5GbE (RTL8125 PCIe) + 1GbE (GMAC1 RGMII)
  • PCIe 3.0 x4 slot
  • HDMI 2.1 output + HDMI input
  • USB 3.0 Type-C with DP Alt mode
  • M.2 WiFi slot
  • eMMC + SD card
  • SATA connector
  • 40-pin GPIO header

This PR adds:

  • Board config file (youyeetoo-yy3588.csc)
  • U-Boot defconfig
  • U-Boot device tree

How Has This Been Tested?

  • U-Boot boots successfully
  • Linux kernel boots with vendor 6.1 branch

Checklist:

  • 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

  • New Features
    • Added support for Youyeetoo YY3588 (RK3588) board with full desktop environment support
    • Configured audio device naming for HDMI and DisplayPort outputs
    • Enabled SPI boot support and multiple connectivity options (USB, PCIe)

✏️ Tip: You can customize this high-level summary in your review settings.

Add initial support for the Youyeetoo YY3588 RK3588 board:
- Board config file (youyeetoo-yy3588.csc)
- U-Boot defconfig
- U-Boot device tree
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 26, 2025

Walkthrough

This PR introduces support for the Youyeetoo YY3588 board (RK3588-based SoC). It adds a board configuration file defining board metadata and audio naming rules, a U-Boot defconfig specifying bootloader options, and a device tree source file describing hardware components including regulators, PCIe, USB, and storage configurations.

Changes

Cohort / File(s) Summary
Board Configuration
config/boards/youyeetoo-yy3588.csc
New board configuration with metadata (BOARD_NAME, BOARDFAMILY, BOOTCONFIG, etc.) and post-family tweaks function to generate udev naming rules for HDMI and DP audio paths.
U-Boot Bootloader Configuration
patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig
New U-Boot defconfig enabling ARM, Rockchip RK3588 features, SPL, FIT images, boot options, device tree support, MMC/SD/SPI storage, USB/PCIe, and SOC-specific subsystems.
Device Tree Hardware Description
patch/u-boot/legacy/u-boot-radxa-rk35xx/dt/rk3588-youyeetoo-yy3588.dts
New device tree source defining regulators, LEDs, ADC keys, PCIe controllers, USB subsystem with Type-C support, PHY configurations, pinctrl settings, and GPIO banks for the RK3588 board.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • Device tree file contains comprehensive hardware descriptions requiring verification of regulator chains, PCIe/USB port configurations, and pinctrl assignments
  • Defconfig options should be cross-checked against similar RK3588 variants for consistency
  • Udev naming rules function may benefit from validation against existing audio naming patterns

Possibly related PRs

Suggested labels

Ready to merge

Suggested reviewers

  • prahal
  • rpardini
  • krachlatte
  • ginkage
  • SuperKali
  • igorpecovnik
  • catalinii
  • Tonymac32

Poem

🐰 A new board hops into our garden today,
Youyeetoo YY3588 comes out to play!
With regulators tuned and USB aligned,
Audio rules named, boot configs refined,
The rockchip-rk3588 family grows strong—
Another SBC joins where it belongs! 🎉

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: adding support for the Youyeetoo YY3588 board, which is the primary objective of the pull request.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 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 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 26, 2025
@github-actions
Copy link
Contributor

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

@github-actions github-actions bot added Ready to merge Reviewed, tested and ready for merge and removed Needs review Seeking for review labels Nov 26, 2025
@chainsx
Copy link
Member

chainsx commented Nov 26, 2025

Depends on: armbian/linux-rockchip#433

@SuperKali
Copy link
Member Author

Depends on: armbian/linux-rockchip#433

Yes something broken with CI, still waiting the OK from CI..

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

🧹 Nitpick comments (2)
patch/u-boot/legacy/u-boot-radxa-rk35xx/dt/rk3588-youyeetoo-yy3588.dts (2)

38-46: Consider adding vin-supply for vcc5v0_host.

The vcc5v0_host regulator lacks a vin-supply property. If this rail is derived from another regulator (such as vcc12v_dcin or vcc5v0_sys), the supply chain should be documented. If it's truly an independent 5V input, the current configuration is acceptable.


48-57: LED configured as regulator-fixed is unconventional.

The system LED is defined with compatible = "regulator-fixed" rather than the standard gpio-leds binding. While this approach can work for GPIO-controlled LEDs, it's semantically unconventional. If this pattern is required by the vendor U-Boot implementation or serves a specific power sequencing purpose, the current implementation is acceptable.

📜 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 6aa7828 and 5701ead.

📒 Files selected for processing (3)
  • config/boards/youyeetoo-yy3588.csc (1 hunks)
  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig (1 hunks)
  • patch/u-boot/legacy/u-boot-radxa-rk35xx/dt/rk3588-youyeetoo-yy3588.dts (1 hunks)
🧰 Additional context used
🧠 Learnings (25)
📓 Common learnings
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: 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: 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: igorpecovnik
Repo: armbian/build PR: 8789
File: config/kernel/linux-sunxi64-edge.config:839-839
Timestamp: 2025-10-22T07:51:53.015Z
Learning: In Armbian's wireless driver configuration, CONFIG_RK_WIFI_DEVICE_* options are Rockchip-specific device registration settings, while CONFIG_WLAN_UWE* are the actual cross-platform driver modules for UWE5622 wireless chips. The UWE5622 chip (manufactured by Unisoc/Spreadtrum) is used on multiple Allwinner boards including Orange Pi Zero 2/2W/3 and Orange Pi 3 LTS, so CONFIG_WLAN_UWE5621/5622 along with Unisoc infrastructure options (CONFIG_SPARD_WLAN_SUPPORT, CONFIG_SC23XX, CONFIG_UNISOC_WIFI_PS, CONFIG_WCN_BSP_DRIVER_BUILDIN) are correct in sunxi64 kernel configs.
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: 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.
📚 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/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig
  • config/boards/youyeetoo-yy3588.csc
📚 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/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig
📚 Learning: 2025-11-20T18:20:11.985Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8968
File: patch/u-boot/u-boot-sunxi/arm64-dts-sun50i-h6-orangepi.dtsi-Rollback-r_rsb-to-r_i2c.patch:36-36
Timestamp: 2025-11-20T18:20:11.985Z
Learning: The rewrite-patches tool (REWRITE_PATCHES=yes) in the Armbian build system can inadvertently introduce semantic changes when the u-boot/kernel git base revision differs from expected state. The tool applies patches, commits them, and re-exports them using git format-patch, which can cause the re-exported patch to reflect the base revision's state rather than preserving the original patch intent. This is particularly problematic for device tree changes like interrupt specifications. The tool currently lacks validation mechanisms to detect such semantic drift, and affected patches must be manually corrected after rewriting.

Applied to files:

  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig
📚 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/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig
  • config/boards/youyeetoo-yy3588.csc
📚 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/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig
📚 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/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig
📚 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/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig
📚 Learning: 2025-10-22T07:51:53.015Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8789
File: config/kernel/linux-sunxi64-edge.config:839-839
Timestamp: 2025-10-22T07:51:53.015Z
Learning: In Armbian's wireless driver configuration, CONFIG_RK_WIFI_DEVICE_* options are Rockchip-specific device registration settings, while CONFIG_WLAN_UWE* are the actual cross-platform driver modules for UWE5622 wireless chips. The UWE5622 chip (manufactured by Unisoc/Spreadtrum) is used on multiple Allwinner boards including Orange Pi Zero 2/2W/3 and Orange Pi 3 LTS, so CONFIG_WLAN_UWE5621/5622 along with Unisoc infrastructure options (CONFIG_SPARD_WLAN_SUPPORT, CONFIG_SC23XX, CONFIG_UNISOC_WIFI_PS, CONFIG_WCN_BSP_DRIVER_BUILDIN) are correct in sunxi64 kernel configs.

Applied to files:

  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig
📚 Learning: 2025-08-30T04:13:16.457Z
Learnt from: tabrisnet
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-08-30T04:13:16.457Z
Learning: Armbian kernel configuration files like linux-filogic-current.config are autogenerated overlays on top of arch defconfig. Comments added manually will be lost during future updates by maintainers, and explicit "CONFIG_OPTION is not set" statements aren't needed for mutually exclusive options since these are overlay configs that only specify changes from the base configuration.

Applied to files:

  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig
📚 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:

  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig
  • config/boards/youyeetoo-yy3588.csc
📚 Learning: 2025-07-27T15:53:30.629Z
Learnt from: pyavitz
Repo: armbian/build PR: 8421
File: config/kernel/linux-sunxi64-edge.config:805-825
Timestamp: 2025-07-27T15:53:30.629Z
Learning: In the Armbian build system, kernel configurations prioritize broad hardware compatibility over optimization concerns. Even when including numerous legacy/obsolete drivers causes technical issues like increased initramfs size and slower enumeration, the project philosophy is to "appease the masses" by ensuring maximum device compatibility rather than optimizing for specific use cases.

Applied to files:

  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig
📚 Learning: 2025-10-22T07:56:19.424Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8789
File: config/kernel/linux-sunxi64-edge.config:839-839
Timestamp: 2025-10-22T07:56:19.424Z
Learning: In Linux kernel configuration, some `=y` (builtin) options are infrastructure or feature flags that enable subsystems or features for modular drivers, rather than directly compiling code into the kernel. For example, in Armbian wireless configs, options like CONFIG_SPARD_WLAN_SUPPORT=y, CONFIG_SC23XX=y, CONFIG_WCN_BSP_DRIVER_BUILDIN=y, CONFIG_UNISOC_WIFI_PS=y are module infrastructure/feature enablers, while the actual drivers (CONFIG_WLAN_UWE5621=m, CONFIG_WLAN_UWE5622=m) remain as loadable modules. These infrastructure options don't cause kernel bloat.

Applied to files:

  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig
📚 Learning: 2025-08-30T06:56:33.372Z
Learnt from: tabrisnet
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-08-30T06:56:33.372Z
Learning: In Armbian kernel configuration, the BTRFS configuration logic preserves existing settings (whether built-in 'y' or module 'm') and only sets BTRFS_FS to module when it was previously disabled or not set, achieving "allow but not require" flexibility while maintaining backward compatibility.

Applied to files:

  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig
📚 Learning: 2025-08-11T22:00:13.411Z
Learnt from: rafayahmed317
Repo: armbian/build PR: 8484
File: config/kernel/linux-rk35xx-vendor.config:904-906
Timestamp: 2025-08-11T22:00:13.411Z
Learning: In the linux-rk35xx-vendor kernel, the LTE driver options (CONFIG_LTE, CONFIG_LTE_RM310, CONFIG_LTE_EM05) are defined as boolean in drivers/net/lte/Kconfig and cannot be built as modules - they must be either built-in (=y) or disabled.

Applied to files:

  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig
📚 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:

  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig
  • config/boards/youyeetoo-yy3588.csc
📚 Learning: 2025-10-26T12:56:29.185Z
Learnt from: rpardini
Repo: armbian/build PR: 8820
File: config/sources/families/include/meson64_common.inc:51-53
Timestamp: 2025-10-26T12:56:29.185Z
Learning: In the Armbian build framework, scripts/config correctly handles kernel configuration option names both with and without the CONFIG_ prefix, so opts_m+=("CONFIG_RTL8822CS") and opts_m+=("RTL8822CS") are both valid and will work correctly.

Applied to files:

  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig
📚 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 (regardless of file extension), the standard pattern is to have only one line as a comment describing the board hardware specifications. This single-line description typically includes the SoC model, core count, RAM options, and key features like connectivity options, storage interfaces, and special features. The file extensions indicate board support status: .conf (standard support), .csc (community supported), .eos (end of support), .tvb (tvbox), .wip (work in progress).

Applied to files:

  • config/boards/youyeetoo-yy3588.csc
📚 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:

  • config/boards/youyeetoo-yy3588.csc
📚 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/youyeetoo-yy3588.csc
📚 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/youyeetoo-yy3588.csc
📚 Learning: 2025-07-17T04:12:33.125Z
Learnt from: pyavitz
Repo: armbian/build PR: 8388
File: config/boards/kickpik2b.conf:1-14
Timestamp: 2025-07-17T04:12:33.125Z
Learning: In the Armbian build system, board configuration files (*.conf) follow a project standard of not including shebang lines, even though they contain bash code and are sourced by the build system. This is an established Armbian convention that individual contributors are expected to follow, and changes to this standard would require broader project maintainer approval.

Applied to files:

  • config/boards/youyeetoo-yy3588.csc
📚 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/youyeetoo-yy3588.csc
📚 Learning: 2025-09-12T21:44:09.061Z
Learnt from: Grippy98
Repo: armbian/build PR: 8624
File: config/boards/sk-am62p.conf:8-8
Timestamp: 2025-09-12T21:44:09.061Z
Learning: For TI K3 family boards in Armbian, BOOT_FDT_FILE uses .dts extension (not .dtb) as the standard convention. The build system handles this correctly by automatically compiling .dts to .dtb during kernel build and using the BOOT_FDT_FILE value directly in bootloader configurations.

Applied to files:

  • config/boards/youyeetoo-yy3588.csc
📚 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:

  • config/boards/youyeetoo-yy3588.csc
  • patch/u-boot/legacy/u-boot-radxa-rk35xx/dt/rk3588-youyeetoo-yy3588.dts
🔇 Additional comments (12)
patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/youyeetoo-yy3588-rk3588_defconfig (2)

21-25: Configuration approach looks correct.

Using CONFIG_TARGET_EVB_RK3588 with a custom device tree (rk3588-youyeetoo-yy3588) is standard practice for RK3588 boards that don't require custom U-Boot board code. The device tree filename correctly matches the DTS file being added.


1-234: Comprehensive defconfig aligns with board hardware.

The defconfig enables appropriate subsystems matching the YY3588 hardware specifications: RK3588 SoC, PCIe (2.0 and 3.0), USB 3.0, SATA, dual network controllers, HDMI/DP video output, eMMC/SD storage, and cryptographic acceleration. The Android boot flow and fastboot configurations are standard for RK3588 boards.

config/boards/youyeetoo-yy3588.csc (3)

16-27: Audio naming function implementation looks correct.

The function properly creates udev rules to assign user-friendly names to audio devices (HDMI0, HDMI1, HDMI-In, DP0, ES8323). The file writing pattern (using > for the first line, then >> for subsequent lines) is correct. The $SDCARD variable is always set by the Armbian framework, so no guard check is needed.


20-24: Cannot verify platform device names without access to vendor kernel 6.1 device tree definitions.

The original verification request requires examining vendor kernel 6.1 device tree files to confirm that the platform device names (hdmi0-sound, hdmi1-sound, hdmiin-sound, dp0-sound, es8323-sound) match the actual platform sound devices created by the kernel.

While web research shows that mainline RK3588 uses similar audio device naming (hdmi0_sound, hdmi1_sound via simple-audio-card bindings) and ES8323 is a standard codec on RK3588 boards, the vendor kernel 6.1 may define these platform devices differently. The repository could not be cloned to examine the actual vendor kernel patches in patch/kernel/rk35xx-vendor-6.1/.

To properly verify this review comment, access to the vendor kernel device tree sources for the YY3588 board is needed. This should be validated by:

  • Checking vendor kernel patches for audio device tree node definitions
  • Confirming platform device names match the udev rule references
  • Verifying all five audio paths (HDMI0, HDMI1, HDMI-In, DP0, ES8323) are defined

3-3: Based on my research, I've found clear evidence that Armbian has migrated RK3588 boards to use the unified rk35xx family rather than the older rockchip-rk3588 family. Multiple sources from 2024-2025 confirm this migration, and the current standard is to set BOARDFAMILY="rk35xx" for RK3588 boards.

Here is the rewritten review comment:


Update BOARDFAMILY from "rockchip-rk3588" to "rk35xx".

Armbian has migrated RK3588 boards into the unified rk35xx family. Update line 3 to use BOARDFAMILY="rk35xx" to align with current Armbian standards, consistent with other RK35xx series boards like rk3576.

⛔ Skipped due to learnings
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: 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.
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: 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.
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 (regardless of file extension), the standard pattern is to have only one line as a comment describing the board hardware specifications. This single-line description typically includes the SoC model, core count, RAM options, and key features like connectivity options, storage interfaces, and special features. The file extensions indicate board support status: .conf (standard support), .csc (community supported), .eos (end of support), .tvb (tvbox), .wip (work in progress).
Learnt from: tabrisnet
Repo: armbian/build PR: 8661
File: lib/functions/compilation/armbian-kernel.sh:194-199
Timestamp: 2025-09-25T18:37:00.330Z
Learning: In PR armbian/build#8661, line 235 of lib/functions/compilation/armbian-kernel.sh already contains the corrected comment "BPF link support for netfilter hooks" for NETFILTER_BPF_LINK, not the misleading "BPF_SYSCALL" comment that was flagged during review.
Learnt from: tabrisnet
Repo: armbian/build PR: 8661
File: lib/functions/compilation/armbian-kernel.sh:194-199
Timestamp: 2025-09-25T18:37:00.330Z
Learning: In PR armbian/build#8661, line 235 of lib/functions/compilation/armbian-kernel.sh already contains the corrected comment "BPF link support for netfilter hooks" for NETFILTER_BPF_LINK, not the misleading "BPF_SYSCALL" comment that was flagged during review.
Learnt from: glneo
Repo: armbian/build PR: 8913
File: config/sources/families/include/k3_common.inc:57-60
Timestamp: 2025-11-11T20:56:20.303Z
Learning: In config/sources/families/include/k3_common.inc, the OP-TEE build command at line 59 should be updated in a future PR to explicitly set CROSS_COMPILE64=aarch64-linux-gnu- and CROSS_COMPILE32=arm-linux-gnueabihf- instead of relying on OP-TEE's internal defaults, for better clarity and maintainability. User glneo agreed to address this in a separate PR.
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/
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.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:64-70
Timestamp: 2025-09-14T06:10:25.610Z
Learning: In the Armbian build system, rk32xx and rk33xx Rockchip SoCs no longer have BSP-based (vendor) kernel branches. The rk3506 is the first 32-bit Rockchip SoC to use the vendor branch in the current codebase.
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.
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.
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.
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.
patch/u-boot/legacy/u-boot-radxa-rk35xx/dt/rk3588-youyeetoo-yy3588.dts (7)

1-11: LGTM!

File header, license, and includes are properly structured. The dual GPL-2.0+/MIT license is standard for device tree files, and the necessary headers for input keys and USB Power Delivery are correctly included.


13-25: LGTM!

Root node with model and compatible strings is correctly formatted. The 12V DC input regulator is properly configured as a fixed regulator with appropriate voltage levels and boot flags.


59-73: LGTM!

The ADC-based volume key configuration is properly structured with appropriate voltage thresholds and key code binding. The pre-reloc flags enable early boot key detection for recovery or fastboot mode entry.


75-155: LGTM!

PCIe subsystem configuration is well-structured with separate 3.3V power rails for different slots, appropriate reset GPIO assignments, and clear comments identifying slot purposes (WiFi, RTL8125 Ethernet, PCIe 3.0 x4). The power supply chain from 12V DC input is correctly configured.


99-110: LGTM!

USB Type-C subsystem is properly configured with the FUSB302 controller, appropriate power delivery profiles (5V@3A fixed plus variable 5-12V@5A), and correct role configuration (dual data-role, sink power-role). The GPIO-controlled VBUS supply and interrupt handling are correctly defined.

Also applies to: 157-187


189-310: LGTM!

USB subsystem configuration is comprehensive and correct. All USB2 PHYs, host controllers (EHCI/OHCI), and DWC3 controllers are properly enabled with appropriate mode assignments (OTG vs. host). The host PHY power supplies and pinctrl configurations for Type-C power enable and interrupt detection are correctly defined.


312-355: LGTM!

Infrastructure nodes (I2C, GRF, IOC, CRU, pinctrl) and all GPIO banks are correctly enabled with pre-reloc flags for early boot support. This configuration is standard for RK3588 boards.

@SuperKali SuperKali merged commit 7dbd7ca into armbian:main Nov 26, 2025
1 check passed
@SuperKali SuperKali deleted the yy3588-support branch November 26, 2025 14:22
@coderabbitai coderabbitai bot mentioned this pull request Nov 30, 2025
7 tasks
jonaswood01 added a commit to TexasInstruments/armbian-build that referenced this pull request Dec 6, 2025
* live_main_upstream/main: (24 commits)
  framework - enable NTSYNC as a module on most kernels
  Add compilation of `resolve_btfids` to the kernel headers postinst script
  Make pahole as hard dependency on kernel headers
  ZFS requires package pahole in order to compile zfs module with success
  Rock-4D: Enable Wi-Fi & Bluetooth (armbian#9029)
  rockchip64-6.18: Enable the NPU on Turing RK1
  config/kernel: (many) change CONFIG_DUMMY=y to =m
  ti: configs: Update K3 kernel configs (armbian#9019)
  `Automatic` board configs status synchronise
  fix missing bracket
  meson64: fix broken patch and overall rewrite patches
  Genio: Collabora Kernel config post rewrite
  Genio: Update Linux Kernel config
  build(deps): bump tj-actions/changed-files
  bump VERSION
  edge: bump to stable and rewrite patches
  add new board radxa-cm5-io
  ODroid-N2: enable btrfs support in u-boot
  ODroid-N2: switch uBoot v2022.10 to v2026.01 reapply patches
  Helios4: enable uboot-btrfs extension
  extensions: add uboot-btrfs extension to add btrfs support in u-boot
  `Automatic` board configs status synchronise
  board: youyeetoo-r1-v3: fix boot order to prioritize SD card over eMMC (armbian#9006)
  board: add Youyeetoo YY3588 support (armbian#9003)

Signed-off-by: Jonas Wood <[email protected]>
jonaswood01 added a commit to TexasInstruments/armbian-build that referenced this pull request Dec 6, 2025
* live_main_upstream/main: (24 commits)
  framework - enable NTSYNC as a module on most kernels
  Add compilation of `resolve_btfids` to the kernel headers postinst script
  Make pahole as hard dependency on kernel headers
  ZFS requires package pahole in order to compile zfs module with success
  Rock-4D: Enable Wi-Fi & Bluetooth (armbian#9029)
  rockchip64-6.18: Enable the NPU on Turing RK1
  config/kernel: (many) change CONFIG_DUMMY=y to =m
  ti: configs: Update K3 kernel configs (armbian#9019)
  `Automatic` board configs status synchronise
  fix missing bracket
  meson64: fix broken patch and overall rewrite patches
  Genio: Collabora Kernel config post rewrite
  Genio: Update Linux Kernel config
  build(deps): bump tj-actions/changed-files
  bump VERSION
  edge: bump to stable and rewrite patches
  add new board radxa-cm5-io
  ODroid-N2: enable btrfs support in u-boot
  ODroid-N2: switch uBoot v2022.10 to v2026.01 reapply patches
  Helios4: enable uboot-btrfs extension
  extensions: add uboot-btrfs extension to add btrfs support in u-boot
  `Automatic` board configs status synchronise
  board: youyeetoo-r1-v3: fix boot order to prioritize SD card over eMMC (armbian#9006)
  board: add Youyeetoo YY3588 support (armbian#9003)

Signed-off-by: Jonas Wood <[email protected]>
jonaswood01 added a commit to TexasInstruments/armbian-build that referenced this pull request Dec 6, 2025
* live_main_upstream/main: (24 commits)
  framework - enable NTSYNC as a module on most kernels
  Add compilation of `resolve_btfids` to the kernel headers postinst script
  Make pahole as hard dependency on kernel headers
  ZFS requires package pahole in order to compile zfs module with success
  Rock-4D: Enable Wi-Fi & Bluetooth (armbian#9029)
  rockchip64-6.18: Enable the NPU on Turing RK1
  config/kernel: (many) change CONFIG_DUMMY=y to =m
  ti: configs: Update K3 kernel configs (armbian#9019)
  `Automatic` board configs status synchronise
  fix missing bracket
  meson64: fix broken patch and overall rewrite patches
  Genio: Collabora Kernel config post rewrite
  Genio: Update Linux Kernel config
  build(deps): bump tj-actions/changed-files
  bump VERSION
  edge: bump to stable and rewrite patches
  add new board radxa-cm5-io
  ODroid-N2: enable btrfs support in u-boot
  ODroid-N2: switch uBoot v2022.10 to v2026.01 reapply patches
  Helios4: enable uboot-btrfs extension
  extensions: add uboot-btrfs extension to add btrfs support in u-boot
  `Automatic` board configs status synchronise
  board: youyeetoo-r1-v3: fix boot order to prioritize SD card over eMMC (armbian#9006)
  board: add Youyeetoo YY3588 support (armbian#9003)

Signed-off-by: Jonas Wood <[email protected]>
jonaswood01 added a commit to TexasInstruments/armbian-build that referenced this pull request Dec 6, 2025
* live_main_upstream/main: (24 commits)
  framework - enable NTSYNC as a module on most kernels
  Add compilation of `resolve_btfids` to the kernel headers postinst script
  Make pahole as hard dependency on kernel headers
  ZFS requires package pahole in order to compile zfs module with success
  Rock-4D: Enable Wi-Fi & Bluetooth (armbian#9029)
  rockchip64-6.18: Enable the NPU on Turing RK1
  config/kernel: (many) change CONFIG_DUMMY=y to =m
  ti: configs: Update K3 kernel configs (armbian#9019)
  `Automatic` board configs status synchronise
  fix missing bracket
  meson64: fix broken patch and overall rewrite patches
  Genio: Collabora Kernel config post rewrite
  Genio: Update Linux Kernel config
  build(deps): bump tj-actions/changed-files
  bump VERSION
  edge: bump to stable and rewrite patches
  add new board radxa-cm5-io
  ODroid-N2: enable btrfs support in u-boot
  ODroid-N2: switch uBoot v2022.10 to v2026.01 reapply patches
  Helios4: enable uboot-btrfs extension
  extensions: add uboot-btrfs extension to add btrfs support in u-boot
  `Automatic` board configs status synchronise
  board: youyeetoo-r1-v3: fix boot order to prioritize SD card over eMMC (armbian#9006)
  board: add Youyeetoo YY3588 support (armbian#9003)

Signed-off-by: Jonas Wood <[email protected]>
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.

2 participants