-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
mixtile-core3588e: add board with vendor and edge branches (Joshua Riek + fixes) #9119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
📝 WalkthroughWalkthroughAdds full Mixtile Core3588E board support: board configuration hooks to enable mainline U-Boot and patch boot order/environment, a new RK3588 device tree for the kernel, a U-Boot defconfig for the board, and U-Boot device-tree additions. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45–60 minutes Possibly related PRs
Suggested reviewers
Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
🚫 Missing required board assetsThis PR adds new board configuration(s). Required assets must already exist in github/armbian/armbian.github.io.
Missing items
Once the missing files are added (or a PR is opened in armbian/armbian.github.io), re-run this check. |
There was a problem hiding this 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 (1)
config/boards/mixtile-core3588e.csc (1)
93-101: Minor: Duplicate config entry and inconsistent prefix.The
enable_configsarray has a duplicate"CONFIG_CMD_USB_MASS_STORAGE"entry (appears at both the beginning and end of the array). Additionally,"USB_GADGET_DOWNLOAD"is missing theCONFIG_prefix while other entries include it. Whilescripts/confighandles both forms, consistency improves readability.🔎 Suggested cleanup
# UMS, RockUSB, gadget stuff display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable UMS/RockUSB gadget" "info" - declare -a enable_configs=("CONFIG_CMD_USB_MASS_STORAGE" "CONFIG_USB_GADGET" "USB_GADGET_DOWNLOAD" "CONFIG_USB_FUNCTION_ROCKUSB" "CONFIG_USB_FUNCTION_ACM" "CONFIG_CMD_ROCKUSB" "CONFIG_CMD_USB_MASS_STORAGE") + declare -a enable_configs=("CONFIG_USB_GADGET" "CONFIG_USB_GADGET_DOWNLOAD" "CONFIG_USB_FUNCTION_ROCKUSB" "CONFIG_USB_FUNCTION_ACM" "CONFIG_CMD_ROCKUSB" "CONFIG_CMD_USB_MASS_STORAGE") for config in "${enable_configs[@]}"; do run_host_command_logged scripts/config --enable "${config}" done # Auto-enabled by the above, force off... - run_host_command_logged scripts/config --disable USB_FUNCTION_FASTBOOT + run_host_command_logged scripts/config --disable CONFIG_USB_FUNCTION_FASTBOOT
📜 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.
📒 Files selected for processing (5)
config/boards/mixtile-core3588e.cscpatch/kernel/archive/rockchip64-6.18/dt/rk3588-mixtile-core3588e.dtspatch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigpatch/u-boot/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsipatch/u-boot/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dts
🧰 Additional context used
🧠 Learnings (29)
📓 Common learnings
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: 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: 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: 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: 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: 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: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-17T05:09:02.306Z
Learning: In the Armbian build system, kernel patches (e.g., in patch/kernel/archive/sunxi-6.18/patches.armbian/) contain device tree overlays and other code that have existed for years and are maintained/ported across kernel versions. When reviewing PRs that modify these patch files, focus on the actual changes being made (e.g., Makefile fixes, new additions) rather than reviewing the entire existing content within the patch as if it were new code. The patch file contents are existing, stable code unless explicitly modified in the PR diff.
Learnt from: tabrisnet
Repo: armbian/build PR: 9058
File: config/sources/families/spacemit.conf:39-45
Timestamp: 2025-12-12T23:10:00.819Z
Learning: In the Armbian build system, vendor kernel forks can use "vendor-edge" branch naming for bleeding-edge or pre-release vendor kernels, as demonstrated in config/sources/families/k3.conf. The typical vendor branch naming pattern is: "vendor" or "vendor-rt" for stable vendor releases, and "vendor-edge" for bleeding-edge/pre-release vendor versions. The "edge" naming without "vendor-" prefix is reserved for mainline kernel branches.
Learnt from: igorpecovnik
Repo: armbian/build PR: 9087
File: .github/workflows/pr-check-pictures.yml:138-146
Timestamp: 2025-12-16T13:40:07.649Z
Learning: In the Armbian build repository, when introducing new requirements or checks (like the board assets verification workflow), the project prefers an initial educational-only period where violations post helpful PR comments and warnings but don't block merges. This allows contributors to become familiar with new requirements before enforcement is enabled (typically after ~6 months).
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-19T13:56:45.124Z
Learning: When reviewing kernel or u-boot version bump PRs in the Armbian build system, check if patches existed in previous kernel version directories (e.g., sunxi-6.12, sunxi-6.13) before describing them as new features. If a patch and the majority of its contents existed previously with no major functionality changes, focus the review on the actual changes: the version bump itself and patch compatibility adjustments. Don't describe existing patches being ported/maintained across versions as new features or drivers—this is misleading. The patches are existing code being re-aligned to work with the new upstream version.
📚 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/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dtspatch/u-boot/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsipatch/kernel/archive/rockchip64-6.18/dt/rk3588-mixtile-core3588e.dts
📚 Learning: 2025-11-15T14:33:30.654Z
Learnt from: SuperKali
Repo: armbian/build PR: 8936
File: patch/kernel/archive/rockchip64-6.18/dt/rk3576-nanopi-r76s.dts:800-802
Timestamp: 2025-11-15T14:33:30.654Z
Learning: In RK3576 device tree files (like rk3576-nanopi-r76s.dts), the serial0 alias is already defined in the upstream kernel's rk3576.dtsi base file, so board-specific DTS files do not need to redeclare it when enabling &uart0 for serial console.
Applied to files:
patch/u-boot/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dtspatch/u-boot/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsipatch/kernel/archive/rockchip64-6.18/dt/rk3588-mixtile-core3588e.dts
📚 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/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dtsconfig/boards/mixtile-core3588e.cscpatch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigpatch/u-boot/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsi
📚 Learning: 2025-12-17T05:09:02.306Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-17T05:09:02.306Z
Learning: In the Armbian build system, kernel patches (e.g., in patch/kernel/archive/sunxi-6.18/patches.armbian/) contain device tree overlays and other code that have existed for years and are maintained/ported across kernel versions. When reviewing PRs that modify these patch files, focus on the actual changes being made (e.g., Makefile fixes, new additions) rather than reviewing the entire existing content within the patch as if it were new code. The patch file contents are existing, stable code unless explicitly modified in the PR diff.
Applied to files:
patch/u-boot/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dtspatch/u-boot/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsipatch/kernel/archive/rockchip64-6.18/dt/rk3588-mixtile-core3588e.dts
📚 Learning: 2025-12-19T13:56:45.124Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-19T13:56:45.124Z
Learning: When reviewing kernel or u-boot version bump PRs in the Armbian build system, check if patches existed in previous kernel version directories (e.g., sunxi-6.12, sunxi-6.13) before describing them as new features. If a patch and the majority of its contents existed previously with no major functionality changes, focus the review on the actual changes: the version bump itself and patch compatibility adjustments. Don't describe existing patches being ported/maintained across versions as new features or drivers—this is misleading. The patches are existing code being re-aligned to work with the new upstream version.
Applied to files:
patch/u-boot/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dtspatch/u-boot/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsi
📚 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/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dtspatch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigpatch/kernel/archive/rockchip64-6.18/dt/rk3588-mixtile-core3588e.dts
📚 Learning: 2025-12-13T11:00:33.143Z
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/kernel/archive/spacemit-6.6/dt/lcd_tc358762xbg_dpi_800x480.dtsi:3-61
Timestamp: 2025-12-13T11:00:33.143Z
Learning: On the SpacemiT MusePi Pro board with spacemit-6.6 kernel, LCD/DSI support is disabled in k1-musepi-pro.dts because enabling it causes the unit to lock up during boot. The lcd_tc358762xbg_dpi_800x480.dtsi file exists but DSI remains disabled at the controller level.
Applied to files:
patch/u-boot/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dts
📚 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/mixtile-core3588e.cscpatch/u-boot/v2026.01/defconfig/mixtile-core3588e-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:
config/boards/mixtile-core3588e.cscpatch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigpatch/u-boot/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsi
📚 Learning: 2025-12-13T11:39:08.046Z
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:28-67
Timestamp: 2025-12-13T11:39:08.046Z
Learning: In the Armbian build system for SpacemiT U-Boot patches (patch/u-boot/legacy/u-boot-spacemit-k1/), alignment with mainline U-Boot behavior is prioritized. For example, in boot mode handling, leaving devnum unchanged in the default case (when devtype is cleared) follows mainline conventions rather than explicitly clearing it to handle edge cases.
Applied to files:
config/boards/mixtile-core3588e.cscpatch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigpatch/u-boot/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsi
📚 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/mixtile-core3588e.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/mixtile-core3588e.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/mixtile-core3588e.cscpatch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfig
📚 Learning: 2025-12-13T11:45:02.422Z
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:17-25
Timestamp: 2025-12-13T11:45:02.422Z
Learning: In the SpacemiT U-Boot patches for Armbian (patch/u-boot/legacy/u-boot-spacemit-k1/), the environment variable `devnum` is set to the device name string (e.g., "mmc", "nvme") rather than a numeric index, and `distro_bootpart` holds the partition number. This implementation aligns with mainline U-Boot conventions for the SpacemiT platform and has been verified to work correctly by the maintainer.
Applied to files:
config/boards/mixtile-core3588e.cscpatch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfig
📚 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/mixtile-core3588e.csc
📚 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/mixtile-core3588e.csc
📚 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/mixtile-core3588e.csc
📚 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/mixtile-core3588e.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/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigpatch/u-boot/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsi
📚 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/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigpatch/u-boot/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsi
📚 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/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigpatch/u-boot/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsi
📚 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/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigpatch/u-boot/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsi
📚 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/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfig
📚 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/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfig
📚 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/v2026.01/defconfig/mixtile-core3588e-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/v2026.01/defconfig/mixtile-core3588e-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/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsi
📚 Learning: 2025-09-14T06:10:25.610Z
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.
Applied to files:
patch/u-boot/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsi
🔇 Additional comments (11)
patch/u-boot/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsi (1)
1-1: LGTM!Standard U-Boot DT include pattern for RK3588 boards, pulling in generic U-Boot device tree definitions.
patch/u-boot/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dts (3)
1-104: LGTM!Well-structured device tree header with proper SPDX license, model/compatible strings, aliases, chosen node, and root-level peripherals (fan, LEDs, regulators, HDMI connector). The regulator supply chains are correctly defined.
106-303: LGTM!CPU, GPU, GMAC, and I2C configurations are correctly structured. The RTL8211F Ethernet PHY reset timing values are appropriate, and regulator references are consistent throughout.
305-903: LGTM!Comprehensive thermal management with appropriate trip points, PCIe domain assignments, pinctrl definitions, and PMIC regulator tree. The USB configuration correctly sets host0 as peripheral (for OTG/maskrom) and host1 as host (for carrier board hub).
patch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfig (1)
1-96: LGTM!Well-structured U-Boot defconfig for RK3588 with appropriate feature enablement. Using
CONFIG_TARGET_ROCK5B_RK3588as a base target is a common pattern for RK3588 boards in mainline U-Boot when a dedicated board target doesn't exist. The device tree paths correctly reference the Mixtile-specific DTB, and essential features (SPL, ATF, FIT, PCIe, NVMe, USB gadget) are properly enabled.config/boards/mixtile-core3588e.csc (3)
33-50: LGTM!The mainline U-Boot override function is well-structured with proper blob mapping and the correct
write_uboot_platformimplementation usingstatus=noneper Armbian standards. Disabling Plymouth is a sensible choice for this board.
52-60: LGTM!Boot order customization is appropriate for this board's hardware configuration (mmc1 first for SD card boot priority during development, then NVMe for production use).
38-38: Update BOOTBRANCH to use v2026.01-rc3 instead of v2026.01-rc4.The version v2026.01-rc4 is not documented in the official U-Boot release schedule. The most recent officially released candidate is v2026.01-rc3 (November 24, 2025). The stable v2026.01 release is scheduled for January 5, 2026.
⛔ 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: 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, .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: 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: 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: 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: 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: 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: 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: 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: The-going Repo: armbian/build PR: 8147 File: config/sources/families/include/sunxi64_common.inc:38-39 Timestamp: 2025-04-30T16:16:47.150Z Learning: The Armbian build system references Linux kernel versions in the form "tag:v6.14.4" in the KERNELBRANCH variable, even when point release tags might not be directly visible in the upstream repository in the same form.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.patch/kernel/archive/rockchip64-6.18/dt/rk3588-mixtile-core3588e.dts (3)
1-104: LGTM!Kernel device tree header is correctly structured with proper licensing, model/compatible strings, and root-level hardware definitions. The DT maintains consistency with the U-Boot variant while targeting the Linux kernel.
890-922: LGTM!NPU support is correctly added for the kernel device tree. The
pd_npupower domain and all three RKNN cores with their respective MMUs properly reference thevdd_npu_s0regulator defined on i2c1. This is appropriately present only in the kernel DT (not U-Boot) as NPU functionality is not needed during boot.
924-937: LGTM!VOP and HDMI endpoint wiring is correctly defined, matching the U-Boot DT configuration for display output.
Wrong, I already have |
There's an image at https://dh19rycdk230a.cloudfront.net/app/uploads/2023/11/231113-C3588E-Pic.webp but I've no image editor et al. |
|
Hardware notes:
Images copy/pasted for posterity:
|
…ek + fixes) - vendor: - kernel: armbian/linux-rockchip already had a DTS from jriek - u-boot: taken from jriek (reorg'ed the defconfig) - edge: - kernel: taken from jriek's 6.11 wip branch - u-boot: generic (can only boot SD/eMMC)
- on top of Joshua Riek's DT, add: - GPU - NPU - i2c5 (40-pin) - saradc - tsadc (thermals) - pwm2 / tacho / cooling fan - sys-led - usb2 otg (for flashing / UMS - microusb port) - USB3 ports (via usb hub on carrier board) - hdmi0 & hdmi0 audio & vop - uart1 (40-pin)
- boot order: NVMe -> MMC - GMAC works - nvme works - `ums` et al working - usb3 ports (on carrier board) work - DT is copy (not symlink) from kernel DT due to NPU nodes
- no need for vendor u-boot, as mainline can boot vendor kernel fine - update comments with hardware pin references - mainline boot order: NVMe -> USB -> eMMC
7d37d14 to
b09d5bb
Compare
🚫 Missing required board assetsThis PR adds new board configuration(s). Required assets must already exist in github/armbian/armbian.github.io.
Missing items
Once the missing files are added (or a PR is opened in armbian/armbian.github.io), re-run this check. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 3
🧹 Nitpick comments (2)
patch/u-boot/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dts (1)
362-404: Consider progressive fan cooling levels for thermal management.The thermal configuration defines 10 temperature trip points, but all cooling maps use
THERMAL_NO_LIMITfor both minimum and maximum cooling states. While this will work, it means the fan doesn't progressively increase speed as temperature rises. Consider mapping lower trip points to lower cooling levels for a more gradual thermal response (e.g.,trip0→<&fan 0 4>,trip1→<&fan 0 5>, etc.).patch/kernel/archive/rockchip64-6.18/dt/rk3588-mixtile-core3588e.dts (1)
362-404: Consider progressive fan cooling levels for thermal management.Similar to the U-Boot device tree, all thermal cooling maps use
THERMAL_NO_LIMIT, which doesn't provide progressive fan speed control as temperature increases. Consider mapping temperature trip points to progressive cooling levels for more efficient thermal management.
📜 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.
📒 Files selected for processing (5)
config/boards/mixtile-core3588e.cscpatch/kernel/archive/rockchip64-6.18/dt/rk3588-mixtile-core3588e.dtspatch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigpatch/u-boot/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsipatch/u-boot/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dts
🚧 Files skipped from review as they are similar to previous changes (1)
- patch/u-boot/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsi
🧰 Additional context used
🧠 Learnings (27)
📓 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: 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: 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: 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: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-17T05:09:02.306Z
Learning: In the Armbian build system, kernel patches (e.g., in patch/kernel/archive/sunxi-6.18/patches.armbian/) contain device tree overlays and other code that have existed for years and are maintained/ported across kernel versions. When reviewing PRs that modify these patch files, focus on the actual changes being made (e.g., Makefile fixes, new additions) rather than reviewing the entire existing content within the patch as if it were new code. The patch file contents are existing, stable code unless explicitly modified in the PR diff.
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: igorpecovnik
Repo: armbian/build PR: 9087
File: .github/workflows/pr-check-pictures.yml:138-146
Timestamp: 2025-12-16T13:40:07.649Z
Learning: In the Armbian build repository, when introducing new requirements or checks (like the board assets verification workflow), the project prefers an initial educational-only period where violations post helpful PR comments and warnings but don't block merges. This allows contributors to become familiar with new requirements before enforcement is enabled (typically after ~6 months).
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-19T13:56:45.124Z
Learning: When reviewing kernel or u-boot version bump PRs in the Armbian build system, check if patches existed in previous kernel version directories (e.g., sunxi-6.12, sunxi-6.13) before describing them as new features. If a patch and the majority of its contents existed previously with no major functionality changes, focus the review on the actual changes: the version bump itself and patch compatibility adjustments. Don't describe existing patches being ported/maintained across versions as new features or drivers—this is misleading. The patches are existing code being re-aligned to work with the new upstream version.
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: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:28-67
Timestamp: 2025-12-13T11:39:08.046Z
Learning: In the Armbian build system for SpacemiT U-Boot patches (patch/u-boot/legacy/u-boot-spacemit-k1/), alignment with mainline U-Boot behavior is prioritized. For example, in boot mode handling, leaving devnum unchanged in the default case (when devtype is cleared) follows mainline conventions rather than explicitly clearing it to handle edge cases.
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:17-25
Timestamp: 2025-12-13T11:45:02.422Z
Learning: In the SpacemiT U-Boot patches for Armbian (patch/u-boot/legacy/u-boot-spacemit-k1/), the environment variable `devnum` is set to the device name string (e.g., "mmc", "nvme") rather than a numeric index, and `distro_bootpart` holds the partition number. This implementation aligns with mainline U-Boot conventions for the SpacemiT platform and has been verified to work correctly by the maintainer.
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.
📚 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/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dtspatch/kernel/archive/rockchip64-6.18/dt/rk3588-mixtile-core3588e.dts
📚 Learning: 2025-12-17T05:09:02.306Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-17T05:09:02.306Z
Learning: In the Armbian build system, kernel patches (e.g., in patch/kernel/archive/sunxi-6.18/patches.armbian/) contain device tree overlays and other code that have existed for years and are maintained/ported across kernel versions. When reviewing PRs that modify these patch files, focus on the actual changes being made (e.g., Makefile fixes, new additions) rather than reviewing the entire existing content within the patch as if it were new code. The patch file contents are existing, stable code unless explicitly modified in the PR diff.
Applied to files:
patch/u-boot/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dtspatch/kernel/archive/rockchip64-6.18/dt/rk3588-mixtile-core3588e.dts
📚 Learning: 2025-11-15T14:33:30.654Z
Learnt from: SuperKali
Repo: armbian/build PR: 8936
File: patch/kernel/archive/rockchip64-6.18/dt/rk3576-nanopi-r76s.dts:800-802
Timestamp: 2025-11-15T14:33:30.654Z
Learning: In RK3576 device tree files (like rk3576-nanopi-r76s.dts), the serial0 alias is already defined in the upstream kernel's rk3576.dtsi base file, so board-specific DTS files do not need to redeclare it when enabling &uart0 for serial console.
Applied to files:
patch/u-boot/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dtspatch/kernel/archive/rockchip64-6.18/dt/rk3588-mixtile-core3588e.dts
📚 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/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dtspatch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigconfig/boards/mixtile-core3588e.csc
📚 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/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dtspatch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigconfig/boards/mixtile-core3588e.csc
📚 Learning: 2025-12-19T13:56:45.124Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-12-19T13:56:45.124Z
Learning: When reviewing kernel or u-boot version bump PRs in the Armbian build system, check if patches existed in previous kernel version directories (e.g., sunxi-6.12, sunxi-6.13) before describing them as new features. If a patch and the majority of its contents existed previously with no major functionality changes, focus the review on the actual changes: the version bump itself and patch compatibility adjustments. Don't describe existing patches being ported/maintained across versions as new features or drivers—this is misleading. The patches are existing code being re-aligned to work with the new upstream version.
Applied to files:
patch/u-boot/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dtspatch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigconfig/boards/mixtile-core3588e.csc
📚 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/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dtspatch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigpatch/kernel/archive/rockchip64-6.18/dt/rk3588-mixtile-core3588e.dts
📚 Learning: 2025-12-13T11:00:33.143Z
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/kernel/archive/spacemit-6.6/dt/lcd_tc358762xbg_dpi_800x480.dtsi:3-61
Timestamp: 2025-12-13T11:00:33.143Z
Learning: On the SpacemiT MusePi Pro board with spacemit-6.6 kernel, LCD/DSI support is disabled in k1-musepi-pro.dts because enabling it causes the unit to lock up during boot. The lcd_tc358762xbg_dpi_800x480.dtsi file exists but DSI remains disabled at the controller level.
Applied to files:
patch/u-boot/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dts
📚 Learning: 2025-12-23T04:44:25.212Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 9067
File: patch/kernel/archive/rockchip64-6.19/dt/rk3399-orangepi-4-lts.dts:869-875
Timestamp: 2025-12-23T04:44:25.212Z
Learning: During code reviews of device tree changes (any .dts file), verify node properties against the official kernel device tree binding documentation (*.yaml) rather than relying solely on patterns observed in existing DTS files. This helps catch copy-paste or drift errors and ensures properties align with authoritative bindings for each device node type.
Applied to files:
patch/u-boot/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dtspatch/kernel/archive/rockchip64-6.18/dt/rk3588-mixtile-core3588e.dts
📚 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/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigconfig/boards/mixtile-core3588e.csc
📚 Learning: 2025-12-13T11:39:08.046Z
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:28-67
Timestamp: 2025-12-13T11:39:08.046Z
Learning: In the Armbian build system for SpacemiT U-Boot patches (patch/u-boot/legacy/u-boot-spacemit-k1/), alignment with mainline U-Boot behavior is prioritized. For example, in boot mode handling, leaving devnum unchanged in the default case (when devtype is cleared) follows mainline conventions rather than explicitly clearing it to handle edge cases.
Applied to files:
patch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigconfig/boards/mixtile-core3588e.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/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigconfig/boards/mixtile-core3588e.csc
📚 Learning: 2025-12-13T11:45:02.422Z
Learnt from: pyavitz
Repo: armbian/build PR: 9058
File: patch/u-boot/legacy/u-boot-spacemit-k1/003-SpacemiT-K1X-Fixups.patch:17-25
Timestamp: 2025-12-13T11:45:02.422Z
Learning: In the SpacemiT U-Boot patches for Armbian (patch/u-boot/legacy/u-boot-spacemit-k1/), the environment variable `devnum` is set to the device name string (e.g., "mmc", "nvme") rather than a numeric index, and `distro_bootpart` holds the partition number. This implementation aligns with mainline U-Boot conventions for the SpacemiT platform and has been verified to work correctly by the maintainer.
Applied to files:
patch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigconfig/boards/mixtile-core3588e.csc
📚 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/v2026.01/defconfig/mixtile-core3588e-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/v2026.01/defconfig/mixtile-core3588e-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/v2026.01/defconfig/mixtile-core3588e-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/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigconfig/boards/mixtile-core3588e.csc
📚 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/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfig
📚 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/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfig
📚 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:
patch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigconfig/boards/mixtile-core3588e.csc
📚 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/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigconfig/boards/mixtile-core3588e.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/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfigconfig/boards/mixtile-core3588e.csc
📚 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/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfig
📚 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/mixtile-core3588e.csc
📚 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/mixtile-core3588e.csc
📚 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/mixtile-core3588e.csc
🔇 Additional comments (3)
config/boards/mixtile-core3588e.csc (1)
95-95: Inconsistent CONFIG_ prefix in configuration array.Line 95 defines an array where most entries have the
CONFIG_prefix, but"USB_GADGET_DOWNLOAD"is missing it. For consistency and correctness, all configuration options should include theCONFIG_prefix.🔎 Proposed fix
- declare -a enable_configs=("CONFIG_CMD_USB_MASS_STORAGE" "CONFIG_USB_GADGET" "USB_GADGET_DOWNLOAD" "CONFIG_USB_FUNCTION_ROCKUSB" "CONFIG_USB_FUNCTION_ACM" "CONFIG_CMD_ROCKUSB" "CONFIG_CMD_USB_MASS_STORAGE") + declare -a enable_configs=("CONFIG_CMD_USB_MASS_STORAGE" "CONFIG_USB_GADGET" "CONFIG_USB_GADGET_DOWNLOAD" "CONFIG_USB_FUNCTION_ROCKUSB" "CONFIG_USB_FUNCTION_ACM" "CONFIG_CMD_ROCKUSB" "CONFIG_CMD_USB_MASS_STORAGE")⛔ Skipped due to learnings
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.Learnt from: tabrisnet Repo: armbian/build PR: 8661 File: lib/functions/compilation/armbian-kernel.sh:194-201 Timestamp: 2025-09-22T21:52:01.225Z Learning: In lib/functions/compilation/armbian-kernel.sh, the kernel_config_modifying_hashes array is not universally required for all kernel configuration functions - some functions like armbian_kernel_config__netkit() operate without it, and adding entries with '=m' would be incorrect when the actual result might be '=y' for options already built-in.Learnt from: tabrisnet Repo: armbian/build PR: 8661 File: lib/functions/compilation/armbian-kernel.sh:194-201 Timestamp: 2025-09-22T21:52:01.225Z Learning: In lib/functions/compilation/armbian-kernel.sh, the kernel_config_modifying_hashes array is not universally required for all kernel configuration functions - some functions like armbian_kernel_config__netkit() operate without it, and adding entries with '=m' would be incorrect when the actual result might be '=y' for options already built-in.Learnt from: tabrisnet Repo: armbian/build PR: 9136 File: lib/functions/compilation/armbian-kernel.sh:529-537 Timestamp: 2025-12-28T01:49:28.830Z Learning: In lib/functions/compilation/armbian-kernel.sh's opts_m handling, checking .config (kernel defconfig) is problematic because savedefconfig elides options matching defconfig, making it impossible to distinguish overlay silence from defconfig agreement. The correct approach is to check only kernel_config_source_filename (the overlay) for explicit =y, otherwise default to =m, letting savedefconfig handle deduplication with defconfig automatically.patch/kernel/archive/rockchip64-6.18/dt/rk3588-mixtile-core3588e.dts (1)
543-556: Verify DVS pin assignments for the RK806 PMIC against board schematic and official binding documentation.Lines 544 and 549 both assign
pins = "gpio_pwrctrl2"todvs1_nullanddvs2_nullrespectively. This deviates from the pattern used in most other rockchip64-6.18 boards, which assign unique pins to each DVS configuration (gpio_pwrctrl1, gpio_pwrctrl2, gpio_pwrctrl3). The rk3588-mixtile-blade3.dts uses the same configuration, suggesting this may be either board-specific by design or a shared copy-paste error. Confirm against the Mixtile Core3588E board schematic and the official RK806 pinctrl binding documentation.patch/u-boot/v2026.01/dt_upstream_rockchip/rk3588-mixtile-core3588e.dts (1)
543-556: No action required. The DVS pin assignments are correct. Multiple RK3588/RK3588S boards including rk3588-mixtile-blade3, rk3588s-nanopi-r6s, rk3588s-rock-5c, and rk3588s-youyeetoo-r1 intentionally assign both dvs1_null and dvs2_null togpio_pwrctrl2, indicating this is a valid board-specific hardware configuration where DVS1 and DVS2 are wired to the same control pin. This is not a copy-paste error.
| @@ -0,0 +1,101 @@ | |||
| # Rockchip RK3588 SoC octa core Jetson SoM | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Incorrect board description in comment.
Line 1 describes this as a "Jetson SoM", but this is a Mixtile Core3588E board, not an NVIDIA Jetson product. The comment should be corrected to accurately reflect the board type.
🔎 Proposed fix
-# Rockchip RK3588 SoC octa core Jetson SoM
+# Rockchip RK3588 SoC octa core Mixtile Core3588E SoM📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| # Rockchip RK3588 SoC octa core Jetson SoM | |
| # Rockchip RK3588 SoC octa core Mixtile Core3588E SoM |
🤖 Prompt for AI Agents
In config/boards/mixtile-core3588e.csc around line 1, the top-line comment
incorrectly calls this a "Jetson SoM"; update that single-line comment to
correctly describe the board as the Mixtile Core3588E (a Rockchip RK3588-based
Mixtile board), replacing "Jetson SoM" with an accurate board name/type.
|
|
||
| # UMS, RockUSB, gadget stuff | ||
| display_alert "u-boot for ${BOARD}/${BRANCH}" "u-boot: enable UMS/RockUSB gadget" "info" | ||
| declare -a enable_configs=("CONFIG_CMD_USB_MASS_STORAGE" "CONFIG_USB_GADGET" "USB_GADGET_DOWNLOAD" "CONFIG_USB_FUNCTION_ROCKUSB" "CONFIG_USB_FUNCTION_ACM" "CONFIG_CMD_ROCKUSB" "CONFIG_CMD_USB_MASS_STORAGE") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Duplicate entry in configuration array.
Line 95 contains "CONFIG_CMD_USB_MASS_STORAGE" twice in the same array (first and last entries). Remove the duplicate.
🔎 Proposed fix
- declare -a enable_configs=("CONFIG_CMD_USB_MASS_STORAGE" "CONFIG_USB_GADGET" "USB_GADGET_DOWNLOAD" "CONFIG_USB_FUNCTION_ROCKUSB" "CONFIG_USB_FUNCTION_ACM" "CONFIG_CMD_ROCKUSB" "CONFIG_CMD_USB_MASS_STORAGE")
+ declare -a enable_configs=("CONFIG_CMD_USB_MASS_STORAGE" "CONFIG_USB_GADGET" "CONFIG_USB_GADGET_DOWNLOAD" "CONFIG_USB_FUNCTION_ROCKUSB" "CONFIG_USB_FUNCTION_ACM" "CONFIG_CMD_ROCKUSB")📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| declare -a enable_configs=("CONFIG_CMD_USB_MASS_STORAGE" "CONFIG_USB_GADGET" "USB_GADGET_DOWNLOAD" "CONFIG_USB_FUNCTION_ROCKUSB" "CONFIG_USB_FUNCTION_ACM" "CONFIG_CMD_ROCKUSB" "CONFIG_CMD_USB_MASS_STORAGE") | |
| declare -a enable_configs=("CONFIG_CMD_USB_MASS_STORAGE" "CONFIG_USB_GADGET" "CONFIG_USB_GADGET_DOWNLOAD" "CONFIG_USB_FUNCTION_ROCKUSB" "CONFIG_USB_FUNCTION_ACM" "CONFIG_CMD_ROCKUSB") |
🤖 Prompt for AI Agents
In config/boards/mixtile-core3588e.csc around line 95, the enable_configs array
contains a duplicate entry "CONFIG_CMD_USB_MASS_STORAGE" as both the first and
last elements; remove the duplicate so each config appears only once (keep one
occurrence and delete the redundant entry) and ensure the array syntax remains
valid after removal.
| CONFIG_DEFAULT_DEVICE_TREE="rockchip/rk3588-mixtile-core3588e" | ||
| CONFIG_ROCKCHIP_RK3588=y | ||
| CONFIG_SPL_SERIAL=y | ||
| CONFIG_TARGET_ROCK5B_RK3588=y |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
# First, let's check if the file exists and view its content
echo "=== Checking the mixtile-core3588e-rk3588_defconfig file ==="
if [ -f "patch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfig" ]; then
cat -n "patch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfig"
else
echo "File not found. Searching for similar files..."
fd "mixtile.*defconfig" .
fi
echo ""
echo "=== Searching for Mixtile-specific target definitions ==="
rg -i 'CONFIG_TARGET.*MIXTILE|TARGET.*CORE3588E' --max-count=20
echo ""
echo "=== Checking what defconfig files use CONFIG_TARGET_ROCK5B_RK3588 ==="
fd -e defconfig . | xargs grep -l "CONFIG_TARGET_ROCK5B_RK3588" 2>/dev/null | head -20
echo ""
echo "=== Checking for RK3588 board definitions in U-Boot ==="
fd -t d "rk3588" . 2>/dev/null | head -20
echo ""
echo "=== Checking for Mixtile board definitions ==="
fd -t d "mixtile" . 2>/dev/nullRepository: armbian/build
Length of output: 3854
🏁 Script executed:
# Search for where CONFIG_TARGET_ROCK5B_RK3588 is defined in U-Boot
echo "=== Searching for CONFIG_TARGET_ROCK5B_RK3588 definition in U-Boot source ==="
rg "TARGET_ROCK5B_RK3588|ROCK5B" --max-count=30
echo ""
echo "=== Looking for U-Boot Kconfig files that define RK3588 targets ==="
fd "Kconfig" . | xargs grep -l "ROCK5B\|RK3588" 2>/dev/null | head -20
echo ""
echo "=== Checking if there are board-specific files for ROCK5B vs Mixtile ==="
fd -t d "rock5b|rock_5b" . 2>/dev/null
echo ""
echo "=== Checking patch files for ROCK5B and Mixtile differences ==="
fd "board.*rock5b|board.*mixtile" . 2>/dev/null | head -20Repository: armbian/build
Length of output: 946
🏁 Script executed:
# Check if other RK3588 boards use the same pattern
echo "=== All RK3588 defconfig files and their CONFIG_TARGET settings ==="
fd "rk3588.*defconfig" . | xargs grep -H "CONFIG_TARGET" | sort
echo ""
echo "=== Checking board configs for Mixtile to understand the design ==="
cat -n config/boards/mixtile-core3588e.csc | head -50
echo ""
echo "=== Checking if U-Boot source files mention this pattern ==="
fd -t f ".*" patch/u-boot/v2026.01/ | grep -E "(board|target)" | head -20Repository: armbian/build
Length of output: 6312
🏁 Script executed:
# Check if there are any Mixtile-specific U-Boot patches explaining this
echo "=== Searching for Mixtile-specific U-Boot patches ==="
fd -t f ".*mixtile.*" patch/u-boot/ | head -20
echo ""
echo "=== Checking git history or comments about Mixtile and ROCK5B ==="
rg "mixtile|blade3" patch/u-boot/v2026.01/ -B 2 -A 2 | head -50
echo ""
echo "=== Looking at ROCK5B defconfig to compare ==="
fd "rock5b.*defconfig|radxa.*rock.*5.*defconfig" . 2>/dev/null | head -5
echo ""
echo "=== Check if ROCK5B defconfig exists in v2026.01 ==="
ls -la patch/u-boot/v2026.01/defconfig/ | grep -i "rock5b\|radxa"Repository: armbian/build
Length of output: 3078
🏁 Script executed:
# Check if there are board definition files in U-Boot patches
echo "=== Looking for U-Boot board configuration files ==="
fd -t f "board\\.c|Kconfig" patch/u-boot/v2026.01/ | head -20
echo ""
echo "=== Check for any notes or comments in Mixtile board files ==="
for file in patch/u-boot/v2026.01/dt_uboot/rk3588-mixtile-core3588e-u-boot.dtsi patch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfig; do
if [ -f "$file" ]; then
echo "=== File: $file ==="
head -20 "$file"
fi
done
echo ""
echo "=== Compare with EVB_RK3588 defconfig ==="
fd "evb.*rk3588.*defconfig" patch/u-boot/ | head -1 | xargs cat 2>/dev/null | head -30Repository: armbian/build
Length of output: 943
🏁 Script executed:
# Find any EVB RK3588 defconfig
echo "=== Searching for EVB RK3588 defconfig files ==="
fd "defconfig" patch/u-boot/ | xargs grep -l "CONFIG_TARGET_EVB_RK3588" | head -1
echo ""
echo "=== Show first EVB RK3588 defconfig ==="
fd "defconfig" patch/u-boot/ | xargs grep -l "CONFIG_TARGET_EVB_RK3588" | head -1 | xargs cat | head -30
echo ""
echo "=== Summary: Compare the two targets ==="
echo "Mixtile board uses:"
grep "CONFIG_TARGET\|CONFIG_DEFAULT_DEVICE_TREE\|CONFIG_DEFAULT_FDT_FILE" patch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfig
echo ""
echo "EVB RK3588 boards use:"
fd "defconfig" patch/u-boot/ | xargs grep -l "CONFIG_TARGET_EVB_RK3588" | head -1 | xargs grep "CONFIG_TARGET\|CONFIG_DEFAULT_DEVICE_TREE\|CONFIG_DEFAULT_FDT_FILE"Repository: armbian/build
Length of output: 2391
Incorrect U-Boot target board configuration.
CONFIG_TARGET_ROCK5B_RK3588=y on line 9 is specific to Radxa ROCK5B and incompatible with Mixtile Core3588E. This is particularly problematic since the device tree (line 6) correctly specifies "rockchip/rk3588-mixtile-core3588e", creating a mismatch between board target and device tree. All other RK3588 boards in the codebase use CONFIG_TARGET_EVB_RK3588=y (the generic RK3588 reference target); Mixtile is the only board using the ROCK5B-specific target, indicating a copy-paste error. Change to CONFIG_TARGET_EVB_RK3588=y to align with the correct device tree and standard RK3588 board configuration pattern.
🤖 Prompt for AI Agents
In patch/u-boot/v2026.01/defconfig/mixtile-core3588e-rk3588_defconfig around
line 9, the U-Boot target is set to CONFIG_TARGET_ROCK5B_RK3588=y which is
incorrect for the Mixtile Core3588E board and mismatches the device tree;
replace that line with CONFIG_TARGET_EVB_RK3588=y to use the generic RK3588
target consistent with other RK3588 boards and the device tree
rockchip/rk3588-mixtile-core3588e.


mixtile-core3588e: add board with vendor and edge branches (Joshua Riek + fixes)
umset al workingSummary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.