Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@wei633
Copy link
Member

@wei633 wei633 commented Aug 29, 2025

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.

  • Build successful for minimal/server/desktop
  • Boot successful for minimal/server/desktop
  • Installation to eMMC

Checklist:

Please delete options that are not relevant.

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • Any dependent changes have been merged and published in downstream modules

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Aug 29, 2025

Walkthrough

Adds 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

  • clee
  • rpardini
  • leggewie
  • EvilOlaf
  • igorpecovnik
  • catalinii
  • paolosabatino
  • Tonymac32
✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore or @coderabbit ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions bot added size/large PR with 250 lines or more 08 Milestone: Third quarter release Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... Patches Patches related to kernel, U-Boot, ... BSP Board Support Packages labels Aug 29, 2025
@wei633 wei633 marked this pull request as ready for review August 29, 2025 05:55
@wei633 wei633 requested review from a team and igorpecovnik as code owners August 29, 2025 05:55
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 8

🧹 Nitpick comments (15)
config/bootenv/xpressreal-t3.txt (1)

1-3: Bootenv defaults look fine

Matches 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 surprises

loss_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 lines

Remove trailing empty lines to keep the file tidy and avoid parser edge cases.

-xtal_cap_fine=31
-
-
-
+xtal_cap_fine=31
packages/bsp/xpressreal-t3/firmware/aic8800/aic_powerlimit_8800d80.txt (3)

11-24: Normalize whitespace in 2.4 GHz table

A 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 outdated

Consider 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 units

Ensure 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 required

PHONET is niche and adds surface area. Disable if not explicitly needed.

-CONFIG_PHONET=y
+# CONFIG_PHONET is not set

435-435: Trim legacy USB driver

USB_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 kernels

PRINTK_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}"
+fi
config/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.

📥 Commits

Reviewing files that changed from the base of the PR and between ce93f1e and dfb1b32.

⛔ Files ignored due to path filters (17)
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_h_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_h_u02_ipc.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_u02_ipc.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfwbt_8800d80_h_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfwbt_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fw_adid_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_8800d80_u02_ext0.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_table_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/lmacfw_rf_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/AFW_Certificate_final.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/VE3FW.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/u-boot/u-boot-fw.tar.gz is excluded by !**/*.gz
  • packages/bsp/xpressreal-t3/u-boot/u-boot-prebuilt.tar.gz is excluded by !**/*.gz
  • patch/u-boot/u-boot-xpressreal/0001-Update-dev-signing-key.patch is excluded by !patch/**
  • patch/u-boot/u-boot-xpressreal/0002-update-fw-path.patch is 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.cmd
  • 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/bootscripts/boot-xpressreal-t3.cmd
  • config/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.conf
  • config/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 addresses

Validate 0x01200000 against the RTD1619B U-Boot memory map to avoid overlap with decompression buffers or FDT.


21-31: FDT arch and load address sanity

U-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 prerequisites

The 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 drivers

AIC8800 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.

@leggewie leggewie self-requested a review August 29, 2025 14:12
@wei633
Copy link
Member Author

wei633 commented Aug 31, 2025

Hi @leggewie, I'd like to maintain this board in the future, will update BOARD_MAINTAINER as you suggested.
Thanks!

@igorpecovnik
Copy link
Member

I'd like to maintain this board in the future

Adding contact email and board prefix will do that automatically:
https://www.armbian.com/update-data/

@leggewie leggewie self-requested a review August 31, 2025 17:15
@leggewie
Copy link
Collaborator

Hi @leggewie, I'd like to maintain this board in the future, will update BOARD_MAINTAINER as you suggested. Thanks!

Hey, that's awesome!

@leggewie leggewie dismissed their stale review August 31, 2025 17:24

question was answered

@wei633 wei633 requested a review from EvilOlaf September 1, 2025 06:14
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 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=0

Or:

-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=5
config/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.

📥 Commits

Reviewing files that changed from the base of the PR and between 285855c and 2c6a9cd.

⛔ Files ignored due to path filters (17)
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_h_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_h_u02_ipc.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_u02_ipc.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfwbt_8800d80_h_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfwbt_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fw_adid_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_8800d80_u02_ext0.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_table_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/lmacfw_rf_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/AFW_Certificate_final.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/VE3FW.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/u-boot/u-boot-fw.tar.gz is excluded by !**/*.gz
  • packages/bsp/xpressreal-t3/u-boot/u-boot-prebuilt.tar.gz is excluded by !**/*.gz
  • patch/u-boot/u-boot-xpressreal/0001-Update-dev-signing-key.patch is excluded by !patch/**
  • patch/u-boot/u-boot-xpressreal/0002-update-fw-path.patch is 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 retaining 13 is 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.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

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.

📥 Commits

Reviewing files that changed from the base of the PR and between 2c6a9cd and 41cd89c.

⛔ Files ignored due to path filters (17)
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_h_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_h_u02_ipc.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfw_8800d80_u02_ipc.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfwbt_8800d80_h_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fmacfwbt_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fw_adid_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_8800d80_u02_ext0.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/fw_patch_table_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/aic8800/lmacfw_rf_8800d80_u02.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/AFW_Certificate_final.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/VE3FW.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/u-boot/u-boot-fw.tar.gz is excluded by !**/*.gz
  • packages/bsp/xpressreal-t3/u-boot/u-boot-prebuilt.tar.gz is excluded by !**/*.gz
  • patch/u-boot/u-boot-xpressreal/0001-Update-dev-signing-key.patch is excluded by !patch/**
  • patch/u-boot/u-boot-xpressreal/0002-update-fw-path.patch is 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.

@wei633 wei633 force-pushed the xpressreal-t3 branch 2 times, most recently from 564c062 to b884f75 Compare September 2, 2025 00:20
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

♻️ 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 set
config/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"; fi
config/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=y
config/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.

📥 Commits

Reviewing files that changed from the base of the PR and between 564c062 and b884f75.

⛔ Files ignored due to path filters (6)
  • packages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/AFW_Certificate_final.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/VE3FW.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/u-boot/u-boot-fw.tar.gz is excluded by !**/*.gz
  • packages/bsp/xpressreal-t3/u-boot/u-boot-prebuilt.tar.gz is excluded by !**/*.gz
  • patch/u-boot/u-boot-xpressreal/0001-Update-dev-signing-key.patch is excluded by !patch/**
  • patch/u-boot/u-boot-xpressreal/0002-update-fw-path.patch is 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.cmd
  • config/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.cmd
  • 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 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.cmd
  • 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/bootscripts/boot-xpressreal-t3.cmd
  • 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-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)

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

♻️ Duplicate comments (3)
config/kernel/linux-xpressreal-t3-6.6.config (1)

41-46: Make schedutil the default CPUFreq governor

schedutil 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 enabled
config/sources/families/realtek-rtd1619b.conf (2)

53-54: Standardize alert format and level

Include 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 flags

When 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 size

EXT3 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.

📥 Commits

Reviewing files that changed from the base of the PR and between b884f75 and 04922e5.

⛔ Files ignored due to path filters (6)
  • packages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/AFW_Certificate_final.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/VE3FW.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/u-boot/u-boot-fw.tar.gz is excluded by !**/*.gz
  • packages/bsp/xpressreal-t3/u-boot/u-boot-prebuilt.tar.gz is excluded by !**/*.gz
  • patch/u-boot/u-boot-xpressreal/0001-Update-dev-signing-key.patch is excluded by !patch/**
  • patch/u-boot/u-boot-xpressreal/0002-update-fw-path.patch is 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.conf
  • config/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 disabled

Disabling 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 writer

Block-device check and fsync writes are good improvements; matches Armbian postinst expectations.

@leggewie
Copy link
Collaborator

leggewie commented Sep 3, 2025

@wei633 Can you please clarify the origin of the binary files you are adding?

@wei633
Copy link
Member Author

wei633 commented Sep 4, 2025

@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.).
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.
All of these files come from the rtd1619b SDK, which has already been open-sourced on our GitHub.

FYI:
firmware
u-boot prebuilts

@leggewie
Copy link
Collaborator

leggewie commented Sep 4, 2025

@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.). 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. All of these files come from the rtd1619b SDK, which has already been open-sourced on our GitHub.

FYI: firmware u-boot prebuilts

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)
@wei633
Copy link
Member Author

wei633 commented Sep 4, 2025

@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.). 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. All of these files come from the rtd1619b SDK, which has already been open-sourced on our GitHub.
FYI: firmware u-boot prebuilts

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?

Hi @leggewie, I've updated the commit message, thanks 🫡

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

♻️ 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
+fi

Also 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"; fi

Note: 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.

📥 Commits

Reviewing files that changed from the base of the PR and between 864121c and bd13908.

⛔ Files ignored due to path filters (6)
  • packages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/AFW_Certificate_final.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/firmware/realtek/rtd1619b/VE3FW.bin is excluded by !**/*.bin
  • packages/bsp/xpressreal-t3/u-boot/u-boot-fw.tar.gz is excluded by !**/*.gz
  • packages/bsp/xpressreal-t3/u-boot/u-boot-prebuilt.tar.gz is excluded by !**/*.gz
  • patch/u-boot/u-boot-xpressreal/0001-Update-dev-signing-key.patch is excluded by !patch/**
  • patch/u-boot/u-boot-xpressreal/0002-update-fw-path.patch is 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"

@leggewie
Copy link
Collaborator

leggewie commented Sep 4, 2025

Hi @leggewie, I've updated the commit message, thanks 🫡

Excellent. Thank you for your perseverance in getting to this point.

Merge blocking on @EvilOlaf lifting his request for changes (which have been addressed).

Edit: I was able to mark that as "done" and now we're ready to merge.

@leggewie leggewie dismissed EvilOlaf’s stale review September 4, 2025 11:54

requested changes were implemented

@leggewie
Copy link
Collaborator

leggewie commented Sep 4, 2025

https://paste.armbian.com/eyuzonoqul compilation successful

lgtm

welcome to the Armbian Maintainer's pool, @wei633

@leggewie leggewie merged commit e696c2e into armbian:main Sep 4, 2025
1 check passed
@wei633
Copy link
Member Author

wei633 commented Sep 5, 2025

https://paste.armbian.com/eyuzonoqul compilation successful

lgtm

welcome to the Armbian Maintainer's pool, @wei633

Cool! Appreciate all the helps! @leggewie @EvilOlaf

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

Labels

08 Milestone: Third quarter release BSP Board Support Packages Hardware Hardware related like kernel, U-Boot, ... Needs review Seeking for review Patches Patches related to kernel, U-Boot, ... size/large PR with 250 lines or more

Development

Successfully merging this pull request may close these issues.

4 participants