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

Conversation

@ghhccghk
Copy link

@ghhccghk ghhccghk commented Nov 19, 2025

Description

Adds support for the Aiot-rk3588a (Shimeta) board.

This change implements support for the Aiot-rk3588a board, including:

  • Dedicated aiot_rk3588a_defconfig uboot configuration file
  • Targeted board configuration

Feature/Change Documentation Summary

  • Brief Description: Adds support for the Aiot-rk3588a (Shimeta) board.
  • Summary: Introduces board-level support for Aiot-rk3588a, enabling Armbian to build and boot on this platform.

Test Process

  • Verify Aiot-rk3588a hardware boot process up to kernel handover stage
  • Ensure all relevant peripherals (UART, HDMI, storage) initialize correctly

Checklist:

  • My code adheres to this project's style guide
  • Code self-review completed
  • Modifications did not introduce new warnings
  • All dependency changes merged and released in downstream modules

Summary by CodeRabbit

  • Chores
    • Added support for the Shimeta AIoT RK3588A board with bootloader and device tree configurations. Enables essential hardware features including GPIO control, I2C communication, USB/USB3 connectivity, PCIe support, display output, SD/eMMC and NAND storage, cryptographic acceleration, and input device handling for complete platform functionality.

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

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 19, 2025

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

A new board configuration is introduced for the Shimeta AIoT RK3588 platform. Three files establish support for this board: a configuration file with build parameters, a U-Boot defconfig enabling hardware and boot features, and a device tree source specifying hardware peripherals.

Changes

Cohort / File(s) Summary
Board Configuration
config/boards/shimeta-aiot-rk3588a.conf
Defines board metadata and build environment variables including board name, family, maintainer, boot configuration, kernel targets, and desktop/display settings. Includes optional features documentation.
U-Boot Bootloader Configuration
patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig
Enables RK3588 architecture support with SPL, FIT, device tree handling, boot commands, Rockchip-specific subsystems (crypto, GPIO, I2C, PMIC, OTP, reset), USB/DWC3, PCIe, display drivers, and peripheral support. Disables legacy image formats and debug-only commands.
Device Tree Source
patch/u-boot/legacy/u-boot-radxa-rk35xx/dt/rk3588-aiot-rk3588a.dts
Adds board device tree with RK3588 base bindings, compatible strings, and ADC-based key input (VOLUMEUP) wired to SAR ADC channel.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

  • U-Boot defconfig: Verify configuration flags align with RK3588 capabilities and existing board configurations; validate enabled/disabled options do not introduce conflicts.
  • Board configuration: Confirm variable assignments (kernel targets, boot parameters) match downstream build system expectations.
  • Device tree: Validate ADC key node configuration, channel references, and compatibility with RK3588 hardware.

Suggested reviewers

  • igorpecovnik
  • rpardini
  • paolosabatino
  • pyavitz
  • Tonymac32
  • EvilOlaf

Poem

🐰 A shimmer of silicon, an RK3588 dream,
With defconfigs and trees, a harmonious scheme,
ADC buttons dancing, the board takes its flight,
New hardware cascades into build-time light! ✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically summarizes the main change: adding support for a new board (Shimeta Aiot-rk3588a) with straightforward, descriptive language.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot added the 11 Milestone: Fourth quarter release label Nov 19, 2025
@github-actions
Copy link
Contributor

Hey @ghhccghk! 👋

Thanks for submitting your first pull request to the Armbian project — we're excited to have you contributing! 🧡
Your effort doesn’t just improve Armbian — it benefits the entire community of users and developers.

If you'd like to stay informed about project updates or collaborate more closely with the team,
you can optionally share some personal contact preferences at armbian.com/update-data.
This helps us keep in touch without relying solely on GitHub notifications.

Also, don’t forget to ⭐ star the repo if you haven’t already — and welcome aboard! 🚀

@github-actions github-actions bot added size/large PR with 250 lines or more Needs review Seeking for review Hardware Hardware related like kernel, U-Boot, ... Patches Patches related to kernel, U-Boot, ... labels Nov 19, 2025
CONFIG_DM_ETH_PHY=y
CONFIG_DWC_ETH_QOS=y
CONFIG_GMAC_ROCKCHIP=y
CONFIG_NVME=y
Copy link
Collaborator

Choose a reason for hiding this comment

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

https://shimetadevice.com/wp-content/uploads/2025/06/Motherboard-AIoT-3588A-V1.0-Specifications-V1.pdf doesn't mention a slot for an SSD. It does have a B-key M.2 slot [intended for LTE/5G connectivity], but typically B-key [or B+M] SSDs are SATA, which probably isn't wired to this slot [the datasheet doesn't give a pinout]. B-key NVMe SSDs exist but seem to be uncommon in that I can't find them for sale in the obvious corners.

Should you be enabling CONFIG_CMD_SATA & CONFIG_SATA for the SATA port it has?
@coderabbitai

Copy link
Contributor

Choose a reason for hiding this comment

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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash

# Check the datasheet URL to understand hardware capabilities
echo "=== Checking datasheet availability ==="
curl -sI "https://shimetadevice.com/wp-content/uploads/2025/06/Motherboard-AIoT-3588A-V1.0-Specifications-V1.pdf" | head -20

echo -e "\n=== Search for SATA configuration in other RK3588 defconfigs ==="
fd -e defconfig . patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/ --exec grep -l "CONFIG_SATA"

echo -e "\n=== Check what SATA options are in RK3588 defconfigs ==="
fd -e defconfig . patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/ --exec grep -H "CONFIG.*SATA"

echo -e "\n=== Check for NVME in other RK3588 defconfigs ==="
fd -e defconfig . patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/ --exec grep -H "CONFIG_NVME"

echo -e "\n=== Search for board mentions in the codebase ==="
rg -i "aiot.*3588" --type-add 'conf:*.{conf,csc,inc}' --type conf -C2

echo -e "\n=== Check for board config file ==="
fd -i aiot config/boards/

Length of output: 1401


🏁 Script executed:

#!/bin/bash

echo "=== Board config file content ==="
cat config/boards/shimeta-aiot-rk3588a.conf

echo -e "\n=== List all defconfigs in this u-boot directory ==="
fd -e defconfig . patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/ -x basename

echo -e "\n=== Check a few other RK3588 defconfigs for storage options ==="
for config in rock-5b-rk3588_defconfig rock-5a-rk3588_defconfig orangepi-5-rk3588s_defconfig; do
    if [ -f "patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/$config" ]; then
        echo -e "\n--- $config storage configs ---"
        grep -E "CONFIG_(NVME|SATA|MMC|MTD)" "patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/$config" | head -20
    fi
done

echo -e "\n=== Check for device tree files for aiot ==="
fd -i aiot patch/

echo -e "\n=== Search for SATA-related configs in all u-boot patches ==="
rg -i "CONFIG_SATA" patch/u-boot/legacy/u-boot-radxa-rk35xx/ -l

echo -e "\n=== Check if SATA is mentioned anywhere in rockchip u-boot context ==="
rg "CONFIG_SATA" patch/u-boot/ --type-add 'config:defconfig' --type config -C1 | head -50

Length of output: 1063


🏁 Script executed:

#!/bin/bash

echo "=== Search for SATA configs in all u-boot patches ==="
rg "CONFIG_SATA" patch/u-boot/ -l | head -20

echo -e "\n=== Check for AHCI/SATA drivers in u-boot patches ==="
rg "CONFIG.*AHCI" patch/u-boot/legacy/ --type-add 'config:defconfig' --type config | head -30

echo -e "\n=== Look for SATA in other u-boot trees ==="
fd defconfig patch/u-boot/v2024.10/ --exec grep -l "CONFIG_SATA" 2>/dev/null | head -10

echo -e "\n=== Check what SATA options exist in a board with SATA ==="
if fd defconfig patch/u-boot/v2024.10/ --exec grep -l "CONFIG_SATA" 2>/dev/null | head -1 | xargs -I {} bash -c "test -f {} && grep -E 'CONFIG.*SATA|CONFIG.*AHCI' {} | head -20"; then
    echo "Found SATA configs"
else
    echo "Checking legacy trees..."
    rg "CONFIG_(SATA|AHCI)" patch/u-boot/legacy/ --type-add 'config:defconfig' --type config -m1 -C5
fi

echo -e "\n=== Check RK3588 AHCI/SATA support ==="
rg -i "ahci|sata" patch/kernel/rockchip-rk3588/ --type dts -C2 | head -50

Length of output: 596


🏁 Script executed:

#!/bin/bash

echo "=== Check bananapi SATA patch ==="
cat patch/u-boot/v2025.01/board_bananapicm4io/003-configs-bananapi-cm4-cm4io_defconfig-sata-support.patch

echo -e "\n=== Check radxa station-m2 SATA config ==="
grep -A10 -B10 "SATA" patch/u-boot/u-boot-radxa-latest/board_station-m2-rk3566_defconfig.patch | head -30

echo -e "\n=== Check if RK3588 has AHCI/SATA controller support ==="
rg -i "sata|ahci" patch/kernel/rockchip-rk3588-vendor/ -g "*.dts*" -C2 | head -60

echo -e "\n=== Check device tree reference in board config ==="
cat config/boards/shimeta-aiot-rk3588a.conf | grep DTB

echo -e "\n=== Look for that specific dtb ==="
fd "rk3588-evb7" patch/

Length of output: 2588


🏁 Script executed:

#!/bin/bash

echo "=== Check for RK3588 SATA/AHCI support in vendor kernel patches ==="
fd . patch/kernel/rockchip-rk3588-vendor-6.1/ -t d | head -1

if [ -d "patch/kernel/rockchip-rk3588-vendor-6.1/" ]; then
    rg -i "sata|ahci" patch/kernel/rockchip-rk3588-vendor-6.1/ -g "*.dts*" -C1 | head -40
fi

echo -e "\n=== Check RK3588 family config for SATA mentions ==="
rg -i "sata" config/sources/families/rockchip-rk3588.conf

echo -e "\n=== Verify board description comment ==="
head -1 config/boards/shimeta-aiot-rk3588a.conf

Length of output: 359


@tabrisnet You're absolutely correct! Based on the hardware specifications you reviewed and my analysis of the codebase:

Current Issues:

  1. CONFIG_NVME=y (Line 143) is incorrectly enabled - the board doesn't have an NVMe-capable M.2 slot
  2. Missing SATA support - the board has a SATA port but no SATA configuration
  3. Incorrect board description - config/boards/shimeta-aiot-rk3588a.conf incorrectly claims "NvME" support in the comment

Recommended Changes:

For the U-Boot defconfig patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig:

Remove:

CONFIG_NVME=y

Add: (following the pattern from other boards like Station M2 and BananaPi CM4)

CONFIG_SATA=y
CONFIG_CMD_SATA=y
CONFIG_SCSI=y
CONFIG_DM_SCSI=y
CONFIG_SCSI_AHCI=y
CONFIG_AHCI_PCI=y

Additionally, the board description comment in config/boards/shimeta-aiot-rk3588a.conf should be updated from:

#Rockchip RK3588 SoC octa core 4-16GB SoC 2.5GBe PoE eMMC USB3 NvME

to:

#Rockchip RK3588 SoC octa core 4-16GB SoC 2.5GBe PoE eMMC USB3 SATA

This will properly enable SATA support for the board's actual hardware capabilities.


🧠 Learnings used
Learnt from: HackingGate
Repo: armbian/build PR: 8665
File: config/boards/photonicat2.csc:4-4
Timestamp: 2025-10-26T10:41:35.118Z
Learning: In the Armbian build system, rk3576 boards consistently use BOARDFAMILY="rk35xx" for both vendor and edge kernel targets. The rk35xx family configuration sources rockchip64_common.inc, which provides edge and current kernel branch definitions, making these branches available even though they're not defined directly in rk35xx.conf.

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

Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:222-230
Timestamp: 2025-09-14T06:32:29.806Z
Learning: In the Armbian build system, the write_uboot_platform() function implementations follow different patterns across Rockchip family files. The newer standard (used in rockchip64_common.inc and rk3506) includes 'status=none' parameter in dd commands, while older implementations (rk3288, rk322x) use an older pattern without this parameter. The rk3506 implementation correctly follows the current Rockchip family standard.

Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:64-70
Timestamp: 2025-09-14T06:29:18.958Z
Learning: In the Armbian build system, vendor branch configurations in family files are designed to be shared across multiple SoCs within the same family that use the same vendor kernel tree. For example, rk35xx and rockchip-rk3588 families both use identical vendor branch settings (same KERNELSOURCE, KERNELBRANCH, and KERNELPATCHDIR), demonstrating that vendor branches are intentionally generic rather than SoC-specific.

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

Learnt from: EvilOlaf
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:64-70
Timestamp: 2025-09-14T06:10:25.610Z
Learning: In the Armbian build system, rk32xx and rk33xx Rockchip SoCs no longer have BSP-based (vendor) kernel branches. The rk3506 is the first 32-bit Rockchip SoC to use the vendor branch in the current codebase.

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

Learnt from: igorpecovnik
Repo: armbian/build PR: 8849
File: config/boards/radxa-e54c.csc:14-28
Timestamp: 2025-11-02T20:49:56.719Z
Learning: In Armbian board configuration files (config/boards/*.conf, *.csc, etc.), do not use kernel_config_set, kernel_config_set_m, kernel_config_set_y, or custom_kernel_config__* functions to modify kernel configuration. Kernel configuration is associated with LINUXFAMILY/BOARDFAMILY, not individual BOARD. Board-specific kernel modifications cause inconsistency in kernel packages published to the apt repository because boards within a family share the same kernel packages. Kernel configuration changes must be made in the appropriate kernel config file (e.g., config/kernel/linux-*-*.config) or in family configuration files (config/sources/families/*.conf, *.inc) instead.

Learnt from: EvilOlaf
Repo: armbian/build PR: 8886
File: patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-rev01.dts:9-9
Timestamp: 2025-11-08T06:39:24.527Z
Learning: In Armbian's Rockchip vendor kernel branches (rk35xx-vendor), device tree files may not require the same headers as mainline Linux. For example, input key definitions like KEY_BACK and KEY_VOLUMEUP may be handled differently in BSP kernels and don't necessarily need explicit includes like <dt-bindings/input/input.h> that would be required in mainline kernel device trees.

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

CONFIG_SYS_WHITE_ON_BLACK=y

#
# TrueType Fonts
Copy link
Collaborator

Choose a reason for hiding this comment

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

Is this comment just copypasta?

Copy link
Author

Choose a reason for hiding this comment

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

yes

Copy link
Author

Choose a reason for hiding this comment

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

I'm currently testing how to drive HDMI under U-Boot.

CONFIG_MTD_DEVICE=y
CONFIG_NAND=y
CONFIG_MTD_SPI_NAND=y
CONFIG_SPI_FLASH=y
Copy link
Collaborator

Choose a reason for hiding this comment

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

Copy link
Author

Choose a reason for hiding this comment

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

This is a copy; I haven't deleted it yet.

@@ -0,0 +1,12 @@
#Rockchip RK3588 SoC octa core 4-16GB SoC 2.5GBe PoE eMMC USB3 NvME
BOARD_NAME="Aiot rk3588"
Copy link
Collaborator

Choose a reason for hiding this comment

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

Should Shimeta be explicitly mentioned here? Aiot feels a hair generic.
@coderabbitai

Copy link
Contributor

Choose a reason for hiding this comment

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

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check BOARD_NAME patterns in existing board configuration files
echo "=== BOARD_NAME patterns in board configs ==="
rg -n 'BOARD_NAME=' config/boards/ -A 0 | head -50

echo -e "\n=== Rockchip RK3588 board names specifically ==="
rg -n 'BOARD_NAME=' config/boards/*rk3588*.conf -A 0

echo -e "\n=== Board configs with 'aiot' or 'Aiot' in filename or BOARD_NAME ==="
fd -e conf -e csc aiot config/boards/
rg -i 'aiot' config/boards/ -n -C 1

Length of output: 3575


@tabrisnet, you're absolutely right! Looking at the naming patterns across Armbian board configurations, manufacturer/vendor names are typically included in BOARD_NAME for clear identification. Examples include:

  • "Xiaomi Elish"
  • "YouYeeToo YY3568"
  • "Turing RK1"
  • "ThinkPad X13s"
  • "Tinker Board"

"Aiot" (AI + IoT) is indeed quite generic and doesn't uniquely identify this board. Since the filename already includes shimeta, the BOARD_NAME should follow the same pattern. I'd recommend:

BOARD_NAME="Shimeta Aiot RK3588"

This would be consistent with how other vendors name their boards in the Armbian build system and makes it clear which manufacturer's board this is.


🧠 Learnings used
Learnt from: HackingGate
Repo: armbian/build PR: 8665
File: config/boards/photonicat2.csc:4-4
Timestamp: 2025-10-26T10:41:35.118Z
Learning: In the Armbian build system, rk3576 boards consistently use BOARDFAMILY="rk35xx" for both vendor and edge kernel targets. The rk35xx family configuration sources rockchip64_common.inc, which provides edge and current kernel branch definitions, making these branches available even though they're not defined directly in rk35xx.conf.

Learnt from: EvilOlaf
Repo: armbian/build PR: 8537
File: config/boards/qcom-robotics-rb5.conf:1-1
Timestamp: 2025-09-18T03:36:17.862Z
Learning: In Armbian board configuration files (regardless of file extension), the standard pattern is to have only one line as a comment describing the board hardware specifications. This single-line description typically includes the SoC model, core count, RAM options, and key features like connectivity options, storage interfaces, and special features. The file extensions indicate board support status: .conf (standard support), .csc (community supported), .eos (end of support), .tvb (tvbox), .wip (work in progress).

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

Learnt from: igorpecovnik
Repo: armbian/build PR: 8849
File: config/boards/radxa-e54c.csc:14-28
Timestamp: 2025-11-02T20:49:56.719Z
Learning: In Armbian board configuration files (config/boards/*.conf, *.csc, etc.), do not use kernel_config_set, kernel_config_set_m, kernel_config_set_y, or custom_kernel_config__* functions to modify kernel configuration. Kernel configuration is associated with LINUXFAMILY/BOARDFAMILY, not individual BOARD. Board-specific kernel modifications cause inconsistency in kernel packages published to the apt repository because boards within a family share the same kernel packages. Kernel configuration changes must be made in the appropriate kernel config file (e.g., config/kernel/linux-*-*.config) or in family configuration files (config/sources/families/*.conf, *.inc) instead.

Learnt from: EvilOlaf
Repo: armbian/build PR: 8537
File: config/boards/qcom-robotics-rb5.conf:1-1
Timestamp: 2025-09-18T03:36:17.862Z
Learning: In Armbian board configuration files, .wip and .conf extensions require BOARD_MAINTAINER to be present and contain at least one maintainer. If no maintainer is present, the board support rules state it does not qualify for standard support and must be moved to community support (.csc extension). This is documented at https://docs.armbian.com/User-Guide_Board-Support-Rules/

Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:64-70
Timestamp: 2025-09-14T06:29:18.958Z
Learning: In the Armbian build system, vendor branch configurations in family files are designed to be shared across multiple SoCs within the same family that use the same vendor kernel tree. For example, rk35xx and rockchip-rk3588 families both use identical vendor branch settings (same KERNELSOURCE, KERNELBRANCH, and KERNELPATCHDIR), demonstrating that vendor branches are intentionally generic rather than SoC-specific.

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

Learnt from: EvilOlaf
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:64-70
Timestamp: 2025-09-14T06:10:25.610Z
Learning: In the Armbian build system, rk32xx and rk33xx Rockchip SoCs no longer have BSP-based (vendor) kernel branches. The rk3506 is the first 32-bit Rockchip SoC to use the vendor branch in the current codebase.

Learnt from: EvilOlaf
Repo: armbian/build PR: 8586
File: config/boards/nanopi-r76s.conf:15-21
Timestamp: 2025-09-07T17:39:32.272Z
Learning: In the Armbian build system, the variables $BOARD and $SDCARD are always set by the build framework, so guard checks for these variables are unnecessary in board configuration files and hook functions.

Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:222-230
Timestamp: 2025-09-14T06:32:29.806Z
Learning: In the Armbian build system, the write_uboot_platform() function implementations follow different patterns across Rockchip family files. The newer standard (used in rockchip64_common.inc and rk3506) includes 'status=none' parameter in dd commands, while older implementations (rk3288, rk322x) use an older pattern without this parameter. The rk3506 implementation correctly follows the current Rockchip family standard.

@@ -0,0 +1,12 @@
#Rockchip RK3588 SoC octa core 4-16GB SoC 2.5GBe PoE eMMC USB3 NvME
Copy link
Collaborator

Choose a reason for hiding this comment

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

Copy link
Author

Choose a reason for hiding this comment

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

This is a file I copied and modified from another configuration file; it hasn't been modified yet.

@tabrisnet tabrisnet added 02 Milestone: First quarter release and removed 11 Milestone: Fourth quarter release labels Nov 20, 2025
@ghhccghk
Copy link
Author

I'd like to add some information. Currently, there are three versions of this series of boards: v1.1, v1.2, and v1.3. I currently have version v1.3.

@tabrisnet
Copy link
Collaborator

I'd like to add some information. Currently, there are three versions of this series of boards: v1.1, v1.2, and v1.3. I currently have version v1.3.

the good/bad news:
https://shimetadevice.com/wp-content/uploads/2025/06/Motherboard-AIoT-3588A-V1.0-Specifications-V1.pdf
Motherboard-AIoT-3588A-V1.0-Specifications-V1.pdf despite the URL saying V1.0 actually says on the first page that it's documenting V1.3

No idea where/how to find the previous revisions.
https://shimetadevice.com/product/aiot-3588a-ai-smart-motherboard/ doesn't mention the existence of such versions.

@ghhccghk
Copy link
Author

ghhccghk commented Nov 21, 2025

I'd like to add some information. Currently, there are three versions of this series of boards: v1.1, v1.2, and v1.3. I currently have version v1.3.

the good/bad news: https://shimetadevice.com/wp-content/uploads/2025/06/Motherboard-AIoT-3588A-V1.0-Specifications-V1.pdf Motherboard-AIoT-3588A-V1.0-Specifications-V1.pdf despite the URL saying V1.0 actually says on the first page that it's documenting V1.3

No idea where/how to find the previous revisions. https://shimetadevice.com/product/aiot-3588a-ai-smart-motherboard/ doesn't mention the existence of such versions.

So far, I've only seen V1.2 and V1.1 on China's Xianyu platform.

@github-actions github-actions bot added the 11 Milestone: Fourth quarter release label Nov 21, 2025
@tabrisnet tabrisnet removed the 11 Milestone: Fourth quarter release label Nov 21, 2025
@github-actions github-actions bot added the 11 Milestone: Fourth quarter release label Nov 22, 2025
@ghhccghk
Copy link
Author

https://b23.tv/BV1N3U4B6Efw HDMI work

@ZZZ8
Copy link

ZZZ8 commented Nov 23, 2025

@coderabbitai review The development board does in fact have a reserved NVMe interface, which is currently covered by the mini‑PCIe connector. My understanding is that by removing the mini‑PCIe and soldering the NVMe interface, the slot could be enabled and used.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 23, 2025

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Get the PR diff to see what files are being added/modified
gh pr diff 8971 --repo armbian/build

# Find and examine the board configuration file
fd -e conf -e csc --full-path aiot 

# Look for device tree files related to this board
fd -e dts -e dtsi --full-path aiot

Length of output: 9128


🏁 Script executed:

#!/bin/bash
# Search for NVMe configuration in other RK3588 board defconfigs
rg -n "CONFIG_NVME" patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/ | head -20

# Check if any RK3588 boards have NVMe enabled
fd -e defconfig . patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/ --exec rg -l "rk3588" {} | head -10

# Look for PCIe nodes in other RK3588 device trees
fd rk3588.*\.dts$ patch/u-boot/legacy/u-boot-radxa-rk35xx/dt/ | head -10

Length of output: 2587


🏁 Script executed:

#!/bin/bash
# Check a reference RK3588 board with NVMe for complete config
cat patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/orangepi-5-plus-rk3588_defconfig | rg -A2 -B2 "NVME\|PCIE\|PCI"

# Check if device trees typically have PCIe nodes
cat patch/u-boot/legacy/u-boot-radxa-rk35xx/dt/rk3588-orangepi-5-plus.dts | rg -i "pcie" | head -20

Length of output: 372


🏁 Script executed:

#!/bin/bash
# Get the exact NVMe-related config lines from a reference board
rg -n "CONFIG_NVME\|CONFIG_CMD_NVME" patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/orangepi-5-plus-rk3588_defconfig

# Compare PCI config between reference and new board
echo "=== Reference board PCI config ==="
rg -n "^CONFIG_PCI" patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/orangepi-5-plus-rk3588_defconfig

echo "=== New board PCI config ==="
rg -n "^CONFIG_PCI" patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig

# Check the board config comment about PCIe
cat config/boards/shimeta-aiot-rk3588a.conf | head -3

Length of output: 587


@ZZZ8, thank you for the hardware clarification! I've reviewed the PR with this NVMe capability in mind.

Review Findings

The board configuration already documents the PCIe/M.2 flexibility in the comment (line 2 of shimeta-aiot-rk3588a.conf), which aligns with your hardware information. The current U-Boot configuration has the PCIe hardware support properly enabled:

  • CONFIG_PCI=y
  • CONFIG_PCIE_DW_ROCKCHIP=y
  • CONFIG_PHY_ROCKCHIP_SNPS_PCIE3=y

However, the NVMe driver support is missing from the U-Boot defconfig.

Recommendation

I recommend adding NVMe driver support to aiot_rk3588a_defconfig to enable NVMe functionality for users who perform the hardware modification. This is standard practice in this repository—most RK3588 boards have NVMe enabled.

Suggested addition (around line 147, after the CONFIG_NVME pattern used in other boards):

CONFIG_NVME=y

This would be inserted after the CONFIG_MTD_DEVICE=y line (currently line 127) and before the CONFIG_NAND=y line (currently line 128), following the alphabetical ordering convention used in similar RK3588 board configurations.

Benefits:

  • Users who remove the mini-PCIe and solder the NVMe interface can use NVMe storage without rebuilding U-Boot
  • No negative impact if the hardware modification isn't performed
  • Consistent with other RK3588 boards in the repository (orangepi-5-plus, nanopc-t6, armsom-w3, etc.)

The minimal device tree currently in the PR is appropriate for U-Boot. The full PCIe node configuration would typically be in the kernel device tree for runtime support.

Would you like me to prepare the specific configuration addition, or would @ghhccghk prefer to add this enhancement?


🧠 Learnings used
Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:222-230
Timestamp: 2025-09-14T06:32:29.806Z
Learning: In the Armbian build system, the write_uboot_platform() function implementations follow different patterns across Rockchip family files. The newer standard (used in rockchip64_common.inc and rk3506) includes 'status=none' parameter in dd commands, while older implementations (rk3288, rk322x) use an older pattern without this parameter. The rk3506 implementation correctly follows the current Rockchip family standard.
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

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 (2)
config/boards/shimeta-aiot-rk3588a.conf (1)

3-3: Make BOARD_NAME explicitly include the vendor for disambiguation

BOARD_NAME="Aiot rk3588" is still quite generic; previous review already noted that “Aiot” alone doesn’t uniquely identify this board among AIoT‑style designs. To align with other Armbian boards and the filename, something like:

BOARD_NAME="Shimeta Aiot RK3588A"

would be clearer and easier to recognize in menus and logs.

patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig (1)

141-152: PCIe is enabled but SATA support is missing despite board comment mentioning SATA

You have PCIe support (CONFIG_PCI, CONFIG_DM_PCI, CONFIG_PCIE_DW_ROCKCHIP, CONFIG_PHY_ROCKCHIP_SNPS_PCIE3), but there’s no SATA / AHCI / SCSI stack enabled in this defconfig. Given the board description in shimeta-aiot-rk3588a.conf now explicitly lists SATA, it’s likely users will expect SATA disks to be visible in U‑Boot.

Enabling the standard SATA stack (assuming the RK3588 wiring matches the usual AHCI‑over‑PCIe pattern) would look roughly like:

+CONFIG_SATA=y
+CONFIG_SCSI=y
+CONFIG_DM_SCSI=y
+CONFIG_SCSI_AHCI=y
+CONFIG_AHCI_PCI=y
+CONFIG_CMD_SATA=y

You can mirror the exact set from another RK3588 board in this tree that already has working SATA.

🧹 Nitpick comments (3)
config/boards/shimeta-aiot-rk3588a.conf (1)

1-2: Trim/normalize the header comments to match board‑config conventions

Current header is two long comment lines listing many features and variants. The typical pattern is a single, concise one‑line description of SoC, RAM range, and key interfaces.

Consider collapsing into one shorter line and double‑checking that all features you list (e.g. SATA, CAN, HDMI‑in, LVDS/EDP variants) are actually present or at least available across the known board revisions, so the comment doesn’t over‑promise capabilities.

patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig (2)

121-140: SPI flash and NAND support: keep only if the board actually has them

This defconfig enables both NAND and SPI‑NOR (CONFIG_NAND, CONFIG_MTD_SPI_NAND, CONFIG_SPI_FLASH*, CONFIG_ROCKCHIP_SPI, CONFIG_ROCKCHIP_SFC). Earlier discussion suggested these were copied from another board and might not match the real hardware.

If the Aiot‑rk3588a has no on‑board SPI flash or NAND, you could drop these to simplify the config; if it does, leaving them enabled is fine. Worth double‑checking against the actual PCB/datasheet.


194-233: Clean up conflicting / duplicate DRM and display options

This block defines video/DRM options twice and sets CONFIG_DRM_ROCKCHIP_ANALOGIX_DP both to y (Line 198) and later to “is not set” (Line 228). Kconfig will honor the last value (disabled), but the contradiction makes the defconfig harder to read and maintain.

If ANALOGIX DP is not actually wired on this board, consider dropping the earlier CONFIG_DRM_ROCKCHIP_ANALOGIX_DP=y line and, optionally, running make savedefconfig against this U‑Boot tree to normalize duplicates (CONFIG_DM_VIDEO, CONFIG_DISPLAY, CONFIG_DRM_ROCKCHIP, etc.).

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between d5bceb9 and 69adb97.

📒 Files selected for processing (3)
  • config/boards/shimeta-aiot-rk3588a.conf (1 hunks)
  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig (1 hunks)
  • patch/u-boot/legacy/u-boot-radxa-rk35xx/dt/rk3588-aiot-rk3588a.dts (1 hunks)
🧰 Additional context used
🧠 Learnings (26)
📓 Common learnings
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub or the PR API to get the complete picture of what files are being added or modified.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub API (https://api.github.com/repos/armbian/build/pulls/{pr_number}/files) to get the complete picture of what files are being added or modified, especially for U-Boot patches that will be applied during the build process.
Learnt from: HackingGate
Repo: armbian/build PR: 8665
File: config/boards/photonicat2.csc:4-4
Timestamp: 2025-10-26T10:41:35.118Z
Learning: In the Armbian build system, rk3576 boards consistently use BOARDFAMILY="rk35xx" for both vendor and edge kernel targets. The rk35xx family configuration sources rockchip64_common.inc, which provides edge and current kernel branch definitions, making these branches available even though they're not defined directly in rk35xx.conf.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8537
File: config/boards/qcom-robotics-rb5.conf:1-1
Timestamp: 2025-09-18T03:36:17.862Z
Learning: In Armbian board configuration files (regardless of file extension), the standard pattern is to have only one line as a comment describing the board hardware specifications. This single-line description typically includes the SoC model, core count, RAM options, and key features like connectivity options, storage interfaces, and special features. The file extensions indicate board support status: .conf (standard support), .csc (community supported), .eos (end of support), .tvb (tvbox), .wip (work in progress).
Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:222-230
Timestamp: 2025-09-14T06:32:29.806Z
Learning: In the Armbian build system, the write_uboot_platform() function implementations follow different patterns across Rockchip family files. The newer standard (used in rockchip64_common.inc and rk3506) includes 'status=none' parameter in dd commands, while older implementations (rk3288, rk322x) use an older pattern without this parameter. The rk3506 implementation correctly follows the current Rockchip family standard.
Learnt from: Grippy98
Repo: armbian/build PR: 8624
File: config/boards/sk-am62p.conf:8-8
Timestamp: 2025-09-12T21:44:09.061Z
Learning: For TI K3 family boards in Armbian, BOOT_FDT_FILE uses .dts extension (not .dtb) as the standard convention. The build system handles this correctly by automatically compiling .dts to .dtb during kernel build and using the BOOT_FDT_FILE value directly in bootloader configurations.
Learnt from: igorpecovnik
Repo: armbian/build PR: 8789
File: config/kernel/linux-sunxi64-edge.config:839-839
Timestamp: 2025-10-22T07:51:53.015Z
Learning: In Armbian's wireless driver configuration, CONFIG_RK_WIFI_DEVICE_* options are Rockchip-specific device registration settings, while CONFIG_WLAN_UWE* are the actual cross-platform driver modules for UWE5622 wireless chips. The UWE5622 chip (manufactured by Unisoc/Spreadtrum) is used on multiple Allwinner boards including Orange Pi Zero 2/2W/3 and Orange Pi 3 LTS, so CONFIG_WLAN_UWE5621/5622 along with Unisoc infrastructure options (CONFIG_SPARD_WLAN_SUPPORT, CONFIG_SC23XX, CONFIG_UNISOC_WIFI_PS, CONFIG_WCN_BSP_DRIVER_BUILDIN) are correct in sunxi64 kernel configs.
Learnt from: igorpecovnik
Repo: armbian/build PR: 8849
File: config/boards/radxa-e54c.csc:14-28
Timestamp: 2025-11-02T20:49:56.719Z
Learning: In Armbian board configuration files (config/boards/*.conf, *.csc, etc.), do not use kernel_config_set, kernel_config_set_m, kernel_config_set_y, or custom_kernel_config__* functions to modify kernel configuration. Kernel configuration is associated with LINUXFAMILY/BOARDFAMILY, not individual BOARD. Board-specific kernel modifications cause inconsistency in kernel packages published to the apt repository because boards within a family share the same kernel packages. Kernel configuration changes must be made in the appropriate kernel config file (e.g., config/kernel/linux-*-*.config) or in family configuration files (config/sources/families/*.conf, *.inc) instead.
Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:64-70
Timestamp: 2025-09-14T06:29:18.958Z
Learning: In the Armbian build system, vendor branch configurations in family files are designed to be shared across multiple SoCs within the same family that use the same vendor kernel tree. For example, rk35xx and rockchip-rk3588 families both use identical vendor branch settings (same KERNELSOURCE, KERNELBRANCH, and KERNELPATCHDIR), demonstrating that vendor branches are intentionally generic rather than SoC-specific.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:64-70
Timestamp: 2025-09-14T06:10:25.610Z
Learning: In the Armbian build system, rk32xx and rk33xx Rockchip SoCs no longer have BSP-based (vendor) kernel branches. The rk3506 is the first 32-bit Rockchip SoC to use the vendor branch in the current codebase.
Learnt from: EvilOlaf
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-08-02T05:46:10.664Z
Learning: In the Armbian build system, the modern recommended approach for kernel configuration is to use the kernel-config command via "./compile.sh BOARD=boardname BRANCH=branchname kernel-config" instead of the deprecated KERNEL_CONFIGURE=yes flag. This provides a two-step workflow: configure using menuconfig, then build, with better transparency and control over configuration changes.
Learnt from: EvilOlaf
Repo: armbian/build PR: 8886
File: patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-rev01.dts:9-9
Timestamp: 2025-11-08T06:39:24.527Z
Learning: In Armbian's Rockchip vendor kernel branches (rk35xx-vendor), device tree files may not require the same headers as mainline Linux. For example, input key definitions like KEY_BACK and KEY_VOLUMEUP may be handled differently in BSP kernels and don't necessarily need explicit includes like <dt-bindings/input/input.h> that would be required in mainline kernel device trees.
📚 Learning: 2025-11-08T06:39:24.527Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8886
File: patch/kernel/rk35xx-vendor-6.1/dt/rk3528-nanopi-rev01.dts:9-9
Timestamp: 2025-11-08T06:39:24.527Z
Learning: In Armbian's Rockchip vendor kernel branches (rk35xx-vendor), device tree files may not require the same headers as mainline Linux. For example, input key definitions like KEY_BACK and KEY_VOLUMEUP may be handled differently in BSP kernels and don't necessarily need explicit includes like <dt-bindings/input/input.h> that would be required in mainline kernel device trees.

Applied to files:

  • patch/u-boot/legacy/u-boot-radxa-rk35xx/dt/rk3588-aiot-rk3588a.dts
  • config/boards/shimeta-aiot-rk3588a.conf
  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig
📚 Learning: 2025-11-15T14:33:30.654Z
Learnt from: SuperKali
Repo: armbian/build PR: 8936
File: patch/kernel/archive/rockchip64-6.18/dt/rk3576-nanopi-r76s.dts:800-802
Timestamp: 2025-11-15T14:33:30.654Z
Learning: In RK3576 device tree files (like rk3576-nanopi-r76s.dts), the serial0 alias is already defined in the upstream kernel's rk3576.dtsi base file, so board-specific DTS files do not need to redeclare it when enabling &uart0 for serial console.

Applied to files:

  • patch/u-boot/legacy/u-boot-radxa-rk35xx/dt/rk3588-aiot-rk3588a.dts
📚 Learning: 2025-11-02T20:49:56.719Z
Learnt from: igorpecovnik
Repo: armbian/build PR: 8849
File: config/boards/radxa-e54c.csc:14-28
Timestamp: 2025-11-02T20:49:56.719Z
Learning: In Armbian board configuration files (config/boards/*.conf, *.csc, etc.), do not use kernel_config_set, kernel_config_set_m, kernel_config_set_y, or custom_kernel_config__* functions to modify kernel configuration. Kernel configuration is associated with LINUXFAMILY/BOARDFAMILY, not individual BOARD. Board-specific kernel modifications cause inconsistency in kernel packages published to the apt repository because boards within a family share the same kernel packages. Kernel configuration changes must be made in the appropriate kernel config file (e.g., config/kernel/linux-*-*.config) or in family configuration files (config/sources/families/*.conf, *.inc) instead.

Applied to files:

  • config/boards/shimeta-aiot-rk3588a.conf
  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig
📚 Learning: 2025-09-18T03:36:17.862Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8537
File: config/boards/qcom-robotics-rb5.conf:1-1
Timestamp: 2025-09-18T03:36:17.862Z
Learning: In Armbian board configuration files (regardless of file extension), the standard pattern is to have only one line as a comment describing the board hardware specifications. This single-line description typically includes the SoC model, core count, RAM options, and key features like connectivity options, storage interfaces, and special features. The file extensions indicate board support status: .conf (standard support), .csc (community supported), .eos (end of support), .tvb (tvbox), .wip (work in progress).

Applied to files:

  • config/boards/shimeta-aiot-rk3588a.conf
  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig
📚 Learning: 2025-10-26T10:41:35.118Z
Learnt from: HackingGate
Repo: armbian/build PR: 8665
File: config/boards/photonicat2.csc:4-4
Timestamp: 2025-10-26T10:41:35.118Z
Learning: In the Armbian build system, rk3576 boards consistently use BOARDFAMILY="rk35xx" for both vendor and edge kernel targets. The rk35xx family configuration sources rockchip64_common.inc, which provides edge and current kernel branch definitions, making these branches available even though they're not defined directly in rk35xx.conf.

Applied to files:

  • config/boards/shimeta-aiot-rk3588a.conf
  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig
📚 Learning: 2025-07-17T04:12:33.125Z
Learnt from: pyavitz
Repo: armbian/build PR: 8388
File: config/boards/kickpik2b.conf:1-14
Timestamp: 2025-07-17T04:12:33.125Z
Learning: In the Armbian build system, board configuration files (*.conf) follow a project standard of not including shebang lines, even though they contain bash code and are sourced by the build system. This is an established Armbian convention that individual contributors are expected to follow, and changes to this standard would require broader project maintainer approval.

Applied to files:

  • config/boards/shimeta-aiot-rk3588a.conf
  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig
📚 Learning: 2025-09-18T03:36:17.862Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8537
File: config/boards/qcom-robotics-rb5.conf:1-1
Timestamp: 2025-09-18T03:36:17.862Z
Learning: In Armbian board configuration files, .wip and .conf extensions require BOARD_MAINTAINER to be present and contain at least one maintainer. If no maintainer is present, the board support rules state it does not qualify for standard support and must be moved to community support (.csc extension). This is documented at https://docs.armbian.com/User-Guide_Board-Support-Rules/

Applied to files:

  • config/boards/shimeta-aiot-rk3588a.conf
  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig
📚 Learning: 2025-09-14T06:32:29.806Z
Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:222-230
Timestamp: 2025-09-14T06:32:29.806Z
Learning: In the Armbian build system, the write_uboot_platform() function implementations follow different patterns across Rockchip family files. The newer standard (used in rockchip64_common.inc and rk3506) includes 'status=none' parameter in dd commands, while older implementations (rk3288, rk322x) use an older pattern without this parameter. The rk3506 implementation correctly follows the current Rockchip family standard.

Applied to files:

  • config/boards/shimeta-aiot-rk3588a.conf
  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig
📚 Learning: 2025-11-10T22:05:40.490Z
Learnt from: tabrisnet
Repo: armbian/build PR: 8913
File: config/sources/families/k3-beagle.conf:16-16
Timestamp: 2025-11-10T22:05:40.490Z
Learning: In the Armbian build system, kernel branches using non-mainline/vendor forks (like BeagleBoard's linux repository) should be named "vendor" or "vendor-rt" rather than "current" or "edge". The "current" and "edge" naming is reserved for mainline kernel branches. This affects both the case statement in family config files (e.g., `vendor | vendor-rt)` instead of `current | current-rt)`) and the corresponding KERNEL_TARGET declarations in board config files.

Applied to files:

  • config/boards/shimeta-aiot-rk3588a.conf
📚 Learning: 2025-09-14T06:29:18.958Z
Learnt from: amazingfate
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:64-70
Timestamp: 2025-09-14T06:29:18.958Z
Learning: In the Armbian build system, vendor branch configurations in family files are designed to be shared across multiple SoCs within the same family that use the same vendor kernel tree. For example, rk35xx and rockchip-rk3588 families both use identical vendor branch settings (same KERNELSOURCE, KERNELBRANCH, and KERNELPATCHDIR), demonstrating that vendor branches are intentionally generic rather than SoC-specific.

Applied to files:

  • config/boards/shimeta-aiot-rk3588a.conf
  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig
📚 Learning: 2025-09-07T17:39:32.272Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8586
File: config/boards/nanopi-r76s.conf:15-21
Timestamp: 2025-09-07T17:39:32.272Z
Learning: In the Armbian build system, the variables $BOARD and $SDCARD are always set by the build framework, so guard checks for these variables are unnecessary in board configuration files and hook functions.

Applied to files:

  • config/boards/shimeta-aiot-rk3588a.conf
📚 Learning: 2025-10-14T05:08:11.785Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8754
File: config/boards/bestv-r3300-l.csc:14-16
Timestamp: 2025-10-14T05:08:11.785Z
Learning: In the Armbian build system, BOOTBRANCH_BOARD is a valid framework variable used as a fallback when BOOTBRANCH is unset. The framework checks BOOTBRANCH_BOARD before applying the default bootloader branch value (see config/sources/common.conf). Board configuration files can use BOOTBRANCH_BOARD to specify the bootloader branch.

Applied to files:

  • config/boards/shimeta-aiot-rk3588a.conf
📚 Learning: 2025-09-14T06:10:25.610Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8619
File: config/sources/families/rockchip.conf:64-70
Timestamp: 2025-09-14T06:10:25.610Z
Learning: In the Armbian build system, rk32xx and rk33xx Rockchip SoCs no longer have BSP-based (vendor) kernel branches. The rk3506 is the first 32-bit Rockchip SoC to use the vendor branch in the current codebase.

Applied to files:

  • config/boards/shimeta-aiot-rk3588a.conf
📚 Learning: 2025-11-10T23:44:53.363Z
Learnt from: tabrisnet
Repo: armbian/build PR: 0
File: :0-0
Timestamp: 2025-11-10T23:44:53.363Z
Learning: For the RV1106 family in Armbian (config/sources/families/rockchip-rv1106.conf), udev.children-max=1 is set in the kernel boot parameters to prevent early-boot OOM errors. The RV1106 has a single-core CPU, so parallelism in udev child processes provides no practical benefit. Testing higher values is impractical due to the difficulty of monitoring at this early boot stage.

Applied to files:

  • config/boards/shimeta-aiot-rk3588a.conf
  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub or the PR API to get the complete picture of what files are being added or modified.

Applied to files:

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

Applied to files:

  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig
📚 Learning: 2025-11-20T18:20:11.985Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8968
File: patch/u-boot/u-boot-sunxi/arm64-dts-sun50i-h6-orangepi.dtsi-Rollback-r_rsb-to-r_i2c.patch:36-36
Timestamp: 2025-11-20T18:20:11.985Z
Learning: The rewrite-patches tool (REWRITE_PATCHES=yes) in the Armbian build system can inadvertently introduce semantic changes when the u-boot/kernel git base revision differs from expected state. The tool applies patches, commits them, and re-exports them using git format-patch, which can cause the re-exported patch to reflect the base revision's state rather than preserving the original patch intent. This is particularly problematic for device tree changes like interrupt specifications. The tool currently lacks validation mechanisms to detect such semantic drift, and affected patches must be manually corrected after rewriting.

Applied to files:

  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig
📚 Learning: 2025-07-25T03:51:50.830Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8428
File: config/boards/lckfb-taishanpi.csc:5-9
Timestamp: 2025-07-25T03:51:50.830Z
Learning: When reviewing PRs in the Armbian build system, U-Boot defconfig files and patches may be added as part of the PR changes but might not be visible in the current repository clone state during review. It's important to check the actual PR file changes directly via GitHub API (https://api.github.com/repos/armbian/build/pulls/{pr_number}/files) to get the complete picture of what files are being added or modified, especially for U-Boot patches that will be applied during the build process.

Applied to files:

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

Applied to files:

  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig
📚 Learning: 2025-03-31T22:20:41.849Z
Learnt from: rpardini
Repo: armbian/build PR: 8044
File: patch/u-boot/v2025.04/cmd-fileenv-read-string-from-file-into-env.patch:73-75
Timestamp: 2025-03-31T22:20:41.849Z
Learning: When porting patches between U-Boot versions (like from 2025.01 to 2025.04), rpardini prefers to maintain patches as-is rather than introducing refactoring changes, even when potential improvements are identified. This approach prioritizes consistency and reduces the risk of introducing new issues.

Applied to files:

  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig
📚 Learning: 2025-09-14T05:23:42.991Z
Learnt from: EvilOlaf
Repo: armbian/build PR: 8632
File: config/sources/families/include/rockchip64_common.inc:327-334
Timestamp: 2025-09-14T05:23:42.991Z
Learning: In the Armbian build system for Rockchip boards, SPI flash consistently maps to /dev/mtd0, so hard-coding this device path in flashcp commands is acceptable and based on hardware conventions rather than being a bug.

Applied to files:

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

Applied to files:

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

Applied to files:

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

Applied to files:

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

Applied to files:

  • patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig
🔇 Additional comments (4)
patch/u-boot/legacy/u-boot-radxa-rk35xx/dt/rk3588-aiot-rk3588a.dts (1)

1-15: DTS header, includes, and top-level identification look consistent

SPDX header, rk3588 base includes, and model / compatible values align with the board and BOOT_FDT_FILE naming. No issues from a U‑Boot DTS perspective.

config/boards/shimeta-aiot-rk3588a.conf (1)

4-13: Core board parameters look consistent with RK3588 vendor setup

BOARDFAMILY="rockchip-rk3588", vendor kernel targets, BOOTCONFIG, BOOT_SOC, and BOOT_FDT_FILE all line up with the new U‑Boot defconfig and DTS naming. No functional issues spotted here.

patch/u-boot/legacy/u-boot-radxa-rk35xx/defconfig/aiot_rk3588a_defconfig (2)

90-123: ADC and key input configuration matches the DTS usage

CONFIG_SARADC_ROCKCHIP_V2=y, CONFIG_DM_KEY=y, and CONFIG_ADC_KEY=y are enabled here and line up with the adc-keys block you added in the board DTS. That’s the right combination for the analog volume key to be usable in U‑Boot.


20-27: TARGET_EVB_RK3588 with a board‑specific DEFAULT_DEVICE_TREE looks acceptable

Using the generic CONFIG_TARGET_EVB_RK3588=y together with CONFIG_DEFAULT_DEVICE_TREE="rk3588-aiot-rk3588a" matches how other RK3588 boards in vendor trees are typically structured (common target, board‑specific DT). No change needed as long as this aligns with the existing Radxa RK3588 defconfigs in this directory.

Comment on lines +16 to +30
adc-keys {
compatible = "adc-keys";
io-channels = <&saradc 1>;
io-channel-names = "buttons";
keyup-threshold-microvolt = <1800000>;
u-boot,dm-pre-reloc;
status = "okay";

volumeup-key {
u-boot,dm-pre-reloc;
linux,code = <KEY_VOLUMEUP>;
label = "volume up";
press-threshold-microvolt = <1750>;
};
};
Copy link
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

Fix press-threshold-microvolt units for volumeup-key

keyup-threshold-microvolt = <1800000>; is in microvolts (1.8 V), but press-threshold-microvolt = <1750>; is 1.75 mV, which is three orders of magnitude lower and effectively never reached in this context. This is almost certainly a unit/zero‑omission bug.

If you intended ~1.75 V, adjust to microvolts, e.g.:

-			press-threshold-microvolt = <1750>;
+			press-threshold-microvolt = <1750000>;

Please recheck against your ADC divider/expected key voltage and tweak the exact value if needed.


I'll verify the ADC keys unit specification and device tree binding documentation to confirm whether this is indeed a unit mismatch issue.


🌐 Web query:

Linux adc-keys device tree binding press-threshold-microvolt units

💡 Result:

The press-threshold-microvolt property is specified in microvolts (µV) as an integer. e.g. press-threshold-microvolt = <500000>; means 500,000 µV = 0.5 V. [1][2]

Sources:

  • adc-keys device-tree binding (Documentation/devicetree/bindings/input/adc-keys.yaml). [1]
  • adc-keys documentation excerpt (Documentation/devicetree/bindings/input/adc-keys.txt). [2]

🌐 Web query:

ADC keys device tree RK3588 threshold units microvolts

💡 Result:

Yes — the adc-keys device-tree binding uses microvolts. The binding properties are named press-threshold-microvolt and keyup-threshold-microvolt and their values are specified in microvolts (e.g. 2000000, 1800000) — see the adc-keys binding docs and RK3588 DTS examples. [1][2]

Sources:

  • adc-keys device-tree binding (press-/keyup-threshold-microvolt = microvolts). [1]
  • RK3588 board DT examples using press-threshold-microvolt / keyup-threshold-microvolt (values in microvolts). [2]

🌐 Web query:

device tree adc-keys keyup-threshold press-threshold specifications

💡 Result:

Summary of adc-keys Device Tree properties (keyup / press thresholds)

  • Purpose

    • adc-keys models resistor‑ladder (ADC) buttons. The driver compares ADC voltages against configured thresholds to decide key press/release. [1]
  • Top-level key release threshold

    • keyup-threshold-mv (or keyup-threshold-microvolt in some DTS examples) — voltage below which all keys are considered UP (i.e. release cutoff). This property is required. Units: millivolts in the binding docs; some real DTSes and patches use microvolt variants (e.g. keyup-threshold-microvolt). [1][3]
  • Per-key press thresholds

    • press-thresholds-mv (or press-threshold-microvolt) — array of voltages that indicate the key is considered PRESSED. For buttons that can form combinations, list one value per combination (the driver does not compute combinations itself; you supply each expected voltage). This property is required for each child key node. [1]
  • Other relevant properties

    • sample-period-ms / poll-interval — sampling/poll period in ms (binding default 20 ms unless overridden). [1][4]
    • io-channels / io-channel-names — ADC channel phandle(s). [1]
    • linux,code / zephyr,code — key code to emit; linux,input-type may be allowed (patches discussed). [3]
  • Notes / examples

    • Example (from binding): keyup-threshold-mv = <0>; child: press-thresholds-mv = <1650>, <2536>; where each value is in mV. Many device trees in the wild use microvolt properties (e.g. press-threshold-microvolt = <1800000>); check kernel/tree/board binding version used by your kernel/tooling and match units. [1][2][4]

Sources

  • Device-tree binding documentation for "adc-keys". [1]
  • Example kernel DTS patches and dts usages showing *_microvolt properties and poll-interval. [2][3][4]

References
[1] adc-keys devicetree binding (binding doc / examples).
[2] adc-keys binding (Bridle/Zephyr page) (example).
[3] Kernel DTS patches / examples showing keyup-threshold-microvolt.
[4] Rockchip / NanoPi DTS examples using press-threshold-microvolt and poll-interval.


Fix press-threshold-microvolt units for volumeup-key

The press-threshold-microvolt property is specified in microvolts (µV), consistent with keyup-threshold-microvolt = <1800000>; (1.8 V). The current value <1750> represents only 1.75 mV—approximately three orders of magnitude lower than the keyup threshold—and will never trigger in practice.

Correct to:

-			press-threshold-microvolt = <1750>;
+			press-threshold-microvolt = <1750000>;

This assumes ~1.75 V is the intended press threshold; verify against your ADC divider and adjust the exact value as needed.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
adc-keys {
compatible = "adc-keys";
io-channels = <&saradc 1>;
io-channel-names = "buttons";
keyup-threshold-microvolt = <1800000>;
u-boot,dm-pre-reloc;
status = "okay";
volumeup-key {
u-boot,dm-pre-reloc;
linux,code = <KEY_VOLUMEUP>;
label = "volume up";
press-threshold-microvolt = <1750>;
};
};
adc-keys {
compatible = "adc-keys";
io-channels = <&saradc 1>;
io-channel-names = "buttons";
keyup-threshold-microvolt = <1800000>;
u-boot,dm-pre-reloc;
status = "okay";
volumeup-key {
u-boot,dm-pre-reloc;
linux,code = <KEY_VOLUMEUP>;
label = "volume up";
press-threshold-microvolt = <1750000>;
};
};
🤖 Prompt for AI Agents
In patch/u-boot/legacy/u-boot-radxa-rk35xx/dt/rk3588-aiot-rk3588a.dts around
lines 16 to 30, the volumeup-key's press-threshold-microvolt is mistakenly set
to 1750 (µV) instead of a value in microvolts; update press-threshold-microvolt
to the correct microvolt value for ~1.75 V (e.g. 1750000) so it matches the unit
used by keyup-threshold-microvolt and verify against the ADC divider to adjust
the exact value as needed.

@ZZZ8
Copy link

ZZZ8 commented Nov 25, 2025

I'd like to add some information. Currently, there are three versions of this series of boards: v1.1, v1.2, and v1.3. I currently have version v1.3.

the good/bad news: https://shimetadevice.com/wp-content/uploads/2025/06/Motherboard-AIoT-3588A-V1.0-Specifications-V1.pdf Motherboard-AIoT-3588A-V1.0-Specifications-V1.pdf despite the URL saying V1.0 actually says on the first page that it's documenting V1.3

No idea where/how to find the previous revisions. https://shimetadevice.com/product/aiot-3588a-ai-smart-motherboard/ doesn't mention the existence of such versions.

So far, I've only seen V1.2 and V1.1 on China's Xianyu platform.

​"After searching and comparing product images from multiple sellers, I found that most of the development boards currently listed on Xianyu (a major second-hand marketplace in China) are version 1.3."
​"The silkscreen text on these boards is clearly marked as 'v1.3 2023-03-21'."

​"After comparing the photos in the manual with the v1.3 board, the component layout appears unchanged."

@ghhccghk
Copy link
Author

I'd like to add some information. Currently, there are three versions of this series of boards: v1.1, v1.2, and v1.3. I currently have version v1.3.

the good/bad news: https://shimetadevice.com/wp-content/uploads/2025/06/Motherboard-AIoT-3588A-V1.0-Specifications-V1.pdf Motherboard-AIoT-3588A-V1.0-Specifications-V1.pdf despite the URL saying V1.0 actually says on the first page that it's documenting V1.3
No idea where/how to find the previous revisions. https://shimetadevice.com/product/aiot-3588a-ai-smart-motherboard/ doesn't mention the existence of such versions.

So far, I've only seen V1.2 and V1.1 on China's Xianyu platform.

​"After searching and comparing product images from multiple sellers, I found that most of the development boards currently listed on Xianyu (a major second-hand marketplace in China) are version 1.3."​"The silkscreen text on these boards is clearly marked as 'v1.3 2023-03-21'."

​"After comparing the photos in the manual with the v1.3 board, the component layout appears unchanged."

The main concern is that modifications to different versions of the network may cause compatibility issues.

@tabrisnet
Copy link
Collaborator

tabrisnet commented Nov 25, 2025 via email

@ghhccghk
Copy link
Author

Perhaps a note should be made in the board config file with appropriate document links [use archive.org if we don't trust the vendor to not change files]. Take any references also from any official BSPs, not that I've seen much on their website. Are different DTBs provided in the Android builds?

The official Android system does indeed include other versions of DTS.

@ghhccghk
Copy link
Author

IMG_20251125_220305
The desktop is working, the HDMI cable is working, but everything else is not working properly.

@ghhccghk
Copy link
Author

image iperf3 test for ethernet

@ghhccghk ghhccghk force-pushed the pr branch 2 times, most recently from 06bff69 to b046e01 Compare November 29, 2025 14:04
@ghhccghk
Copy link
Author

ghhccghk commented Dec 1, 2025

This development board currently has a built-in MCU, so we need to reverse engineer the protocol.

@ghhccghk
Copy link
Author

ghhccghk commented Dec 3, 2025

=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2025.12.03 18:47:19 =~=~=~=~=~=~=~=~=~=~=~=
DDR 9fa84341ce typ 24/09/06-09:51:11,fwver: v1.18
ch0 ttot10
ch1 ttot10
ch2 ttot10
ch3 ttot10
ch0 ttot16
LPDDR4X, 1848MHz
channel[0] BW=16 Col=10 Bk=8 CS0 Row=16 CS=1 Die BW=16 Size=1024MB
ch1 ttot16
channel[1] BW=16 Col=10 Bk=8 CS0 Row=16 CS=1 Die BW=16 Size=1024MB
ch2 ttot16
channel[2] BW=16 Col=10 Bk=8 CS0 Row=16 CS=1 Die BW=16 Size=1024MB
ch3 ttot16
channel[3] BW=16 Col=10 Bk=8 CS0 Row=16 CS=1 Die BW=16 Size=1024MB
Manufacturer ID:0x6
DQS rds:h1,l0,� 
CH0 RX Vref:30.1%, TX Vref:21.8%,0.0%
DQ rds:h2 h1 l0 l0 h5 h1 h1 l0 �, h1 l0 h1 h1 l0 h4 h1 l0 

DQS rds:h1,l0,� 
CH1 RX Vref:30.5%, TX Vref:21.8%,0.0%
DQ rds:h1 h4 h3 h4 h3 h1 h1 h3 �, h2 h2 h3 h4 h1 h2 h7 h1 

DQS rds:h1,l0,� 
CH2 RX Vref:33.0%, TX Vref:21.8%,0.0%
DQ rds:h2 h2 h4 h1 h3 h2 h2 h2 �, h7 h2 h4 h5 h6 h6 h4 h4 

DQS rds:l0,l0,� 
CH3 RX Vref:31.0%, TX Vref:20.8%,0.0%
DQ rds:h7 h2 h6 h4 l0 h1 h3 h1 �, h3 h2 h6 h5 h6 h3 h2 h3 

stride=0x2, ddr_config=0x0
hash ch_mask0-1 0x20 0x40, bank_mask0-3 0xa00 0x1400 0x2800 0x0, rank_mask0 0x0
change to F1: 528MHz
ch0 ttot10
ch1 ttot10
ch2 ttot10
ch3 ttot10
change to F2: 1068MHz
ch0 ttot12
ch1 ttot12
ch2 ttot12
ch3 ttot12
change to F3: 1560MHz
ch0 ttot14
ch1 ttot14
ch2 ttot14
ch3 ttot14
change to F0: 1848MHz
ch0 ttot16
ch1 ttot16
ch2 ttot16
ch3 ttot16
out
U-Boot SPL board init
U-Boot SPL 2017.09-gc060f28d70-220414 #zyf (Apr 18 2022 - 18:13:34)
Failed to set cpub01
Failed to set cpub23
unknown raw ID phN
unrecognized JEDEC id bytes: 00, 00, 00
Trying to boot from MMC2
MMC: no card present
mmc_init: -123, time 1
spl: mmc init failed with error: -123
Trying to boot from MMC1
Trying fit image at 0x4000 sector
## Verified-boot: 0
## Checking atf-1 0x00040000 ... sha256(7612223b82...) + OK
## Checking uboot 0x00200000 ... sha256(29b985d8eb...) + OK
## Checking fdt 0x00367e60 ... sha256(8ecccd16d2...) + OK
## Checking atf-2 0xff100000 ... sha256(70505bb764...) + OK
## Checking atf-3 0x000f0000 ... sha256(b2af21b504...) + OK
## Checking optee 0x08400000 ... sha256(3e0a1f56ed...) + OK
Jumping to U-Boot(0x00200000) via ARM Trusted Firmware(0x00040000)
Total: 117.584 ms

INFO:    Preloader serial: 2
NOTICE:  BL31: v2.3():v2.3-868-g040d2de11:derrick.huang, fwver: v1.48
NOTICE:  BL31: Built : 15:02:44, Dec 19 2024
INFO:    spec: 0x1
INFO:    code: 0x88
INFO:    ext 32k is not valid
INFO:    ddr: stride-en 4CH
INFO:    GICv3 without legacy support detected.
INFO:    ARM GICv3 driver initialized in EL3
INFO:    valid_cpu_msk=0xff bcore0_rst = 0x0, bcore1_rst = 0x0
INFO:    l3 cache partition cfg-0
INFO:    system boots from cpu-hwid-0
INFO:    disable memory repair
INFO:    idle_st=0x21fff, pd_st=0x11fff9, repair_st=0xfff70001
INFO:    dfs DDR fsp_params[0].freq_mhz= 1848MHz
INFO:    dfs DDR fsp_params[1].freq_mhz= 528MHz
INFO:    dfs DDR fsp_params[2].freq_mhz= 1068MHz
INFO:    dfs DDR fsp_params[3].freq_mhz= 1560MHz
INFO:    BL31: Initialising Exception Handling Framework
INFO:    BL31: Initializing runtime services
INFO:    BL31: Initializing BL32
I/TC: 
I/TC: OP-TEE version: 3.13.0-898-g57604957e #hisping.lin (gcc version 10.2.1 20201103 (GNU Toolchain for the A-profile Architecture 10.2-2020.11 (arm-10.16))) #2 Fri Nov 15 16:04:27 CST 2024 aarch64, fwver: v1.19 
I/TC: OP-TEE memory: TEEOS 0x200000 TA 0xc00000 SHM 0x200000
I/TC: Primary CPU initializing
I/TC: Primary CPU switching to normal world boot
INFO:    BL31: Preparing for EL3 exit to normal world
INFO:    Entry point address = 0x200000
INFO:    SPSR = 0x3c9


U-Boot 2017.09 (Sep 11 2025 - 15:40:35 +0800)

Model: Rockchip RK3588 Evaluation Board
MPIDR: 0x81000000
PreSerial: 2, raw, 0xfeb50000
DRAM:  4 GiB
Sysmem: init
Relocation Offset: ed9bb000
Relocation fdt: eb7fab40 - eb7fece0
CR: M/C/I
Using default environment

DM: v2
mmc@fe2c0000: 1, mmc@fe2e0000: 0
Bootdev(atags): mmc 0
MMC0: HS400 Enhanced Strobe, 200Mhz
PartType: EFI
Android 12.0, Build 2022.7, v2
boot mode: recovery (misc)
RESC: 'recovery', blk@0x00062218
optee api revision: 2.0
Device is: UNLOCKED
rk-kernel.dtb
  blk_start:  0x00062218
  blk_offset: 0x0000000e
  size:       0x00047722
  in_ram:     0
  hash_size:  20

arch/arm64/boot/dts/rockchip/rk3588_smdt_3588d_v11.dtb
  blk_start:  0x00062218
  blk_offset: 0x0000024a
  size:       0x00044965
  in_ram:     0
  hash_size:  20

arch/arm64/boot/dts/rockchip/rk3588_smdt_3588d_v12.dtb
  blk_start:  0x00062218
  blk_offset: 0x0000046f
  size:       0x00044a8b
  in_ram:     0
  hash_size:  20

arch/arm64/boot/dts/rockchip/rk3588_smdt_3588d_v20.dtb
  blk_start:  0x00062218
  blk_offset: 0x00000695
  size:       0x00044aac
  in_ram:     0
  hash_size:  20

arch/arm64/boot/dts/rockchip/rk3588_smdt_3588a_v10.dtb
  blk_start:  0x00062218
  blk_offset: 0x000008bb
  size:       0x00047722
  in_ram:     0
  hash_size:  20

arch/arm64/boot/dts/rockchip/rk3588_smdt_3588a_v12.dtb
  blk_start:  0x00062218
  blk_offset: 0x00000af7
  size:       0x000487d1
  in_ram:     0
  hash_size:  20

arch/arm64/boot/dts/rockchip/rk3588_smdt_3588a_v20.dtb
  blk_start:  0x00062218
  blk_offset: 0x00000d3b
  size:       0x00048248
  in_ram:     0
  hash_size:  20

arch/arm64/boot/dts/rockchip/rk3588_smdt_3588a_v31.dtb
  blk_start:  0x00062218
  blk_offset: 0x00000f7d
  size:       0x000488d4
  in_ram:     0
  hash_size:  20

arch/arm64/boot/dts/rockchip/rk3588_smdt_3588a_v31m2.dtb
  blk_start:  0x00062218
  blk_offset: 0x000011c2
  size:       0x000488cc
  in_ram:     0
  hash_size:  20

arch/arm64/boot/dts/rockchip/rk3588_smdt_3588m_v11.dtb
  blk_start:  0x00062218
  blk_offset: 0x00001407
  size:       0x000443d5
  in_ram:     0
  hash_size:  20

arch/arm64/boot/dts/rockchip/rk3588_smdt_3588m_v20.dtb
  blk_start:  0x00062218
  blk_offset: 0x00001629
  size:       0x000443cd
  in_ram:     0
  hash_size:  20

logo.bmp
  blk_start:  0x00062218
  blk_offset: 0x0000184b
  size:       0x0001e7e6
  in_ram:     0
  hash_size:  20

logo_kernel.bmp
  blk_start:  0x00062218
  blk_offset: 0x0000193f
  size:       0x0001e7e6
  in_ram:     0
  hash_size:  20

smdt_rockchip_read_hwid_dtb: rk-kernel.dtb
smdt_rockchip_read_hwid_dtb: arch/arm64/boot/dts/rockchip/rk3588_smdt_3588d_v11.dtb
smdt_rockchip_read_hwid_dtb: arch/arm64/boot/dts/rockchip/rk3588_smdt_3588d_v12.dtb
smdt_rockchip_read_hwid_dtb: arch/arm64/boot/dts/rockchip/rk3588_smdt_3588d_v20.dtb
smdt_rockchip_read_hwid_dtb: arch/arm64/boot/dts/rockchip/rk3588_smdt_3588a_v10.dtb
smdt_rockchip_read_hwid_dtb: arch/arm64/boot/dts/rockchip/rk3588_smdt_3588a_v12.dtb
smdt_rockchip_read_hwid_dtb: arch/arm64/boot/dts/rockchip/rk3588_smdt_3588a_v20.dtb
smdt_rockchip_read_hwid_dtb: arch/arm64/boot/dts/rockchip/rk3588_smdt_3588a_v31.dtb
smdt_rockchip_read_hwid_dtb: arch/arm64/boot/dts/rockchip/rk3588_smdt_3588a_v31m2.dtb
smdt_rockchip_read_hwid_dtb: arch/arm64/boot/dts/rockchip/rk3588_smdt_3588m_v11.dtb
smdt_rockchip_read_hwid_dtb: arch/arm64/boot/dts/rockchip/rk3588_smdt_3588m_v20.dtb
smdt_rockchip_read_hwid_dtb: logo.bmp
smdt_rockchip_read_hwid_dtb: logo_kernel.bmp
�[0;32;34m[smdt][drivers/smdt/smdt_compatible.c +132][smdt_saradc_hw_bom_id]�[0m[xwliu]<valid hw_id=1(3752) bom_id=1(3749)>

[smdt][xwliu][hw_id/bom_id] <uboot read dtb_name=arch/arm64/boot/dts/rockchip/rk3588_smdt_3588a_v12.dtb f->name=arch/arm64/boot/dts/rockchip/rk3588_smdt_3588a_v12.dtb>
DTB: arch/arm64/boot/dts/rockchip/rk3588_smdt_3588a_v12.dtb
HASH(c): OK
ANDROID: fdt overlay OK
** Unable to read file /display_param.cfg **
�[0;32;32m[smdt][drivers/smdt/smdt_param_api.c +90][smdt_fixup_fdt]�[0m[oempriv] <can not from oempriv find file:/display_param.cfg>
Can't find the replaced string!
Can't find the replaced string!
Can't find the replaced string!
Can't find the replaced string!
Can't find the replaced string!
Can't find the replaced string!
Can't find the replaced string!
** Unable to read file /os_param.config **
�[0;32;32m[smdt][drivers/smdt/smdt_param_api.c +179][smdt_fixup_fdt]�[0m[oempriv] <can not from oempriv find file:/os_param.config>
�[0;32;34m[smdt][drivers/smdt/smdt_param_api.c +183][smdt_fixup_fdt]�[0m[smdt_param]<smdt_param=null>
I2c0 speed: 100000Hz
vsel-gpios- not found!
en-gpios- not found!
vdd_cpu_big0_s0 800000 uV
vsel-gpios- not found!
en-gpios- not found!
vdd_cpu_big1_s0 800000 uV
I2c1 speed: 100000Hz
vsel-gpios- not found!
en-gpios- not found!
vdd_npu_s0 800000 uV
spi2: RK806: 2
ON=0x00, OFF=0x00
vdd_gpu_s0 750000 uV
vdd_cpu_lit_s0 750000 uV
vdd_log_s0 750000 uV
vdd_vdenc_s0 init 750000 uV
vdd_ddr_s0 850000 uV
�[0;32;34m[smdt][drivers/video/drm/rockchip_display.c +1877][rockchip_display_probe]�[0mxwliu route:route-dsi0
get vp0 plane mask:0x5, primary id:2, cursor_plane:-1, from dts
get vp1 plane mask:0xa, primary id:3, cursor_plane:-1, from dts
get vp2 plane mask:0x140, primary id:8, cursor_plane:-1, from dts
get vp3 plane mask:0x280, primary id:9, cursor_plane:-1, from dts
�[0;32;34m[smdt][drivers/video/drm/rockchip_display.c +1877][rockchip_display_probe]�[0mxwliu route:route-edp0
�[0;32;34m[smdt][drivers/video/drm/rockchip_display.c +1877][rockchip_display_probe]�[0mxwliu route:route-dsi1
�[0;32;34m[smdt][drivers/video/drm/rockchip_display.c +1877][rockchip_display_probe]�[0mxwliu route:route-hdmi1
Model: AIOT_3588A
MPIDR: 0x81000000
** Unable to read file logo.bmp **
[smdt][xwliu][oempriv] <can not from emmc find file:logo.bmp>
** Unable to read file logo.bmp **
[smdt][xwliu][oempriv] <can not from emmc find file:logo.bmp>
Rockchip UBOOT DRM driver version: v1.0.1
starting USB...
Bus usb@fc000000: usb maximum-speed not found
�[0;33m[smdt][drivers/smdt/smdt_param_platform.c +455][smdt_set_otg_power_platform]�[0m[xwliu][smdt_param] <request for usb_power1_num:129 failed:-16 free retry>
�[0;32;34m[smdt][drivers/smdt/smdt_param_platform.c +462][smdt_set_otg_power_platform]�[0m<xwliu set usb_power1_num:129 on:1>
I2c6 speed: 100000Hz
�[0;32;34m[smdt][drivers/smdt/smdt_param_platform.c +347][smdt_3588_nca9555_for_usb_power]�[0mi2c_get_chip_for_busnum i2c_bus_num=6 address=0x20 ret:0

Device 'gpio@fd8a0000': seq 0 is in use by 'gpio@fd8a0000'
�[0;32;34m[smdt][drivers/smdt/smdt_param_platform.c +484][smdt_set_otg_power_platform]�[0m<xwliu set usb_power2_num:160 on:1>
Register 1000140 NbrPorts 1
Starting the controller
USB XHCI 1.10
Bus usb@fc800000: xwliu jump out
Bus usb@fc840000: xwliu jump out
Bus usb@fc880000: �[0;32;34m[smdt][drivers/smdt/smdt_param_platform.c +462][smdt_set_otg_power_platform]�[0m<xwliu set usb_power1_num:129 on:1>
�[0;32;34m[smdt][drivers/smdt/smdt_param_platform.c +347][smdt_3588_nca9555_for_usb_power]�[0mi2c_get_chip_for_busnum i2c_bus_num=6 address=0x20 ret:0

�[0;32;34m[smdt][drivers/smdt/smdt_param_platform.c +484][smdt_set_otg_power_platform]�[0m<xwliu set usb_power2_num:160 on:1>
USB EHCI 1.00
Bus usb@fc8c0000: xwliu jump out
Bus usb@fcd00000: xwliu jump out
Bus usb@fc400000: xwliu jump out
scanning bus usb@fc000000 for devices... 1 USB Device(s) found
scanning bus usb@fc880000 for devices... 1 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found
** Bad device usb 0 **
** Bad device usb 0 **
�[0;32;32m[smdt][drivers/smdt/smdt_param_api.c +42][smdt_param_read_from_usb]�[0m[smdt_param]<can not form usb find param file>
vp0 have layer nr:2[0 2 ], primary plane: 2
vp1 have layer nr:2[1 3 ], primary plane: 3
vp2 have layer nr:2[6 8 ], primary plane: 8
vp3 have layer nr:2[7 9 ], primary plane: 9
�[0;32;34m[smdt][drivers/video/drm/rockchip_display.c +740][display_init]�[0m[xwliu][mipi_dsi_getid] <dsi@fde20000 -> panel_matching>

final DSI-Link bandwidth: 40700 Kbps x 4
command interface is busy: 0x10001
[smdt][xwliu][mipi_dsi_getid]<jd936x read id:0x209acb>
command interface is busy: 0x10001
command interface is busy: 0x10001
command interface is busy: 0x10001
[smdt][xwliu][mipi_dsi_getid]<9881xx read id:0x209acb>
command interface is busy: 0x10001
command interface is busy: 0x10001
command interface is busy: 0x10001
command interface is busy: 0x10001
[smdt][xwliu][mipi_dsi_getid]<ili9881 read id:0x209acb>
dsi find panel id
Using display timing dts
dsi@fde20000:  detailed mode clock 70000 kHz, flags[a]
    H: 0800 0820 0840 0860
    V: 1280 1310 1314 1322
bus_format: 100e
VOP update mode to: 800x1280p62, type: MIPI0 for VP2
VP2 set crtc_clock to 70000KHz
VOP VP2 enable Esmart2[204x204->204x204@298x538] fmt[1] addr[0xedf1f000]
final DSI-Link bandwidth: 466666 Kbps x 4
�[0;32;34m[smdt][drivers/video/drm/rockchip_panel.c +348][panel_simple_prepare]�[0mxwliu------------panel->dev->name:[email protected]
command interface is busy: 0x10001
failed to write cmd0: -110
failed to send on cmds: -110
route-dsi0 failed to find bridge phandle
display_enable:959 failed to get rk628 device ret:-19
Using display timing dts
edp@fdec0000:  detailed mode clock 139000 kHz, flags[a]
    H: 1920 1960 1980 2080
    V: 1080 1092 1096 1111
bus_format: 100e
VOP update mode to: 1920x1080p60, type: eDP0 for VP1
VP1 set crtc_clock to 136363KHz
VOP VP1 enable Esmart1[204x204->204x204@858x438] fmt[1] addr[0xedf1f000]
AUX CH command reply failed!
AUX CH command reply failed!
AUX CH error happens: 2
failed to read dpcd caps: -121
route-edp0 failed to find bridge phandle
display_enable:959 failed to get rk628 device ret:-19
Using display timing dts
dsi@fde30000:  detailed mode clock 148500 kHz, flags[a]
    H: 1920 2080 2100 2200
    V: 1080 1090 1100 1125
bus_format: 100e
VOP update mode to: 1920x1080p60, type: MIPI1 for VP3
VP3 set crtc_clock to 148500KHz
VOP VP3 enable Esmart3[204x204->204x204@858x438] fmt[1] addr[0xedf1f000]
final DSI-Link bandwidth: 990000 Kbps x 4
route-dsi1 failed to find bridge phandle
display_enable:959 failed to get rk628 device ret:-19
�[0;32;34m[smdt][drivers/video/drm/dw_hdmi_qp.c +1331][_rockchip_dw_hdmi_qp_get_timing]�[0m[xwliu][hdmi_resolution] hdmi@fdea0000 output:

Monitor has basic audio support
base_parameter.mode:3840x2160@60 clock:594000 format:0 depth:0
color_format:0
hdmi_select_link_config use tmds mode
mode:1920x1080 bus_format:0x100a vic=16
hdmi@fdea0000:  detailed mode clock 148500 kHz, flags[5]
    H: 1920 2008 2052 2200
    V: 1080 1084 1089 1125
bus_format: 100a
VOP update mode to: 1920x1080p60, type: HDMI1 for VP0
dclk:148500,if_pixclk_div;2,if_dclk_div:4
VP0 set crtc_clock to 148500KHz
VOP VP0 enable Esmart0[204x204->204x204@858x438] fmt[1] addr[0xedf1f000]
CEA mode used vic=16
mtmdsclock:148500000
hdptx_ropll_cmn_config bus_width:16a8c8 rate:1485000
hdptx phy pll locked!
dw_hdmi_setup HDMI mode
don't use dsc mode
dw hdmi qp use tmds mode
bus_width:0x16a8c8,bit_rate:1485000
hdptx phy lane locked!
route-hdmi1 failed to find bridge phandle
display_enable:959 failed to get rk628 device ret:-19
CLK: (sync kernel. arm: enter 1008000 KHz, init 1008000 KHz, kernel 0N/A)
  b0pll 24000 KHz
  b1pll 24000 KHz
  lpll 24000 KHz
  v0pll 630000 KHz
  aupll 786431 KHz
  cpll 1500000 KHz
  gpll 1188000 KHz
  npll 850000 KHz
  ppll 1100000 KHz
  aclk_center_root 702000 KHz
  pclk_center_root 100000 KHz
  hclk_center_root 396000 KHz
  aclk_center_low_root 500000 KHz
  aclk_top_root 750000 KHz
  pclk_top_root 100000 KHz
  aclk_low_top_root 396000 KHz
Net:   eth1: ethernet@fe1c0000
Hit key to stop autoboot('CTRL+C'):  0 
ANDROID: reboot reason: "recovery"
Vboot=0, AVB images, AVB verify
read_is_device_unlocked() ops returned that device is UNLOCKED
avb_footer.c:41: ERROR: Footer magic is incorrect.
avb_vbmeta_image.c:65: ERROR: Magic is incorrect.
avb_slot_verify.c:774: ERROR: recovery: Error verifying vbmeta image: invalid vbmeta header
Verify recovery with vbmeta.
avb_slot_verify.c:763: ERROR: vbmeta: Error verifying vbmeta image: OK_NOT_SIGNED
preloaded: distribute image from 'recovery
ANDROID: Hash OK
Could not find "system" partition
Booting IMAGE kernel at 0x00400000 with fdt at 0x08300000...


Fdt Ramdisk skip relocation
## Booting Android Image at 0x003ff800 ...
Kernel: 0x00400000 - 0x02812808 (36939 KiB)
ramdisk:    0x0a200000 - 0x0f12f6dc (81086 KiB)
## Flattened Device Tree blob at 0x08300000
   Booting using the fdt blob at 0x08300000
�[0;32;34m[smdt][drivers/smdt/smdt_param_platform.c +462][smdt_set_otg_power_platform]�[0m<xwliu set usb_power1_num:129 on:0>
�[0;32;34m[smdt][drivers/smdt/smdt_param_platform.c +347][smdt_3588_nca9555_for_usb_power]�[0mi2c_get_chip_for_busnum i2c_bus_num=6 address=0x20 ret:0

�[0;32;34m[smdt][drivers/smdt/smdt_param_platform.c +484][smdt_set_otg_power_platform]�[0m<xwliu set usb_power2_num:160 on:0>
�[0;32;34m[smdt][drivers/smdt/smdt_param_platform.c +462][smdt_set_otg_power_platform]�[0m<xwliu set usb_power1_num:129 on:0>
�[0;32;34m[smdt][drivers/smdt/smdt_param_platform.c +347][smdt_3588_nca9555_for_usb_power]�[0mi2c_get_chip_for_busnum i2c_bus_num=6 address=0x20 ret:0

�[0;32;34m[smdt][drivers/smdt/smdt_param_platform.c +484][smdt_set_otg_power_platform]�[0m<xwliu set usb_power2_num:160 on:0>
   XIP Kernel Image from 0x00400000 to 0x00400000 ... OK
   kernel loaded at 0x00400000, end = 0x02812808
   Using Device Tree in place at 0000000008300000, end 000000000834b94b
** Unable to read file logo_kernel.bmp **
[smdt][xwliu][oempriv] <can not from emmc find file:logo_kernel.bmp>
** Unable to read file logo_kernel.bmp **
[smdt][xwliu][oempriv] <can not from emmc find file:logo_kernel.bmp>
## reserved-memory:
  cma: addr=10000000 size=8000000
  drm-logo@00000000: addr=edf00000 size=7c000
  vendor-storage-rm@00000000: addr=ebc49000 size=10000
  ramoops@110000: addr=110000 size=e0000
Adding bank: 0x00200000 - 0x08400000 (size: 0x08200000)
Adding bank: 0x09400000 - 0xf0000000 (size: 0xe6c00000)
Adding bank: 0x1f0000000 - 0x200000000 (size: 0x10000000)
Total: 9983.266/10056.941 ms

Starting kernel ...

[   10.064285][    T0] Booting Linux on physical CPU 0x0000000000 [0x412fd050]
[   10.064305][    T0] Linux version 5.10.160 (ldw@ubuntu001-SA5248M4) (Android (7284624, based on r416183b) clang version 12.0.5 (https://android.googlesource.com/toolchain/llvm-project c935d99d7cf2016289302412d708641d52d2f7ee), LLD 12.0.5 (/buildbot/src/android/llvm-toolchain/out/llvm-project/lld c935d99d7cf2016289302412d708641d52d2f7ee)) #1 SMP PREEMPT Thu Sep 11 15:40:57 CST 2025
[   10.079311][    T0] Machine model: AIOT_3588A
[   10.116591][    T0] earlycon: uart8250 at MMIO32 0x00000000feb50000 (options '')
[   10.121391][    T0] printk: bootconsole [uart8250] enabled
[   10.129938][    T0] OF: fdt: Reserved memory: failed to reserve memory for node 'drm-cubic-lut@00000000': base 0x0000000000000000, size 0 MiB
[   10.131184][    T0] Reserved memory: created CMA memory pool at 0x0000000010000000, size 128 MiB
[   10.131991][    T0] OF: reserved mem: initialized node cma, compatible id shared-dma-pool
[   10.205171][    T0] Zone ranges:
[   10.205482][    T0]   DMA32    [mem 0x0000000000200000-0x00000000ffffffff]
[   10.206120][    T0]   Normal   [mem 0x0000000100000000-0x00000001ffffffff]
[   10.206755][    T0] Movable zone start for each node
[   10.207212][    T0] Early memory node ranges
[   10.207607][    T0]   node   0: [mem 0x0000000000200000-0x00000000083fffff]
[   10.208248][    T0]   node   0: [mem 0x0000000009400000-0x00000000efffffff]
[   10.208889][    T0]   node   0: [mem 0x00000001f0000000-0x00000001ffffffff]
[   10.209530][    T0] Initmem setup node 0 [mem 0x0000000000200000-0x00000001ffffffff]
[   10.232240][    T0] psci: probing for conduit method from DT.
[   10.232777][    T0] psci: PSCIv1.1 detected in firmware.
[   10.233267][    T0] psci: Using standard PSCI v0.2 function IDs
[   10.233815][    T0] psci: Trusted OS migration not required
[   10.234329][    T0] psci: SMC Calling Convention v1.2
[   10.235182][    T0] percpu: Embedded 31 pages/cpu s88856 r8192 d29928 u126976
[   10.236017][    T0] Detected VIPT I-cache on CPU0
[   10.236478][    T0] CPU features: detected: GIC system register CPU interface
[   10.237135][    T0] CPU features: detected: Virtualization Host Extensions
[   10.237772][    T0] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[   10.238490][    T0] alternatives: patching kernel code
[   10.240892][    T0] Built 1 zonelists, mobility grouping on.  Total pages: 1027656
[   10.241598][    T0] Kernel command line: storagemedia=emmc androidboot.storagemedia=emmc androidboot.mode=normal  androidboot.dtb_idx=0 androidboot.dtbo_idx=0  androidboot.verifiedbootstate=orange androidboot.serialno=5037ef0c0db30943 console=ttyFIQ0 firmware_class.path=/vendor/etc/firmware init=/init rootwait ro loop.max_part=7 androidboot.console=ttyFIQ0 androidboot.wificountrycode=CN androidboot.hardware=rk30board androidboot.boot_devices=fe2e0000.mmc androidboot.selinux=permissive androidboot.console=ttyFIQ0 androidboot.wificountrycode=CN androidboot.hardware=rk30board androidboot.boot_devices=fe2e0000.mmc androidboot.selinux=permissive smdt_hw_id=1 smdt_bom_id=1 cpuid=5037ef0c0db30943 cid=ea010e5350654d4d4310440af0be4900 earlycon=uart8250,mmio32,0xfeb50000 irqchip.gicv3_pseudo_nmi=0
[   10.248843][    T0] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[   10.249834][    T0] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[   10.250669][    T0] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[   10.257539][    T0] software IO TLB: mapped [mem 0x00000000e7c49000-0x00000000ebc49000] (64MB)
[   10.290300][    T0] Memory: 3776380K/4175872K available (19710K kernel code, 4234K rwdata, 11596K rodata, 1344K init, 933K bss, 268420K reserved, 131072K cma-reserved)
[   10.291766][    T0] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1
[   10.292646][    T0] rcu: Preemptible hierarchical RCU implementation.
[   10.293243][    T0] rcu: 	RCU event tracing is enabled.
[   10.293726][    T0] 	Trampoline variant of Tasks RCU enabled.
[   10.294255][    T0] 	Tracing variant of Tasks RCU enabled.
[   10.294761][    T0] rcu: RCU calculated value of scheduler-enlistment delay is 30 jiffies.
[   10.299205][    T0] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[   10.302704][    T0] GICv3: GIC: Using split EOI/Deactivate mode
[   10.303252][    T0] GICv3: 480 SPIs implemented
[   10.303670][    T0] GICv3: 0 Extended SPIs implemented
[   10.304165][    T0] GICv3: Distributor has no Range Selector support
[   10.304754][    T0] GICv3: 16 PPIs implemented
[   10.305205][    T0] GICv3: CPU0: found redistributor 0 region 0:0x00000000fe680000
[   10.305987][    T0] ITS [mem 0xfe640000-0xfe65ffff]
[   10.306480][    T0] ITS@0x00000000fe640000: allocated 8192 Devices @1f00f0000 (indirect, esz 8, psz 64K, shr 0)
[   10.307425][    T0] ITS@0x00000000fe640000: allocated 32768 Interrupt Collections @1f0100000 (flat, esz 2, psz 64K, shr 0)
[   10.308442][    T0] ITS: using cache flushing for cmd queue
[   10.308980][    T0] ITS [mem 0xfe660000-0xfe67ffff]
[   10.309466][    T0] ITS@0x00000000fe660000: allocated 8192 Devices @1f0120000 (indirect, esz 8, psz 64K, shr 0)
[   10.310410][    T0] ITS@0x00000000fe660000: allocated 32768 Interrupt Collections @1f0130000 (flat, esz 2, psz 64K, shr 0)
[   10.311426][    T0] ITS: using cache flushing for cmd queue
[   10.312174][    T0] GICv3: using LPI property table @0x00000001f0140000
[   10.312892][    T0] GIC: using cache flushing for LPI property table
[   10.313481][    T0] GICv3: CPU0: using allocated LPI pending table @0x00000001f0150000
[   10.314292][    T0] kfence: initialized - using 524288 bytes for 63 objects at 0x(____ptrval____)-0x(____ptrval____)
[   10.442854][    T0] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[   10.443477][    T0] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[   10.444523][    T0] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[   10.446627][    T0] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=80000)
[   10.447631][    T0] pid_max: default: 32768 minimum: 301
[   10.448177][    T0] LSM: Security Framework initializing
[   10.448685][    T0] SELinux:  Initializing.
[   10.449134][    T0] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[   10.449878][    T0] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[   10.452414][    T1] rcu: Hierarchical SRCU implementation.
[   10.453266][    T1] Platform MSI: msi-controller@fe640000 domain created
[   10.453888][    T1] Platform MSI: msi-controller@fe660000 domain created
[   10.454875][    T1] PCI/MSI: /interrupt-controller@fe600000/msi-controller@fe640000 domain created
[   10.455702][    T1] PCI/MSI: /interrupt-controller@fe600000/msi-controller@fe660000 domain created
[   10.457200][    T1] smp: Bringing up secondary CPUs ...
I/TC: Secondary CPU 1 initializing
I/TC: Secondary CPU 1 switching to normal world boot
I/TC: Secondary CPU 2 initializing
I/TC: Secondary CPU 2 switching to normal world boot
I/TC: Secondary CPU 3 initializing
I/TC: Secondary CPU 3 switching to normal world boot
I/TC: Secondary CPU 4 initializing
I/TC: Secondary CPU 4 switching to normal world boot
I/TC: Secondary CPU 5 initializing
I/TC: Secondary CPU 5 switching to normal world boot
I/TC: Secondary CPU 6 initializing
I/TC: Secondary CPU 6 switching to normal world boot
I/TC: Secondary CPU 7 initializing
I/TC: Secondary CPU 7 switching to normal world boot
[   10.458893][    T0] Detected VIPT I-cache on CPU1
[   10.458917][    T0] GICv3: CPU1: found redistributor 100 region 0:0x00000000fe6a0000
[   10.458930][    T0] GICv3: CPU1: using allocated LPI pending table @0x00000001f0160000
[   10.458968][    T0] CPU1: Booted secondary processor 0x0000000100 [0x412fd050]
[   10.460229][    T0] Detected VIPT I-cache on CPU2
[   10.460250][    T0] GICv3: CPU2: found redistributor 200 region 0:0x00000000fe6c0000
[   10.460263][    T0] GICv3: CPU2: using allocated LPI pending table @0x00000001f0170000
[   10.460298][    T0] CPU2: Booted secondary processor 0x0000000200 [0x412fd050]
[   10.461523][    T0] Detected VIPT I-cache on CPU3
[   10.461541][    T0] GICv3: CPU3: found redistributor 300 region 0:0x00000000fe6e0000
[   10.461553][    T0] GICv3: CPU3: using allocated LPI pending table @0x00000001f0180000
[   10.461585][    T0] CPU3: Booted secondary processor 0x0000000300 [0x412fd050]
[   10.462812][    T0] CPU features: detected: Spectre-v4
[   10.462814][    T0] CPU features: detected: Spectre-BHB
[   10.462816][    T0] Detected PIPT I-cache on CPU4
[   10.462827][    T0] GICv3: CPU4: found redistributor 400 region 0:0x00000000fe700000
[   10.462835][    T0] GICv3: CPU4: using allocated LPI pending table @0x00000001f0190000
[   10.462856][    T0] CPU4: Booted secondary processor 0x0000000400 [0x414fd0b0]
[   10.464046][    T0] Detected PIPT I-cache on CPU5
[   10.464057][    T0] GICv3: CPU5: found redistributor 500 region 0:0x00000000fe720000
[   10.464065][    T0] GICv3: CPU5: using allocated LPI pending table @0x00000001f01a0000
[   10.464088][    T0] CPU5: Booted secondary processor 0x0000000500 [0x414fd0b0]
[   10.465292][    T0] Detected PIPT I-cache on CPU6
[   10.465303][    T0] GICv3: CPU6: found redistributor 600 region 0:0x00000000fe740000
[   10.465311][    T0] GICv3: CPU6: using allocated LPI pending table @0x00000001f01b0000
[   10.465332][    T0] CPU6: Booted secondary processor 0x0000000600 [0x414fd0b0]
[   10.466512][    T0] Detected PIPT I-cache on CPU7
[   10.466523][    T0] GICv3: CPU7: found redistributor 700 region 0:0x00000000fe760000
[   10.466531][    T0] GICv3: CPU7: using allocated LPI pending table @0x00000001f01c0000
[   10.466553][    T0] CPU7: Booted secondary processor 0x0000000700 [0x414fd0b0]
[   10.466609][    T1] smp: Brought up 1 node, 8 CPUs
[   10.485515][    T1] SMP: Total of 8 processors activated.
[   10.486008][    T1] CPU features: detected: Privileged Access Never
[   10.486590][    T1] CPU features: detected: LSE atomic instructions
[   10.487161][    T1] CPU features: detected: User Access Override
[   10.487707][    T1] CPU features: detected: 32-bit EL0 Support
[   10.488238][    T1] CPU features: detected: Common not Private translations
[   10.488871][    T1] CPU features: detected: RAS Extension Support
[   10.489425][    T1] CPU features: detected: Data cache clean to the PoU not required for I/D coherence
[   10.490293][    T1] CPU features: detected: CRC32 instructions
[   10.490825][    T1] CPU features: detected: Speculative Store Bypassing Safe (SSBS)
[   10.491521][    T1] CPU features: detected: RCpc load-acquire (LDAPR)
[   10.525657][    T1] CPU: All CPU(s) started at EL2
[   10.527729][    T1] devtmpfs: initialized
[   10.540263][    T7] Trying to unpack rootfs image as initramfs...
[   10.540825][    T1] Registered cp15_barrier emulation handler
[   10.540835][    T1] Registered setend emulation handler
[   10.540838][    T1] KASLR disabled due to lack of seed
[   10.540900][    T1] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6370867519511994 ns
[   10.543243][    T1] futex hash table entries: 2048 (order: 5, 131072 bytes, linear)
[   10.543988][    T1] pinctrl core: initialized pinctrl subsystem
[   10.544909][    T1] NET: Registered protocol family 16
[   10.545826][    T1] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[   10.546581][    T1] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[   10.547375][    T1] audit: initializing netlink subsys (disabled)
[   10.547984][   T61] audit: type=2000 audit(0.099:1): state=initialized audit_enabled=0 res=1
[   10.548391][    T1] Registered FIQ tty driver
[   10.549217][    T1] thermal_sys: Registered thermal governor 'fair_share'
[   10.549219][    T1] thermal_sys: Registered thermal governor 'step_wise'
[   10.549829][    T1] thermal_sys: Registered thermal governor 'user_space'
[   10.550432][    T1] thermal_sys: Registered thermal governor 'power_allocator'
[   10.551176][    T1] thermal thermal_zone1: power_allocator: sustainable_power will be estimated
[   10.552628][    T1] thermal thermal_zone2: power_allocator: sustainable_power will be estimated
[   10.553435][    T1] thermal thermal_zone3: power_allocator: sustainable_power will be estimated
[   10.554240][    T1] thermal thermal_zone4: power_allocator: sustainable_power will be estimated
[   10.555048][    T1] thermal thermal_zone5: power_allocator: sustainable_power will be estimated
[   10.555852][    T1] thermal thermal_zone6: power_allocator: sustainable_power will be estimated
[   10.556663][    T1] cpuidle: using governor menu
[   10.557199][    T1] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[   10.557996][    T1] ASID allocator initialised with 65536 entries
[   10.559977][    T1] ramoops: boot-log-0	0x8000@0x0000000000110000
[   10.560538][    T1] ramoops: dmesg-0	0x14000@0x0000000000118000
[   10.561072][    T1] ramoops: dmesg-1	0x14000@0x000000000012c000
[   10.561616][    T1] ramoops: console	0x80000@0x0000000000140000
[   10.562162][    T1] ramoops: pmsg	0x30000@0x00000000001c0000
[   10.562950][    T1] printk: console [ramoops-1] enabled
[   10.563478][    T1] pstore: Registered ramoops as persistent store backend
[   10.564097][    T1] ramoops: using 0xe0000@0x110000, ecc: 0
[   10.608433][    T1] rockchip-gpio fd8a0000.gpio: probed /pinctrl/gpio@fd8a0000
[   10.609274][    T1] rockchip-gpio fec20000.gpio: probed /pinctrl/gpio@fec20000
[   10.610075][    T1] rockchip-gpio fec30000.gpio: probed /pinctrl/gpio@fec30000
[   10.610904][    T1] rockchip-gpio fec40000.gpio: probed /pinctrl/gpio@fec40000
[   10.611724][    T1] rockchip-gpio fec50000.gpio: probed /pinctrl/gpio@fec50000
[   10.612409][    T1] rockchip-pinctrl pinctrl: probed pinctrl
[   10.626257][    T1] fiq_debugger fiq_debugger.0: IRQ fiq not found
[   10.626826][    T1] fiq_debugger fiq_debugger.0: IRQ wakeup not found
[   10.627415][    T1] fiq_debugger_probe: could not install nmi irq handler
[[   10.628067][    T1] printk: console [ttyFIQ0] enabled
   10.628067][    T1] printk: console [ttyFIQ0] enabled
[   10.628965][    T1] printk: bootconsole [uart8250] disabled
[   10.628965][    T1] printk: bootconsole [uart8250] disabled
[   10.629552][    T1] Registered fiq debugger ttyFIQ0
[   10.629857][    T1] vcc5v0_sys: supplied by vcc12v_dcin
[   10.629948][    T1] vcc5v0_usbdcin: supplied by vcc12v_dcin
[   10.630030][    T1] vcc5v0_usb: supplied by vcc5v0_usbdcin
[   10.630122][    T1] vcc_1v1_nldo_s3: supplied by vcc5v0_sys
[   10.630398][    T1] vcc5v0_peripherals: supplied by vcc5v0_usb
[   10.630556][    T1] vbus5v0_typec: supplied by vcc5v0_usb
[   10.630724][    T1] iommu: Default domain type: Translated 
[   10.633324][    T1] SCSI subsystem initialized
[   10.633472][    T1] usbcore: registered new interface driver usbfs
[   10.633486][    T1] usbcore: registered new interface driver hub
[   10.633498][    T1] usbcore: registered new device driver usb
[   10.633627][    T1] mc: Linux media interface: v0.10
[   10.633636][    T1] videodev: Linux video capture interface: v2.00
[   10.633655][    T1] pps_core: LinuxPPS API ver. 1 registered
[   10.633659][    T1] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <[email protected]>
[   10.633664][    T1] PTP clock support registered
[   10.633866][    T1] arm-scmi firmware:scmi: SCMI Notifications - Core Enabled.
[   10.633894][    T1] arm-scmi firmware:scmi: SCMI Protocol v2.0 'rockchip:' Firmware version 0x0
[   10.634976][    T1] Advanced Linux Sound Architecture Driver Initialized.
[   10.635128][    T1] Bluetooth: Core ver 2.22
[   10.635140][    T1] NET: Registered protocol family 31
[   10.635144][    T1] Bluetooth: HCI device and connection manager initialized
[   10.635148][    T1] Bluetooth: HCI socket layer initialized
[   10.635152][    T1] Bluetooth: L2CAP socket layer initialized
[   10.635158][    T1] Bluetooth: SCO socket layer initialized
[   10.636432][    T1] rockchip-cpuinfo cpuinfo: SoC		: 35880000
[   10.636438][    T1] rockchip-cpuinfo cpuinfo: Serial		: 5037ef0c0db30943
[   10.636722][    T1] clocksource: Switched to clocksource arch_sys_counter
[   10.667241][    T1] VFS: Disk quotas dquot_6.6.0
[   10.667274][    T1] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[   10.668082][    T1] NET: Registered protocol family 2
[   10.668204][    T1] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[   10.669206][    T1] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[   10.669259][    T1] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[   10.669425][    T1] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
[   10.669755][    T1] TCP: Hash tables configured (established 32768 bind 32768)
[   10.669799][    T1] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[   10.669866][    T1] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[   10.669967][    T1] NET: Registered protocol family 1
[   10.670212][    T1] PCI: CLS 0 bytes, default 64
[   10.671008][    T1] rockchip-thermal fec00000.tsadc: Missing rockchip,grf property
[   10.671420][    T1] rockchip-thermal fec00000.tsadc: tsadc is probed successfully!
[   10.672067][    T1] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
[   10.674632][    T1] Initialise system trusted keyrings
[   10.674725][    T1] workingset: timestamp_bits=46 max_order=20 bucket_order=0
[   10.676068][    T1] utf8_selftest: All 154 tests passed
[   10.676072][    T1] fuse: init (API version 7.32)
[   10.696180][    T1] Key type asymmetric registered
[   10.696187][    T1] Asymmetric key parser 'x509' registered
[   10.696201][    T1] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 242)
[   10.696205][    T1] io scheduler mq-deadline registered
[   10.696212][    T1] io scheduler kyber registered
[   10.696244][    T1] io scheduler bfq registered
[   10.696606][    T1] Model: AIOT_3588A
[   10.696613][    T1] �[0;32;34m[smdt][drivers/smdt/smdt_param.c +302][smdt_param_probe]�[0mxwliu-------------pdev->name:smdt_param
[   10.696613][    T1] 
[   10.696645][    T1] �[0;32;34m[smdt][drivers/smdt/smdt_param.c +340][smdt_param_probe]�[0m[xwliu][smdt_hardware_id]=[0x=5aa5]
[   10.696645][    T1] 
[   10.696653][    T1] �[0;32;34m[smdt][drivers/smdt/smdt_param.c +354][smdt_param_probe]�[0m[xwliu][disp_main=dsi1]
[   10.696653][    T1] 
[   10.696660][    T1] �[0;32;34m[smdt][drivers/smdt/smdt_param.c +372][smdt_param_probe]�[0m[xwliu][disp_aux3=dsi0]
[   10.696660][    T1] 
[   10.696692][    T1] Model: AIOT_3588A
[   10.696695][    T1] �[0;32;34m[smdt][drivers/smdt/smdt_param.c +302][smdt_param_probe]�[0mxwliu-------------pdev->name:smdt_os_param
[   10.696695][    T1] 
[   10.697160][    T1] rockchip-csi2-dphy-hw fedc0000.csi2-dphy0-hw: csi2 dphy hw probe successfully!
[   10.697221][    T1] rockchip-csi2-dphy-hw fedc8000.csi2-dphy1-hw: csi2 dphy hw probe successfully!
[   10.704944][    T1] rockchip-hdptx-phy-hdmi fed70000.hdmiphy: hdptx phy init success
[   10.707326][    T1] pwm-backlight backlight: supply power not found, using dummy regulator
[   10.813484][    T1] pwm-backlight backlight1: supply power not found, using dummy regulator
[   10.920104][    T1] pwm-backlight backlight2: supply power not found, using dummy regulator
[   11.026975][    T1] iep: Module initialized.
[   11.027011][    T1] mpp_service mpp-srv: 4bc05b89cb8 author: xwliu 2024-01-08 [sync]20240108
[   11.027015][    T1] mpp_service mpp-srv: probe start
[   11.027965][    T1] mpp_vdpu1 fdb51000.avsd-plus: Adding to iommu group 1
[   11.028167][    T1] mpp_vdpu1 fdb51000.avsd-plus: probe device
[   11.028291][    T1] mpp_vdpu1 fdb51000.avsd-plus: reset_group->rw_sem_on=0
[   11.028298][    T1] mpp_vdpu1 fdb51000.avsd-plus: reset_group->rw_sem_on=0
[   11.028398][    T1] mpp_vdpu1 fdb51000.avsd-plus: probing finish
[   11.028741][    T1] mpp_vdpu2 fdb50400.vdpu: Adding to iommu group 1
[   11.028775][    T1] mpp_vdpu2 fdb50400.vdpu: probe device
[   11.028845][    T1] mpp_vdpu2 fdb50400.vdpu: reset_group->rw_sem_on=0
[   11.028849][    T1] mpp_vdpu2 fdb50400.vdpu: reset_group->rw_sem_on=0
[   11.028917][    T1] mpp_vdpu2 fdb50400.vdpu: probing finish
[   11.029053][    T1] mpp_vepu2 jpege-ccu: probing start
[   11.029058][    T1] mpp_vepu2 jpege-ccu: probing finish
[   11.029143][    T1] mpp_vepu2 fdb50000.vepu: Adding to iommu group 1
[   11.029173][    T1] mpp_vepu2 fdb50000.vepu: probing start
[   11.029237][    T1] mpp_vepu2 fdb50000.vepu: reset_group->rw_sem_on=0
[   11.029241][    T1] mpp_vepu2 fdb50000.vepu: reset_group->rw_sem_on=0
[   11.029311][    T1] mpp_vepu2 fdb50000.vepu: probing finish
[   11.029377][    T1] mpp_vepu2 fdba0000.jpege-core: Adding to iommu group 5
[   11.029448][    T1] mpp_vepu2 fdba0000.jpege-core: probing start
[   11.029533][    T1] mpp_vepu2 fdba0000.jpege-core: attach ccu success
[   11.029604][    T1] mpp_vepu2 fdba0000.jpege-core: probing finish
[   11.029659][    T1] mpp_vepu2 fdba4000.jpege-core: Adding to iommu group 6
[   11.029725][    T1] mpp_vepu2 fdba4000.jpege-core: probing start
[   11.029801][    T1] mpp_vepu2 fdba4000.jpege-core: attach ccu success
[   11.029868][    T1] mpp_vepu2 fdba4000.jpege-core: probing finish
[   11.029922][    T1] mpp_vepu2 fdba8000.jpege-core: Adding to iommu group 7
[   11.029987][    T1] mpp_vepu2 fdba8000.jpege-core: probing start
[   11.030066][    T1] mpp_vepu2 fdba8000.jpege-core: attach ccu success
[   11.030143][    T1] mpp_vepu2 fdba8000.jpege-core: probing finish
[   11.030198][    T1] mpp_vepu2 fdbac000.jpege-core: Adding to iommu group 8
[   11.030265][    T1] mpp_vepu2 fdbac000.jpege-core: probing start
[   11.030338][    T1] mpp_vepu2 fdbac000.jpege-core: attach ccu success
[   11.030406][    T1] mpp_vepu2 fdbac000.jpege-core: probing finish
[   11.030630][    T1] mpp-iep2 fdbb0000.iep: Adding to iommu group 9
[   11.030700][    T1] mpp-iep2 fdbb0000.iep: probe device
[   11.030792][    T1] mpp-iep2 fdbb0000.iep: allocate roi buffer failed
[   11.030854][    T1] mpp-iep2 fdbb0000.iep: probing finish
[   11.031013][    T1] mpp_jpgdec fdb90000.jpegd: Adding to iommu group 4
[   11.031144][    T1] mpp_jpgdec fdb90000.jpegd: probe device
[   11.031292][    T1] mpp_jpgdec fdb90000.jpegd: probing finish
[   11.031598][    T1] mpp_rkvdec2 fdc30000.rkvdec-ccu: rkvdec-ccu, probing start
[   11.031645][    T1] mpp_rkvdec2 fdc30000.rkvdec-ccu: ccu-mode: 1
[   11.031649][    T1] mpp_rkvdec2 fdc30000.rkvdec-ccu: probing finish
[   11.031725][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: Adding to iommu group 12
[   11.031929][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: rkvdec-core, probing start
[   11.032018][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: shared_niu_a is not found!
[   11.032022][    T1] rkvdec2_init:1022: No niu aclk reset resource define
[   11.032026][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: shared_niu_h is not found!
[   11.032029][    T1] rkvdec2_init:1025: No niu hclk reset resource define
[   11.032044][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: no regulator, devfreq is disabled
[   11.032093][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: core_mask=00010001
[   11.032098][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: attach ccu as core 0
[   11.032311][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: sram_start 0x00000000ff001000
[   11.032315][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: rcb_iova 0x00000000fff00000
[   11.032318][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: sram_size 491520
[   11.032322][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: rcb_size 1048576
[   11.032327][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: min_width 512
[   11.032332][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: rcb_info_count 20
[   11.032336][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: [136, 24576]
[   11.032340][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: [137, 49152]
[   11.032343][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: [141, 90112]
[   11.032347][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: [140, 49152]
[   11.032350][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: [139, 180224]
[   11.032354][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: [133, 49152]
[   11.032357][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: [134, 8192]
[   11.032361][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: [135, 4352]
[   11.032364][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: [138, 13056]
[   11.032368][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: [142, 291584]
[   11.032392][    T1] mpp_rkvdec2 fdc38100.rkvdec-core: probing finish
[   11.032461][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: Adding to iommu group 13
[   11.032640][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: rkvdec-core, probing start
[   11.032729][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: shared_niu_a is not found!
[   11.032733][    T1] rkvdec2_init:1022: No niu aclk reset resource define
[   11.032737][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: shared_niu_h is not found!
[   11.032740][    T1] rkvdec2_init:1025: No niu hclk reset resource define
[   11.032755][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: no regulator, devfreq is disabled
[   11.032789][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: core_mask=00020002
[   11.032805][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: attach ccu as core 1
[   11.033040][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: sram_start 0x00000000ff079000
[   11.033044][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: rcb_iova 0x00000000ffe00000
[   11.033048][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: sram_size 487424
[   11.033051][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: rcb_size 1048576
[   11.033056][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: min_width 512
[   11.033062][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: rcb_info_count 20
[   11.033065][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: [136, 24576]
[   11.033069][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: [137, 49152]
[   11.033072][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: [141, 90112]
[   11.033076][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: [140, 49152]
[   11.033079][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: [139, 180224]
[   11.033083][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: [133, 49152]
[   11.033086][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: [134, 8192]
[   11.033090][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: [135, 4352]
[   11.033093][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: [138, 13056]
[   11.033097][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: [142, 291584]
[   11.033121][    T1] mpp_rkvdec2 fdc48100.rkvdec-core: probing finish
[   11.033341][    T1] mpp_rkvenc2 rkvenc-ccu: probing start
[   11.033346][    T1] mpp_rkvenc2 rkvenc-ccu: probing finish
[   11.033831][    T1] mpp_av1dec: Adding child /av1d@fdc70000
[   11.034012][    T1] mpp_av1dec: register device av1d-master
[   11.034026][    T1] mpp_av1dec av1d-master: av1_iommu_of_xlate,784
[   11.034043][    T1] av1_iommu_probe_device,737, consumer : av1d-master, supplier : fdca0000.iommu
[   11.034049][    T1] mpp_av1dec av1d-master: Adding to iommu group 17
[   11.034241][    T1] mpp_av1dec av1d-master: probing start
[   11.034415][    T1] mpp_av1dec av1d-master: probing finish
[   11.034552][    T1] mpp_service mpp-srv: probe success
[   11.044269][    T1] dma-pl330 fea10000.dma-controller: Loaded driver for PL330 DMAC-241330
[   11.044277][    T1] dma-pl330 fea10000.dma-controller: 	DBUFF-128x8bytes Num_Chans-8 Num_Peri-32 Num_Events-16
[   11.044936][    T1] dma-pl330 fea30000.dma-controller: Loaded driver for PL330 DMAC-241330
[   11.044942][    T1] dma-pl330 fea30000.dma-controller: 	DBUFF-128x8bytes Num_Chans-8 Num_Peri-32 Num_Events-16
[   11.045611][    T1] dma-pl330 fed10000.dma-controller: Loaded driver for PL330 DMAC-241330
[   11.045618][    T1] dma-pl330 fed10000.dma-controller: 	DBUFF-128x8bytes Num_Chans-8 Num_Peri-32 Num_Events-16
[   11.045903][    T1] rockchip-pvtm fda40000.pvtm: pvtm@0 probed
[   11.045945][    T1] rockchip-pvtm fda50000.pvtm: pvtm@1 probed
[   11.045987][    T1] rockchip-pvtm fda60000.pvtm: pvtm@2 probed
[   11.046024][    T1] rockchip-pvtm fdaf0000.pvtm: pvtm@3 probed
[   11.046059][    T1] rockchip-pvtm fdb30000.pvtm: pvtm@4 probed
[   11.046469][    T1] rockchip-system-monitor rockchip-system-monitor: system monitor probe
[   11.047206][    T1] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
[   11.047655][    T1] �[0;32;34m[smdt][drivers/smdt/smdtio.c +813][smdt_rs485_init]�[0mxwliu port->line=1
[   11.047665][    T1] �[0;32;34m[smdt][drivers/smdt/smdtio.c +814][smdt_rs485_init]�[0mxwliu rs485_port=8
[   11.047675][    T1] feb40000.serial: ttySMT1 at MMIO 0xfeb40000 (irq = 99, base_baud = 1500000) is a 16550A
[   11.047884][    T1] �[0;32;34m[smdt][drivers/smdt/smdtio.c +813][smdt_rs485_init]�[0mxwliu port->line=4
[   11.047893][    T1] �[0;32;34m[smdt][drivers/smdt/smdtio.c +814][smdt_rs485_init]�[0mxwliu rs485_port=8
[   11.047902][    T1] feb70000.serial: ttySMT4 at MMIO 0xfeb70000 (irq = 100, base_baud = 1500000) is a 16550A
[   11.048076][    T1] �[0;32;34m[smdt][drivers/smdt/smdtio.c +813][smdt_rs485_init]�[0mxwliu port->line=6
[   11.048084][    T1] �[0;32;34m[smdt][drivers/smdt/smdtio.c +814][smdt_rs485_init]�[0mxwliu rs485_port=8
[   11.048092][    T1] feb90000.serial: ttySMT6 at MMIO 0xfeb90000 (irq = 101, base_baud = 1500000) is a 16550A
[   11.048283][    T1] �[0;32;34m[smdt][drivers/smdt/smdtio.c +813][smdt_rs485_init]�[0mxwliu port->line=7
[   11.048290][    T1] �[0;32;34m[smdt][drivers/smdt/smdtio.c +814][smdt_rs485_init]�[0mxwliu rs485_port=8
[   11.048299][    T1] feba0000.serial: ttySMT7 at MMIO 0xfeba0000 (irq = 102, base_baud = 1500000) is a 16550A
[   11.048472][    T1] �[0;32;34m[smdt][drivers/smdt/smdtio.c +813][smdt_rs485_init]�[0mxwliu port->line=8
[   11.048480][    T1] �[0;32;34m[smdt][drivers/smdt/smdtio.c +814][smdt_rs485_init]�[0mxwliu rs485_port=8
[   11.048488][    T1] febb0000.serial: ttySMT8 at MMIO 0xfebb0000 (irq = 103, base_baud = 1500000) is a 16550A
[   11.048681][    T1] �[0;32;34m[smdt][drivers/smdt/smdtio.c +813][smdt_rs485_init]�[0mxwliu port->line=9
[   11.048689][    T1] �[0;32;34m[smdt][drivers/smdt/smdtio.c +814][smdt_rs485_init]�[0mxwliu rs485_port=8
[   11.048697][    T1] febc0000.serial: ttySMT9 at MMIO 0xfebc0000 (irq = 104, base_baud = 1500000) is a 16550A
[   11.049223][  T167] random: crng init done
[   11.050010][    T1] rockchip-vop2 fdd90000.vop: Adding to iommu group 16
[   11.061141][    T1] panel-simple-dsi fde20000.dsi.0: failed to get power regulator: -517
[   11.061231][    T1] panel-simple-dsi fde30000.dsi.0: failed to get power regulator: -517
[   11.066099][    T1] brd: module loaded
[   11.071241][    T1] loop: module loaded
[   11.071416][    T1] zram: Added device: zram0
[   11.071828][    T1] system_heap: orders[0] = 6
[   11.071833][    T1] system_heap: orders[1] = 4
[   11.071837][    T1] system_heap: orders[2] = 0
[   11.072285][    T1] SCSI Media Changer driver v0.25 
[   11.072936][    T1] ahci fe210000.sata: supply ahci not found, using dummy regulator
[   11.072987][    T1] ahci fe210000.sata: supply phy not found, using dummy regulator
[   11.073038][    T1] ahci fe210000.sata: supply target not found, using dummy regulator
[   11.073107][    T1] ahci fe210000.sata: forcing port_map 0x0 -> 0x1
[   11.073126][    T1] ahci fe210000.sata: AHCI 0001.0300 32 slots 1 ports 6 Gbps 0x1 impl platform mode
[   11.073134][    T1] ahci fe210000.sata: flags: ncq sntf pm led clo only pmp fbs pio slum part ccc apst 
[   11.073143][    T1] ahci fe210000.sata: port 0 can do FBS, forcing FBSCP
[   11.073545][    T1] scsi host0: ahci
[   11.073652][    T1] ata1: SATA max UDMA/133 mmio [mem 0xfe210000-0xfe210fff] port 0x100 irq 85
[   11.074615][    T1] rockchip-spi feb20000.spi: no high_speed pinctrl state
[   11.075757][    T1] rk806 spi2.0: chip id: RK806,ver:0x2, 0x1
[   11.075968][    T1] rk806 spi2.0: ON: 0x40 OFF:0x0
[   11.077727][    T1] vdd_gpu_s0: supplied by vcc5v0_sys
[   11.078644][    T1] vdd_cpu_lit_s0: supplied by vcc5v0_sys
[   11.079141][    T1] vdd_log_s0: supplied by vcc5v0_sys
[   11.079580][    T1] vdd_vdenc_s0: supplied by vcc5v0_sys
[   11.080070][    T1] vdd_ddr_s0: supplied by vcc5v0_sys
[   11.080342][    T1] vdd2_ddr_s3: supplied by vcc5v0_sys
[   11.080828][    T1] vdd_2v0_pldo_s3: supplied by vcc5v0_sys
[   11.081218][    T1] vcc_3v3_s3: supplied by vcc5v0_sys
[   11.081587][    T1] vddq_ddr_s0: supplied by vcc5v0_sys
[   11.082114][    T1] vcc_1v8_s3: supplied by vcc5v0_sys
[   11.082573][    T1] vdd_0v75_s3: supplied by vcc_1v1_nldo_s3
[   11.083022][    T1] vdd_ddr_pll_s0: supplied by vcc_1v1_nldo_s3
[   11.083401][    T1] avdd_0v75_s0: supplied by vcc_1v1_nldo_s3
[   11.083783][    T1] vdd_0v85_s0: supplied by vcc_1v1_nldo_s3
[   11.084165][    T1] vdd_0v75_s0: supplied by vcc_1v1_nldo_s3
[   11.084621][    T1] avcc_1v8_s0: supplied by vdd_2v0_pldo_s3
[   11.085116][    T1] vcc_1v8_s0: supplied by vdd_2v0_pldo_s3
[   11.085693][    T1] avdd_1v2_s0: supplied by vdd_2v0_pldo_s3
[   11.086125][    T1] vcc_3v3_s0: supplied by vcc5v0_sys
[   11.086555][    T1] vccio_sd_s0: supplied by vcc5v0_sys
[   11.087005][    T1] pldo6_s3: supplied by vcc5v0_sys
[   11.087196][    T1] rk806 spi2.0: no sleep-setting state
[   11.087202][    T1] rk806 spi2.0: no reset-setting pinctrl state
[   11.087206][    T1] rk806 spi2.0: no dvs-setting pinctrl state
[   11.088981][    T1] rockchip-spi feb20000.spi: probed, poll=0, rsd=0
[   11.089793][    T1] tun: Universal TUN/TAP device driver, 1.6
[   11.089907][    T1] CAN device driver interface
[   11.090836][    T1] rk_gmac-dwmac fe1c0000.ethernet: IRQ eth_lpi not found
[   11.090974][    T1] rk_gmac-dwmac fe1c0000.ethernet: no regulator found
[   11.090980][    T1] rk_gmac-dwmac fe1c0000.ethernet: clock input or output? (output).
[   11.090985][    T1] rk_gmac-dwmac fe1c0000.ethernet: TX delay(0x43).
[   11.090990][    T1] rk_gmac-dwmac fe1c0000.ethernet: Can not read property: rx_delay.
[   11.090995][    T1] rk_gmac-dwmac fe1c0000.ethernet: set rx_delay to 0xffffffff
[   11.091009][    T1] rk_gmac-dwmac fe1c0000.ethernet: integrated PHY? (no).
[   11.091014][    T1] rk_gmac-dwmac fe1c0000.ethernet: cannot get clock mac_clk_rx
[   11.091020][    T1] rk_gmac-dwmac fe1c0000.ethernet: cannot get clock mac_clk_tx
[   11.091030][    T1] rk_gmac-dwmac fe1c0000.ethernet: cannot get clock clk_mac_speed
[   11.091246][    T1] rk_gmac-dwmac fe1c0000.ethernet: init for RGMII_RXID
[   11.091356][    T1] rk_gmac-dwmac fe1c0000.ethernet: User ID: 0x30, Synopsys ID: 0x51
[   11.091361][    T1] rk_gmac-dwmac fe1c0000.ethernet: 	DWMAC4/5
[   11.091367][    T1] rk_gmac-dwmac fe1c0000.ethernet: DMA HW capability register supported
[   11.091372][    T1] rk_gmac-dwmac fe1c0000.ethernet: RX Checksum Offload Engine supported
[   11.091376][    T1] rk_gmac-dwmac fe1c0000.ethernet: TX Checksum insertion supported
[   11.091380][    T1] rk_gmac-dwmac fe1c0000.ethernet: Wake-Up On Lan supported
[   11.091408][    T1] rk_gmac-dwmac fe1c0000.ethernet: TSO supported
[   11.091413][    T1] rk_gmac-dwmac fe1c0000.ethernet: Enable RX Mitigation via HW Watchdog Timer
[   11.091419][    T1] rk_gmac-dwmac fe1c0000.ethernet: rk_get_eth_addr: rk_vendor_read eth mac address failed (-1)
[   11.091426][    T1] rk_gmac-dwmac fe1c0000.ethernet: rk_get_eth_addr: generate random eth mac address: 12:7a:b4:7a:8c:58
[   11.091431][    T1] rk_gmac-dwmac fe1c0000.ethernet: rk_get_eth_addr: rk_vendor_write eth mac address failed (-1)
[   11.091436][    T1] rk_gmac-dwmac fe1c0000.ethernet: rk_get_eth_addr: id: 1 rk_vendor_read eth mac address failed (-1)
[   11.091440][    T1] rk_gmac-dwmac fe1c0000.ethernet: rk_get_eth_addr: mac address: 12:7a:b4:7a:8c:58
[   11.091445][    T1] rk_gmac-dwmac fe1c0000.ethernet: device MAC address 12:7a:b4:7a:8c:58
[   11.091450][    T1] rk_gmac-dwmac fe1c0000.ethernet: Enabled Flow TC (entries=2)
[   11.091454][    T1] rk_gmac-dwmac fe1c0000.ethernet: TSO feature enabled
[   11.091459][    T1] rk_gmac-dwmac fe1c0000.ethernet: Using 32 bits DMA width
[   11.224178][    T1] PPP generic driver version 2.4.2
[   11.224297][    T1] PPP BSD Compression module registered
[   11.224301][    T1] PPP Deflate Compression module registered
[   11.224314][    T1] PPP MPPE Compression module registered
[   11.224318][    T1] NET: Registered protocol family 24
[   11.224329][    T1] PPTP driver version 0.8.5
[   11.224499][    T1] usbcore: registered new interface driver catc
[   11.224513][    T1] usbcore: registered new interface driver kaweth
[   11.224517][    T1] pegasus: v0.9.3 (2013/04/25), Pegasus/Pegasus II USB Ethernet driver
[   11.224530][    T1] usbcore: registered new interface driver pegasus
[   11.224543][    T1] usbcore: registered new interface driver rtl8150
[   11.224559][    T1] usbcore: registered new interface driver r8152
[   11.224564][    T1] hso: drivers/net/usb/hso.c: Option Wireless
[   11.224584][    T1] usbcore: registered new interface driver hso
[   11.224600][    T1] usbcore: registered new interface driver asix
[   11.224613][    T1] usbcore: registered new interface driver ax88179_178a
[   11.224628][    T1] usbcore: registered new interface driver usb_ch397
[   11.224641][    T1] usbcore: registered new interface driver cdc_ether
[   11.224655][    T1] usbcore: registered new interface driver cdc_eem
[   11.224667][    T1] usbcore: registered new interface driver dm9601
[   11.224683][    T1] usbcore: registered new interface driver smsc75xx
[   11.224699][    T1] usbcore: registered new interface driver smsc95xx
[   11.224712][    T1] usbcore: registered new interface driver gl620a
[   11.224725][    T1] usbcore: registered new interface driver net1080
[   11.224738][    T1] usbcore: registered new interface driver plusb
[   11.224751][    T1] usbcore: registered new interface driver rndis_host
[   11.224765][    T1] usbcore: registered new interface driver cdc_subset
[   11.224778][    T1] usbcore: registered new interface driver zaurus
[   11.224792][    T1] usbcore: registered new interface driver MOSCHIP usb-ethernet driver
[   11.224807][    T1] usbcore: registered new interface driver int51x1
[   11.224819][    T1] usbcore: registered new interface driver kalmia
[   11.224832][    T1] usbcore: registered new interface driver ipheth
[   11.224846][    T1] usbcore: registered new interface driver sierra_net
[   11.224859][    T1] usbcore: registered new interface driver cx82310_eth
[   11.224875][    T1] usbcore: registered new interface driver cdc_ncm
[   11.224891][    T1] usbcore: registered new interface driver qmi_wwan_q
[   11.224905][    T1] usbcore: registered new interface driver cdc_mbim
[   11.237348][    T1] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[   11.237355][    T1] ehci-pci: EHCI PCI platform driver
[   11.237386][    T1] ehci-platform: EHCI generic platform driver
[   11.239567][    T1] ehci-platform fc800000.usb: EHCI Host Controller
[   11.239630][    T1] ehci-platform fc800000.usb: new USB bus registered, assigned bus number 1
[   11.239676][    T1] ehci-platform fc800000.usb: irq 20, io mem 0xfc800000
[   11.253392][    T1] ehci-platform fc800000.usb: USB 2.0 started, EHCI 1.00
[   11.253455][    T1] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[   11.253460][    T1] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   11.253465][    T1] usb usb1: Product: EHCI Host Controller
[   11.253470][    T1] usb usb1: Manufacturer: Linux 5.10.160 ehci_hcd
[   11.253474][    T1] usb usb1: SerialNumber: fc800000.usb
[   11.253658][    T1] hub 1-0:1.0: USB hub found
[   11.253671][    T1] hub 1-0:1.0: 1 port detected
[   11.255957][    T1] ehci-platform fc880000.usb: EHCI Host Controller
[   11.256021][    T1] ehci-platform fc880000.usb: new USB bus registered, assigned bus number 2
[   11.256068][    T1] ehci-platform fc880000.usb: irq 22, io mem 0xfc880000
[   11.266731][    T1] ehci-platform fc880000.usb: USB 2.0 started, EHCI 1.00
[   11.266788][    T1] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[   11.266793][    T1] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   11.266797][    T1] usb usb2: Product: EHCI Host Controller
[   11.266802][    T1] usb usb2: Manufacturer: Linux 5.10.160 ehci_hcd
[   11.266806][    T1] usb usb2: SerialNumber: fc880000.usb
[   11.266969][    T1] hub 2-0:1.0: USB hub found
[   11.266982][    T1] hub 2-0:1.0: 1 port detected
[   11.267335][    T1] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[   11.267345][    T1] ohci-platform: OHCI generic platform driver
[   11.267470][    T1] ohci-platform fc840000.usb: Generic Platform OHCI controller
[   11.267529][    T1] ohci-platform fc840000.usb: new USB bus registered, assigned bus number 3
[   11.267572][    T1] ohci-platform fc840000.usb: irq 21, io mem 0xfc840000
[   11.327459][    T1] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.10
[   11.327466][    T1] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   11.327471][    T1] usb usb3: Product: Generic Platform OHCI controller
[   11.327476][    T1] usb usb3: Manufacturer: Linux 5.10.160 ohci_hcd
[   11.327480][    T1] usb usb3: SerialNumber: fc840000.usb
[   11.327642][    T1] hub 3-0:1.0: USB hub found
[   11.327657][    T1] hub 3-0:1.0: 1 port detected
[   11.327854][    T1] ohci-platform fc8c0000.usb: Generic Platform OHCI controller
[   11.327910][    T1] ohci-platform fc8c0000.usb: new USB bus registered, assigned bus number 4
[   11.327945][    T1] ohci-platform fc8c0000.usb: irq 23, io mem 0xfc8c0000
[   11.386411][  T178] ata1: SATA link down (SStatus 0 SControl 300)
[   11.390789][    T1] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001, bcdDevice= 5.10
[   11.390797][    T1] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   11.390801][    T1] usb usb4: Product: Generic Platform OHCI controller
[   11.390806][    T1] usb usb4: Manufacturer: Linux 5.10.160 ohci_hcd
[   11.390810][    T1] usb usb4: SerialNumber: fc8c0000.usb
[   11.390969][    T1] hub 4-0:1.0: USB hub found
[   11.390983][    T1] hub 4-0:1.0: 1 port detected
[   11.391500][    T1] xhci-hcd xhci-hcd.3.auto: xHCI Host Controller
[   11.391560][    T1] xhci-hcd xhci-hcd.3.auto: new USB bus registered, assigned bus number 5
[   11.391626][    T1] xhci-hcd xhci-hcd.3.auto: hcc params 0x0220fe64 hci version 0x110 quirks 0x0000200002010010
[   11.391647][    T1] xhci-hcd xhci-hcd.3.auto: irq 141, io mem 0xfcd00000
[   11.391757][    T1] usb usb5: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[   11.391762][    T1] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   11.391766][    T1] usb usb5: Product: xHCI Host Controller
[   11.391771][    T1] usb usb5: Manufacturer: Linux 5.10.160 xhci-hcd
[   11.391775][    T1] usb usb5: SerialNumber: xhci-hcd.3.auto
[   11.391937][    T1] hub 5-0:1.0: USB hub found
[   11.391950][    T1] hub 5-0:1.0: 1 port detected
[   11.392055][    T1] xhci-hcd xhci-hcd.3.auto: xHCI Host Controller
[   11.392105][    T1] xhci-hcd xhci-hcd.3.auto: new USB bus registered, assigned bus number 6
[   11.392112][    T1] xhci-hcd xhci-hcd.3.auto: Host supports USB 3.0 SuperSpeed
[   11.392135][    T1] usb usb6: We don't know the algorithms for LPM for this host, disabling LPM.
[   11.392173][    T1] usb usb6: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.10
[   11.392178][    T1] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   11.392182][    T1] usb usb6: Product: xHCI Host Controller
[   11.392186][    T1] usb usb6: Manufacturer: Linux 5.10.160 xhci-hcd
[   11.392190][    T1] usb usb6: SerialNumber: xhci-hcd.3.auto
[   11.392333][    T1] hub 6-0:1.0: USB hub found
[   11.392344][    T1] hub 6-0:1.0: 1 port detected
[   11.392511][    T1] phy phy-fd5d4000.syscon:[email protected]: illegal mode
[   11.392516][    T1] xhci-hcd xhci-hcd.4.auto: xHCI Host Controller
[   11.392571][    T1] xhci-hcd xhci-hcd.4.auto: new USB bus registered, assigned bus number 7
[   11.392649][    T1] xhci-hcd xhci-hcd.4.auto: hcc params 0x0220fe64 hci version 0x110 quirks 0x0000200002010010
[   11.392666][    T1] xhci-hcd xhci-hcd.4.auto: irq 142, io mem 0xfc400000
[   11.392775][    T1] usb usb7: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 5.10
[   11.392780][    T1] usb usb7: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   11.392784][    T1] usb usb7: Product: xHCI Host Controller
[   11.392788][    T1] usb usb7: Manufacturer: Linux 5.10.160 xhci-hcd
[   11.392793][    T1] usb usb7: SerialNumber: xhci-hcd.4.auto
[   11.392937][    T1] hub 7-0:1.0: USB hub found
[   11.392949][    T1] hub 7-0:1.0: 1 port detected
[   11.393046][    T1] xhci-hcd xhci-hcd.4.auto: xHCI Host Controller
[   11.393095][    T1] xhci-hcd xhci-hcd.4.auto: new USB bus registered, assigned bus number 8
[   11.393102][    T1] xhci-hcd xhci-hcd.4.auto: Host supports USB 3.0 SuperSpeed
[   11.393124][    T1] usb usb8: We don't know the algorithms for LPM for this host, disabling LPM.
[   11.393160][    T1] usb usb8: New USB device found, idVendor=1d6b, idProduct=0003, bcdDevice= 5.10
[   11.393164][    T1] usb usb8: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[   11.393169][    T1] usb usb8: Product: xHCI Host Controller
[   11.393173][    T1] usb usb8: Manufacturer: Linux 5.10.160 xhci-hcd
[   11.393177][    T1] usb usb8: SerialNumber: xhci-hcd.4.auto
[   11.393316][    T1] hub 8-0:1.0: USB hub found
[   11.393327][    T1] hub 8-0:1.0: 1 port detected
[   11.393490][    T1] usbcore: registered new interface driver cdc_acm
[   11.393494][    T1] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[   11.393516][    T1] usbcore: registered new interface driver usblp
[   11.393533][    T1] usbcore: registered new interface driver cdc_wdm
[   11.393696][    T1] usbcore: registered new interface driver uas
[   11.393740][    T1] usbcore: registered new interface driver usb-storage
[   11.393756][    T1] usbcore: registered new interface driver ums-alauda
[   11.393770][    T1] usbcore: registered new interface driver ums-cypress
[   11.393785][    T1] usbcore: registered new interface driver ums-datafab
[   11.393800][    T1] usbcore: registered new interface driver ums_eneub6250
[   11.393814][    T1] usbcore: registered new interface driver ums-freecom
[   11.393831][    T1] usbcore: registered new interface driver ums-isd200
[   11.393845][    T1] usbcore: registered new interface driver ums-jumpshot
[   11.393860][    T1] usbcore: registered new interface driver ums-karma
[   11.393875][    T1] usbcore: registered new interface driver ums-onetouch
[   11.393890][    T1] usbcore: registered new interface driver ums-sddr09
[   11.393904][    T1] usbcore: registered new interface driver ums-sddr55
[   11.393919][    T1] usbcore: registered new interface driver ums-usbat
[   11.393950][    T1] usbcore: registered new interface driver usbserial_generic
[   11.393959][    T1] usbserial: USB Serial support registered for generic
[   11.393977][    T1] usbcore: registered new interface driver ch341
[   11.393985][    T1] usbserial: USB Serial support registered for ch341-uart
[   11.394004][    T1] usbcore: registered new interface driver cp210x
[   11.394012][    T1] usbserial: USB Serial support registered for cp210x
[   11.394040][    T1] usbcore: registered new interface driver ftdi_sio
[   11.394049][    T1] usbserial: USB Serial support registered for FTDI USB Serial Device
[   11.394114][    T1] usbcore: registered new interface driver option
[   11.394123][    T1] usbserial: USB Serial support registered for GSM modem (1-port)
[   11.394217][    T1] usbcore: registered new interface driver pl2303
[   11.394226][    T1] usbserial: USB Serial support registered for pl2303
[   11.394250][    T1] usbcore: registered new interface driver cdc_xr_usb_serial
[   11.394254][    T1] xr_usb_serial_common: Exar/MxL USB UART (serial port) driver version 1D
[   11.394273][    T1] usbcore: registered new interface driver usb_ch9344
[   11.394276][    T1] ch9344: USB serial driver for ch9344/ch348.
[   11.394280][    T1] ch9344: V1.9 On 2022.09
[   11.394295][    T1] usbcore: registered new interface driver trancevibrator
[   11.394601][    T1] usbcore: registered new interface driver xpad
[   11.394621][    T1] usbcore: registered new interface driver usb_acecad
[   11.394637][    T1] usbcore: registered new interface driver aiptek
[   11.394653][    T1] usbcore: registered new interface driver gtco
[   11.394669][    T1] usbcore: registered new interface driver hanwang
[   11.394685][    T1] usbcore: registered new interface driver kbtab
[   11.394828][    T1] [ILITEK][MSG][ilitek_touch_driver_init:333] add touch device driver i2c driver.
[   11.394987][    T1] .. rk pwm remotectl v2.0 init
[   11.395076][    T1] input: fd8b0030.pwm as /devices/platform/fd8b0030.pwm/input/input0
[   11.395192][    T1] remotectl-pwm fd8b0030.pwm: pwm version is 0x2130000
[   11.395212][    T1] remotectl-pwm fd8b0030.pwm: Controller support pwrkey capture
[   11.396470][    T1] input: rk805 pwrkey as /devices/platform/feb20000.spi/spi_master/spi2/spi2.0/rk805-pwrkey.1.auto/input/input1
[   11.396657][    T1] i2c /dev entries driver
[   11.400016][    T1] vdd_cpu_big0_s0: supplied by vcc5v0_sys
[   11.407165][    T1] vdd_cpu_big1_s0: supplied by vcc5v0_sys
[   11.414732][    T1] vdd_npu_s0: supplied by vcc5v0_sys
[   11.420407][    T1] goodix_ts_probe() start
[   11.506724][  T172] usb 1-1: new high-speed USB device number 2 using ehci-platform
[   11.574277][    T1] <<-GTP-ERROR->> I2C Read: 0x8000, 10 bytes failed, errcode: -6! Process reset.
[   11.653953][  T172] usb 1-1: New USB device found, idVendor=1a40, idProduct=0201, bcdDevice= 1.00
[   11.653961][  T172] usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[   11.653966][  T172] usb 1-1: Product: USB 2.0 Hub [MTT]
[   11.654249][  T172] hub 1-1:1.0: USB hub found
[   11.654326][  T172] hub 1-1:1.0: 7 ports detected
[   11.670756][    T1] <<-GTP-ERROR->> I2C Read: 0x8000, 10 bytes failed, errcode: -6! Process reset.
[   11.767421][    T1] <<-GTP-ERROR->> I2C Read: 0x8000, 10 bytes failed, errcode: -6! Process reset.
[   11.870796][    T1] <<-GTP-ERROR->> I2C Read: 0x8000, 10 bytes failed, errcode: -6! Process reset.
[   11.967473][    T1] <<-GTP-ERROR->> I2C Read: 0x8000, 10 bytes failed, errcode: -6! Process reset.
[   12.064136][    T1] <<-GTP-ERROR->> I2C Read: 0x8000, 10 bytes failed, errcode: -6! Process reset.
[   12.160075][    T1] <<-GTP-ERROR->> I2C read 0x8000, 10 bytes, double check failed!
[   12.160090][    T1] <<-GTP-ERROR->> Failed to get chip-type, set chip type default: GOODIX_GT9
[   12.160823][    T1] <<-GTP-ERROR->> I2C Read: 0x8047, 1 bytes failed, errcode: -6! Process reset.
[   12.256735][    T1] <<-GTP-ERROR->> GTP i2c test failed time 1.
[   12.274153][    T1] <<-GTP-ERROR->> I2C Read: 0x8047, 1 bytes failed, errcode: -6! Process reset.
[   12.370076][    T1] <<-GTP-ERROR->> GTP i2c test failed time 2.
[   12.387484][    T1] <<-GTP-ERROR->> I2C Read: 0x8047, 1 bytes failed, errcode: -6! Process reset.
[   12.483408][    T1] <<-GTP-ERROR->> GTP i2c test failed time 3.
[   12.500814][    T1] <<-GTP-ERROR->> I2C Read: 0x8047, 1 bytes failed, errcode: -6! Process reset.
[   12.596741][    T1] <<-GTP-ERROR->> GTP i2c test failed time 4.
[   12.614150][    T1] <<-GTP-ERROR->> I2C Read: 0x8047, 1 bytes failed, errcode: -6! Process reset.
[   12.624540][    T7] Freeing initrd memory: 81084K
[   12.710077][    T1] <<-GTP-ERROR->> GTP i2c test failed time 5.
[   12.726742][    T1] <goodix_ts_probe>_2797    I2C communication ERROR!
[   12.726759][    T1]    <goodix_ts_probe>_2872  prob error !!!!!!!!!!!!!!!
[   12.727268][    T1] <DEBUG>xrm117x_probe_device ret=-6
[   12.728647][    T1] rtc-hym8563 6-0051: could not init device, -6
[   12.729921][    T1] �[0;32;34m[smdt][drivers/smdt/nca9555.c +146][nca9555_probe]�[0mxwliu nca9555 probe start!
[   12.737379][    T1] �[0;32;34m[smdt][drivers/smdt/nca9555.c +162][nca9555_probe]�[0mxwliu nca9555 probe success!
[   12.737892][    T1] �[0;33m[smdt][drivers/smdt/mcuinf.c +1273][mcuinterface_probe]�[0m### [smdt]:MCU check Failed! check_data =0x0
[   12.738066][    T1] �[0;33m[smdt][drivers/smdt/mcuinf.c +1273][mcuinterface_probe]�[0m### [smdt]:MCU check Failed! check_data =0x0

This is the official Android system boot log.

@ghhccghk
Copy link
Author

ghhccghk commented Dec 3, 2025

NCA 9555 is work operational.

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

Labels

02 Milestone: First quarter release 11 Milestone: Fourth quarter release 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.

3 participants