-
-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Add support for XpressReal T3 #8557
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
Conversation
WalkthroughAdds a new Realtek RTD1619B board "XpressReal T3": board config, bootenv, U-Boot bootscript, kernel config, and a new family source file. Introduces AIC8800/SDIO and Bluetooth declarations and two post-family tweak functions that create modprobe/modules-load configs and install/enable a oneshot service plus a script to load RTK modules. Adds packaging files for load-rtk-modules.sh and load-rtk-modules.service and build hooks for U-Boot signing/image generation and firmware installation. Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested reviewers
✨ Finishing Touches
🧪 Generate unit tests
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. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
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: 8
🧹 Nitpick comments (15)
config/bootenv/xpressreal-t3.txt (1)
1-3: Bootenv defaults look fineMatches Armbian conventions (verbosity, bootlogo, console). Minor nit: ensure a trailing newline at EOF to keep linters/tools happy.
packages/bsp/xpressreal-t3/firmware/aic8800/aic_userconfig_8800d80.txt (2)
82-86: Clarify loss settings to avoid future surprisesloss_enable_* are 0 while loss_value_* are non-zero. Either set loss_value_* to 0 or add a brief comment explaining intended runtime toggle behavior.
118-123: Trim trailing blank linesRemove trailing empty lines to keep the file tidy and avoid parser edge cases.
-xtal_cap_fine=31 - - - +xtal_cap_fine=31packages/bsp/xpressreal-t3/firmware/aic8800/aic_powerlimit_8800d80.txt (3)
11-24: Normalize whitespace in 2.4 GHz tableA few rows contain tabs mixed with spaces; normalize to single-space columns to avoid fragile parsers.
-CH03 15 18 13 -CH04 15 18 13 -CH05 15 18 13 -CH06 15 18 13 +CH03 15 18 13 +CH04 15 18 13 +CH05 15 18 13 +CH06 15 18 13
1-6: CRDA wording is outdatedConsider rewording the header to reference “Linux wireless regulatory database (wireless-regdb)” without mentioning CRDA (deprecated), to avoid confusion.
27-60: Confirm parser semantics for ‘NA’ and unitsEnsure the consumer interprets “NA” as “disallowed/unavailable” and that values are in dBm. If required, add a one-line header noting units and NA semantics.
config/kernel/linux-xpressreal-t3-6.6.config (4)
34-34: EFI disabled on arm64 — intentional?Disabling CONFIG_EFI can limit boot flexibility (UEFI/GRUB, efivarfs). If vendor U-Boot mandates non-EFI boot, keep it off; otherwise consider enabling.
178-178: Drop PHONET unless requiredPHONET is niche and adds surface area. Disable if not explicitly needed.
-CONFIG_PHONET=y +# CONFIG_PHONET is not set
435-435: Trim legacy USB driverUSB_MDC800 is very old and rarely useful; disable to reduce footprint unless you have a concrete use case.
-CONFIG_USB_MDC800=y +# CONFIG_USB_MDC800 is not set
569-576: Consider reducing heavy tracing/debug for release kernelsPRINTK_TIME/FTRACE/KFENCE/DEBUG_FS/DYNAMIC_DEBUG can have non-trivial overhead. Keep for dev builds; gate or disable for release if not needed.
config/bootscripts/boot-xpressreal-t3.cmd (1)
43-46: Avoid passing empty usb-storage.quirks kernel param.Only append when set to reduce noisy cmdlines.
-setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}" +setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} ${extraargs} ${extraboardargs}" +if test -n "${usbstoragequirks}"; then + setenv bootargs "${bootargs} usb-storage.quirks=${usbstoragequirks}" +ficonfig/sources/families/realtek-rtd1619b.conf (4)
31-51: display_alert misuse and typo.
- display_alert normally takes three args (title, message, level). Provide level for consistent logs.
- Fix “singing” → “signing”.
- Use KEY_DIR variable consistently.
-function pre_config_uboot_target() { - display_alert "Run pre_config_uboot_target" +function pre_config_uboot_target() { + display_alert "realtek-rtd1619b" "pre_config_uboot_target" "info" @@ - if [ -d "./prebuilt/keys" ]; then - display_alert "Copy keys..." - run_host_command_logged cp -r "./prebuilt/keys" "./keys" + if [ -d "./prebuilt/keys" ]; then + display_alert "realtek-rtd1619b" "Copy keys..." "info" + run_host_command_logged cp -r "./prebuilt/keys" "./keys" else - display_alert "No singing keys found" + display_alert "realtek-rtd1619b" "No signing keys found" "warn" fi
55-67: display_alert args and KEY_DIR usage alignment.Keep logs uniform and avoid hardcoded paths.
-function post_uboot_custom_postprocess() { - display_alert "Run post_uboot_custom_postprocess" +function post_uboot_custom_postprocess() { + display_alert "realtek-rtd1619b" "post_uboot_custom_postprocess" "info" @@ - local KEY_DIR="./keys" + local KEY_DIR="./keys" local PREBUILT="./prebuilt" @@ - if [ -d "./keys" ]; then - display_alert "Signing SPL..." + if [ -d "${KEY_DIR}" ]; then + display_alert "realtek-rtd1619b" "Signing SPL..." "info"
67-77: Make preprocessing and binman steps fail-fast and self-descriptive.Add explicit log levels; no functional change.
- display_alert "Generate u-boot images..." + display_alert "realtek-rtd1619b" "Generate u-boot images..." "info"
111-125: Ensure required tools for ITB generation and consistent logging.lzop and mkimage are required (covered above). Add log levels.
- if [ -f "arch/arm64/boot/Image" ]; then - display_alert "Generate kernel itb image for ${BOARD_NAME}" + if [ -f "arch/arm64/boot/Image" ]; then + display_alert "realtek-rtd1619b" "Generate kernel itb image for ${BOARD_NAME}" "info" @@ - else - display_alert "No kernel image found" + else + display_alert "realtek-rtd1619b" "No kernel image found" "err" fi
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (17)
packages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_h_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_h_u02_ipc.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_u02_ipc.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fmacfwbt_8800d80_h_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fmacfwbt_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fw_adid_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_8800d80_u02_ext0.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_table_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/lmacfw_rf_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/AFW_Certificate_final.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/VE3FW.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/u-boot/u-boot-fw.tar.gzis excluded by!**/*.gzpackages/bsp/xpressreal-t3/u-boot/u-boot-prebuilt.tar.gzis excluded by!**/*.gzpatch/u-boot/u-boot-xpressreal/0001-Update-dev-signing-key.patchis excluded by!patch/**patch/u-boot/u-boot-xpressreal/0002-update-fw-path.patchis excluded by!patch/**
📒 Files selected for processing (8)
config/boards/xpressreal-t3.csc(1 hunks)config/bootenv/xpressreal-t3.txt(1 hunks)config/bootscripts/boot-xpressreal-t3.cmd(1 hunks)config/kernel/linux-xpressreal-t3-6.6.config(1 hunks)config/sources/families/realtek-rtd1619b.conf(1 hunks)packages/bsp/xpressreal-t3/firmware/aic8800/aic_powerlimit_8800d80.txt(1 hunks)packages/bsp/xpressreal-t3/firmware/aic8800/aic_userconfig_8800d80.txt(1 hunks)packages/bsp/xpressreal-t3/kernel.its(1 hunks)
🧰 Additional context used
🧠 Learnings (14)
📓 Common learnings
Learnt from: EvilOlaf
PR: armbian/build#0
File: :0-0
Timestamp: 2025-06-16T03:24:00.458Z
Learning: In Armbian board configuration files (.csc), 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.
📚 Learning: 2025-06-04T23:45:38.860Z
Learnt from: djurny
PR: armbian/build#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/bootscripts/boot-xpressreal-t3.cmd
📚 Learning: 2025-07-17T04:12:33.125Z
Learnt from: pyavitz
PR: armbian/build#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/bootscripts/boot-xpressreal-t3.cmdconfig/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-05-16T15:34:34.672Z
Learnt from: Grippy98
PR: armbian/build#8202
File: config/desktop/trixie/environments/gnome/armbian/create_desktop_package.sh:2-3
Timestamp: 2025-05-16T15:34:34.672Z
Learning: The shell scripts in the Armbian build system's desktop configuration files, such as config/desktop/trixie/environments/gnome/armbian/create_desktop_package.sh, rely on environment variables like $SRC and $destination that are expected to be set externally before the script is executed.
Applied to files:
config/bootscripts/boot-xpressreal-t3.cmdconfig/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-06-12T21:03:39.686Z
Learnt from: djurny
PR: armbian/build#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/bootscripts/boot-xpressreal-t3.cmd
📚 Learning: 2025-06-25T03:42:09.086Z
Learnt from: EvilOlaf
PR: armbian/build#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/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-06-25T03:40:52.109Z
Learnt from: EvilOlaf
PR: armbian/build#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/realtek-rtd1619b.conf
📚 Learning: 2025-06-16T03:24:00.458Z
Learnt from: EvilOlaf
PR: armbian/build#0
File: :0-0
Timestamp: 2025-06-16T03:24:00.458Z
Learning: In Armbian board configuration files (.csc), 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.
Applied to files:
config/sources/families/realtek-rtd1619b.confconfig/boards/xpressreal-t3.csc
📚 Learning: 2025-06-22T00:45:26.182Z
Learnt from: djurny
PR: armbian/build#8315
File: lib/functions/rootfs/distro-agnostic.sh:54-68
Timestamp: 2025-06-22T00:45:26.182Z
Learning: In Armbian build system, external command dependencies like envsubst are handled by adding the required packages (e.g., gettext for envsubst) to host_dependencies in adaptative_prepare_host_dependencies function in lib/functions/host/prepare-host.sh, rather than checking command availability at runtime.
Applied to files:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-08-11T12:39:22.861Z
Learnt from: pyavitz
PR: armbian/build#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/realtek-rtd1619b.conf
📚 Learning: 2025-06-14T05:53:10.627Z
Learnt from: EvilOlaf
PR: armbian/build#8298
File: extensions/https_proxy.sh:1-9
Timestamp: 2025-06-14T05:53:10.627Z
Learning: Armbian build framework extensions are NOT designed to run standalone but are called by the supervisor. The framework provides environment variables like USERPATCHES_PATH and SDCARD, and commands are executed with protection via run_host_command_logged and chroot_sdcard functions that use bash -e -o pipefail.
Applied to files:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-07-23T10:01:41.310Z
Learnt from: amazingfate
PR: armbian/build#8419
File: lib/functions/host/prepare-host.sh:272-275
Timestamp: 2025-07-23T10:01:41.310Z
Learning: In the Armbian build system, the design philosophy is to fail fast when host dependencies are not met rather than gracefully skipping unsupported architectures. This ensures build environment consistency and prevents silent failures. Host dependency checks should be explicit and non-negotiable.
Applied to files:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-03-31T12:57:13.880Z
Learnt from: libiunc
PR: armbian/build#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-xpressreal-t3-6.6.config
📚 Learning: 2025-08-11T22:00:13.411Z
Learnt from: rafayahmed317
PR: armbian/build#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-xpressreal-t3-6.6.config
🧬 Code graph analysis (6)
config/bootenv/xpressreal-t3.txt (1)
lib/functions/bsp/armbian-bsp-cli-deb.sh (1)
board_side_bsp_cli_postinst_update_uboot_bootscript(331-358)
packages/bsp/xpressreal-t3/kernel.its (2)
lib/functions/compilation/kernel-debs.sh (1)
kernel_package_callback_linux_image(200-326)lib/functions/compilation/kernel.sh (1)
kernel_dtb_only_build(176-240)
config/bootscripts/boot-xpressreal-t3.cmd (1)
lib/functions/bsp/armbian-bsp-cli-deb.sh (2)
board_side_bsp_cli_postinst_update_uboot_bootscript(331-358)get_bootscript_info(294-329)
config/sources/families/realtek-rtd1619b.conf (3)
config/sources/vendors/mekotronics/mekotronics-rk3588.hooks.sh (2)
post_family_config__vendor_uboot_mekotronics(8-16)post_family_config__meko_use_mainline_uboot(22-42)lib/functions/artifacts/artifact-uboot.sh (1)
artifact_uboot_build_from_sources(140-179)lib/functions/compilation/uboot.sh (1)
compile_uboot_target(52-299)
config/kernel/linux-xpressreal-t3-6.6.config (2)
lib/functions/compilation/armbian-kernel.sh (6)
armbian_kernel_config__disable_various_options(70-100)armbian_kernel_config_apply_opts_from_arrays(418-448)armbian_kernel_config__enable_docker_support(205-336)armbian_kernel_config__enable_zram_support(182-192)armbian_kernel_config__extrawifi_enable_wifi_opts_80211(24-36)armbian_kernel_config__enable_config_access_in_live_system(349-355)lib/functions/compilation/kernel-config.sh (2)
kernel_config_export(132-146)kernel_config_finalize(113-130)
config/boards/xpressreal-t3.csc (2)
extensions/bluetooth-hciattach.sh (1)
post_family_tweaks_bsp__bluetooth_hciattach_add_systemd_service(31-60)lib/functions/configuration/main-config.sh (1)
write_config_summary_output_file(488-541)
🪛 LanguageTool
packages/bsp/xpressreal-t3/firmware/aic8800/aic_userconfig_8800d80.txt
[grammar] ~70-~70: There might be a mistake here.
Context: ...12 lvl_11ax_mcs11_5g=12 # txpwr_lvl_adj lvl_adj_enable=0 lvl_adj_2g4_chan_1_4=0 ...
(QB_NEW_EN)
[grammar] ~71-~71: There might be a mistake here.
Context: ...5g=12 # txpwr_lvl_adj lvl_adj_enable=0 lvl_adj_2g4_chan_1_4=0 lvl_adj_2g4_chan...
(QB_NEW_EN)
[grammar] ~72-~72: There might be a mistake here.
Context: ... lvl_adj_enable=0 lvl_adj_2g4_chan_1_4=0 lvl_adj_2g4_chan_5_9=0 lvl_adj_2g4_chan_...
(QB_NEW_EN)
[grammar] ~73-~73: There might be a mistake here.
Context: ...dj_2g4_chan_1_4=0 lvl_adj_2g4_chan_5_9=0 lvl_adj_2g4_chan_10_13=0 lvl_adj_5g_chan...
(QB_NEW_EN)
[grammar] ~74-~74: There might be a mistake here.
Context: ..._2g4_chan_5_9=0 lvl_adj_2g4_chan_10_13=0 lvl_adj_5g_chan_42=0 lvl_adj_5g_chan_58=...
(QB_NEW_EN)
[grammar] ~75-~75: There might be a mistake here.
Context: ...dj_2g4_chan_10_13=0 lvl_adj_5g_chan_42=0 lvl_adj_5g_chan_58=0 lvl_adj_5g_chan_106...
(QB_NEW_EN)
[grammar] ~76-~76: There might be a mistake here.
Context: ...vl_adj_5g_chan_42=0 lvl_adj_5g_chan_58=0 lvl_adj_5g_chan_106=0 lvl_adj_5g_chan_12...
(QB_NEW_EN)
[grammar] ~77-~77: There might be a mistake here.
Context: ...l_adj_5g_chan_58=0 lvl_adj_5g_chan_106=0 lvl_adj_5g_chan_122=0 lvl_adj_5g_chan_13...
(QB_NEW_EN)
[grammar] ~78-~78: There might be a mistake here.
Context: ..._adj_5g_chan_106=0 lvl_adj_5g_chan_122=0 lvl_adj_5g_chan_138=0 lvl_adj_5g_chan_15...
(QB_NEW_EN)
[grammar] ~79-~79: There might be a mistake here.
Context: ..._adj_5g_chan_122=0 lvl_adj_5g_chan_138=0 lvl_adj_5g_chan_155=0 # txpwr_loss loss...
(QB_NEW_EN)
[grammar] ~82-~82: There might be a mistake here.
Context: ...38=0 lvl_adj_5g_chan_155=0 # txpwr_loss loss_enable_2g4=0 loss_value_2g4=2 loss_...
(QB_NEW_EN)
[grammar] ~83-~83: There might be a mistake here.
Context: ...an_155=0 # txpwr_loss loss_enable_2g4=0 loss_value_2g4=2 loss_enable_5g=0 loss_v...
(QB_NEW_EN)
[grammar] ~84-~84: There might be a mistake here.
Context: ..._loss loss_enable_2g4=0 loss_value_2g4=2 loss_enable_5g=0 loss_value_5g=5 # txpw...
(QB_NEW_EN)
[grammar] ~85-~85: There might be a mistake here.
Context: ..._2g4=0 loss_value_2g4=2 loss_enable_5g=0 loss_value_5g=5 # txpwr_ofst ofst_enabl...
(QB_NEW_EN)
[grammar] ~118-~118: There might be a mistake here.
Context: ...t_5g_ofdm_midrate_chan_155=0 # xtal cap xtal_enable=0 xtal_cap=24 xtal_cap_fine=...
(QB_NEW_EN)
[grammar] ~119-~119: There might be a mistake here.
Context: ...ate_chan_155=0 # xtal cap xtal_enable=0 xtal_cap=24 xtal_cap_fine=31
(QB_NEW_EN)
[grammar] ~120-~120: There might be a mistake here.
Context: ...=0 # xtal cap xtal_enable=0 xtal_cap=24 xtal_cap_fine=31
(QB_NEW_EN)
packages/bsp/xpressreal-t3/firmware/aic8800/aic_powerlimit_8800d80.txt
[grammar] ~1-~1: There might be a mistake here.
Context: # AIC POWERLIMIT 2024/0218/1206 # Max tx power reference: Linux wireless r...
(QB_NEW_EN)
[grammar] ~2-~2: There might be a mistake here.
Context: ...ux wireless regulatory database for CRDA # https://git.kernel.org/pub/scm/linux/ker...
(QB_NEW_EN)
[grammar] ~3-~3: There might be a mistake here.
Context: .../sforshee/wireless-regdb.git/tree/db.txt # If you add other countries, do so before...
(QB_NEW_EN)
[grammar] ~8-~8: There might be a mistake here.
Context: ... actual judgment # Table 1: ## 2.4G,#3# ## START ## CN US 00 CH01 15 ...
(QB_NEW_EN)
[grammar] ~9-~9: There might be a mistake here.
Context: ...udgment # Table 1: ## 2.4G,#3# ## START ## CN US 00 CH01 15 18 13 CH...
(QB_NEW_EN)
[grammar] ~10-~10: There might be a mistake here.
Context: ...2.4G,#3# ## START ## CN US 00 CH01 15 18 13 CH02 15 18 ...
(QB_NEW_EN)
[grammar] ~11-~11: There might be a mistake here.
Context: ... CN US 00 CH01 15 18 13 CH02 15 18 13 CH03 15 18 ...
(QB_NEW_EN)
[grammar] ~12-~12: There might be a mistake here.
Context: ... 15 18 13 CH02 15 18 13 CH03 15 18 13 CH04 15 18 ...
(QB_NEW_EN)
[grammar] ~13-~13: There might be a mistake here.
Context: ... 13 CH02 15 18 13 CH03 15 18 13 CH04 15 18 13 CH05 1...
(QB_NEW_EN)
[grammar] ~13-~13: There might be a mistake here.
Context: ... 15 18 13 CH03 15 18 13 CH04 15 18 13 CH05 15 18 ...
(QB_NEW_EN)
[grammar] ~14-~14: There might be a mistake here.
Context: ...8 13 CH03 15 18 13 CH04 15 18 13 CH05 15 18 13 CH06 1...
(QB_NEW_EN)
[grammar] ~14-~14: There might be a mistake here.
Context: ...3 15 18 13 CH04 15 18 13 CH05 15 18 13 CH06 15 18 ...
(QB_NEW_EN)
[grammar] ~15-~15: There might be a mistake here.
Context: ...8 13 CH04 15 18 13 CH05 15 18 13 CH06 15 18 13 CH07 1...
(QB_NEW_EN)
[grammar] ~15-~15: There might be a mistake here.
Context: ...4 15 18 13 CH05 15 18 13 CH06 15 18 13 CH07 15 18 ...
(QB_NEW_EN)
[grammar] ~16-~16: There might be a mistake here.
Context: ...8 13 CH05 15 18 13 CH06 15 18 13 CH07 15 18 13 CH08 1...
(QB_NEW_EN)
[grammar] ~16-~16: There might be a mistake here.
Context: ...5 15 18 13 CH06 15 18 13 CH07 15 18 13 CH08 15 18 ...
(QB_NEW_EN)
[grammar] ~17-~17: There might be a mistake here.
Context: ...8 13 CH06 15 18 13 CH07 15 18 13 CH08 15 18 13 CH09 1...
(QB_NEW_EN)
[grammar] ~17-~17: There might be a mistake here.
Context: ...6 15 18 13 CH07 15 18 13 CH08 15 18 13 CH09 15 18 ...
(QB_NEW_EN)
[grammar] ~18-~18: There might be a mistake here.
Context: ...8 13 CH07 15 18 13 CH08 15 18 13 CH09 15 18 13 CH10 1...
(QB_NEW_EN)
[grammar] ~18-~18: There might be a mistake here.
Context: ...7 15 18 13 CH08 15 18 13 CH09 15 18 13 CH10 15 18 ...
(QB_NEW_EN)
[grammar] ~19-~19: There might be a mistake here.
Context: ...8 13 CH08 15 18 13 CH09 15 18 13 CH10 15 18 13 CH11 1...
(QB_NEW_EN)
[grammar] ~19-~19: There might be a mistake here.
Context: ...8 15 18 13 CH09 15 18 13 CH10 15 18 13 CH11 15 18 ...
(QB_NEW_EN)
[grammar] ~20-~20: There might be a mistake here.
Context: ...8 13 CH09 15 18 13 CH10 15 18 13 CH11 15 18 13 CH12 1...
(QB_NEW_EN)
[grammar] ~20-~20: There might be a mistake here.
Context: ...9 15 18 13 CH10 15 18 13 CH11 15 18 13 CH12 12 NA ...
(QB_NEW_EN)
[grammar] ~21-~21: There might be a mistake here.
Context: ...8 13 CH10 15 18 13 CH11 15 18 13 CH12 12 NA 13 CH13 1...
(QB_NEW_EN)
[grammar] ~21-~21: There might be a mistake here.
Context: ...0 15 18 13 CH11 15 18 13 CH12 12 NA 13 CH13 12 NA ...
(QB_NEW_EN)
[grammar] ~22-~22: There might be a mistake here.
Context: ...8 13 CH11 15 18 13 CH12 12 NA 13 CH13 12 NA 13 CH14 N...
(QB_NEW_EN)
[grammar] ~22-~22: There might be a mistake here.
Context: ...1 15 18 13 CH12 12 NA 13 CH13 12 NA 13 CH14 NA NA ...
(QB_NEW_EN)
[grammar] ~23-~23: There might be a mistake here.
Context: ...8 13 CH12 12 NA 13 CH13 12 NA 13 CH14 NA NA 13 ## END ...
(QB_NEW_EN)
[grammar] ~23-~23: There might be a mistake here.
Context: ...2 12 NA 13 CH13 12 NA 13 CH14 NA NA 13 ## END # Table 2...
(QB_NEW_EN)
[grammar] ~24-~24: There might be a mistake here.
Context: ... 12 NA 13 CH14 NA NA 13 ## END # Table 2: ## 5G,#3# ## START ## ...
(QB_NEW_EN)
[grammar] ~28-~28: There might be a mistake here.
Context: ... NA 13 ## END # Table 2: ## 5G,#3# ## START ## CN US 00 # 5G Band 1...
(QB_NEW_EN)
[grammar] ~29-~29: There might be a mistake here.
Context: ...13 ## END # Table 2: ## 5G,#3# ## START ## CN US 00 # 5G Band 1 CH36 15 ...
(QB_NEW_EN)
[grammar] ~30-~30: There might be a mistake here.
Context: ...# 5G,#3# ## START ## CN US 00 # 5G Band 1 CH36 15 18 18 CH40 ...
(QB_NEW_EN)
[grammar] ~31-~31: There might be a mistake here.
Context: ...START ## CN US 00 # 5G Band 1 CH36 15 18 18 CH40 15 18 ...
(QB_NEW_EN)
[grammar] ~32-~32: There might be a mistake here.
Context: ... 00 # 5G Band 1 CH36 15 18 18 CH40 15 18 18 CH44 15 18 ...
(QB_NEW_EN)
[grammar] ~33-~33: There might be a mistake here.
Context: ... 15 18 18 CH40 15 18 18 CH44 15 18 18 CH48 15 18 ...
(QB_NEW_EN)
[grammar] ~34-~34: There might be a mistake here.
Context: ... 15 18 18 CH44 15 18 18 CH48 15 18 18 # 5G Band 2 CH52 ...
(QB_NEW_EN)
[grammar] ~35-~35: There might be a mistake here.
Context: ... 15 18 18 CH48 15 18 18 # 5G Band 2 CH52 15 19 16 CH56 ...
(QB_NEW_EN)
[grammar] ~36-~36: There might be a mistake here.
Context: ... 18 CH48 15 18 18 # 5G Band 2 CH52 15 19 16 CH56 15 19 ...
(QB_NEW_EN)
[grammar] ~37-~37: There might be a mistake here.
Context: ... 18 # 5G Band 2 CH52 15 19 16 CH56 15 19 16 CH60 15 19 ...
(QB_NEW_EN)
[grammar] ~38-~38: There might be a mistake here.
Context: ... 15 19 16 CH56 15 19 16 CH60 15 19 16 CH64 15 19 ...
(QB_NEW_EN)
[grammar] ~39-~39: There might be a mistake here.
Context: ... 15 19 16 CH60 15 19 16 CH64 15 19 16 # 5G Band 3 CH100...
(QB_NEW_EN)
[grammar] ~40-~40: There might be a mistake here.
Context: ... 15 19 16 CH64 15 19 16 # 5G Band 3 CH100 NA 19 16 CH104 ...
(QB_NEW_EN)
[grammar] ~41-~41: There might be a mistake here.
Context: ... 16 CH64 15 19 16 # 5G Band 3 CH100 NA 19 16 CH104 NA 19 ...
(QB_NEW_EN)
[grammar] ~42-~42: There might be a mistake here.
Context: ... 16 # 5G Band 3 CH100 NA 19 16 CH104 NA 19 16 CH108 NA 19 ...
(QB_NEW_EN)
[grammar] ~43-~43: There might be a mistake here.
Context: ... NA 19 16 CH104 NA 19 16 CH108 NA 19 16 CH112 NA 19 ...
(QB_NEW_EN)
[grammar] ~44-~44: There might be a mistake here.
Context: ... NA 19 16 CH108 NA 19 16 CH112 NA 19 16 CH116 NA 19 ...
(QB_NEW_EN)
[grammar] ~45-~45: There might be a mistake here.
Context: ... NA 19 16 CH112 NA 19 16 CH116 NA 19 16 CH120 NA 19 ...
(QB_NEW_EN)
[grammar] ~46-~46: There might be a mistake here.
Context: ... NA 19 16 CH116 NA 19 16 CH120 NA 19 16 CH124 NA 19 ...
(QB_NEW_EN)
[grammar] ~47-~47: There might be a mistake here.
Context: ... NA 19 16 CH120 NA 19 16 CH124 NA 19 16 CH128 NA 19 ...
(QB_NEW_EN)
[grammar] ~48-~48: There might be a mistake here.
Context: ... NA 19 16 CH124 NA 19 16 CH128 NA 19 16 CH132 NA 19 ...
(QB_NEW_EN)
[grammar] ~49-~49: There might be a mistake here.
Context: ... NA 19 16 CH128 NA 19 16 CH132 NA 19 16 CH136 NA 19 ...
(QB_NEW_EN)
[grammar] ~50-~50: There might be a mistake here.
Context: ... NA 19 16 CH132 NA 19 16 CH136 NA 19 16 CH140 NA 19 ...
(QB_NEW_EN)
[grammar] ~51-~51: There might be a mistake here.
Context: ... NA 19 16 CH136 NA 19 16 CH140 NA 19 16 CH144 NA NA ...
(QB_NEW_EN)
[grammar] ~52-~52: There might be a mistake here.
Context: ... NA 19 16 CH140 NA 19 16 CH144 NA NA 16 # 5G Band 4 CH149...
(QB_NEW_EN)
🔇 Additional comments (12)
packages/bsp/xpressreal-t3/kernel.its (4)
15-16: Double-check kernel load/entry addressesValidate 0x01200000 against the RTD1619B U-Boot memory map to avoid overlap with decompression buffers or FDT.
21-31: FDT arch and load address sanityU-Boot generally accepts arch="arm64" for flat_dt, but some trees historically used "arm". Please confirm your mkimage/U-Boot combo, and verify 0x03000000 is safe for FDT placement on this platform.
33-44: FIT signing prerequisitesThe configuration signs "kernel" and "fdt" with key-name-hint "dev". Ensure the build pipeline supplies a matching key directory to mkimage and that signing is optional/fails closed when keys are absent (e.g., dev vs release).
8-17: Verify Image.lzo path and LZO support
In packages/bsp/xpressreal-t3/kernel.its, ensure your pre_package hook actually emits arch/arm64/boot/Image.lzo and that mkimage is invoked with LZO compression support; otherwise FIT generation will fail.packages/bsp/xpressreal-t3/firmware/aic8800/aic_userconfig_8800d80.txt (1)
1-69: Verify firmware installation of aic_userconfig_8800d80.txt
I didn’t find any install or symlink for aic_userconfig_8800d80.txt in the board scripts—e.g., config/boards/longanpi-4b.csc:21 still links aic_userconfig.txt. Update the relevant *.csc or packaging rules to install aic_userconfig_8800d80.txt to /lib/firmware/aic8800/.config/kernel/linux-xpressreal-t3-6.6.config (2)
202-206: mac80211/cfg80211 built-in with modular driversAIC8800 is a module; built-in mac80211/cfg80211 is compatible, but verify no symbol version mismatches across vendor trees.
32-32: CONFIG_NR_CPUS correctly set to 4 cores. The RTD1619B features 4× ARM Cortex-A55 cores, so CONFIG_NR_CPUS=4 requires no adjustment.config/bootscripts/boot-xpressreal-t3.cmd (1)
31-38: Console assembly order: verify primary console and speed.Serial is last in consoleargs, thus becomes primary. Confirm that’s intended and that 460800 baud + earlycon at 0x98007800 matches U-Boot settings for T3. If not, swap the order or adjust the speed/address.
config/boards/xpressreal-t3.csc (2)
1-1: Header comment format looks good.Conforms to the single-line hardware description convention.
5-6: SERIALCON speed consistency.Family file sets SERIALCON='ttyS0' while board sets ttyS0:460800 and bootscript uses 460800. Prefer one source of truth; either drop it from family or align to 460800 here.
config/sources/families/realtek-rtd1619b.conf (2)
11-23: Pin sources for reproducible builds; align SERIALCON.
- Consider pinning KERNELBRANCH/BOOTBRANCH to specific commits (commit:) for deterministic builds.
- Family-level SERIALCON='ttyS0' may override board’s 460800. Drop it here or set it to match the board.
23-24: Verify UBOOT_TARGET_MAP format.";;u-boot.bin-rtd1619b_emmc rtd1619b_emmc_bind_4gb.bin" looks unconventional. Confirm it matches artifact packaging expectations.
|
Hi @leggewie, I'd like to maintain this board in the future, will update |
Adding contact email and board prefix will do that automatically: |
Hey, that's awesome! |
dfb1b32 to
285855c
Compare
285855c to
2c6a9cd
Compare
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
♻️ Duplicate comments (1)
config/sources/families/realtek-rtd1619b.conf (1)
92-100: Safer u-boot writer: validate block device before writing.Avoid accidental writes; fail fast if DEVICE isn’t a block device.
function write_uboot_platform() { local DIR=$1 local DEVICE=$2 + if [[ ! -b "${DEVICE}" ]]; then + display_alert "realtek-rtd1619b" "Device ${DEVICE} is not a block device" "err" + return 1 + } + if [[ "${DEVICE}" == "/dev/mmcblk0" ]]; then
🧹 Nitpick comments (3)
packages/bsp/xpressreal-t3/firmware/aic8800/aic_userconfig_8800d80.txt (1)
82-86: loss_enable is 0 but non-zero loss_value may confuse operators.Either enable loss or zero the loss_value entries to reflect the inactive state.
Apply one of these:
-loss_enable_2g4=0 -loss_value_2g4=2 -loss_enable_5g=0 -loss_value_5g=5 +loss_enable_2g4=0 +loss_value_2g4=0 +loss_enable_5g=0 +loss_value_5g=0Or:
-loss_enable_2g4=0 -loss_value_2g4=2 -loss_enable_5g=0 -loss_value_5g=5 +loss_enable_2g4=1 +loss_value_2g4=2 +loss_enable_5g=1 +loss_value_5g=5config/sources/families/realtek-rtd1619b.conf (2)
63-68: Assume 2048-bit RSA? Make signature-size explicit or assert.--reverse-bytes=256 assumes a 256-byte (2048-bit) sig. Add a check to avoid silent corruption with other key sizes.
Example guard:
if [ -d "./keys" ]; then + local sig_bytes=256 + if ! openssl pkey -in "${KEY_DIR}/dev.key" -text -noout 2>/dev/null | grep -qE 'RSA.*2048|Private-Key: \(2048 bit\)'; then + display_alert "realtek-rtd1619b" "Non-2048-bit key detected; adjust reverse-bytes accordingly" "err" + return 1 + fi display_alert "Signing SPL..." run_host_command_logged openssl dgst -sha256 -binary "./spl/u-boot-spl.bin_pad" > "${PREBUILT}/u-boot-spl.sha" run_host_command_logged openssl pkeyutl -inkey "${KEY_DIR}/dev.key" -sign -in "${PREBUILT}/u-boot-spl.sha" -out "${PREBUILT}/u-boot-spl.sig" - run_host_command_logged objcopy -I binary -O binary --reverse-bytes=256 "${PREBUILT}/u-boot-spl.sig" "${PREBUILT}/u-boot-spl.sig" + run_host_command_logged objcopy -I binary -O binary --reverse-bytes=${sig_bytes} "${PREBUILT}/u-boot-spl.sig" "${PREBUILT}/u-boot-spl.sig" fi
34-34: Standardize display_alert usage with component + level.Uniform tags aid grepability in CI logs.
-display_alert "Run pre_config_uboot_target" +display_alert "realtek-rtd1619b" "Run pre_config_uboot_target" "info"-display_alert "Run post_uboot_custom_postprocess" +display_alert "realtek-rtd1619b" "Run post_uboot_custom_postprocess" "info"Also applies to: 58-58
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (17)
packages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_h_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_h_u02_ipc.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_u02_ipc.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fmacfwbt_8800d80_h_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fmacfwbt_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fw_adid_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_8800d80_u02_ext0.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_table_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/lmacfw_rf_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/AFW_Certificate_final.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/VE3FW.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/u-boot/u-boot-fw.tar.gzis excluded by!**/*.gzpackages/bsp/xpressreal-t3/u-boot/u-boot-prebuilt.tar.gzis excluded by!**/*.gzpatch/u-boot/u-boot-xpressreal/0001-Update-dev-signing-key.patchis excluded by!patch/**patch/u-boot/u-boot-xpressreal/0002-update-fw-path.patchis excluded by!patch/**
📒 Files selected for processing (8)
config/boards/xpressreal-t3.csc(1 hunks)config/bootenv/xpressreal-t3.txt(1 hunks)config/bootscripts/boot-xpressreal-t3.cmd(1 hunks)config/kernel/linux-xpressreal-t3-6.6.config(1 hunks)config/sources/families/realtek-rtd1619b.conf(1 hunks)packages/bsp/xpressreal-t3/firmware/aic8800/aic_powerlimit_8800d80.txt(1 hunks)packages/bsp/xpressreal-t3/firmware/aic8800/aic_userconfig_8800d80.txt(1 hunks)packages/bsp/xpressreal-t3/kernel.its(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (5)
- config/bootenv/xpressreal-t3.txt
- packages/bsp/xpressreal-t3/kernel.its
- config/bootscripts/boot-xpressreal-t3.cmd
- config/kernel/linux-xpressreal-t3-6.6.config
- config/boards/xpressreal-t3.csc
🧰 Additional context used
🧠 Learnings (12)
📓 Common learnings
Learnt from: wei633
PR: armbian/build#8557
File: config/bootscripts/boot-xpressreal-t3.cmd:49-53
Timestamp: 2025-09-01T06:12:19.222Z
Learning: For XpressReal T3 (Realtek RTD1619B platform), initramfs support is intentionally not implemented in the boot script due to known problems when booting with initramfs. This needs to be fixed in a future update.
Learnt from: EvilOlaf
PR: armbian/build#0
File: :0-0
Timestamp: 2025-06-16T03:24:00.458Z
Learning: In Armbian board configuration files (.csc), 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.
📚 Learning: 2025-06-25T03:40:52.109Z
Learnt from: EvilOlaf
PR: armbian/build#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/realtek-rtd1619b.conf
📚 Learning: 2025-06-25T03:42:09.086Z
Learnt from: EvilOlaf
PR: armbian/build#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/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-07-17T04:12:33.125Z
Learnt from: pyavitz
PR: armbian/build#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/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
PR: armbian/build#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:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-06-22T00:45:26.182Z
Learnt from: djurny
PR: armbian/build#8315
File: lib/functions/rootfs/distro-agnostic.sh:54-68
Timestamp: 2025-06-22T00:45:26.182Z
Learning: In Armbian build system, external command dependencies like envsubst are handled by adding the required packages (e.g., gettext for envsubst) to host_dependencies in adaptative_prepare_host_dependencies function in lib/functions/host/prepare-host.sh, rather than checking command availability at runtime.
Applied to files:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-07-23T10:01:41.310Z
Learnt from: amazingfate
PR: armbian/build#8419
File: lib/functions/host/prepare-host.sh:272-275
Timestamp: 2025-07-23T10:01:41.310Z
Learning: In the Armbian build system, the design philosophy is to fail fast when host dependencies are not met rather than gracefully skipping unsupported architectures. This ensures build environment consistency and prevents silent failures. Host dependency checks should be explicit and non-negotiable.
Applied to files:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-09-01T06:12:19.222Z
Learnt from: wei633
PR: armbian/build#8557
File: config/bootscripts/boot-xpressreal-t3.cmd:49-53
Timestamp: 2025-09-01T06:12:19.222Z
Learning: For XpressReal T3 (Realtek RTD1619B platform), initramfs support is intentionally not implemented in the boot script due to known problems when booting with initramfs. This needs to be fixed in a future update.
Applied to files:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-06-14T05:53:10.627Z
Learnt from: EvilOlaf
PR: armbian/build#8298
File: extensions/https_proxy.sh:1-9
Timestamp: 2025-06-14T05:53:10.627Z
Learning: Armbian build framework extensions are NOT designed to run standalone but are called by the supervisor. The framework provides environment variables like USERPATCHES_PATH and SDCARD, and commands are executed with protection via run_host_command_logged and chroot_sdcard functions that use bash -e -o pipefail.
Applied to files:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-05-16T15:34:34.672Z
Learnt from: Grippy98
PR: armbian/build#8202
File: config/desktop/trixie/environments/gnome/armbian/create_desktop_package.sh:2-3
Timestamp: 2025-05-16T15:34:34.672Z
Learning: The shell scripts in the Armbian build system's desktop configuration files, such as config/desktop/trixie/environments/gnome/armbian/create_desktop_package.sh, rely on environment variables like $SRC and $destination that are expected to be set externally before the script is executed.
Applied to files:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-08-11T12:39:22.861Z
Learnt from: pyavitz
PR: armbian/build#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/realtek-rtd1619b.conf
📚 Learning: 2025-07-23T07:30:52.265Z
Learnt from: EvilOlaf
PR: armbian/build#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/sources/families/realtek-rtd1619b.conf
🧬 Code graph analysis (1)
config/sources/families/realtek-rtd1619b.conf (2)
lib/functions/configuration/main-config.sh (1)
do_extra_configuration(360-486).github/generate_CODEOWNERS.sh (1)
generate_for_board(18-68)
🪛 LanguageTool
packages/bsp/xpressreal-t3/firmware/aic8800/aic_powerlimit_8800d80.txt
[grammar] ~1-~1: There might be a mistake here.
Context: # AIC POWERLIMIT 2024/0218/1206 # Max tx power reference: Linux wireless r...
(QB_NEW_EN)
[grammar] ~2-~2: There might be a mistake here.
Context: ...ux wireless regulatory database for CRDA # https://git.kernel.org/pub/scm/linux/ker...
(QB_NEW_EN)
[grammar] ~3-~3: There might be a mistake here.
Context: .../sforshee/wireless-regdb.git/tree/db.txt # If you add other countries, do so before...
(QB_NEW_EN)
[grammar] ~8-~8: There might be a mistake here.
Context: ... actual judgment # Table 1: ## 2.4G,#3# ## START ## CN US 00 CH01 15 ...
(QB_NEW_EN)
[grammar] ~9-~9: There might be a mistake here.
Context: ...udgment # Table 1: ## 2.4G,#3# ## START ## CN US 00 CH01 15 18 13 CH...
(QB_NEW_EN)
[grammar] ~10-~10: There might be a mistake here.
Context: ...2.4G,#3# ## START ## CN US 00 CH01 15 18 13 CH02 15 18 ...
(QB_NEW_EN)
[grammar] ~11-~11: There might be a mistake here.
Context: ... CN US 00 CH01 15 18 13 CH02 15 18 13 CH03 15 18 ...
(QB_NEW_EN)
[grammar] ~12-~12: There might be a mistake here.
Context: ... 15 18 13 CH02 15 18 13 CH03 15 18 13 CH04 15 18 ...
(QB_NEW_EN)
[grammar] ~13-~13: There might be a mistake here.
Context: ... 13 CH02 15 18 13 CH03 15 18 13 CH04 15 18 13 CH05 1...
(QB_NEW_EN)
[grammar] ~13-~13: There might be a mistake here.
Context: ... 15 18 13 CH03 15 18 13 CH04 15 18 13 CH05 15 18 ...
(QB_NEW_EN)
[grammar] ~14-~14: There might be a mistake here.
Context: ...8 13 CH03 15 18 13 CH04 15 18 13 CH05 15 18 13 CH06 1...
(QB_NEW_EN)
[grammar] ~14-~14: There might be a mistake here.
Context: ...3 15 18 13 CH04 15 18 13 CH05 15 18 13 CH06 15 18 ...
(QB_NEW_EN)
[grammar] ~15-~15: There might be a mistake here.
Context: ...8 13 CH04 15 18 13 CH05 15 18 13 CH06 15 18 13 CH07 1...
(QB_NEW_EN)
[grammar] ~15-~15: There might be a mistake here.
Context: ...4 15 18 13 CH05 15 18 13 CH06 15 18 13 CH07 15 18 ...
(QB_NEW_EN)
[grammar] ~16-~16: There might be a mistake here.
Context: ...8 13 CH05 15 18 13 CH06 15 18 13 CH07 15 18 13 CH08 1...
(QB_NEW_EN)
[grammar] ~16-~16: There might be a mistake here.
Context: ...5 15 18 13 CH06 15 18 13 CH07 15 18 13 CH08 15 18 ...
(QB_NEW_EN)
[grammar] ~17-~17: There might be a mistake here.
Context: ...8 13 CH06 15 18 13 CH07 15 18 13 CH08 15 18 13 CH09 1...
(QB_NEW_EN)
[grammar] ~17-~17: There might be a mistake here.
Context: ...6 15 18 13 CH07 15 18 13 CH08 15 18 13 CH09 15 18 ...
(QB_NEW_EN)
[grammar] ~18-~18: There might be a mistake here.
Context: ...8 13 CH07 15 18 13 CH08 15 18 13 CH09 15 18 13 CH10 1...
(QB_NEW_EN)
[grammar] ~18-~18: There might be a mistake here.
Context: ...7 15 18 13 CH08 15 18 13 CH09 15 18 13 CH10 15 18 ...
(QB_NEW_EN)
[grammar] ~19-~19: There might be a mistake here.
Context: ...8 13 CH08 15 18 13 CH09 15 18 13 CH10 15 18 13 CH11 1...
(QB_NEW_EN)
[grammar] ~19-~19: There might be a mistake here.
Context: ...8 15 18 13 CH09 15 18 13 CH10 15 18 13 CH11 15 18 ...
(QB_NEW_EN)
[grammar] ~20-~20: There might be a mistake here.
Context: ...8 13 CH09 15 18 13 CH10 15 18 13 CH11 15 18 13 CH12 1...
(QB_NEW_EN)
[grammar] ~20-~20: There might be a mistake here.
Context: ...9 15 18 13 CH10 15 18 13 CH11 15 18 13 CH12 12 NA ...
(QB_NEW_EN)
[grammar] ~21-~21: There might be a mistake here.
Context: ...8 13 CH10 15 18 13 CH11 15 18 13 CH12 12 NA 13 CH13 1...
(QB_NEW_EN)
[grammar] ~21-~21: There might be a mistake here.
Context: ...0 15 18 13 CH11 15 18 13 CH12 12 NA 13 CH13 12 NA ...
(QB_NEW_EN)
[grammar] ~22-~22: There might be a mistake here.
Context: ...8 13 CH11 15 18 13 CH12 12 NA 13 CH13 12 NA 13 CH14 N...
(QB_NEW_EN)
[grammar] ~22-~22: There might be a mistake here.
Context: ...1 15 18 13 CH12 12 NA 13 CH13 12 NA 13 CH14 NA NA ...
(QB_NEW_EN)
[grammar] ~23-~23: There might be a mistake here.
Context: ...8 13 CH12 12 NA 13 CH13 12 NA 13 CH14 NA NA 13 ## END ...
(QB_NEW_EN)
[grammar] ~23-~23: There might be a mistake here.
Context: ...2 12 NA 13 CH13 12 NA 13 CH14 NA NA 13 ## END # Table 2...
(QB_NEW_EN)
[grammar] ~24-~24: There might be a mistake here.
Context: ... 12 NA 13 CH14 NA NA 13 ## END # Table 2: ## 5G,#3# ## START ## ...
(QB_NEW_EN)
[grammar] ~28-~28: There might be a mistake here.
Context: ... NA 13 ## END # Table 2: ## 5G,#3# ## START ## CN US 00 # 5G Band 1...
(QB_NEW_EN)
[grammar] ~29-~29: There might be a mistake here.
Context: ...13 ## END # Table 2: ## 5G,#3# ## START ## CN US 00 # 5G Band 1 CH36 15 ...
(QB_NEW_EN)
[grammar] ~30-~30: There might be a mistake here.
Context: ...# 5G,#3# ## START ## CN US 00 # 5G Band 1 CH36 15 18 18 CH40 ...
(QB_NEW_EN)
[grammar] ~31-~31: There might be a mistake here.
Context: ...START ## CN US 00 # 5G Band 1 CH36 15 18 18 CH40 15 18 ...
(QB_NEW_EN)
[grammar] ~32-~32: There might be a mistake here.
Context: ... 00 # 5G Band 1 CH36 15 18 18 CH40 15 18 18 CH44 15 18 ...
(QB_NEW_EN)
[grammar] ~33-~33: There might be a mistake here.
Context: ... 15 18 18 CH40 15 18 18 CH44 15 18 18 CH48 15 18 ...
(QB_NEW_EN)
[grammar] ~34-~34: There might be a mistake here.
Context: ... 15 18 18 CH44 15 18 18 CH48 15 18 18 # 5G Band 2 CH52 ...
(QB_NEW_EN)
[grammar] ~35-~35: There might be a mistake here.
Context: ... 15 18 18 CH48 15 18 18 # 5G Band 2 CH52 15 19 16 CH56 ...
(QB_NEW_EN)
[grammar] ~36-~36: There might be a mistake here.
Context: ... 18 CH48 15 18 18 # 5G Band 2 CH52 15 19 16 CH56 15 19 ...
(QB_NEW_EN)
[grammar] ~37-~37: There might be a mistake here.
Context: ... 18 # 5G Band 2 CH52 15 19 16 CH56 15 19 16 CH60 15 19 ...
(QB_NEW_EN)
[grammar] ~38-~38: There might be a mistake here.
Context: ... 15 19 16 CH56 15 19 16 CH60 15 19 16 CH64 15 19 ...
(QB_NEW_EN)
[grammar] ~39-~39: There might be a mistake here.
Context: ... 15 19 16 CH60 15 19 16 CH64 15 19 16 # 5G Band 3 CH100...
(QB_NEW_EN)
[grammar] ~40-~40: There might be a mistake here.
Context: ... 15 19 16 CH64 15 19 16 # 5G Band 3 CH100 NA 19 16 CH104 ...
(QB_NEW_EN)
[grammar] ~41-~41: There might be a mistake here.
Context: ... 16 CH64 15 19 16 # 5G Band 3 CH100 NA 19 16 CH104 NA 19 ...
(QB_NEW_EN)
[grammar] ~42-~42: There might be a mistake here.
Context: ... 16 # 5G Band 3 CH100 NA 19 16 CH104 NA 19 16 CH108 NA 19 ...
(QB_NEW_EN)
[grammar] ~43-~43: There might be a mistake here.
Context: ... NA 19 16 CH104 NA 19 16 CH108 NA 19 16 CH112 NA 19 ...
(QB_NEW_EN)
[grammar] ~44-~44: There might be a mistake here.
Context: ... NA 19 16 CH108 NA 19 16 CH112 NA 19 16 CH116 NA 19 ...
(QB_NEW_EN)
[grammar] ~45-~45: There might be a mistake here.
Context: ... NA 19 16 CH112 NA 19 16 CH116 NA 19 16 CH120 NA 19 ...
(QB_NEW_EN)
[grammar] ~46-~46: There might be a mistake here.
Context: ... NA 19 16 CH116 NA 19 16 CH120 NA 19 16 CH124 NA 19 ...
(QB_NEW_EN)
[grammar] ~47-~47: There might be a mistake here.
Context: ... NA 19 16 CH120 NA 19 16 CH124 NA 19 16 CH128 NA 19 ...
(QB_NEW_EN)
[grammar] ~48-~48: There might be a mistake here.
Context: ... NA 19 16 CH124 NA 19 16 CH128 NA 19 16 CH132 NA 19 ...
(QB_NEW_EN)
[grammar] ~49-~49: There might be a mistake here.
Context: ... NA 19 16 CH128 NA 19 16 CH132 NA 19 16 CH136 NA 19 ...
(QB_NEW_EN)
[grammar] ~50-~50: There might be a mistake here.
Context: ... NA 19 16 CH132 NA 19 16 CH136 NA 19 16 CH140 NA 19 ...
(QB_NEW_EN)
[grammar] ~51-~51: There might be a mistake here.
Context: ... NA 19 16 CH136 NA 19 16 CH140 NA 19 16 CH144 NA NA ...
(QB_NEW_EN)
[grammar] ~52-~52: There might be a mistake here.
Context: ... NA 19 16 CH140 NA 19 16 CH144 NA NA 16 # 5G Band 4 CH149...
(QB_NEW_EN)
packages/bsp/xpressreal-t3/firmware/aic8800/aic_userconfig_8800d80.txt
[grammar] ~70-~70: There might be a mistake here.
Context: ...12 lvl_11ax_mcs11_5g=12 # txpwr_lvl_adj lvl_adj_enable=0 lvl_adj_2g4_chan_1_4=0 ...
(QB_NEW_EN)
[grammar] ~71-~71: There might be a mistake here.
Context: ...5g=12 # txpwr_lvl_adj lvl_adj_enable=0 lvl_adj_2g4_chan_1_4=0 lvl_adj_2g4_chan...
(QB_NEW_EN)
[grammar] ~72-~72: There might be a mistake here.
Context: ... lvl_adj_enable=0 lvl_adj_2g4_chan_1_4=0 lvl_adj_2g4_chan_5_9=0 lvl_adj_2g4_chan_...
(QB_NEW_EN)
[grammar] ~73-~73: There might be a mistake here.
Context: ...dj_2g4_chan_1_4=0 lvl_adj_2g4_chan_5_9=0 lvl_adj_2g4_chan_10_13=0 lvl_adj_5g_chan...
(QB_NEW_EN)
[grammar] ~74-~74: There might be a mistake here.
Context: ..._2g4_chan_5_9=0 lvl_adj_2g4_chan_10_13=0 lvl_adj_5g_chan_42=0 lvl_adj_5g_chan_58=...
(QB_NEW_EN)
[grammar] ~75-~75: There might be a mistake here.
Context: ...dj_2g4_chan_10_13=0 lvl_adj_5g_chan_42=0 lvl_adj_5g_chan_58=0 lvl_adj_5g_chan_106...
(QB_NEW_EN)
[grammar] ~76-~76: There might be a mistake here.
Context: ...vl_adj_5g_chan_42=0 lvl_adj_5g_chan_58=0 lvl_adj_5g_chan_106=0 lvl_adj_5g_chan_12...
(QB_NEW_EN)
[grammar] ~77-~77: There might be a mistake here.
Context: ...l_adj_5g_chan_58=0 lvl_adj_5g_chan_106=0 lvl_adj_5g_chan_122=0 lvl_adj_5g_chan_13...
(QB_NEW_EN)
[grammar] ~78-~78: There might be a mistake here.
Context: ..._adj_5g_chan_106=0 lvl_adj_5g_chan_122=0 lvl_adj_5g_chan_138=0 lvl_adj_5g_chan_15...
(QB_NEW_EN)
[grammar] ~79-~79: There might be a mistake here.
Context: ..._adj_5g_chan_122=0 lvl_adj_5g_chan_138=0 lvl_adj_5g_chan_155=0 # txpwr_loss loss...
(QB_NEW_EN)
[grammar] ~82-~82: There might be a mistake here.
Context: ...38=0 lvl_adj_5g_chan_155=0 # txpwr_loss loss_enable_2g4=0 loss_value_2g4=2 loss_...
(QB_NEW_EN)
[grammar] ~83-~83: There might be a mistake here.
Context: ...an_155=0 # txpwr_loss loss_enable_2g4=0 loss_value_2g4=2 loss_enable_5g=0 loss_v...
(QB_NEW_EN)
[grammar] ~84-~84: There might be a mistake here.
Context: ..._loss loss_enable_2g4=0 loss_value_2g4=2 loss_enable_5g=0 loss_value_5g=5 # txpw...
(QB_NEW_EN)
[grammar] ~85-~85: There might be a mistake here.
Context: ..._2g4=0 loss_value_2g4=2 loss_enable_5g=0 loss_value_5g=5 # txpwr_ofst ofst_enabl...
(QB_NEW_EN)
[grammar] ~118-~118: There might be a mistake here.
Context: ...t_5g_ofdm_midrate_chan_155=0 # xtal cap xtal_enable=0 xtal_cap=24 xtal_cap_fine=...
(QB_NEW_EN)
[grammar] ~119-~119: There might be a mistake here.
Context: ...ate_chan_155=0 # xtal cap xtal_enable=0 xtal_cap=24 xtal_cap_fine=31
(QB_NEW_EN)
[grammar] ~120-~120: There might be a mistake here.
Context: ...=0 # xtal cap xtal_enable=0 xtal_cap=24 xtal_cap_fine=31
(QB_NEW_EN)
🔇 Additional comments (4)
packages/bsp/xpressreal-t3/firmware/aic8800/aic_userconfig_8800d80.txt (1)
3-68: Baseline TX power table looks reasonable.Values are within typical ranges for 2.4/5 GHz and include MCS0–11 for 11ax. No functional concerns.
packages/bsp/xpressreal-t3/firmware/aic8800/aic_powerlimit_8800d80.txt (2)
1-6: Header reference is fine.Doc link and notes are clear; table formatting matches prior AIC files.
24-24: Keep CH14 enabled for world domain 00
The current wireless-regdb “country 00” entry includes 2474–2494 MHz (covering CH14) with JP-style passive/NO-OFDM flags, so retaining13is correct.Likely an incorrect or invalid review comment.
config/sources/families/realtek-rtd1619b.conf (1)
112-126: Kernel ITB generation path looks correct.Dependencies are covered; copy to INSTALL_PATH matches u-boot expectations (yocto.itb). No changes needed.
2c6a9cd to
41cd89c
Compare
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: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
packages/bsp/xpressreal-t3/firmware/aic8800/aic_userconfig_8800d80.txt (1)
1-125: Fix userconfig filename to match loader expectation
- The packaging script creates a symlink for “aic_userconfig.txt” (see ln at lines 24–25), but this PR adds “aic_userconfig_8800d80.txt”. Rename the file or add a matching symlink so the loader can find it.
- Verify the driver parses these exact key names (
txpwr_lvl*,txpwr_loss*,txpwr_ofst*,xtal_enable,xtal_cap,xtal_cap_fine).
🧹 Nitpick comments (6)
packages/bsp/xpressreal-t3/firmware/aic8800/aic_userconfig_8800d80.txt (2)
82-86: Disable-loss values are non-zero; make intent explicit.loss_enable_* are 0 but loss_value_* are 2/5. Either zero the values or add a clarifying comment to prevent misinterpretation in downstream tooling.
-# txpwr_loss -loss_enable_2g4=0 -loss_value_2g4=2 -loss_enable_5g=0 -loss_value_5g=5 +# txpwr_loss (disabled; values intentionally 0) +loss_enable_2g4=0 +loss_value_2g4=0 +loss_enable_5g=0 +loss_value_5g=0
1-1: Document units and provenance.Add units (dBm) and a short note on source to aid audits/regulatory reviews.
-# AIC USERCONFIG 2022/0803/1707 +# AIC USERCONFIG 2022/0803/1707 (units: dBm) +# Source: vendor-provided defaults; combined with aic_powerlimit_8800d80.txt per regdb.packages/bsp/xpressreal-t3/firmware/aic8800/aic_powerlimit_8800d80.txt (4)
2-3: Update CRDA wording.CRDA is deprecated; keep the reference but point to wireless-regdb in generic terms.
-# Max tx power reference: Linux wireless regulatory database for CRDA -# https://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git/tree/db.txt +# Max tx power reference: Linux wireless-regdb (kernel integrated regdb; CRDA historical) +# https://git.kernel.org/pub/scm/linux/kernel/git/sforshee/wireless-regdb.git/tree/db.txt
5-5: Clarify subtraction wording.Current sentence reads as if “power value is subtracted from loss_value”. Reverse for clarity.
-# If loss_value in aic_userconfig_8800d80.txt is enabled, the power value in this document will be subtracted from loss_value in actual judgment +# If loss_value in aic_userconfig_8800d80.txt is enabled, the effective limit is: +# table_value - loss_value (applied at runtime)
11-24: Normalize whitespace for diff stability.Mixed tabs/spaces in the 2.4 GHz table. Convert to single-space columns to avoid noisy diffs.
-CH03 15 18 13 -CH04 15 18 13 +CH03 15 18 13 +CH04 15 18 13
1-61: Add units note.Explicitly state units (dBm) at the top of the file.
-# AIC POWERLIMIT 2024/0218/1206 +# AIC POWERLIMIT 2024/0218/1206 (units: dBm)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (17)
packages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_h_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_h_u02_ipc.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_u02_ipc.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fmacfwbt_8800d80_h_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fmacfwbt_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fw_adid_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_8800d80_u02_ext0.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_table_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/aic8800/lmacfw_rf_8800d80_u02.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/AFW_Certificate_final.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/VE3FW.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/u-boot/u-boot-fw.tar.gzis excluded by!**/*.gzpackages/bsp/xpressreal-t3/u-boot/u-boot-prebuilt.tar.gzis excluded by!**/*.gzpatch/u-boot/u-boot-xpressreal/0001-Update-dev-signing-key.patchis excluded by!patch/**patch/u-boot/u-boot-xpressreal/0002-update-fw-path.patchis excluded by!patch/**
📒 Files selected for processing (8)
config/boards/xpressreal-t3.csc(1 hunks)config/bootenv/xpressreal-t3.txt(1 hunks)config/bootscripts/boot-xpressreal-t3.cmd(1 hunks)config/kernel/linux-xpressreal-t3-6.6.config(1 hunks)config/sources/families/realtek-rtd1619b.conf(1 hunks)packages/bsp/xpressreal-t3/firmware/aic8800/aic_powerlimit_8800d80.txt(1 hunks)packages/bsp/xpressreal-t3/firmware/aic8800/aic_userconfig_8800d80.txt(1 hunks)packages/bsp/xpressreal-t3/kernel.its(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (6)
- config/bootenv/xpressreal-t3.txt
- config/bootscripts/boot-xpressreal-t3.cmd
- config/kernel/linux-xpressreal-t3-6.6.config
- config/boards/xpressreal-t3.csc
- packages/bsp/xpressreal-t3/kernel.its
- config/sources/families/realtek-rtd1619b.conf
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: wei633
PR: armbian/build#8557
File: config/bootscripts/boot-xpressreal-t3.cmd:49-53
Timestamp: 2025-09-01T06:12:19.222Z
Learning: For XpressReal T3 (Realtek RTD1619B platform), initramfs support is intentionally not implemented in the boot script due to known problems when booting with initramfs. This needs to be fixed in a future update.
Learnt from: EvilOlaf
PR: armbian/build#0
File: :0-0
Timestamp: 2025-06-16T03:24:00.458Z
Learning: In Armbian board configuration files (.csc), 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.
🪛 LanguageTool
packages/bsp/xpressreal-t3/firmware/aic8800/aic_powerlimit_8800d80.txt
[grammar] ~1-~1: There might be a mistake here.
Context: # AIC POWERLIMIT 2024/0218/1206 # Max tx power reference: Linux wireless r...
(QB_NEW_EN)
[grammar] ~2-~2: There might be a mistake here.
Context: ...ux wireless regulatory database for CRDA # https://git.kernel.org/pub/scm/linux/ker...
(QB_NEW_EN)
[grammar] ~3-~3: There might be a mistake here.
Context: .../sforshee/wireless-regdb.git/tree/db.txt # If you add other countries, do so before...
(QB_NEW_EN)
[grammar] ~8-~8: There might be a mistake here.
Context: ... actual judgment # Table 1: ## 2.4G,#3# ## START ## CN US 00 CH01 15 ...
(QB_NEW_EN)
[grammar] ~9-~9: There might be a mistake here.
Context: ...udgment # Table 1: ## 2.4G,#3# ## START ## CN US 00 CH01 15 18 13 CH...
(QB_NEW_EN)
[grammar] ~10-~10: There might be a mistake here.
Context: ...2.4G,#3# ## START ## CN US 00 CH01 15 18 13 CH02 15 18 ...
(QB_NEW_EN)
[grammar] ~11-~11: There might be a mistake here.
Context: ... CN US 00 CH01 15 18 13 CH02 15 18 13 CH03 15 18 ...
(QB_NEW_EN)
[grammar] ~12-~12: There might be a mistake here.
Context: ... 15 18 13 CH02 15 18 13 CH03 15 18 13 CH04 15 18 ...
(QB_NEW_EN)
[grammar] ~13-~13: There might be a mistake here.
Context: ... 13 CH02 15 18 13 CH03 15 18 13 CH04 15 18 13 CH05 1...
(QB_NEW_EN)
[grammar] ~13-~13: There might be a mistake here.
Context: ... 15 18 13 CH03 15 18 13 CH04 15 18 13 CH05 15 18 ...
(QB_NEW_EN)
[grammar] ~14-~14: There might be a mistake here.
Context: ...8 13 CH03 15 18 13 CH04 15 18 13 CH05 15 18 13 CH06 1...
(QB_NEW_EN)
[grammar] ~14-~14: There might be a mistake here.
Context: ...3 15 18 13 CH04 15 18 13 CH05 15 18 13 CH06 15 18 ...
(QB_NEW_EN)
[grammar] ~15-~15: There might be a mistake here.
Context: ...8 13 CH04 15 18 13 CH05 15 18 13 CH06 15 18 13 CH07 1...
(QB_NEW_EN)
[grammar] ~15-~15: There might be a mistake here.
Context: ...4 15 18 13 CH05 15 18 13 CH06 15 18 13 CH07 15 18 ...
(QB_NEW_EN)
[grammar] ~16-~16: There might be a mistake here.
Context: ...8 13 CH05 15 18 13 CH06 15 18 13 CH07 15 18 13 CH08 1...
(QB_NEW_EN)
[grammar] ~16-~16: There might be a mistake here.
Context: ...5 15 18 13 CH06 15 18 13 CH07 15 18 13 CH08 15 18 ...
(QB_NEW_EN)
[grammar] ~17-~17: There might be a mistake here.
Context: ...8 13 CH06 15 18 13 CH07 15 18 13 CH08 15 18 13 CH09 1...
(QB_NEW_EN)
[grammar] ~17-~17: There might be a mistake here.
Context: ...6 15 18 13 CH07 15 18 13 CH08 15 18 13 CH09 15 18 ...
(QB_NEW_EN)
[grammar] ~18-~18: There might be a mistake here.
Context: ...8 13 CH07 15 18 13 CH08 15 18 13 CH09 15 18 13 CH10 1...
(QB_NEW_EN)
[grammar] ~18-~18: There might be a mistake here.
Context: ...7 15 18 13 CH08 15 18 13 CH09 15 18 13 CH10 15 18 ...
(QB_NEW_EN)
[grammar] ~19-~19: There might be a mistake here.
Context: ...8 13 CH08 15 18 13 CH09 15 18 13 CH10 15 18 13 CH11 1...
(QB_NEW_EN)
[grammar] ~19-~19: There might be a mistake here.
Context: ...8 15 18 13 CH09 15 18 13 CH10 15 18 13 CH11 15 18 ...
(QB_NEW_EN)
[grammar] ~20-~20: There might be a mistake here.
Context: ...8 13 CH09 15 18 13 CH10 15 18 13 CH11 15 18 13 CH12 1...
(QB_NEW_EN)
[grammar] ~20-~20: There might be a mistake here.
Context: ...9 15 18 13 CH10 15 18 13 CH11 15 18 13 CH12 12 NA ...
(QB_NEW_EN)
[grammar] ~21-~21: There might be a mistake here.
Context: ...8 13 CH10 15 18 13 CH11 15 18 13 CH12 12 NA 13 CH13 1...
(QB_NEW_EN)
[grammar] ~21-~21: There might be a mistake here.
Context: ...0 15 18 13 CH11 15 18 13 CH12 12 NA 13 CH13 12 NA ...
(QB_NEW_EN)
[grammar] ~22-~22: There might be a mistake here.
Context: ...8 13 CH11 15 18 13 CH12 12 NA 13 CH13 12 NA 13 CH14 N...
(QB_NEW_EN)
[grammar] ~22-~22: There might be a mistake here.
Context: ...1 15 18 13 CH12 12 NA 13 CH13 12 NA 13 CH14 NA NA ...
(QB_NEW_EN)
[grammar] ~23-~23: There might be a mistake here.
Context: ...8 13 CH12 12 NA 13 CH13 12 NA 13 CH14 NA NA 13 ## END ...
(QB_NEW_EN)
[grammar] ~23-~23: There might be a mistake here.
Context: ...2 12 NA 13 CH13 12 NA 13 CH14 NA NA 13 ## END # Table 2...
(QB_NEW_EN)
[grammar] ~24-~24: There might be a mistake here.
Context: ... 12 NA 13 CH14 NA NA 13 ## END # Table 2: ## 5G,#3# ## START ## ...
(QB_NEW_EN)
[grammar] ~28-~28: There might be a mistake here.
Context: ... NA 13 ## END # Table 2: ## 5G,#3# ## START ## CN US 00 # 5G Band 1...
(QB_NEW_EN)
[grammar] ~29-~29: There might be a mistake here.
Context: ...13 ## END # Table 2: ## 5G,#3# ## START ## CN US 00 # 5G Band 1 CH36 15 ...
(QB_NEW_EN)
[grammar] ~30-~30: There might be a mistake here.
Context: ...# 5G,#3# ## START ## CN US 00 # 5G Band 1 CH36 15 18 18 CH40 ...
(QB_NEW_EN)
[grammar] ~31-~31: There might be a mistake here.
Context: ...START ## CN US 00 # 5G Band 1 CH36 15 18 18 CH40 15 18 ...
(QB_NEW_EN)
[grammar] ~32-~32: There might be a mistake here.
Context: ... 00 # 5G Band 1 CH36 15 18 18 CH40 15 18 18 CH44 15 18 ...
(QB_NEW_EN)
[grammar] ~33-~33: There might be a mistake here.
Context: ... 15 18 18 CH40 15 18 18 CH44 15 18 18 CH48 15 18 ...
(QB_NEW_EN)
[grammar] ~34-~34: There might be a mistake here.
Context: ... 15 18 18 CH44 15 18 18 CH48 15 18 18 # 5G Band 2 CH52 ...
(QB_NEW_EN)
[grammar] ~35-~35: There might be a mistake here.
Context: ... 15 18 18 CH48 15 18 18 # 5G Band 2 CH52 15 19 16 CH56 ...
(QB_NEW_EN)
[grammar] ~36-~36: There might be a mistake here.
Context: ... 18 CH48 15 18 18 # 5G Band 2 CH52 15 19 16 CH56 15 19 ...
(QB_NEW_EN)
[grammar] ~37-~37: There might be a mistake here.
Context: ... 18 # 5G Band 2 CH52 15 19 16 CH56 15 19 16 CH60 15 19 ...
(QB_NEW_EN)
[grammar] ~38-~38: There might be a mistake here.
Context: ... 15 19 16 CH56 15 19 16 CH60 15 19 16 CH64 15 19 ...
(QB_NEW_EN)
[grammar] ~39-~39: There might be a mistake here.
Context: ... 15 19 16 CH60 15 19 16 CH64 15 19 16 # 5G Band 3 CH100...
(QB_NEW_EN)
[grammar] ~40-~40: There might be a mistake here.
Context: ... 15 19 16 CH64 15 19 16 # 5G Band 3 CH100 NA 19 16 CH104 ...
(QB_NEW_EN)
[grammar] ~41-~41: There might be a mistake here.
Context: ... 16 CH64 15 19 16 # 5G Band 3 CH100 NA 19 16 CH104 NA 19 ...
(QB_NEW_EN)
[grammar] ~42-~42: There might be a mistake here.
Context: ... 16 # 5G Band 3 CH100 NA 19 16 CH104 NA 19 16 CH108 NA 19 ...
(QB_NEW_EN)
[grammar] ~43-~43: There might be a mistake here.
Context: ... NA 19 16 CH104 NA 19 16 CH108 NA 19 16 CH112 NA 19 ...
(QB_NEW_EN)
[grammar] ~44-~44: There might be a mistake here.
Context: ... NA 19 16 CH108 NA 19 16 CH112 NA 19 16 CH116 NA 19 ...
(QB_NEW_EN)
[grammar] ~45-~45: There might be a mistake here.
Context: ... NA 19 16 CH112 NA 19 16 CH116 NA 19 16 CH120 NA 19 ...
(QB_NEW_EN)
[grammar] ~46-~46: There might be a mistake here.
Context: ... NA 19 16 CH116 NA 19 16 CH120 NA 19 16 CH124 NA 19 ...
(QB_NEW_EN)
[grammar] ~47-~47: There might be a mistake here.
Context: ... NA 19 16 CH120 NA 19 16 CH124 NA 19 16 CH128 NA 19 ...
(QB_NEW_EN)
[grammar] ~48-~48: There might be a mistake here.
Context: ... NA 19 16 CH124 NA 19 16 CH128 NA 19 16 CH132 NA 19 ...
(QB_NEW_EN)
[grammar] ~49-~49: There might be a mistake here.
Context: ... NA 19 16 CH128 NA 19 16 CH132 NA 19 16 CH136 NA 19 ...
(QB_NEW_EN)
[grammar] ~50-~50: There might be a mistake here.
Context: ... NA 19 16 CH132 NA 19 16 CH136 NA 19 16 CH140 NA 19 ...
(QB_NEW_EN)
[grammar] ~51-~51: There might be a mistake here.
Context: ... NA 19 16 CH136 NA 19 16 CH140 NA 19 16 CH144 NA NA ...
(QB_NEW_EN)
[grammar] ~52-~52: There might be a mistake here.
Context: ... NA 19 16 CH140 NA 19 16 CH144 NA NA 16 # 5G Band 4 CH149...
(QB_NEW_EN)
packages/bsp/xpressreal-t3/firmware/aic8800/aic_userconfig_8800d80.txt
[grammar] ~70-~70: There might be a mistake here.
Context: ...12 lvl_11ax_mcs11_5g=12 # txpwr_lvl_adj lvl_adj_enable=0 lvl_adj_2g4_chan_1_4=0 ...
(QB_NEW_EN)
[grammar] ~71-~71: There might be a mistake here.
Context: ...5g=12 # txpwr_lvl_adj lvl_adj_enable=0 lvl_adj_2g4_chan_1_4=0 lvl_adj_2g4_chan...
(QB_NEW_EN)
[grammar] ~72-~72: There might be a mistake here.
Context: ... lvl_adj_enable=0 lvl_adj_2g4_chan_1_4=0 lvl_adj_2g4_chan_5_9=0 lvl_adj_2g4_chan_...
(QB_NEW_EN)
[grammar] ~73-~73: There might be a mistake here.
Context: ...dj_2g4_chan_1_4=0 lvl_adj_2g4_chan_5_9=0 lvl_adj_2g4_chan_10_13=0 lvl_adj_5g_chan...
(QB_NEW_EN)
[grammar] ~74-~74: There might be a mistake here.
Context: ..._2g4_chan_5_9=0 lvl_adj_2g4_chan_10_13=0 lvl_adj_5g_chan_42=0 lvl_adj_5g_chan_58=...
(QB_NEW_EN)
[grammar] ~75-~75: There might be a mistake here.
Context: ...dj_2g4_chan_10_13=0 lvl_adj_5g_chan_42=0 lvl_adj_5g_chan_58=0 lvl_adj_5g_chan_106...
(QB_NEW_EN)
[grammar] ~76-~76: There might be a mistake here.
Context: ...vl_adj_5g_chan_42=0 lvl_adj_5g_chan_58=0 lvl_adj_5g_chan_106=0 lvl_adj_5g_chan_12...
(QB_NEW_EN)
[grammar] ~77-~77: There might be a mistake here.
Context: ...l_adj_5g_chan_58=0 lvl_adj_5g_chan_106=0 lvl_adj_5g_chan_122=0 lvl_adj_5g_chan_13...
(QB_NEW_EN)
[grammar] ~78-~78: There might be a mistake here.
Context: ..._adj_5g_chan_106=0 lvl_adj_5g_chan_122=0 lvl_adj_5g_chan_138=0 lvl_adj_5g_chan_15...
(QB_NEW_EN)
[grammar] ~79-~79: There might be a mistake here.
Context: ..._adj_5g_chan_122=0 lvl_adj_5g_chan_138=0 lvl_adj_5g_chan_155=0 # txpwr_loss loss...
(QB_NEW_EN)
[grammar] ~82-~82: There might be a mistake here.
Context: ...38=0 lvl_adj_5g_chan_155=0 # txpwr_loss loss_enable_2g4=0 loss_value_2g4=2 loss_...
(QB_NEW_EN)
[grammar] ~83-~83: There might be a mistake here.
Context: ...an_155=0 # txpwr_loss loss_enable_2g4=0 loss_value_2g4=2 loss_enable_5g=0 loss_v...
(QB_NEW_EN)
[grammar] ~84-~84: There might be a mistake here.
Context: ..._loss loss_enable_2g4=0 loss_value_2g4=2 loss_enable_5g=0 loss_value_5g=5 # txpw...
(QB_NEW_EN)
[grammar] ~85-~85: There might be a mistake here.
Context: ..._2g4=0 loss_value_2g4=2 loss_enable_5g=0 loss_value_5g=5 # txpwr_ofst ofst_enabl...
(QB_NEW_EN)
[grammar] ~118-~118: There might be a mistake here.
Context: ...t_5g_ofdm_midrate_chan_155=0 # xtal cap xtal_enable=0 xtal_cap=24 xtal_cap_fine=...
(QB_NEW_EN)
[grammar] ~119-~119: There might be a mistake here.
Context: ...ate_chan_155=0 # xtal cap xtal_enable=0 xtal_cap=24 xtal_cap_fine=31
(QB_NEW_EN)
[grammar] ~120-~120: There might be a mistake here.
Context: ...=0 # xtal cap xtal_enable=0 xtal_cap=24 xtal_cap_fine=31
(QB_NEW_EN)
🔇 Additional comments (2)
packages/bsp/xpressreal-t3/firmware/aic8800/aic_userconfig_8800d80.txt (2)
123-125: Check for stray trailing content at EOF.The viewer shows a lone "125" after blank lines. If this literal line exists in the file, some parsers may choke. Please confirm and drop it if present.
5-68: Sanity-check per-MCS targets vs. PA/EVM limits.Values are flat-ish across many MCS. Please confirm these pass RF validation on both 2.4/5 GHz for AIC8800D80.
packages/bsp/xpressreal-t3/firmware/aic8800/aic_powerlimit_8800d80.txt
Outdated
Show resolved
Hide resolved
564c062 to
b884f75
Compare
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: 1
♻️ Duplicate comments (5)
config/bootscripts/boot-xpressreal-t3.cmd (1)
6-9: Root device defaults to BOOT (p1); prefer ROOT (p2) and preserve armbianEnv.txt.Do not hardcode rootdev=/dev/mmcblk0p1. Set rootdev only if empty, prefer PARTUUID of p2 with safe fallback, and filter unsupported UUID=/LABEL= when no initramfs is used. This prevents mounting the BOOT partition as root and respects valid overrides.
Apply:
setenv rootfstype "ext4" -setenv rootdev "/dev/mmcblk0p1" setenv fdtfile "realtek/rtd1619b-bleedingedge-4gb.dtb" @@ if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}armbianEnv.txt; then load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${prefix}armbianEnv.txt env import -t ${load_addr} ${filesize} fi + +# Filter unsupported UUID=/LABEL= formats (require initramfs) and set rootdev sanely if empty. +if test -n "${rootdev}"; then + if test "${rootdev#UUID=}" != "${rootdev}" || test "${rootdev#LABEL=}" != "${rootdev}"; then + echo "Warning: ${rootdev} requires initramfs, ignoring" + setenv rootdev "" + fi +fi +if test -z "${rootdev}"; then + if test "${devtype}" = "mmc"; then + part uuid mmc ${devnum}:2 rootuuid + if test -n "${rootuuid}"; then + setenv rootdev "PARTUUID=${rootuuid}" + else + setenv rootdev "/dev/mmcblk0p2" + fi + fi +fi @@ setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"Also applies to: 20-24, 34-37
config/kernel/linux-xpressreal-t3-6.6.config (2)
41-46: Prefer schedutil as default CPUFreq governor.schedutil generally tracks scheduler load better on ARM64 while keeping ondemand available.
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y # keep other governors enabled
218-220: Disable uevent helper (best practice).Modern systems rely on udev; leaving CONFIG_UEVENT_HELPER enabled can have perf/security downsides.
-CONFIG_UEVENT_HELPER=y +# CONFIG_UEVENT_HELPER is not setconfig/sources/families/realtek-rtd1619b.conf (2)
49-54: Fix typo and add context/level in alert.“singing” → “signing”; include component + level for consistent logs.
- if [ -d "./prebuilt/keys" ]; then + if [ -d "./prebuilt/keys" ]; then display_alert "Copy keys..." run_host_command_logged cp -r "./prebuilt/keys" "./keys" else - display_alert "No singing keys found" + display_alert "realtek-rtd1619b" "No signing keys found" "warn" fi
73-75: Use cpp for DTS preprocessing and suppress line markers.Avoid cc dependency and cleaner output with -P.
- run_host_command_logged cc -E -nostdinc -undef -D__DTS__ -x assembler-with-cpp \ - -o "${PREBUILT}/rtd1619b_emmc_4gb.pp" "${PREBUILT}/rtd1619b_emmc_lpddr4_4gb.dts" + run_host_command_logged cpp -P -nostdinc -undef -D__DTS__ -x assembler-with-cpp \ + -o "${PREBUILT}/rtd1619b_emmc_4gb.pp" "${PREBUILT}/rtd1619b_emmc_lpddr4_4gb.dts"
🧹 Nitpick comments (4)
config/bootscripts/boot-xpressreal-t3.cmd (1)
25-27: Optional: Make serial console primary when console=both.Place the serial console after tty1 so it becomes primary (last console wins).
-if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=tty1"; fi -if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "console=ttyS0,460800 ${consoleargs}"; fi +if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=tty1"; fi +if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "${consoleargs} console=ttyS0,460800"; ficonfig/kernel/linux-xpressreal-t3-6.6.config (1)
219-219: Optional: Auto-mount devtmpfs when booting without initramfs.Helps ensure /dev exists very early if you’re not using an initramfs.
CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=yconfig/sources/families/realtek-rtd1619b.conf (2)
92-110: Safer writer: validate block device before flashing.Avoid accidental writes; keep fsync.
function write_uboot_platform() { local DIR=$1 local DEVICE=$2 - if [[ "${DEVICE}" == "/dev/mmcblk0" ]]; then + if [[ ! -b "${DEVICE}" ]]; then + display_alert "realtek-rtd1619b" "Device ${DEVICE} is not a block device" "err" + return 1 + fi + + if [[ "${DEVICE}" == "/dev/mmcblk0" ]]; then # disable boot0/boot1 write protection echo 0 > /sys/block/mmcblk0boot0/force_ro echo 0 > /sys/block/mmcblk0boot1/force_ro
116-124: Robust firmware copy when source is empty.Copy the directory as a whole to avoid glob failures on empty dirs.
- run_host_command_logged mkdir -p "${firmware_dest_dir}" - run_host_command_logged cp -r "${firmware_source_dir}"/* "${firmware_dest_dir}/" + run_host_command_logged mkdir -p "${firmware_dest_dir}" + run_host_command_logged cp -a "${firmware_source_dir}/." "${firmware_dest_dir}/"
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (6)
packages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/AFW_Certificate_final.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/VE3FW.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/u-boot/u-boot-fw.tar.gzis excluded by!**/*.gzpackages/bsp/xpressreal-t3/u-boot/u-boot-prebuilt.tar.gzis excluded by!**/*.gzpatch/u-boot/u-boot-xpressreal/0001-Update-dev-signing-key.patchis excluded by!patch/**patch/u-boot/u-boot-xpressreal/0002-update-fw-path.patchis excluded by!patch/**
📒 Files selected for processing (7)
config/boards/xpressreal-t3.csc(1 hunks)config/bootenv/xpressreal-t3.txt(1 hunks)config/bootscripts/boot-xpressreal-t3.cmd(1 hunks)config/kernel/linux-xpressreal-t3-6.6.config(1 hunks)config/sources/families/realtek-rtd1619b.conf(1 hunks)packages/bsp/xpressreal-t3/load-rtk-modules.service(1 hunks)packages/bsp/xpressreal-t3/load-rtk-modules.sh(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (4)
- config/bootenv/xpressreal-t3.txt
- packages/bsp/xpressreal-t3/load-rtk-modules.sh
- packages/bsp/xpressreal-t3/load-rtk-modules.service
- config/boards/xpressreal-t3.csc
🧰 Additional context used
🧠 Learnings (20)
📓 Common learnings
Learnt from: wei633
PR: armbian/build#8557
File: config/bootscripts/boot-xpressreal-t3.cmd:49-53
Timestamp: 2025-09-01T06:12:19.251Z
Learning: For XpressReal T3 (Realtek RTD1619B platform), initramfs support is intentionally not implemented in the boot script due to known problems when booting with initramfs. This needs to be fixed in a future update.
📚 Learning: 2025-09-01T06:12:19.251Z
Learnt from: wei633
PR: armbian/build#8557
File: config/bootscripts/boot-xpressreal-t3.cmd:49-53
Timestamp: 2025-09-01T06:12:19.251Z
Learning: For XpressReal T3 (Realtek RTD1619B platform), initramfs support is intentionally not implemented in the boot script due to known problems when booting with initramfs. This needs to be fixed in a future update.
Applied to files:
config/bootscripts/boot-xpressreal-t3.cmdconfig/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-06-04T23:45:38.860Z
Learnt from: djurny
PR: armbian/build#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/bootscripts/boot-xpressreal-t3.cmd
📚 Learning: 2025-09-01T06:11:43.476Z
Learnt from: wei633
PR: armbian/build#8557
File: config/bootscripts/boot-xpressreal-t3.cmd:0-0
Timestamp: 2025-09-01T06:11:43.476Z
Learning: In Armbian boot scripts without initramfs support, UUID= and LABEL= style device paths cannot be used for rootdev as they require initramfs to resolve during boot. Only direct device paths (/dev/mmcblkXpY) or PARTUUID= references (which U-Boot can resolve) will work.
Applied to files:
config/bootscripts/boot-xpressreal-t3.cmd
📚 Learning: 2025-03-31T22:20:48.475Z
Learnt from: rpardini
PR: armbian/build#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/bootscripts/boot-xpressreal-t3.cmd
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
PR: armbian/build#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:
config/bootscripts/boot-xpressreal-t3.cmdconfig/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
PR: armbian/build#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:
config/bootscripts/boot-xpressreal-t3.cmd
📚 Learning: 2025-06-12T21:03:39.686Z
Learnt from: djurny
PR: armbian/build#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/bootscripts/boot-xpressreal-t3.cmd
📚 Learning: 2025-05-16T15:34:34.672Z
Learnt from: Grippy98
PR: armbian/build#8202
File: config/desktop/trixie/environments/gnome/armbian/create_desktop_package.sh:2-3
Timestamp: 2025-05-16T15:34:34.672Z
Learning: The shell scripts in the Armbian build system's desktop configuration files, such as config/desktop/trixie/environments/gnome/armbian/create_desktop_package.sh, rely on environment variables like $SRC and $destination that are expected to be set externally before the script is executed.
Applied to files:
config/bootscripts/boot-xpressreal-t3.cmdconfig/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-07-17T04:12:33.125Z
Learnt from: pyavitz
PR: armbian/build#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/bootscripts/boot-xpressreal-t3.cmdconfig/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-06-25T03:42:09.086Z
Learnt from: EvilOlaf
PR: armbian/build#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/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-06-25T03:40:52.109Z
Learnt from: EvilOlaf
PR: armbian/build#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/realtek-rtd1619b.conf
📚 Learning: 2025-06-22T00:45:26.182Z
Learnt from: djurny
PR: armbian/build#8315
File: lib/functions/rootfs/distro-agnostic.sh:54-68
Timestamp: 2025-06-22T00:45:26.182Z
Learning: In Armbian build system, external command dependencies like envsubst are handled by adding the required packages (e.g., gettext for envsubst) to host_dependencies in adaptative_prepare_host_dependencies function in lib/functions/host/prepare-host.sh, rather than checking command availability at runtime.
Applied to files:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-07-23T10:01:41.310Z
Learnt from: amazingfate
PR: armbian/build#8419
File: lib/functions/host/prepare-host.sh:272-275
Timestamp: 2025-07-23T10:01:41.310Z
Learning: In the Armbian build system, the design philosophy is to fail fast when host dependencies are not met rather than gracefully skipping unsupported architectures. This ensures build environment consistency and prevents silent failures. Host dependency checks should be explicit and non-negotiable.
Applied to files:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-06-14T05:53:10.627Z
Learnt from: EvilOlaf
PR: armbian/build#8298
File: extensions/https_proxy.sh:1-9
Timestamp: 2025-06-14T05:53:10.627Z
Learning: Armbian build framework extensions are NOT designed to run standalone but are called by the supervisor. The framework provides environment variables like USERPATCHES_PATH and SDCARD, and commands are executed with protection via run_host_command_logged and chroot_sdcard functions that use bash -e -o pipefail.
Applied to files:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-08-11T12:39:22.861Z
Learnt from: pyavitz
PR: armbian/build#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/realtek-rtd1619b.conf
📚 Learning: 2025-07-23T07:30:52.265Z
Learnt from: EvilOlaf
PR: armbian/build#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/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-08-30T04:13:16.457Z
Learnt from: tabrisnet
PR: armbian/build#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-xpressreal-t3-6.6.config
📚 Learning: 2025-03-31T12:57:13.880Z
Learnt from: libiunc
PR: armbian/build#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-xpressreal-t3-6.6.config
📚 Learning: 2025-07-15T21:09:23.252Z
Learnt from: pyavitz
PR: armbian/build#8383
File: config/kernel/linux-sunxi64-edge.config:57-64
Timestamp: 2025-07-15T21:09:23.252Z
Learning: In Linux kernel configuration, when CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y is set, the ondemand governor is implicitly enabled by default, making the explicit CONFIG_CPU_FREQ_GOV_ONDEMAND=y line redundant. The make menuconfig tool automatically removes such redundant lines. This behavior applies to CPU frequency governor configurations in general - setting a default governor automatically enables that governor.
Applied to files:
config/kernel/linux-xpressreal-t3-6.6.config
🧬 Code graph analysis (3)
config/bootscripts/boot-xpressreal-t3.cmd (1)
lib/functions/bsp/armbian-bsp-cli-deb.sh (2)
board_side_bsp_cli_postinst_update_uboot_bootscript(331-358)get_bootscript_info(294-329)
config/sources/families/realtek-rtd1619b.conf (3)
config/sources/vendors/mekotronics/mekotronics-rk3588.hooks.sh (2)
post_family_config__vendor_uboot_mekotronics(8-16)post_family_config__meko_use_mainline_uboot(22-42)lib/functions/configuration/main-config.sh (1)
do_main_configuration(12-358).github/generate_CODEOWNERS.sh (1)
generate_for_board(18-68)
config/kernel/linux-xpressreal-t3-6.6.config (2)
lib/functions/compilation/armbian-kernel.sh (5)
armbian_kernel_config__disable_various_options(70-100)armbian_kernel_config_apply_opts_from_arrays(418-448)armbian_kernel_config__enable_docker_support(205-336)armbian_kernel_config__enable_zram_support(182-192)armbian_kernel_config__extrawifi_enable_wifi_opts_80211(24-36)lib/functions/compilation/kernel-config.sh (2)
kernel_config_export(132-146)kernel_config_finalize(113-130)
b884f75 to
04922e5
Compare
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: 2
♻️ Duplicate comments (3)
config/kernel/linux-xpressreal-t3-6.6.config (1)
41-46: Make schedutil the default CPUFreq governorschedutil generally provides better ramp behavior on ARM64. Keep ondemand enabled but switch the default.
-CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y # keep other governors enabledconfig/sources/families/realtek-rtd1619b.conf (2)
53-54: Standardize alert format and levelInclude component + level for consistency with display_alert usage elsewhere.
- display_alert "No signing keys found" + display_alert "realtek-rtd1619b" "No signing keys found" "warn"
73-75: Tidy DTS preprocessing flagsWhen using cpp, -x assembler-with-cpp is unnecessary. Keep -P to suppress line markers.
- run_host_command_logged cpp -P -nostdinc -undef -D__DTS__ -x assembler-with-cpp \ + run_host_command_logged cpp -P -nostdinc -undef -D__DTS__ \ -o "${PREBUILT}/rtd1619b_emmc_4gb.pp" "${PREBUILT}/rtd1619b_emmc_lpddr4_4gb.dts"
🧹 Nitpick comments (2)
config/kernel/linux-xpressreal-t3-6.6.config (2)
209-210: Disable legacy wireless extensions (WEXT)WEXT is deprecated; prefer nl80211 only unless a specific out-of-tree driver truly needs it.
-CONFIG_CFG80211_WEXT=y +# CONFIG_CFG80211_WEXT is not set
534-535: Drop built-in EXT3 to reduce kernel sizeEXT3 is obsolete; EXT4 handles EXT3 volumes. Consider building it as module or disabling.
-CONFIG_EXT3_FS=y +# CONFIG_EXT3_FS is not set
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (6)
packages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/AFW_Certificate_final.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/VE3FW.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/u-boot/u-boot-fw.tar.gzis excluded by!**/*.gzpackages/bsp/xpressreal-t3/u-boot/u-boot-prebuilt.tar.gzis excluded by!**/*.gzpatch/u-boot/u-boot-xpressreal/0001-Update-dev-signing-key.patchis excluded by!patch/**patch/u-boot/u-boot-xpressreal/0002-update-fw-path.patchis excluded by!patch/**
📒 Files selected for processing (7)
config/boards/xpressreal-t3.csc(1 hunks)config/bootenv/xpressreal-t3.txt(1 hunks)config/bootscripts/boot-xpressreal-t3.cmd(1 hunks)config/kernel/linux-xpressreal-t3-6.6.config(1 hunks)config/sources/families/realtek-rtd1619b.conf(1 hunks)packages/bsp/xpressreal-t3/load-rtk-modules.service(1 hunks)packages/bsp/xpressreal-t3/load-rtk-modules.sh(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (5)
- packages/bsp/xpressreal-t3/load-rtk-modules.sh
- config/bootenv/xpressreal-t3.txt
- config/bootscripts/boot-xpressreal-t3.cmd
- config/boards/xpressreal-t3.csc
- packages/bsp/xpressreal-t3/load-rtk-modules.service
🧰 Additional context used
🧠 Learnings (16)
📓 Common learnings
Learnt from: wei633
PR: armbian/build#8557
File: config/bootscripts/boot-xpressreal-t3.cmd:49-53
Timestamp: 2025-09-01T06:12:19.251Z
Learning: For XpressReal T3 (Realtek RTD1619B platform), initramfs support is intentionally not implemented in the boot script due to known problems when booting with initramfs. This needs to be fixed in a future update.
📚 Learning: 2025-06-25T03:40:52.109Z
Learnt from: EvilOlaf
PR: armbian/build#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/realtek-rtd1619b.conf
📚 Learning: 2025-06-25T03:42:09.086Z
Learnt from: EvilOlaf
PR: armbian/build#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/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-07-17T04:12:33.125Z
Learnt from: pyavitz
PR: armbian/build#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/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-08-03T15:21:20.148Z
Learnt from: pyavitz
PR: armbian/build#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/realtek-rtd1619b.conf
📚 Learning: 2025-06-16T03:24:00.458Z
Learnt from: EvilOlaf
PR: armbian/build#0
File: :0-0
Timestamp: 2025-06-16T03:24:00.458Z
Learning: In Armbian board configuration files (.csc), 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.
Applied to files:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-08-30T04:13:16.457Z
Learnt from: tabrisnet
PR: armbian/build#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/sources/families/realtek-rtd1619b.confconfig/kernel/linux-xpressreal-t3-6.6.config
📚 Learning: 2025-06-22T00:45:26.182Z
Learnt from: djurny
PR: armbian/build#8315
File: lib/functions/rootfs/distro-agnostic.sh:54-68
Timestamp: 2025-06-22T00:45:26.182Z
Learning: In Armbian build system, external command dependencies like envsubst are handled by adding the required packages (e.g., gettext for envsubst) to host_dependencies in adaptative_prepare_host_dependencies function in lib/functions/host/prepare-host.sh, rather than checking command availability at runtime.
Applied to files:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-07-23T10:01:41.310Z
Learnt from: amazingfate
PR: armbian/build#8419
File: lib/functions/host/prepare-host.sh:272-275
Timestamp: 2025-07-23T10:01:41.310Z
Learning: In the Armbian build system, the design philosophy is to fail fast when host dependencies are not met rather than gracefully skipping unsupported architectures. This ensures build environment consistency and prevents silent failures. Host dependency checks should be explicit and non-negotiable.
Applied to files:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-09-01T06:12:19.251Z
Learnt from: wei633
PR: armbian/build#8557
File: config/bootscripts/boot-xpressreal-t3.cmd:49-53
Timestamp: 2025-09-01T06:12:19.251Z
Learning: For XpressReal T3 (Realtek RTD1619B platform), initramfs support is intentionally not implemented in the boot script due to known problems when booting with initramfs. This needs to be fixed in a future update.
Applied to files:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-08-11T12:39:22.861Z
Learnt from: pyavitz
PR: armbian/build#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/realtek-rtd1619b.conf
📚 Learning: 2025-06-14T05:53:10.627Z
Learnt from: EvilOlaf
PR: armbian/build#8298
File: extensions/https_proxy.sh:1-9
Timestamp: 2025-06-14T05:53:10.627Z
Learning: Armbian build framework extensions are NOT designed to run standalone but are called by the supervisor. The framework provides environment variables like USERPATCHES_PATH and SDCARD, and commands are executed with protection via run_host_command_logged and chroot_sdcard functions that use bash -e -o pipefail.
Applied to files:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-05-16T15:34:34.672Z
Learnt from: Grippy98
PR: armbian/build#8202
File: config/desktop/trixie/environments/gnome/armbian/create_desktop_package.sh:2-3
Timestamp: 2025-05-16T15:34:34.672Z
Learning: The shell scripts in the Armbian build system's desktop configuration files, such as config/desktop/trixie/environments/gnome/armbian/create_desktop_package.sh, rely on environment variables like $SRC and $destination that are expected to be set externally before the script is executed.
Applied to files:
config/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-07-23T07:30:52.265Z
Learnt from: EvilOlaf
PR: armbian/build#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/sources/families/realtek-rtd1619b.conf
📚 Learning: 2025-03-31T12:57:13.880Z
Learnt from: libiunc
PR: armbian/build#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-xpressreal-t3-6.6.config
📚 Learning: 2025-07-15T21:09:23.252Z
Learnt from: pyavitz
PR: armbian/build#8383
File: config/kernel/linux-sunxi64-edge.config:57-64
Timestamp: 2025-07-15T21:09:23.252Z
Learning: In Linux kernel configuration, when CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y is set, the ondemand governor is implicitly enabled by default, making the explicit CONFIG_CPU_FREQ_GOV_ONDEMAND=y line redundant. The make menuconfig tool automatically removes such redundant lines. This behavior applies to CPU frequency governor configurations in general - setting a default governor automatically enables that governor.
Applied to files:
config/kernel/linux-xpressreal-t3-6.6.config
🧬 Code graph analysis (2)
config/sources/families/realtek-rtd1619b.conf (2)
lib/functions/bsp/armbian-bsp-cli-deb.sh (1)
board_side_bsp_cli_postinst_update_uboot_bootscript(331-358)lib/functions/compilation/uboot.sh (1)
compile_uboot(373-542)
config/kernel/linux-xpressreal-t3-6.6.config (1)
lib/functions/compilation/armbian-kernel.sh (5)
armbian_kernel_config__disable_various_options(70-100)armbian_kernel_config_apply_opts_from_arrays(418-448)armbian_kernel_config__enable_docker_support(205-336)armbian_kernel_config__enable_zram_support(182-192)armbian_kernel_config__600_enable_ebpf_and_btf_info(134-166)
🔇 Additional comments (2)
config/kernel/linux-xpressreal-t3-6.6.config (1)
218-218: Good: uevent helper disabledDisabling CONFIG_UEVENT_HELPER aligns with modern udev usage and avoids needless overhead.
config/sources/families/realtek-rtd1619b.conf (1)
96-116: LGTM: safer u-boot writerBlock-device check and fsync writes are good improvements; matches Armbian postinst expectations.
04922e5 to
864121c
Compare
|
@wei633 Can you please clarify the origin of the binary files you are adding? |
@leggewie Of course, the binary files introduced in this PR contain the following parts: firmware/realtek/rtd1619b: These binaries are the firmware for rtd1619b peripherals (including the audio decoder, video decoder, etc.). FYI: |
Awesome, thank you for that information. Can I ask you to add this information also to the commit message in case anybody comes looking for it in the future? |
XpressReal(https://xpressreal.io/) is a family of Single Board Computers developed in collaboration between Fyde Innovations, Radxa and Realtek. XpressReal T3 is the first product in the family - a small form factor high performance single board computer powered by the Realtek RTD1619B, which runs FydeOS/openFyde and Linux! Now we are adding the awesome Armbian Linux support for XpressReal T3! This commit introduces some binary files that XpressReal T3 needed: - firmware/realtek/rtd1619b These binaries are the firmware for rtd1619b peripherals (including the audio decoder, video decoder, etc.). - u-boot-fw.tar.gz This contains some co-processor firmware, which needs to be loaded by u-boot in the early stage of boot. - u-boot-prebuilt.tar.gz These are hwsettings related files, used for tasks such as DDR initialization. These files come from the rtd1619b SDK, which has already been open-sourced on our github: - [firmware](https://github.com/XpressReal/linux-sdk/tree/main/meta-xpressreal/recipes-kernel/linux-firmware/files/rtd1619b) - [u-boot prebuilts](https://github.com/XpressReal/linux-sdk/tree/main/meta-xpressreal/recipes-bsp/u-boot/files/prebuilt/rtd1619b)
864121c to
bd13908
Compare
Hi @leggewie, I've updated the commit message, thanks 🫡 |
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
♻️ Duplicate comments (2)
config/bootscripts/boot-xpressreal-t3.cmd (2)
41-45: Remove unconditional initramfs load; boot without ramdisk to match current design.This will fail when uInitrd is absent. The platform intentionally doesn’t support initramfs yet; pass “-” to booti.
load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} ${prefix}Image -load ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r} ${prefix}uInitrd load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}dtb/${fdtfile} -booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r} +booti ${kernel_addr_r} - ${fdt_addr_r}
7-7: Default rootdev points to BOOT (p1); prefer ROOT (p2) PARTUUID and filter unsupported formats.As-is, many installs will try to mount the boot partition as root. Also, UUID=/LABEL= from armbianEnv.txt won’t work without initramfs. Prefer PARTUUID of p2 with a safe fallback, and only override when needed.
-setenv rootdev "/dev/mmcblk0p1"Insert after importing armbianEnv.txt (below Line 23):
+# +# rootdev: accept only supported formats (direct /dev or PARTUUID) without initramfs. +# If unset/unsupported, prefer PARTUUID of ROOT (p2) with a sane fallback. +# +if test -n "${rootdev}"; then + # Drop unsupported formats that require initramfs. + if test "${rootdev#UUID=}" != "${rootdev}" || test "${rootdev#LABEL=}" != "${rootdev}"; then + echo "Warning: ${rootdev} requires initramfs; falling back to default rootdev" + setenv rootdev "" + fi +fi +if test -z "${rootdev}"; then + if test "${devtype}" = "mmc"; then + part uuid mmc ${devnum}:2 rootuuid + if test -n "${rootuuid}"; then + setenv rootdev "PARTUUID=${rootuuid}" + else + setenv rootdev "/dev/mmcblk0p2" + fi + else + setenv rootdev "/dev/mmcblk0p2" + fi +fiAlso applies to: 20-23
🧹 Nitpick comments (1)
config/bootscripts/boot-xpressreal-t3.cmd (1)
25-27: Make serial primary when console=both; keep order stable.Currently “both” makes tty1 primary. Typical Armbian defaults favor serial as primary for debugging. Reorder without changing behavior for “display” or “serial”.
-if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=tty1"; fi -if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "console=ttyS0,460800 ${consoleargs}"; fi +setenv consoleargs "" +if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "${consoleargs} console=tty1"; fi +if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "${consoleargs} console=ttyS0,460800"; fiNote: confirm 460800 baud matches DT chosen stdout-path and U-Boot defaults.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
💡 Knowledge Base configuration:
- MCP integration is disabled by default for public repositories
- Jira integration is disabled by default for public repositories
- Linear integration is disabled by default for public repositories
You can enable these sources in your CodeRabbit configuration.
⛔ Files ignored due to path filters (6)
packages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/AFW_Certificate_final.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/VE3FW.binis excluded by!**/*.binpackages/bsp/xpressreal-t3/u-boot/u-boot-fw.tar.gzis excluded by!**/*.gzpackages/bsp/xpressreal-t3/u-boot/u-boot-prebuilt.tar.gzis excluded by!**/*.gzpatch/u-boot/u-boot-xpressreal/0001-Update-dev-signing-key.patchis excluded by!patch/**patch/u-boot/u-boot-xpressreal/0002-update-fw-path.patchis excluded by!patch/**
📒 Files selected for processing (7)
config/boards/xpressreal-t3.csc(1 hunks)config/bootenv/xpressreal-t3.txt(1 hunks)config/bootscripts/boot-xpressreal-t3.cmd(1 hunks)config/kernel/linux-xpressreal-t3-6.6.config(1 hunks)config/sources/families/realtek-rtd1619b.conf(1 hunks)packages/bsp/xpressreal-t3/load-rtk-modules.service(1 hunks)packages/bsp/xpressreal-t3/load-rtk-modules.sh(1 hunks)
🚧 Files skipped from review as they are similar to previous changes (6)
- packages/bsp/xpressreal-t3/load-rtk-modules.service
- packages/bsp/xpressreal-t3/load-rtk-modules.sh
- config/sources/families/realtek-rtd1619b.conf
- config/boards/xpressreal-t3.csc
- config/bootenv/xpressreal-t3.txt
- config/kernel/linux-xpressreal-t3-6.6.config
🧰 Additional context used
🧠 Learnings (11)
📓 Common learnings
Learnt from: wei633
PR: armbian/build#8557
File: config/bootscripts/boot-xpressreal-t3.cmd:49-53
Timestamp: 2025-09-01T06:12:19.251Z
Learning: For XpressReal T3 (Realtek RTD1619B platform), initramfs support is intentionally not implemented in the boot script due to known problems when booting with initramfs. This needs to be fixed in a future update.
📚 Learning: 2025-09-01T06:12:19.251Z
Learnt from: wei633
PR: armbian/build#8557
File: config/bootscripts/boot-xpressreal-t3.cmd:49-53
Timestamp: 2025-09-01T06:12:19.251Z
Learning: For XpressReal T3 (Realtek RTD1619B platform), initramfs support is intentionally not implemented in the boot script due to known problems when booting with initramfs. This needs to be fixed in a future update.
Applied to files:
config/bootscripts/boot-xpressreal-t3.cmd
📚 Learning: 2025-06-04T23:45:38.860Z
Learnt from: djurny
PR: armbian/build#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/bootscripts/boot-xpressreal-t3.cmd
📚 Learning: 2025-09-01T06:11:43.476Z
Learnt from: wei633
PR: armbian/build#8557
File: config/bootscripts/boot-xpressreal-t3.cmd:0-0
Timestamp: 2025-09-01T06:11:43.476Z
Learning: In Armbian boot scripts without initramfs support, UUID= and LABEL= style device paths cannot be used for rootdev as they require initramfs to resolve during boot. Only direct device paths (/dev/mmcblkXpY) or PARTUUID= references (which U-Boot can resolve) will work.
Applied to files:
config/bootscripts/boot-xpressreal-t3.cmd
📚 Learning: 2025-03-31T22:20:48.475Z
Learnt from: rpardini
PR: armbian/build#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/bootscripts/boot-xpressreal-t3.cmd
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
PR: armbian/build#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:
config/bootscripts/boot-xpressreal-t3.cmd
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
PR: armbian/build#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:
config/bootscripts/boot-xpressreal-t3.cmd
📚 Learning: 2025-06-12T21:14:36.024Z
Learnt from: djurny
PR: armbian/build#8287
File: config/bootscripts/boot-sunxi.cmd:38-44
Timestamp: 2025-06-12T21:14:36.024Z
Learning: In config/bootscripts/boot-sunxi.cmd the unconditional "+1" increment in func_align_addr_next (when align_overlap_oboe_avoidance="on") is intentional. It compensates for a known off-by-one error in U-Boot where the end address is calculated as start+size instead of start+size-1, so the extra page prevents overlap. This behavior should not be “optimized away”.
Applied to files:
config/bootscripts/boot-xpressreal-t3.cmd
📚 Learning: 2025-06-12T21:03:39.686Z
Learnt from: djurny
PR: armbian/build#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/bootscripts/boot-xpressreal-t3.cmd
📚 Learning: 2025-05-16T15:34:34.672Z
Learnt from: Grippy98
PR: armbian/build#8202
File: config/desktop/trixie/environments/gnome/armbian/create_desktop_package.sh:2-3
Timestamp: 2025-05-16T15:34:34.672Z
Learning: The shell scripts in the Armbian build system's desktop configuration files, such as config/desktop/trixie/environments/gnome/armbian/create_desktop_package.sh, rely on environment variables like $SRC and $destination that are expected to be set externally before the script is executed.
Applied to files:
config/bootscripts/boot-xpressreal-t3.cmd
📚 Learning: 2025-07-17T04:12:33.125Z
Learnt from: pyavitz
PR: armbian/build#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/bootscripts/boot-xpressreal-t3.cmd
🧬 Code graph analysis (1)
config/bootscripts/boot-xpressreal-t3.cmd (1)
lib/functions/bsp/armbian-bsp-cli-deb.sh (2)
board_side_bsp_cli_postinst_update_uboot_bootscript(331-358)get_bootscript_info(294-329)
🔇 Additional comments (1)
config/bootscripts/boot-xpressreal-t3.cmd (1)
8-8: Don’t override U-Boot’s fdtfile unless empty.U-Boot typically presets fdtfile correctly; hardcoding a 4GB DT may break variants. Set only if unset.
-setenv fdtfile "realtek/rtd1619b-bleedingedge-4gb.dtb" +test -n "${fdtfile}" || setenv fdtfile "realtek/rtd1619b-bleedingedge-4gb.dtb"
requested changes were implemented
|
https://paste.armbian.com/eyuzonoqul compilation successful lgtm welcome to the Armbian Maintainer's pool, @wei633 |
|
Description
XpressReal(https://xpressreal.io/) is a family of Single Board Computers developed in collaboration between Fyde Innovations, Radxa and Realtek.
XpressReal T3 is the first product in the family - a small form factor high performance single board computer powered by the Realtek RTD1619B, which runs FydeOS/openFyde and Linux!
Now we are adding the awesome Armbian Linux support for XpressReal T3!
GitHub issue reference:
Jira reference number [AR-9999]
How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Please also note any relevant details for your test configuration.
Checklist:
Please delete options that are not relevant.