summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-11-03Merge patch series "Remove usage of CMD_BOOTx from SPL code"Tom Rini
Anshul Dalal <[email protected]> says: Hi all, We currently make use of CMD_BOOTI and CMD_BOOTZ in the SPL boot flow in falcon mode, this isn't correct since all CMD_* configs are only meant for U-Boot proper and not the SPL. Therefore this patch set adds new LIB_BOOT[IMZ] configs that allow for more granular selection of their respective compilation targets. Additionally, this also allows us to more easily disable support for raw images from secure falcon mode (SPL_OS_BOOT_SECURE) by doing the following: config LIB_SPL_BOOTI ... depends on SPL_OS_BOOT && !SPL_OS_BOOT_SECURE ... Link: https://lore.kernel.org/r/[email protected]
2025-11-03doc: develop: add docs for secure falcon modeAnshul Dalal
This patch documents the newly added SPL_OS_BOOT_SECURE option that enables authenticated boot in falcon mode. The document provides steps for using secure falcon mode on ARM64 taking TI's AM62x EVM as an example. Signed-off-by: Anshul Dalal <[email protected]>
2025-11-03arm: mach-k3: enable support for falcon modeAnshul Dalal
With CONFIG_SPL_OS_BOOT enabled, U-Boot checks for the return value of spl_start_uboot to select between falcon or the regular boot flow. Where a return value of 0 means 'boot to linux'. This patch overrides the weak definition form common/spl/spl.c to allow K3 devices to use falcon mode with SPL_OS_BOOT_SECURE enabled for the A-Core SPL. Signed-off-by: Anshul Dalal <[email protected]>
2025-11-03board: ti: common: Kconfig: add CMD_SPLAnshul Dalal
Add CMD_SPL to list of configs implied by TI_COMMON_CMD_OPTIONS. This allows the use of 'spl export'[1] command for preparing a device-tree for falcon boot. [1]: https://docs.u-boot.org/en/v2025.10/develop/falcon.html#using-spl-command Signed-off-by: Anshul Dalal <[email protected]>
2025-11-03spl: Kconfig: allow falcon mode for TI secure devicesAnshul Dalal
Falcon mode was disabled for TI_SECURE_DEVICE at commit e95b9b4437bc ("ti_armv7_common: Disable Falcon Mode on HS devices") for older 32-bit HS devices and but can now be enabled with the addition of OS_BOOT_SECURE. For secure boot, the kernel with x509 headers can be packaged in a fit container (fitImage) signed with TIFS keys for authentication. Signed-off-by: Anshul Dalal <[email protected]>
2025-11-03Merge patch series "Remove usage of CMD_BOOTx from SPL code"Tom Rini
Anshul Dalal <[email protected]> says: Hi all, We currently make use of CMD_BOOTI and CMD_BOOTZ in the SPL boot flow in falcon mode, this isn't correct since all CMD_* configs are only meant for U-Boot proper and not the SPL. Therefore this patch set adds new LIB_BOOT[IMZ] configs that allow for more granular selection of their respective compilation targets. Additionally, this also allows us to more easily disable support for raw images from secure falcon mode (SPL_OS_BOOT_SECURE) by doing the following: config LIB_SPL_BOOTI ... depends on SPL_OS_BOOT && !SPL_OS_BOOT_SECURE ... Link: https://lore.kernel.org/r/[email protected]
2025-11-03configs: disable SPL_BOOTZ to preserve spl sizeAnshul Dalal
In the existing behaviour, CMD_BOOTZ is not enabled by default which means zimage.o is not compiled in the SPL in falcon mode unless explicitly enabled. This changes now as SPL_BOOTZ is default y for falcon users which leads to larger SPL size with zimage.o being present. This patch modifies the defconfigs that used falcon mode but don't require zimage support. Signed-off-by: Anshul Dalal <[email protected]>
2025-11-03spl: remove usage of CMD_BOOTx from image parsingAnshul Dalal
Using CMD_* configs from spl doesn't make logical sense. Therefore this patch replaces the checks for CMD_BOOTx with newly added library symbols LIB_BOOT[IMZ] and SPL_LIB_BOOT[IMZ] which are enabled by their respective CMD_* or SPL_* counterparts. On platforms with non-secure falcon mode, SPL_BOOTZ is enabled by default for 32-bit ARM systems and SPL_BOOTI is enabled by default for 64-bit ARM and RISCV. The respective C files (image.c/zimage.c) are compiled based on library symbols $(PHASE_)LIB_BOOTx instead which are in turn selected by both CMD_BOOTx and SPL_BOOTx as required. Signed-off-by: Anshul Dalal <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2025-11-03Merge patch series "Convert extension support to UCLASS and adds its support ↵Tom Rini
to boot flows" Kory Maincent (TI.com) <[email protected]> says: This series converts the extension board framework to use UCLASS as requested by Simon Glass, then adds extension support to pxe_utils and bootmeth_efi (not tested) to enable extension boards devicetree load in the standard boot process. I can't test the imx8 extension scan enabled by the imx8mm-cl-iot-gate_defconfig as I don't have this board. I also can't test the efi bootmeth change as I don't have such board. Link: https://lore.kernel.org/r/20251030-feature_sysboot_extension_board-v5-0-cfb77672fc68@bootlin.com
2025-11-03boot: bootmeth_efi: Add extension board devicetree overlay supportKory Maincent (TI.com)
Add support for scanning and applying extension board devicetree overlays during EFI boot. After loading the main board devicetree, the system now scans for available extension boards and applies their overlays automatically. Signed-off-by: Kory Maincent (TI.com) <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-11-03boot: bootmeth_efi: Refactor distro_efi_try_bootflow_files return logicKory Maincent (TI.com)
Simplify the return path in distro_efi_try_bootflow_files() to prepare for adding extension board support in a subsequent commit. Signed-off-by: Kory Maincent (TI.com) <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-11-03boot: pxe_utils: Add extension board devicetree overlay supportKory Maincent (TI.com)
Add support for scanning and applying extension board devicetree overlays during PXE boot. After loading the main board devicetree, the system now scans for available extension boards and applies their overlays automatically. This enables dynamic hardware configuration for systems with extension boards during boot scenarios which are using pxe_utils. Signed-off-by: Kory Maincent (TI.com) <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-11-03boot: extension: Move overlay apply custom logic to command levelKory Maincent (TI.com)
The extension_overlay_cmd environment variable approach is specific to the U-Boot extension_board command, while other boot flows (pxe_utils, bootstd) handle overlay loading differently. Move the extension_overlay_cmd execution out of the core extension framework to the command level. This decouples the framework from command-specific behavior and prepares for future extension support in other boot flows. Signed-off-by: Kory Maincent (TI.com) <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-11-03boot: Remove legacy extension board supportKory Maincent (TI.com)
Remove the legacy extension board implementation now that all boards have been converted to use the new UCLASS-based framework. This eliminates lines of legacy code while preserving functionality through the modern driver model approach. Update the bootstd tests, due to the removal of extension hunter. Signed-off-by: Kory Maincent (TI.com) <[email protected]>
2025-11-03board: compulab: Convert imx8mm-cl-iot-gate to UCLASS extension frameworkKory Maincent (TI.com)
Migrate CompuLab imx8mm-cl-iot-gate board extension detection from legacy implementation to the new UCLASS-based extension board framework. Signed-off-by: Kory Maincent (TI.com) <[email protected]>
2025-11-03board: sandbox: Convert extension support to UCLASS frameworkKory Maincent (TI.com)
Migrate sandbox extension board detection from legacy implementation to the new UCLASS-based extension board framework. Signed-off-by: Kory Maincent (TI.com) <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-11-03board: sandbox: Improve extension board scan implementationKory Maincent (TI.com)
Enhance the extension board scanning code in sandbox with better error handling and code organization. Signed-off-by: Kory Maincent (TI.com) <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-11-03board: sunxi: Convert extension support to UCLASS frameworkKory Maincent (TI.com)
Migrate sunxi board extension detection from legacy implementation to the new UCLASS-based extension board framework. Signed-off-by: Kory Maincent (TI.com) <[email protected]>
2025-11-03board: sunxi: Refactor CHIP board extension codeKory Maincent (TI.com)
Clean up and improve code structure in the sunxi CHIP board extension detection implementation. Signed-off-by: Kory Maincent (TI.com) <[email protected]>
2025-11-03board: ti: Convert cape detection to use UCLASS frameworkKory Maincent (TI.com)
Migrate TI board cape detection from legacy extension support to the new UCLASS-based extension board framework. Signed-off-by: Kory Maincent (TI.com) <[email protected]>
2025-11-03board: ti: Refactor cape detection code for readabilityKory Maincent (TI.com)
Clean up and reorganize cape detection code structure for improved maintainability and readability. Signed-off-by: Kory Maincent (TI.com) <[email protected]>
2025-11-03boot: Add UCLASS support for extension boardsKory Maincent (TI.com)
Introduce UCLASS-based extension board support to enable more standardized and automatic loading of extension board device tree overlays in preparation for integration with bootstd and pxe_utils. Several #if CONFIG_IS_ENABLED are used in cmd/extension_board.c to ease the development but don't worry they are removed later in the series. Signed-off-by: Kory Maincent (TI.com) <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-11-03boot: Move extension board support from cmd/ to boot/Kory Maincent (TI.com)
Relocate extension board support from cmd/ to boot/ directory in preparation for converting the extension framework to use UCLASS. Also improve code style by applying reverse xmas tree ordering. Signed-off-by: Kory Maincent (TI.com) <[email protected]>
2025-11-03include: extension_board: Document the extension structureKory Maincent (TI.com)
Add documentation to describe the extension structure. Signed-off-by: Kory Maincent (TI.com) <[email protected]>
2025-11-03board: compulab: Exclude compulab extension board detection from XPL buildsKory Maincent (TI.com)
Disable compulab extension board detection functionality in XPL (eXtended Program Loader) images to reduce size and complexity in the early boot stage. Signed-off-by: Kory Maincent (TI.com) <[email protected]>
2025-11-03board: sunxi: Exclude DIP detection from XPL buildsKory Maincent (TI.com)
Disable DIP detection functionality in XPL (eXtended Program Loader) images to reduce size and complexity in the early boot stage. Signed-off-by: Kory Maincent (TI.com) <[email protected]>
2025-11-03board: ti: Fix CAPE_EEPROM_BUS_NUM Kconfig dependencyKory Maincent (TI.com)
The CAPE_EEPROM_BUS_NUM configuration option was incorrectly depending on CMD_EXTENSION, which represents the extension board command. However, the cape scan functionality can be built and used independently of the command interface through the SUPPORT_EXTENSION_SCAN option. Change the dependency from CMD_EXTENSION to SUPPORT_EXTENSION_SCAN to properly reflect that the I2C bus configuration is needed for the cape scan function itself, not specifically for the command. Signed-off-by: Kory Maincent (TI.com) <[email protected]>
2025-11-03board: ti: Exclude cape detection from xPL buildsKory Maincent (TI.com)
Disable cape detection functionality in xPL images to reduce size and complexity in the early boot stage. Signed-off-by: Kory Maincent (TI.com) <[email protected]>
2025-11-03MAINTAINERS: Add maintainer for extension board supportKory Maincent (TI.com)
Add myself as maintainer for the extension board support that was originally added to track ongoing development and maintenance. Signed-off-by: Kory Maincent (TI.com) <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Mattijs Korpershoek <[email protected]>
2025-11-02binman: btool: mkimage: fix Bintoolmkimage.run() method docstringQuentin Schulz
Commit 65e2c14d5a5a ("binman: btool: mkimage: use Bintool.version") removed the version argument from the run method but forgot to remove it from the method docstring, so let's fix this oversight. Fixes: 65e2c14d5a5a ("binman: btool: mkimage: use Bintool.version") Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Simon Glass <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02Merge tag 'u-boot-rockchip-20251101' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-rockchip CI: https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/pipelines/28119 - New Boards support: rk3588: MNT Reform2 rk3528: Radxa ROCK 2A/2F rk3576: ArmSoM Sige1, Luckfox Omni3576, FriendlyElec NanoPi M5, Radxa ROCK 4D rk3568: Lunzn FastRhino R66S - Other board level updates.
2025-11-02rockchip: spl_common: fix TIMER_FMODE constantQuentin Schulz
The free running mode is 0 at bit offset 1. User mode is 1 at bit offset 1. Currently, free running mode is 1 at offset 0, which is already the case thanks to TIME_EN. So, this essentially does not change the actual value written to the register as it is TIME_EN | TIMER_FMODE which currently is 0x1 | BIT(0) = 0b1, and will become 0x1 | (0 << 1) = 0b1. I checked PX30, RK3128, RK3188, RK3228, RK3288, RK3308, RK3328, RK3368 RK3506, RK3562 and RK3568 TRMs. Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02mmc: rockchip_sdhci: Set xx_TAP_VALUE for RK3528Jonas Karlman
eMMC erase and write support on RK3528 is somewhat unreliable, sometime e.g. mmc erase and write commands will fail with an error. Use the delay line lock value for half card clock cycle, DLL_LOCK_VALUE, to set a manual xx_TAP_VALUE to fix the unreliable eMMC support. This is only enabled for RK3528, remaining SoCs still use the automatic tap value, (DLL_LOCK_VALUE * 2) % 256, same value we configure manually for RK3528. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02rockchip: rk3399: fix TIMER_FMODE constantQuentin Schulz
The free running mode is 0 at bit offset 1. User mode is 1 at bit offset 1. Currently, free running mode is 1 at offset 0, which is already the case thanks to TIME_EN. So, this essentially does not change the actual value written to the register as it is TIME_EN | TIMER_FMODE which currently is 0x1 | BIT(0) = 0b1, and will become 0x1 | (0 << 1) = 0b1. Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02rockchip: Ensure env in SPI Flash can work correctlyJonas Karlman
Ensure that the spi/sfc node for SPI flash is aviliable during pre-reloc phase so that env can successfully be loaded from SPI Flash. No boards with these SoCs seem to be affected as there is no default use of ENV_IS_IN_SPI_FLASH=y. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02rockchip: rk3036: use rockchip_stimer_init from spl_common.oQuentin Schulz
The only difference with the implementation in spl_common.c is that we check whether the timer has already been enabled. Considering this is running in SPL, the first stage on RK3036, I feel like it's guaranteed to not be enabled by default. No public TRM though and I don't have access to an RK3036 device so take this as a guess. Size of SPL binary increases by 8B for evb-rk3036. Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02rockchip: spl-boot-order: Defer probe of boot deviceJonas Karlman
Boot devices are being probed when SPL boot order is determined. This may delay boot slightly and can prevent booting from SPI Flash on boards that use same pins for SPI Flash and eMMC due to pinctrl being applied prior to booting. Instead defer probe of the boot device until SPL try to load image from the boot device by using uclass_find_device_by_of_offset() instead of the get variant. Signed-off-by: Jonas Karlman <[email protected]>
2025-11-02rockchip: px30: use rockchip_stimer_init from spl_common.o for TPLQuentin Schulz
Instead of redefining what is essentially the same code in secure_timer_init, let's simply use rockchip_stimer_init from spl_common.o instead. This increases the size of the TPL by 16B, due to the added check of STIMER already being enabled. Experimentally, STIMER is not already enabled when in TPL. Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02board: rockchip: Add support for rk3588 MNT Reform2Peter Robinson
Add support for MNT Reform2, it works as a carrier board with a Firefly iCore-3588Q SoM. Specification: - Rockchip RK3588 - LPDDR5X 16/32 GB - eMMC 128/256 GB - HDMI Type A out x 1 - USB 3.0 Host x 1 - USB-C 3.0 with DisplayPort AltMode - PCIE M.2 E Key for Wireless connection - PCIE M.2 M Key for NVME connection - DSI to eDP panel - 1Gb Ethernet w/ Microchip KSZ9310 PHY Tested using Fedora boot on USB stick and eMMC. Signed-off-by: Peter Robinson <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02board: rockchip: Add ArmSoM Sige1Jonas Karlman
The Sige1 is a single board computer developed by ArmSoM, based on the Rockchip RK3528A SoC. Add support for the ArmSoM Sige1 board. Features tested on a ArmSoM Sige1 v1.1: - SD-card boot - eMMC boot - Ethernet - USB host (with pending DT changes) Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02board: rockchip: add Lunzn FastRhino R66STianling Shen
Lunzn Fastrhino R66S is a high-performance mini router. Specification: - Rockchip RK3568 - 1/2GB LPDDR4 RAM - SD card slot - 2x USB 3.0 Port - 2x 2500 Base-T (PCIe, r8125b) - 12v DC Jack Signed-off-by: Tianling Shen <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02arm64: dts: rockchip: Add ArmSoM Sige1Jonas Karlman
The Sige1 is a single board computer developed by ArmSoM, based on the Rockchip RK3528A SoC. Add initial device tree for the ArmSoM Sige1 board. Signed-off-by: Jonas Karlman <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Heiko Stuebner <[email protected]> [ upstream commit: 1c6b12ef9575bc18dad2393e50ca1ebf96f0a0c8 ] (cherry picked from commit 3ba04aa78ba71faab4a339f5ab15bc81a3e0a51b) Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02board: rockchip: Fix RG353M model renamingDavid Barbion
Anbernic RG353M is hardware compatible with RG353P. Only the form-factor differs. So only one DTS is created for both machines with "Anbernic RG353P" as default model. If a RG353M is detected, the model should be overwritten with the correct name. Actually, it's overwritten with "Anbernic" only making the process of machine detection a little harder. However, to determine the size of the string "Anbernic RG353M", it is sizeof() which is used resulting in obtaining the size of the pointer (which is 8 bytes on ARM64) not the size of the pointed string. strlen() should be used instead. Signed-off-by: David Barbion <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02board: rockchip: Add Radxa ROCK 2A/2FJonas Karlman
The ROCK 2 Family is a high-performance SBC (Single Board Computer) developed by Radxa, based on the Rockchip RK3528A. The Radxa E20C shares some board characteristics with the ROCK 2 family boards. Add support for the ROCK 2A and 2F boards. The radxa-e20c-rk3528 target is also extended to support booting ROCK 2 boards. Features tested on a ROCK 2A v1.202: - SD-card boot - Ethernet - USB host (with pending DT changes) Features tested on a ROCK 2F v1.016: - SD-card boot - eMMC boot - USB host (with pending DT changes) Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02rockchip: imply most symbols for ARCH_ROCKCHIPQuentin Schulz
Forcing all those symbols on means we cannot make the binary smaller or with unnecessary features or drivers disabled. This is especially useful for security, auditing and certification where less code built means less to look at (and less surface attack) and less to patch, but also for making binary images smaller which typically means faster boot. It is possible to have boards without MMC, NAND or SPI flashes, without anything on SPI or I2C buses, nothing to control over PWM or GPIO or for which we have no interest in regulator control or serial output so make it possible to remove all that if desired. No intended change in default selected symbols. Signed-off-by: Quentin Schulz <[email protected]> Reviewed-by: Kever Yang <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2025-11-02arm64: dts: rockchip: Add Radxa ROCK 2A/2FJonas Karlman
The ROCK 2A and ROCK 2F is a high-performance single board computer developed by Radxa, based on the Rockchip RK3528A SoC. Add initial device tree for the Radxa ROCK 2A and ROCK 2F boards. Signed-off-by: Jonas Karlman <[email protected]> Tested-by: Yao Zi <[email protected]> Reviewed-by: Nicolas Frattaroli <[email protected]> Tested-by: Nicolas Frattaroli <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Heiko Stuebner <[email protected]> [ upstream commit: 5b71b3d9aa61626d6a93ed2f761a748aa2ecfa95 ] (cherry picked from commit d272bc0c747a5af49cf98140ebd25a702f84ab52) Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02board: rockchip: Add FriendlyElec NanoPi M5Jonas Karlman
FriendlyElec NanoPi M5 with Rockchip RK3576 SoC (4x Cortex-A72, 4x Cortex-A53, Mali-G52 MC3 GPU, 6 TOPS NPU). Features tested on a NanoPi M5 2411: - SD-card boot - SPI flash boot - Ethernet - LEDs - PCIe/NVMe - USB HOST/OTG - USER button Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02board: rockchip: Add Luckfox Omni3576Jonas Karlman
Luckfox Omni3576 Carrier Board with Core3576 Module, powered by the Rockchip RK3576 SoC with four Cortex-A72 cores, four Cortex-A53 cores, and a Mali-G52 MC3 GPU. Features tested with a Core3576 Rev1.1 on a Omni3576 carrier board: - SD-card boot - eMMC boot - LED - PCIe/NVMe - USB2.0 HOST Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02board: rockchip: Add Radxa ROCK 4DJonas Karlman
The Radxa ROCK 4D is a compact single-board computer (SBC) featuring numerous top-tier functions, features, and expansion options. Equipped with the Rockchip RK3576 or RK3576J SoC, the ROCK 4D boasts an octa-core CPU (4x Cortex-A72 + 4x Cortex-A53), Mali-G52 GPU, and a powerful 6 TOPS NPU, making it ideal for AI and multimedia tasks. Features tested on a Radxa ROCK 4D v1.112: - SPI Flash boot - Ethernet - PCIe/NVMe - USB host ROCK 4D boards with SPI Flash is configured to boot from FSPI0->UFS->USB, or directly from USB when the MASKROM button is pressed, booting directly from SD-card is not possible on these boards. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>
2025-11-02rockchip: rk3576: Add SPI Flash boot supportJonas Karlman
The bootsource ids reported by BootROM of RK3576 for SPI NOR and USB differs slightly compared to prior SoCs: - Booting from sfc0 (ROCK 4D) report the normal bootsource id 0x3. - Booting from sfc1 M1 (NanoPi M5) report a new bootsource id 0x23. - Booting from sfc1 M0 has not been tested (no board using this config). - Booting from USB report a new bootsource id 0x81. Add a RK3576 specific read_brom_bootsource_id() function to help decode the new bootsource id values and the required boot_devices mapping of sfc0 and sfc1 to help support booting from SPI flash on RK3576. Signed-off-by: Jonas Karlman <[email protected]> Reviewed-by: Kever Yang <[email protected]>