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

Conversation

@jonaswood01
Copy link
Contributor

@jonaswood01 jonaswood01 commented Nov 17, 2025

Description

tmds62levm.conf is similar to other TI EVM boards (sk-am6*.conf), with few modifications:

  • Uses TI ATF/U-Boot only until in upstream
  • Adds BL1 usage in ATF
  • Does not need pre-uboot function: compiles tiboot3.bin directly from uboot.sh

Documentation summary for feature / change

Will need new board in Armbian.com. @Grippy98 would love your help here

How Has This Been Tested?

Note: the git status changes in the build log are proxy-related only.

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings (as far as I can tell)

Summary by CodeRabbit

  • New Features

    • Added support for TI AM62L TMDS62LEVM platform with complete board configuration settings
    • Extended SoC boot parameter support across multiple BeagleBoard development platforms
    • Added AM62L variant support to kernel build configurations and boot options
  • Chores

    • Updated boot loader and build system configurations for improved SoC compatibility across platforms

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 17, 2025

Walkthrough

The PR adds BOOT_SOC configuration variables to eleven board configuration files, introduces a new board configuration file (tmds62levm.conf), adds CONFIG_TI_K3_UDMA_AM62L kernel support across six kernel config files, and modifies K3 family build system logic to conditionally skip certain U-Boot and bootgen compilation steps when BOOT_SOC is am62l while also updating ATF and U-Boot target maps.

Changes

Cohort / File(s) Summary
Board BOOT_SOC Configuration
config/boards/beaglebone-ai64.conf, config/boards/beagley-ai.conf, config/boards/sk-tda4vm.conf
Added BOOT_SOC variable with j721e (beaglebone-ai64 and sk-tda4vm) and j722s (beagley-ai) values
Board BOOT_SOC Configuration
config/boards/beagleplay.conf, config/boards/pocketbeagle2.conf, config/boards/sk-am62b.conf
Added BOOT_SOC variable with am62 value
Board BOOT_SOC Configuration
config/boards/sk-am62p.conf
Added BOOT_SOC variable with am62p value
Board BOOT_SOC Configuration
config/boards/sk-am64b.conf
Added BOOT_SOC variable with am64 value
Board BOOT_SOC Configuration
config/boards/sk-am68.conf
Added BOOT_SOC variable with j721s2 value
Board BOOT_SOC Configuration
config/boards/sk-am69.conf
Added BOOT_SOC variable with j784s4 value
New Board Configuration
config/boards/tmds62levm.conf
Added new complete board configuration file for TI AM62L TMDS62LEVM platform with metadata, boot config, kernel targets, ATF/OPTEE integration, and CC33XX support declarations
Kernel UDMA AM62L Support
config/kernel/linux-k3-beagle-edge.config, config/kernel/linux-k3-beagle-vendor.config, config/kernel/linux-k3-beagle-vendor-rt.config, config/kernel/linux-k3-edge.config, config/kernel/linux-k3-vendor.config, config/kernel/linux-k3-vendor-edge.config
Added CONFIG_TI_K3_UDMA_AM62L=y kernel configuration option
K3 Family Build System
config/sources/families/include/k3_common.inc
Updated ATF_TARGET_MAP to use "all" target with EXTRA_ATF_TARGETS appended; updated UBOOT_TARGET_MAP to insert ${EXTRA_BOOT_ARGS} after BL31=bl31.bin; added conditional guards to compile_k3_bootgen and post-build copy steps, skipping execution when BOOT_SOC equals am62l
K3 Family Configuration
config/sources/families/k3.conf
Added new am62l BOOT_SOC block with ATFSOURCE and conditional ATFBRANCH logic based on BRANCH value (vendor, vendor-rt, or vendor-edge)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20–25 minutes

  • The BOOT_SOC additions across eleven board files follow a homogeneous pattern (same variable, different SoC values), reducing review complexity per-file.
  • Kernel config additions are identical single-line changes across six files, further reducing individual review burden.
  • The conditional logic in k3_common.inc (guarding compile_k3_bootgen and post-build copies based on BOOT_SOC) and the new am62l branch logic in k3.conf require closer scrutiny to ensure correct behavior and absence of unintended side effects.
  • The new tmds62levm.conf file adds a complete board configuration that should be validated for completeness and consistency with similar board files.

Areas requiring extra attention:

  • Conditional build logic in config/sources/families/include/k3_common.inc for am62l-specific behavior
  • New am62l block in config/sources/families/k3.conf with ATFSOURCE redeclaration and branch-conditional ATFBRANCH assignment
  • New board file config/boards/tmds62levm.conf for missing or inconsistent configuration entries

Possibly related PRs

Suggested reviewers

  • rpardini
  • glneo
  • igorpecovnik
  • Grippy98

Poem

🐰 Ten boards now know which SoC boots,
AM62L gets special routes,
Kernel configs bloom and grow,
Build logic branches just so,
The K3 family's dreams come true! 🎉

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: adding AM62L EVM (tmds62levm) board support. It is concise, specific, and clearly identifies 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.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent 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 6f1a5b6 and 670788f.

📒 Files selected for processing (19)
  • config/boards/beaglebone-ai64.conf (1 hunks)
  • config/boards/beagleplay.conf (1 hunks)
  • config/boards/beagley-ai.conf (1 hunks)
  • config/boards/pocketbeagle2.conf (1 hunks)
  • config/boards/sk-am62b.conf (1 hunks)
  • config/boards/sk-am62p.conf (1 hunks)
  • config/boards/sk-am64b.conf (1 hunks)
  • config/boards/sk-am68.conf (1 hunks)
  • config/boards/sk-am69.conf (1 hunks)
  • config/boards/sk-tda4vm.conf (1 hunks)
  • config/boards/tmds62levm.conf (1 hunks)
  • config/kernel/linux-k3-beagle-edge.config (1 hunks)
  • config/kernel/linux-k3-beagle-vendor-rt.config (1 hunks)
  • config/kernel/linux-k3-beagle-vendor.config (1 hunks)
  • config/kernel/linux-k3-edge.config (1 hunks)
  • config/kernel/linux-k3-vendor-edge.config (1 hunks)
  • config/kernel/linux-k3-vendor.config (1 hunks)
  • config/sources/families/include/k3_common.inc (3 hunks)
  • config/sources/families/k3.conf (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (15)
  • config/boards/sk-am69.conf
  • config/boards/beagley-ai.conf
  • config/boards/sk-am68.conf
  • config/boards/sk-am64b.conf
  • config/kernel/linux-k3-vendor-edge.config
  • config/kernel/linux-k3-beagle-vendor-rt.config
  • config/boards/tmds62levm.conf
  • config/sources/families/include/k3_common.inc
  • config/kernel/linux-k3-edge.config
  • config/sources/families/k3.conf
  • config/boards/pocketbeagle2.conf
  • config/boards/sk-am62p.conf
  • config/kernel/linux-k3-beagle-vendor.config
  • config/boards/beaglebone-ai64.conf
  • config/boards/beagleplay.conf
🧰 Additional context used
🧠 Learnings (26)
📓 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: 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: 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.
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.
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: 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: 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: 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: 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.
📚 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/sk-tda4vm.conf
  • config/boards/sk-am62b.conf
📚 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/sk-tda4vm.conf
  • config/kernel/linux-k3-beagle-edge.config
  • config/kernel/linux-k3-vendor.config
  • config/boards/sk-am62b.conf
📚 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/sk-tda4vm.conf
  • config/boards/sk-am62b.conf
📚 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/sk-tda4vm.conf
  • config/boards/sk-am62b.conf
📚 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/sk-tda4vm.conf
  • config/boards/sk-am62b.conf
📚 Learning: 2025-09-12T19:28:38.491Z
Learnt from: Grippy98
Repo: armbian/build PR: 8622
File: config/sources/families/k3.conf:66-66
Timestamp: 2025-09-12T19:28:38.491Z
Learning: In the Armbian k3 family build system (config/sources/families/k3.conf), builds do not fail when TIBOOT3_BOOTCONFIG is unset, even though tiboot3.bin is still listed in UBOOT_TARGET_MAP. The gating mechanism in pre_config_uboot_target__build_first_stage function works as intended to conditionally build/copy tiboot3.bin only when TIBOOT3_BOOTCONFIG is defined.

Applied to files:

  • config/boards/sk-tda4vm.conf
  • config/boards/sk-am62b.conf
📚 Learning: 2025-06-04T23:45:38.860Z
Learnt from: djurny
Repo: armbian/build PR: 8272
File: config/bootscripts/boot-mvebu.cmd:182-186
Timestamp: 2025-06-04T23:45:38.860Z
Learning: In config/bootscripts/boot-mvebu.cmd, the `fdtfile` variable is mandatory for booting and is pre-set by U-Boot, but can be overridden via armbianEnv.txt. If `fdtfile` is empty, the subsequent device tree file search logic will eventually fail and trigger the critical error "Cannot find DT!" with proper error handling.

Applied to files:

  • config/boards/sk-tda4vm.conf
  • config/boards/sk-am62b.conf
📚 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/sk-tda4vm.conf
  • config/boards/sk-am62b.conf
📚 Learning: 2025-07-23T07:30:52.265Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8417
File: config/boards/orangepi5pro.csc:57-58
Timestamp: 2025-07-23T07:30:52.265Z
Learning: In the Armbian build system, BOOTPATCHDIR can contain board-specific subdirectories (e.g., board_orangepi5pro) for applying patches to specific boards only. The framework automatically checks if such board-specific subdirectories exist for the board being built and applies those patches accordingly.

Applied to files:

  • config/boards/sk-tda4vm.conf
  • config/boards/sk-am62b.conf
📚 Learning: 2025-11-13T14:50:44.662Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8925
File: lib/functions/host/docker.sh:141-141
Timestamp: 2025-11-13T14:50:44.662Z
Learning: In the Armbian build system, certain boards have U-Boot that doesn't build correctly on ubuntu:noble but works on ubuntu:jammy. For these boards, DOCKER_ARMBIAN_BASE_IMAGE can be set to "ubuntu:jammy" via an extension file loaded before docker_cli_prepare() runs, allowing legacy toolchains to work while the community works on proper fixes with limited resources.

Applied to files:

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

Applied to files:

  • config/boards/sk-tda4vm.conf
📚 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:

  • config/kernel/linux-k3-beagle-edge.config
  • config/kernel/linux-k3-vendor.config
📚 Learning: 2025-09-27T21:50:15.915Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8678
File: config/kernel/linux-sunxi64-current.config:94-94
Timestamp: 2025-09-27T21:50:15.915Z
Learning: When kernel config files are generated through Armbian's automated process (previous config → armbian-kernel.sh changes → make oldconfig → Armbian machinery processing), manual config file edits are not appropriate since they would be overwritten. Deprecated option handling should be implemented in the automated tooling instead.

Applied to files:

  • config/kernel/linux-k3-beagle-edge.config
  • config/kernel/linux-k3-vendor.config
📚 Learning: 2025-10-23T19:48:42.980Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8812
File: config/kernel/linux-sm8250-edge.config:498-501
Timestamp: 2025-10-23T19:48:42.980Z
Learning: For Armbian EDGE kernel configs, CONFIG_ATH12K=m alone is sufficient for PCI-based Wi-Fi 7 devices (e.g., WCN785x/QCN9274). A separate CONFIG_ATH12K_PCI option is not required, as confirmed by maintainer testing.

Applied to files:

  • config/kernel/linux-k3-beagle-edge.config
📚 Learning: 2025-09-27T21:47:58.020Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8678
File: config/kernel/linux-bcm2711-edge.config:859-861
Timestamp: 2025-09-27T21:47:58.020Z
Learning: In the Armbian build system, kernel configuration files in config/kernel/ are generated through an automated process: taking previous config → applying scripted changes from armbian-kernel.sh → running kernel's `make oldconfig` → processing by Armbian machinery back into config files. This automated process properly handles kernel configuration dependencies and reduces the likelihood of manual configuration errors.

Applied to files:

  • config/kernel/linux-k3-beagle-edge.config
  • config/kernel/linux-k3-vendor.config
📚 Learning: 2025-09-22T21:52:01.225Z
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.

Applied to files:

  • config/kernel/linux-k3-beagle-edge.config
📚 Learning: 2025-10-03T11:42:46.660Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8705
File: .github/workflows/rewrite-kernel-configs.yml:96-169
Timestamp: 2025-10-03T11:42:46.660Z
Learning: In the Armbian build repository's kernel config rewrite workflow (.github/workflows/rewrite-kernel-configs.yml), deletion of kernel config files does not need to be handled. The workflow intentionally only captures ACMR (added/copied/modified/renamed) changes and does not need to propagate deletions to the aggregator.

Applied to files:

  • config/kernel/linux-k3-beagle-edge.config
  • config/kernel/linux-k3-vendor.config
📚 Learning: 2025-07-26T10:43:10.130Z
Learnt from: pyavitz
Repo: armbian/build PR: 8421
File: config/kernel/linux-sunxi64-edge.config:1058-1061
Timestamp: 2025-07-26T10:43:10.130Z
Learning: When reviewing kernel configuration files, it's important to verify the actual Kconfig dependencies in the source code rather than making assumptions about configuration validity, especially for complex subsystems like I2C drivers where the dependency relationships may be more nuanced than initially apparent.

Applied to files:

  • config/kernel/linux-k3-beagle-edge.config
  • config/kernel/linux-k3-vendor.config
📚 Learning: 2025-10-23T19:50:25.841Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8812
File: config/kernel/linux-rockchip-edge.config:730-733
Timestamp: 2025-10-23T19:50:25.841Z
Learning: For ATH12K wireless driver configuration: only CONFIG_ATH12K=m needs to be explicitly set in kernel config files. The kernel build system automatically selects CONFIG_ATH12K_PCI when both CONFIG_ATH12K and CONFIG_PCI are enabled. This pattern is consistent across all Armbian edge kernel configs. CONFIG_ATH12K_PCI does not need to be explicitly added to config files.

Applied to files:

  • config/kernel/linux-k3-beagle-edge.config
  • config/kernel/linux-k3-vendor.config
📚 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:

  • config/kernel/linux-k3-beagle-edge.config
  • config/kernel/linux-k3-vendor.config
📚 Learning: 2025-09-27T21:49:55.796Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8678
File: config/kernel/linux-sm8250-current.config:78-80
Timestamp: 2025-09-27T21:49:55.796Z
Learning: In the Armbian build system, kernel configuration files are generated through an automated process: taking previous config → applying scripted changes from armbian-kernel.sh → running kernel's `make oldconfig` → processing by Armbian machinery back into config files. This automated process properly handles kernel configuration dependencies and reduces the likelihood of manual configuration errors.

Applied to files:

  • config/kernel/linux-k3-vendor.config
📚 Learning: 2025-09-27T21:50:04.845Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8678
File: config/kernel/linux-sm8250-edge.config:80-82
Timestamp: 2025-09-27T21:50:04.845Z
Learning: In the Armbian build system, kernel configuration files are generated through this automated process: taking previous config → applying scripted changes from armbian-kernel.sh → running kernel's `make oldconfig` → processing by Armbian machinery back into config files. This automated process properly handles kernel configuration dependencies and reduces the likelihood of manual configuration errors.

Applied to files:

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

Applied to files:

  • config/kernel/linux-k3-vendor.config
📚 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/sk-am62b.conf
📚 Learning: 2025-06-25T03:42:09.086Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8330
File: config/sources/families/sun55iw3.conf:32-36
Timestamp: 2025-06-25T03:42:09.086Z
Learning: In Armbian build system configuration files like config/sources/families/*.conf, KERNELSOURCE is explicitly declared when using unofficial or 3rd party kernel repositories (like the "dev" branch using https://github.com/apritzel/linux), but can be omitted when using the standard mainline kernel (like the "edge" branch) since it will fall back to the default mainline source.

Applied to files:

  • config/boards/sk-am62b.conf
🔇 Additional comments (4)
config/boards/sk-am62b.conf (1)

6-6: LGTM! BOOT_SOC addition looks consistent.

The BOOT_SOC="am62" value aligns with the AM62 SoC references throughout the file (TIBOOT3_FILE, OPTEE_PLATFORM, and board comment). Placement after BOARD_MAINTAINER follows the pattern seen across other board configs in this PR.

config/boards/sk-tda4vm.conf (1)

6-6: LGTM! BOOT_SOC value matches existing configuration.

The BOOT_SOC="j721e" value is consistent with multiple existing variables (BOOTCONFIG, BOOT_FDT_FILE, TIBOOT3_FILE, TIBOOT3_BOOTCONFIG, SYSFW_FILE, OPTEE_PLATFORM all reference j721e). Placement and syntax follow the same pattern as other board configs in this PR.

config/kernel/linux-k3-beagle-edge.config (1)

929-931: Consistency check: Verify CONFIG_TI_K3_UDMA_AM62L is appropriate for all BeagleBoard K3 variants.

This mirrors the addition to linux-k3-vendor.config but in the beagle-edge kernel config. Ensure that enabling this option is correct for all boards using this config (e.g., SK-AM62B) and not just AM62L. If this should be AM62L-only, consider whether a separate or conditional configuration approach is needed.

config/kernel/linux-k3-vendor.config (1)

911-913: CONFIG_TI_K3_UDMA_AM62L is appropriately placed in the family kernel configuration.

This option was added in the previous commit with AM62L board support. The placement in config/kernel/linux-k3-vendor.config (a family-level config) is correct per Armbian architecture—kernel configuration belongs in family configs, not board configs. The board configuration (tmds62levm.conf) correctly avoids kernel overrides and only specifies KERNEL_TARGET, deferring kernel configuration to the family level.

The universal application of this AM62L-specific option across all K3 boards is architecturally sound: device tree entries for AM62L-specific DMA hardware will only instantiate on AM62L boards, making the config harmless on other K3 devices.

Tip

📝 Customizable high-level summaries are now available in beta!

You can now customize how CodeRabbit generates the high-level summary in your pull requests — including its content, structure, tone, and formatting.

  • Provide your own instructions using the high_level_summary_instructions setting.
  • Format the summary however you like (bullet lists, tables, multi-section layouts, contributor stats, etc.).
  • Use high_level_summary_in_walkthrough to move the summary from the description to the walkthrough section.

Example instruction:

"Divide the high-level summary into five sections:

  1. 📝 Description — Summarize the main change in 50–60 words, explaining what was done.
  2. 📓 References — List relevant issues, discussions, documentation, or related PRs.
  3. 📦 Dependencies & Requirements — Mention any new/updated dependencies, environment variable changes, or configuration updates.
  4. 📊 Contributor Summary — Include a Markdown table showing contributions:
    | Contributor | Lines Added | Lines Removed | Files Changed |
  5. ✔️ Additional Notes — Add any extra reviewer context.
    Keep each section concise (under 200 words) and use bullet or numbered lists for clarity."

Note: This feature is currently in beta for Pro-tier users, and pricing will be announced later.


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 size/medium PR with more then 50 and less then 250 lines 11 Milestone: Fourth quarter release Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... labels Nov 17, 2025
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: 1

🧹 Nitpick comments (1)
config/sources/families/include/k3_common.inc (1)

45-47: ATF/UBoot target maps: good extensibility.

Using all with ${EXTRA_ATF_TARGETS} and injecting ${EXTRA_BOOT_ARGS} is clean and matches the board’s BL1 hand‑off.

Minor follow‑up (separate PR OK): make OP‑TEE toolchains explicit (CROSS_COMPILE64 and CROSS_COMPILE32) per prior note to avoid relying on defaults. Based on learnings.

📜 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 23dc0cc and 10bfe13.

📒 Files selected for processing (23)
  • config/boards/beaglebone-ai64.conf (1 hunks)
  • config/boards/beagleplay.conf (1 hunks)
  • config/boards/beagley-ai.conf (1 hunks)
  • config/boards/pocketbeagle2.conf (1 hunks)
  • config/boards/sk-am62b.conf (1 hunks)
  • config/boards/sk-am62p.conf (1 hunks)
  • config/boards/sk-am64b.conf (1 hunks)
  • config/boards/sk-am68.conf (1 hunks)
  • config/boards/sk-am69.conf (1 hunks)
  • config/boards/sk-tda4vm.conf (1 hunks)
  • config/boards/tmds62levm.conf (1 hunks)
  • config/kernel/linux-genio-collabora.config (1 hunks)
  • config/kernel/linux-k3-beagle-edge.config (1 hunks)
  • config/kernel/linux-k3-beagle-vendor-rt.config (1 hunks)
  • config/kernel/linux-k3-beagle-vendor.config (1 hunks)
  • config/kernel/linux-k3-edge.config (1 hunks)
  • config/kernel/linux-k3-vendor-edge.config (1 hunks)
  • config/kernel/linux-k3-vendor-rt.config (1 hunks)
  • config/kernel/linux-k3-vendor.config (1 hunks)
  • config/kernel/linux-uefi-arm64-current.config (1 hunks)
  • config/kernel/linux-uefi-arm64-legacy.config (1 hunks)
  • config/sources/families/include/k3_common.inc (3 hunks)
  • config/sources/families/k3.conf (1 hunks)
🧰 Additional context used
🧠 Learnings (42)
📓 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: 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.
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.
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.
📚 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/sk-am64b.conf
  • config/kernel/linux-k3-beagle-edge.config
  • config/boards/sk-tda4vm.conf
  • config/boards/sk-am69.conf
  • config/kernel/linux-k3-vendor.config
  • config/kernel/linux-k3-vendor-edge.config
  • config/kernel/linux-genio-collabora.config
  • config/kernel/linux-k3-edge.config
  • config/kernel/linux-uefi-arm64-current.config
  • config/boards/pocketbeagle2.conf
  • config/boards/sk-am62p.conf
  • config/boards/beaglebone-ai64.conf
  • config/kernel/linux-uefi-arm64-legacy.config
  • config/boards/beagley-ai.conf
  • config/boards/beagleplay.conf
  • config/kernel/linux-k3-beagle-vendor.config
  • config/kernel/linux-k3-beagle-vendor-rt.config
  • config/boards/tmds62levm.conf
  • config/boards/sk-am62b.conf
  • config/sources/families/k3.conf
  • config/sources/families/include/k3_common.inc
  • config/boards/sk-am68.conf
📚 Learning: 2025-10-14T05:08:11.785Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8754
File: config/boards/bestv-r3300-l.csc:14-16
Timestamp: 2025-10-14T05:08:11.785Z
Learning: In the Armbian build system, BOOTBRANCH_BOARD is a valid framework variable used as a fallback when BOOTBRANCH is unset. The framework checks BOOTBRANCH_BOARD before applying the default bootloader branch value (see config/sources/common.conf). Board configuration files can use BOOTBRANCH_BOARD to specify the bootloader branch.

Applied to files:

  • config/boards/sk-am64b.conf
  • config/boards/sk-tda4vm.conf
  • config/boards/sk-am69.conf
  • config/boards/pocketbeagle2.conf
  • config/boards/sk-am62p.conf
  • config/boards/beaglebone-ai64.conf
  • config/boards/beagley-ai.conf
  • config/boards/beagleplay.conf
  • config/boards/tmds62levm.conf
  • config/boards/sk-am62b.conf
  • config/sources/families/k3.conf
  • config/sources/families/include/k3_common.inc
  • config/boards/sk-am68.conf
📚 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/sk-am64b.conf
  • config/boards/sk-tda4vm.conf
  • config/boards/sk-am69.conf
  • config/boards/pocketbeagle2.conf
  • config/boards/sk-am62p.conf
  • config/boards/beaglebone-ai64.conf
  • config/boards/beagley-ai.conf
  • config/boards/beagleplay.conf
  • config/boards/tmds62levm.conf
  • config/boards/sk-am62b.conf
  • config/boards/sk-am68.conf
📚 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/sk-am64b.conf
  • config/boards/sk-tda4vm.conf
  • config/boards/sk-am69.conf
  • config/boards/pocketbeagle2.conf
  • config/boards/sk-am62p.conf
  • config/boards/beaglebone-ai64.conf
  • config/boards/beagley-ai.conf
  • config/boards/beagleplay.conf
  • config/boards/tmds62levm.conf
  • config/boards/sk-am62b.conf
  • config/sources/families/k3.conf
  • config/boards/sk-am68.conf
📚 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/sk-am64b.conf
  • config/boards/sk-tda4vm.conf
  • config/boards/sk-am69.conf
  • config/boards/pocketbeagle2.conf
  • config/boards/sk-am62p.conf
  • config/boards/beagley-ai.conf
  • config/boards/beagleplay.conf
📚 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/sk-am64b.conf
  • config/boards/sk-am69.conf
  • config/boards/beaglebone-ai64.conf
  • config/boards/beagley-ai.conf
  • config/boards/sk-am62b.conf
📚 Learning: 2025-06-12T21:08:11.318Z
Learnt from: djurny
Repo: armbian/build PR: 8287
File: config/bootscripts/boot-sunxi.cmd:13-23
Timestamp: 2025-06-12T21:08:11.318Z
Learning: In config/bootscripts/boot-sunxi.cmd the variable name `align_overlap_oboe_avoidance` intentionally uses the acronym “OBOE” (Off-By-One Error); it is not a typo and should not be renamed.

Applied to files:

  • config/boards/sk-am64b.conf
  • config/boards/sk-tda4vm.conf
  • config/boards/pocketbeagle2.conf
  • config/boards/beagley-ai.conf
  • config/boards/beagleplay.conf
📚 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/sk-am64b.conf
  • config/boards/sk-tda4vm.conf
  • config/boards/sk-am69.conf
  • config/boards/beaglebone-ai64.conf
  • config/boards/beagley-ai.conf
  • config/boards/beagleplay.conf
  • config/boards/tmds62levm.conf
📚 Learning: 2025-09-12T19:28:38.491Z
Learnt from: Grippy98
Repo: armbian/build PR: 8622
File: config/sources/families/k3.conf:66-66
Timestamp: 2025-09-12T19:28:38.491Z
Learning: In the Armbian k3 family build system (config/sources/families/k3.conf), builds do not fail when TIBOOT3_BOOTCONFIG is unset, even though tiboot3.bin is still listed in UBOOT_TARGET_MAP. The gating mechanism in pre_config_uboot_target__build_first_stage function works as intended to conditionally build/copy tiboot3.bin only when TIBOOT3_BOOTCONFIG is defined.

Applied to files:

  • config/boards/sk-am64b.conf
  • config/boards/sk-tda4vm.conf
  • config/boards/sk-am69.conf
  • config/kernel/linux-uefi-arm64-current.config
  • config/boards/pocketbeagle2.conf
  • config/boards/sk-am62p.conf
  • config/boards/beaglebone-ai64.conf
  • config/kernel/linux-uefi-arm64-legacy.config
  • config/boards/beagley-ai.conf
  • config/boards/beagleplay.conf
  • config/boards/tmds62levm.conf
  • config/boards/sk-am62b.conf
  • config/sources/families/k3.conf
  • config/sources/families/include/k3_common.inc
  • config/boards/sk-am68.conf
📚 Learning: 2025-07-23T07:30:52.265Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8417
File: config/boards/orangepi5pro.csc:57-58
Timestamp: 2025-07-23T07:30:52.265Z
Learning: In the Armbian build system, BOOTPATCHDIR can contain board-specific subdirectories (e.g., board_orangepi5pro) for applying patches to specific boards only. The framework automatically checks if such board-specific subdirectories exist for the board being built and applies those patches accordingly.

Applied to files:

  • config/boards/sk-am64b.conf
  • config/boards/sk-tda4vm.conf
  • config/boards/sk-am69.conf
  • config/boards/pocketbeagle2.conf
  • config/boards/sk-am62p.conf
  • config/boards/beaglebone-ai64.conf
  • config/boards/beagley-ai.conf
  • config/boards/beagleplay.conf
  • config/boards/tmds62levm.conf
  • config/boards/sk-am62b.conf
  • config/sources/families/k3.conf
  • config/sources/families/include/k3_common.inc
  • config/boards/sk-am68.conf
📚 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/sk-am64b.conf
  • config/boards/sk-tda4vm.conf
  • config/boards/sk-am69.conf
  • config/boards/pocketbeagle2.conf
  • config/boards/sk-am62p.conf
  • config/boards/beaglebone-ai64.conf
  • config/boards/beagley-ai.conf
  • config/boards/beagleplay.conf
  • config/boards/tmds62levm.conf
  • config/boards/sk-am62b.conf
  • config/sources/families/k3.conf
  • config/sources/families/include/k3_common.inc
  • config/boards/sk-am68.conf
📚 Learning: 2025-09-14T06:29:18.958Z
Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:64-70
Timestamp: 2025-09-14T06:29:18.958Z
Learning: In the Armbian build system, vendor branch configurations in family files are designed to be shared across multiple SoCs within the same family that use the same vendor kernel tree. For example, rk35xx and rockchip-rk3588 families both use identical vendor branch settings (same KERNELSOURCE, KERNELBRANCH, and KERNELPATCHDIR), demonstrating that vendor branches are intentionally generic rather than SoC-specific.

Applied to files:

  • config/boards/sk-am64b.conf
  • config/boards/sk-am69.conf
  • config/boards/sk-am62p.conf
  • config/boards/tmds62levm.conf
  • config/boards/sk-am62b.conf
  • config/sources/families/k3.conf
  • config/boards/sk-am68.conf
📚 Learning: 2025-06-04T23:45:38.860Z
Learnt from: djurny
Repo: armbian/build PR: 8272
File: config/bootscripts/boot-mvebu.cmd:182-186
Timestamp: 2025-06-04T23:45:38.860Z
Learning: In config/bootscripts/boot-mvebu.cmd, the `fdtfile` variable is mandatory for booting and is pre-set by U-Boot, but can be overridden via armbianEnv.txt. If `fdtfile` is empty, the subsequent device tree file search logic will eventually fail and trigger the critical error "Cannot find DT!" with proper error handling.

Applied to files:

  • config/boards/sk-am64b.conf
  • config/boards/sk-tda4vm.conf
  • config/boards/sk-am69.conf
  • config/boards/sk-am62p.conf
  • config/boards/beaglebone-ai64.conf
  • config/boards/beagley-ai.conf
  • config/boards/beagleplay.conf
  • config/boards/sk-am62b.conf
  • config/sources/families/k3.conf
  • config/boards/sk-am68.conf
📚 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/sk-am64b.conf
  • config/boards/sk-tda4vm.conf
  • config/boards/pocketbeagle2.conf
  • config/boards/beaglebone-ai64.conf
  • config/boards/beagley-ai.conf
  • config/boards/beagleplay.conf
  • config/boards/tmds62levm.conf
  • config/boards/sk-am62b.conf
  • config/sources/families/k3.conf
  • config/boards/sk-am68.conf
📚 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:

  • config/kernel/linux-k3-beagle-edge.config
  • config/kernel/linux-k3-vendor.config
  • config/kernel/linux-k3-vendor-edge.config
  • config/kernel/linux-genio-collabora.config
  • config/kernel/linux-k3-edge.config
  • config/kernel/linux-uefi-arm64-current.config
  • config/kernel/linux-uefi-arm64-legacy.config
  • config/kernel/linux-k3-beagle-vendor.config
  • config/kernel/linux-k3-beagle-vendor-rt.config
  • config/kernel/linux-k3-vendor-rt.config
📚 Learning: 2025-09-27T21:50:15.915Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8678
File: config/kernel/linux-sunxi64-current.config:94-94
Timestamp: 2025-09-27T21:50:15.915Z
Learning: When kernel config files are generated through Armbian's automated process (previous config → armbian-kernel.sh changes → make oldconfig → Armbian machinery processing), manual config file edits are not appropriate since they would be overwritten. Deprecated option handling should be implemented in the automated tooling instead.

Applied to files:

  • config/kernel/linux-k3-beagle-edge.config
  • config/kernel/linux-k3-vendor.config
  • config/kernel/linux-k3-vendor-edge.config
  • config/kernel/linux-genio-collabora.config
  • config/kernel/linux-uefi-arm64-current.config
  • config/kernel/linux-k3-beagle-vendor.config
  • config/kernel/linux-k3-beagle-vendor-rt.config
📚 Learning: 2025-09-27T21:47:58.020Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8678
File: config/kernel/linux-bcm2711-edge.config:859-861
Timestamp: 2025-09-27T21:47:58.020Z
Learning: In the Armbian build system, kernel configuration files in config/kernel/ are generated through an automated process: taking previous config → applying scripted changes from armbian-kernel.sh → running kernel's `make oldconfig` → processing by Armbian machinery back into config files. This automated process properly handles kernel configuration dependencies and reduces the likelihood of manual configuration errors.

Applied to files:

  • config/kernel/linux-k3-beagle-edge.config
  • config/kernel/linux-genio-collabora.config
  • config/kernel/linux-k3-edge.config
  • config/kernel/linux-uefi-arm64-legacy.config
  • config/kernel/linux-k3-beagle-vendor.config
📚 Learning: 2025-10-23T19:48:42.980Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8812
File: config/kernel/linux-sm8250-edge.config:498-501
Timestamp: 2025-10-23T19:48:42.980Z
Learning: For Armbian EDGE kernel configs, CONFIG_ATH12K=m alone is sufficient for PCI-based Wi-Fi 7 devices (e.g., WCN785x/QCN9274). A separate CONFIG_ATH12K_PCI option is not required, as confirmed by maintainer testing.

Applied to files:

  • config/kernel/linux-k3-beagle-edge.config
  • config/kernel/linux-k3-vendor.config
  • config/kernel/linux-k3-vendor-edge.config
  • config/kernel/linux-k3-edge.config
  • config/kernel/linux-k3-beagle-vendor.config
  • config/kernel/linux-k3-beagle-vendor-rt.config
📚 Learning: 2025-09-22T21:52:01.225Z
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.

Applied to files:

  • config/kernel/linux-k3-beagle-edge.config
  • config/kernel/linux-genio-collabora.config
  • config/kernel/linux-k3-edge.config
  • config/kernel/linux-uefi-arm64-current.config
  • config/kernel/linux-uefi-arm64-legacy.config
  • config/kernel/linux-k3-beagle-vendor.config
  • config/kernel/linux-k3-beagle-vendor-rt.config
📚 Learning: 2025-09-27T21:49:55.796Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8678
File: config/kernel/linux-sm8250-current.config:78-80
Timestamp: 2025-09-27T21:49:55.796Z
Learning: In the Armbian build system, kernel configuration files are generated through an automated process: taking previous config → applying scripted changes from armbian-kernel.sh → running kernel's `make oldconfig` → processing by Armbian machinery back into config files. This automated process properly handles kernel configuration dependencies and reduces the likelihood of manual configuration errors.

Applied to files:

  • config/kernel/linux-k3-beagle-edge.config
📚 Learning: 2025-09-27T21:50:04.845Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8678
File: config/kernel/linux-sm8250-edge.config:80-82
Timestamp: 2025-09-27T21:50:04.845Z
Learning: In the Armbian build system, kernel configuration files are generated through this automated process: taking previous config → applying scripted changes from armbian-kernel.sh → running kernel's `make oldconfig` → processing by Armbian machinery back into config files. This automated process properly handles kernel configuration dependencies and reduces the likelihood of manual configuration errors.

Applied to files:

  • config/kernel/linux-k3-beagle-edge.config
📚 Learning: 2025-09-22T21:52:01.225Z
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: The kernel_config_set_m function in lib/functions/compilation/armbian-kernel.sh preserves existing 'y' (built-in) settings and only sets options to 'm' (module) when they are not already built-in, achieving "prefer modules but allow built-ins" behavior.

Applied to files:

  • config/kernel/linux-k3-beagle-edge.config
  • config/kernel/linux-k3-vendor-edge.config
  • config/kernel/linux-genio-collabora.config
  • config/kernel/linux-k3-edge.config
  • config/kernel/linux-uefi-arm64-current.config
  • config/kernel/linux-k3-beagle-vendor.config
  • config/kernel/linux-k3-beagle-vendor-rt.config
  • config/kernel/linux-k3-vendor-rt.config
📚 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:

  • config/kernel/linux-k3-beagle-edge.config
  • config/kernel/linux-k3-vendor.config
  • config/kernel/linux-k3-vendor-edge.config
  • config/kernel/linux-genio-collabora.config
  • config/kernel/linux-k3-edge.config
  • config/kernel/linux-k3-beagle-vendor.config
  • config/kernel/linux-k3-beagle-vendor-rt.config
  • config/kernel/linux-k3-vendor-rt.config
📚 Learning: 2025-11-13T14:50:44.651Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8925
File: lib/functions/host/docker.sh:141-141
Timestamp: 2025-11-13T14:50:44.651Z
Learning: In the Armbian build system, certain boards have U-Boot that doesn't build correctly on ubuntu:noble but works on ubuntu:jammy. For these boards, DOCKER_ARMBIAN_BASE_IMAGE can be set to "ubuntu:jammy" via an extension file loaded before docker_cli_prepare() runs, allowing legacy toolchains to work while the community works on proper fixes with limited resources.

Applied to files:

  • config/boards/sk-tda4vm.conf
  • config/sources/families/include/k3_common.inc
📚 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/sk-tda4vm.conf
  • config/boards/sk-am69.conf
  • config/boards/pocketbeagle2.conf
  • config/boards/beagley-ai.conf
  • config/boards/beagleplay.conf
  • config/sources/families/include/k3_common.inc
📚 Learning: 2025-10-23T19:50:25.841Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8812
File: config/kernel/linux-rockchip-edge.config:730-733
Timestamp: 2025-10-23T19:50:25.841Z
Learning: For ATH12K wireless driver configuration: only CONFIG_ATH12K=m needs to be explicitly set in kernel config files. The kernel build system automatically selects CONFIG_ATH12K_PCI when both CONFIG_ATH12K and CONFIG_PCI are enabled. This pattern is consistent across all Armbian edge kernel configs. CONFIG_ATH12K_PCI does not need to be explicitly added to config files.

Applied to files:

  • config/kernel/linux-k3-vendor.config
  • config/kernel/linux-k3-vendor-edge.config
  • config/kernel/linux-k3-edge.config
  • config/kernel/linux-k3-vendor-rt.config
📚 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:

  • config/kernel/linux-k3-vendor.config
  • config/kernel/linux-k3-vendor-edge.config
  • config/kernel/linux-k3-beagle-vendor-rt.config
  • config/kernel/linux-k3-vendor-rt.config
📚 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 KERNEL_CONFIGURE=yes switch is deprecated. The recommended approach for kernel configuration is now to use the `kernel-config` build command, which provides a more structured way to configure kernel options.

Applied to files:

  • config/kernel/linux-k3-vendor-edge.config
  • config/kernel/linux-genio-collabora.config
  • config/kernel/linux-k3-beagle-vendor.config
📚 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/kernel/linux-uefi-arm64-current.config
  • config/kernel/linux-uefi-arm64-legacy.config
📚 Learning: 2025-11-11T20:56:20.303Z
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.

Applied to files:

  • config/kernel/linux-uefi-arm64-current.config
  • config/sources/families/k3.conf
  • config/sources/families/include/k3_common.inc
📚 Learning: 2025-06-25T03:42:09.086Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8330
File: config/sources/families/sun55iw3.conf:32-36
Timestamp: 2025-06-25T03:42:09.086Z
Learning: In Armbian build system configuration files like config/sources/families/*.conf, KERNELSOURCE is explicitly declared when using unofficial or 3rd party kernel repositories (like the "dev" branch using https://github.com/apritzel/linux), but can be omitted when using the standard mainline kernel (like the "edge" branch) since it will fall back to the default mainline source.

Applied to files:

  • config/boards/sk-am62p.conf
  • config/boards/sk-am62b.conf
  • config/sources/families/k3.conf
📚 Learning: 2025-08-21T08:10:59.502Z
Learnt from: leggewie
Repo: armbian/build PR: 8524
File: config/boards/orangepi2.csc:6-6
Timestamp: 2025-08-21T08:10:59.502Z
Learning: Not all Armbian boards support all kernel versions (legacy, current, edge). Some boards may only support specific kernel versions due to hardware limitations or lack of mainline support, which is why their KERNEL_TARGET contains only the supported options (e.g., just "legacy").

Applied to files:

  • config/boards/tmds62levm.conf
📚 Learning: 2025-06-25T03:40:52.109Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8330
File: config/sources/families/sun55iw3.conf:32-36
Timestamp: 2025-06-25T03:40:52.109Z
Learning: In Armbian build system configuration files like config/sources/families/*.conf, when KERNELSOURCE is not explicitly declared in a case branch, the system falls back to a default KERNELSOURCE value, so missing KERNELSOURCE declarations are not critical issues.

Applied to files:

  • config/sources/families/k3.conf
📚 Learning: 2025-06-12T21:03:39.686Z
Learnt from: djurny
Repo: armbian/build PR: 8287
File: config/bootscripts/boot-sunxi.cmd:148-161
Timestamp: 2025-06-12T21:03:39.686Z
Learning: In Armbian U-Boot bootscripts, the `${cpu}` environment variable is always pre-set by U-Boot (or defaults to a valid value), so additional guards against it being unset are unnecessary.

Applied to files:

  • config/sources/families/k3.conf
  • config/sources/families/include/k3_common.inc
📚 Learning: 2025-09-12T09:49:31.957Z
Learnt from: amazingfate
Repo: armbian/build PR: 8617
File: lib/functions/compilation/kernel.sh:126-127
Timestamp: 2025-09-12T09:49:31.957Z
Learning: In the Armbian build system, the "all" target in kernel build has been used for a long time without issues. The "all" target builds vmlinux/Image/Image.gz defaults for the architecture and works correctly alongside KERNEL_IMAGE_TYPE in the build_targets_build array.

Applied to files:

  • config/sources/families/include/k3_common.inc
📚 Learning: 2025-08-21T08:10:25.459Z
Learnt from: leggewie
Repo: armbian/build PR: 8524
File: config/boards/nanopiduo2.csc:12-12
Timestamp: 2025-08-21T08:10:25.459Z
Learning: KERNEL_TARGET and KERNEL_TEST_TARGET in Armbian build system do not have enforced validation relationships. KERNEL_TARGET is used for interactive menu ordering and branch validation, while KERNEL_TEST_TARGET is used for build list generation and recorded in /etc/armbian-release. No existing codebase validation enforces that KERNEL_TEST_TARGET values must be present in KERNEL_TARGET.

Applied to files:

  • config/sources/families/include/k3_common.inc
📚 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:

  • config/sources/families/include/k3_common.inc
  • config/boards/sk-am68.conf
📚 Learning: 2025-08-11T12:39:22.861Z
Learnt from: pyavitz
Repo: armbian/build PR: 8481
File: config/kernel/linux-spacemit-edge.config:492-494
Timestamp: 2025-08-11T12:39:22.861Z
Learning: The SpacemiT platform requires esos.elf firmware to be embedded in the kernel image for boot. The Armbian build system handles this by copying esos.elf from $SRC/packages/blobs/riscv64/spacemit/ to ${kernel_work_dir}/firmware/ via the custom_kernel_config__spacemit_k1_firmware() function in config/sources/families/spacemit.conf, ensuring CONFIG_EXTRA_FIRMWARE="esos.elf" can successfully embed it during kernel build.

Applied to files:

  • config/sources/families/include/k3_common.inc
📚 Learning: 2025-08-03T15:21:20.148Z
Learnt from: pyavitz
Repo: armbian/build PR: 8455
File: config/sources/families/sun50iw1.conf:19-24
Timestamp: 2025-08-03T15:21:20.148Z
Learning: In the Armbian build system, when copying firmware files during family_tweaks_s(), use /lib/firmware/updates/ instead of /lib/firmware/ to avoid conflicts with the Armbian firmware package. The /lib/firmware/updates directory takes precedence in Linux firmware loading hierarchy and is the proper location for user-installed firmware files.

Applied to files:

  • config/sources/families/include/k3_common.inc
📚 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:

  • config/sources/families/include/k3_common.inc
📚 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:

  • config/kernel/linux-k3-vendor-rt.config
🔇 Additional comments (23)
config/kernel/linux-k3-vendor.config (1)

911-914: AM62L UDMA enable looks correct

Placed right after TI_K3_UDMA and before GLUE; dependencies satisfied. LGTM.

config/boards/sk-am62b.conf (1)

6-6: BOOT_SOC added; aligns with k3 flow

Value "am62" is consistent; BOOT_FDT_FILE uses .dts as per convention. LGTM. Based on learnings.

config/kernel/linux-k3-vendor-edge.config (1)

929-932: AM62L UDMA enable (edge) is well‑placed

Keeps TI_K3_UDMA → TI_K3_UDMA_AM62L → GLUE order. Looks good.

config/boards/sk-tda4vm.conf (1)

6-6: BOOT_SOC set to j721e — OK

Matches DT/ATF/OP‑TEE selections for TDA4VM. LGTM.

config/boards/sk-am64b.conf (1)

6-6: BOOT_SOC set to am64 — OK

Consistent with filenames and platform args. LGTM.

config/boards/sk-am69.conf (1)

6-6: BOOT_SOC set to j784s4 — OK

Aligns with TIBOOT3/ATF/OP‑TEE selections. LGTM.

config/kernel/linux-uefi-arm64-legacy.config (1)

5054-5057: Confirm symbol exists in 6.6 legacy kernel

CONFIG_TI_K3_UDMA_AM62L=y looks fine, but this legacy defconfig targets 6.6; please confirm the symbol is present in the 6.6 branch you build here to avoid “unknown symbol” drops during oldconfig. If absent, it’s harmless but noisy; otherwise keep as is.

config/boards/sk-am62p.conf (1)

6-6: BOOT_SOC addition verified; consistency confirmed across all k3 boards

Verification confirms sk-am62p.conf's BOOT_SOC="am62p" is consistent with existing k3 board configurations. All k3 boards have BOOT_SOC defined, and all correctly use .dts in BOOT_FDT_FILE (not .dtb). Changes approved.

config/boards/beaglebone-ai64.conf (1)

6-6: LGTM! BOOT_SOC addition is correct.

The BOOT_SOC value "j721e" correctly identifies the TDA4VM SoC for this board and follows the consistent pattern established across the k3 family boards in this PR.

config/boards/sk-am68.conf (1)

6-6: LGTM! BOOT_SOC addition is correct.

The BOOT_SOC value "j721s2" correctly identifies the AM68 SoC and maintains consistency with the other board configurations in this PR.

config/kernel/linux-k3-edge.config (1)

930-930: LGTM! AM62L UDMA support addition is correct.

The CONFIG_TI_K3_UDMA_AM62L option is correctly placed after the base CONFIG_TI_K3_UDMA option and enables AM62L-specific UDMA support across the k3 family kernel configurations.

config/boards/beagley-ai.conf (1)

6-6: LGTM! BOOT_SOC addition is correct.

The BOOT_SOC value "j722s" correctly identifies the AM67A SoC used in the BeagleY-AI board and follows the consistent pattern across all k3 board configurations.

config/boards/beagleplay.conf (1)

6-6: LGTM! BOOT_SOC addition is correct.

The BOOT_SOC value "am62" correctly identifies the AM62 SoC for the BeaglePlay board and maintains consistency with the other board configurations.

config/kernel/linux-genio-collabora.config (1)

1477-1477: LGTM! AM62L UDMA support addition is correct.

The CONFIG_TI_K3_UDMA_AM62L option is correctly placed and extends AM62L-specific UDMA support to the GenIO Collabora kernel configuration, maintaining consistency with other defconfigs in this PR.

config/kernel/linux-k3-beagle-vendor.config (1)

895-895: LGTM! AM62L UDMA support addition is correct.

The CONFIG_TI_K3_UDMA_AM62L option is correctly placed and extends AM62L-specific UDMA support to the k3-beagle vendor kernel configuration, maintaining consistency across all k3 defconfigs.

config/boards/pocketbeagle2.conf (1)

6-6: LGTM! BOOT_SOC addition is correct.

The BOOT_SOC value "am62" correctly identifies the AM62 SoC for the PocketBeagle 2 board and completes the consistent pattern of BOOT_SOC additions across all k3 family board configurations in this PR.

config/kernel/linux-uefi-arm64-current.config (1)

5014-5015: AM62L UDMA enablement looks good.

Additive and consistent with K3 configs.

config/sources/families/k3.conf (1)

48-64: am62l overrides for ATF/U‑Boot are sensible; keep reproducibility in mind.

TI forks for edge/vendor branches make sense until upstream catches up. Please confirm the pinned ATF commit and ti‑u‑boot branches here match what you tested (PSDK tag/commit), or consider pinning BOOTBRANCH to a tag for repeatable builds.

config/kernel/linux-k3-beagle-edge.config (1)

930-931: Consistent AM62L UDMA enablement.

Matches other defconfigs; no issues.

config/boards/tmds62levm.conf (1)

1-20: New TMDS62LEVM board config: small validations.

  • BOOT_FDT_FILE uses .dts (correct for TI K3 in Armbian). Nice. Based on learnings.
  • Please confirm the DTS path “ti/k3-am62l3-evm.dts” matches the TMDS62LEVM variant you tested and that SERIALCON=ttyS2 is the right UART on this EVM.
  • EXTRA_ATF_TARGETS and EXTRA_BOOT_ARGS align with k3_common.inc changes.
config/kernel/linux-k3-beagle-vendor-rt.config (1)

894-896: AM62L UDMA enablement (vendor‑rt) is fine.

Consistent with other branches.

config/sources/families/include/k3_common.inc (2)

62-67: am62l: skip R5 tiboot3/sysfw build — OK.

Matches the plan to have tiboot3.bin produced by U‑Boot with BL1/TEE inputs.

Please confirm ti‑u‑boot‑2025.01 “make all” for am62l indeed emits tiboot3.bin so write_uboot_platform’s copy step won’t fail.


82-85: am62l: gated tiboot3/sysfw copy — OK.

Copy guarded with BOOT_SOC!=am62l avoids stale artifacts.

Double‑check that sysfw.itb is optional for am62l in your flow (write step already tolerates absence with “|| true” for sysfw).

declare -g BOOTSOURCE="https://github.com/TexasInstruments/ti-u-boot"
if [[ "${BRANCH}" == "edge" ]]; then
declare -g ATFBRANCH="branch:ti-master"
declare -g BOOTBRANCH="branch:ti-u-boot-2025.01"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So we get a different U-Boot package here even though we set BRANCH=edge and LINUXFAMILY and all other items are the same? That's going to break something.. We shouldn't switch out these per-board (or if we do we should do it in the board.conf file and do it very carefully).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's an SoC-level need, not board-specific, so only makes sense to be at k3_common.inc/k3.conf level

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What will it break? I'd assume it would just create package unique to 62L boards, keeping other packages same, which is desired

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If you do the build, what ends up in output/debs ? I can't think of cases where linux-u-boot pkgs get shared per family/SOC. ditto armbian-bsp-cli.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I ended up removing edge for 62L entirely in force-push 670788f. Doesn't make sense to support edge for 62L when its ATF, u-boot, and kernel support aren't in upstream yet... Will just come back and add once they're in upstream

run_host_command_logged make -j$(nproc) CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm O=build-r5 BINMAN_INDIRS=${SRC}/cache/sources/ti-linux-firmware

popd
if [[ "${BOARD_NAME}" != "TMDS62LEVM" ]]; then
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For TMDS62LEVM then this function is empty (other than cloning ti-linux-firmware which the function doesn't use in the TMDS62LEVM), so why call this at all for TMDS62LEVM? Put it inside the if case down in pre_config_uboot_target.

The ti-linux-firmware doesn't belong in this function anyway, it is used by both the first stage and the regular U-Boot build, so it also belongs in pre_config_uboot_target

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're looking at 1st commit, this is changed to if [[ "${BOOT_SOC}" != "am62l" ]] in 2nd commit. Exactly: ti-linux-firmware src is needed by UBOOT_TARGET_MAP too. I am going to clean up ti-linux-firmware and optee-os clone/functions in later PR anyway, but doesn't belong in this PR IMO for simple add of 62L EVM

@jonaswood01 jonaswood01 requested a review from glneo November 18, 2025 20:36
@github-actions github-actions bot removed the Needs review Seeking for review label Nov 19, 2025
@igorpecovnik igorpecovnik merged commit 1e3b174 into armbian:main Nov 19, 2025
12 checks passed
@jonaswood01 jonaswood01 deleted the add-62L branch November 19, 2025 21:28
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, ... size/medium PR with more then 50 and less then 250 lines

Development

Successfully merging this pull request may close these issues.

6 participants