diff mbox series

[v3,18/18] board: rockchip: add support for Qnap TS433 devices

Message ID 20241028190034.143122-19-heiko@sntech.de
State New
Delegated to: Kever Yang
Headers show
Series Support for rk3568 based QNAP TS433 NAS | expand

Commit Message

Heiko Stübner Oct. 28, 2024, 7 p.m. UTC
The Qnap TS433 is a 4-bay NAS based around the RK3568.

Two SATA bays are connected to the RK3568's own SATA controllers while
the other two are connected to a JMicron SATA controller living on the
PCIe bus.

It provides one 2.5Gb and one 1Gb ethernet port as well as 3 usb ports.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
---
 arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi |  6 ++
 arch/arm/mach-rockchip/rk3568/Kconfig      | 14 ++++
 board/qnap/ts433/Kconfig                   | 12 +++
 board/qnap/ts433/MAINTAINERS               |  8 ++
 configs/qnap-ts433-rk3568_defconfig        | 87 +++++++++++++++++++++
 doc/board/index.rst                        |  1 +
 doc/board/qnap/index.rst                   |  9 +++
 doc/board/qnap/ts433.rst                   | 91 ++++++++++++++++++++++
 doc/board/rockchip/rockchip.rst            |  1 +
 include/configs/qnap_ts433.h               | 10 +++
 10 files changed, 239 insertions(+)
 create mode 100644 arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi
 create mode 100644 board/qnap/ts433/Kconfig
 create mode 100644 board/qnap/ts433/MAINTAINERS
 create mode 100644 configs/qnap-ts433-rk3568_defconfig
 create mode 100644 doc/board/qnap/index.rst
 create mode 100644 doc/board/qnap/ts433.rst
 create mode 100644 include/configs/qnap_ts433.h

Comments

Kever Yang Oct. 30, 2024, 6:23 a.m. UTC | #1
On 2024/10/29 03:00, Heiko Stuebner wrote:
> The Qnap TS433 is a 4-bay NAS based around the RK3568.
>
> Two SATA bays are connected to the RK3568's own SATA controllers while
> the other two are connected to a JMicron SATA controller living on the
> PCIe bus.
>
> It provides one 2.5Gb and one 1Gb ethernet port as well as 3 usb ports.
>
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

Thanks,
- Kever
> ---
>   arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi |  6 ++
>   arch/arm/mach-rockchip/rk3568/Kconfig      | 14 ++++
>   board/qnap/ts433/Kconfig                   | 12 +++
>   board/qnap/ts433/MAINTAINERS               |  8 ++
>   configs/qnap-ts433-rk3568_defconfig        | 87 +++++++++++++++++++++
>   doc/board/index.rst                        |  1 +
>   doc/board/qnap/index.rst                   |  9 +++
>   doc/board/qnap/ts433.rst                   | 91 ++++++++++++++++++++++
>   doc/board/rockchip/rockchip.rst            |  1 +
>   include/configs/qnap_ts433.h               | 10 +++
>   10 files changed, 239 insertions(+)
>   create mode 100644 arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi
>   create mode 100644 board/qnap/ts433/Kconfig
>   create mode 100644 board/qnap/ts433/MAINTAINERS
>   create mode 100644 configs/qnap-ts433-rk3568_defconfig
>   create mode 100644 doc/board/qnap/index.rst
>   create mode 100644 doc/board/qnap/ts433.rst
>   create mode 100644 include/configs/qnap_ts433.h
>
> diff --git a/arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi b/arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi
> new file mode 100644
> index 00000000000..19acbceb468
> --- /dev/null
> +++ b/arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi
> @@ -0,0 +1,6 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * (C) Copyright 2024 Heiko Stuebner <heiko@sntech.de>
> + */
> +
> +#include "rk356x-u-boot.dtsi"
> diff --git a/arch/arm/mach-rockchip/rk3568/Kconfig b/arch/arm/mach-rockchip/rk3568/Kconfig
> index e646f714c92..ce327ed6f9e 100644
> --- a/arch/arm/mach-rockchip/rk3568/Kconfig
> +++ b/arch/arm/mach-rockchip/rk3568/Kconfig
> @@ -32,6 +32,19 @@ config TARGET_POWKIDDY_X55_RK3566
>   	help
>   	  Powkiddy X55 handheld gaming console with an RK3566 SoC.
>   
> +config TARGET_QNAP_TS433_RK3568
> +	bool "QNAP-TS433"
> +	help
> +	  Qnap TS433 4-bay NAS with a RK3568 SoC.
> +
> +	  It provides the following featureset:
> +	   * 4GB LPDDR4
> +	   * 4GB eMMC
> +	   * 2 SATA ports connected to two RK3568's SATA controllers
> +	   * 2 SATA ports connected to a JMicron JMB58x AHCI SATA controller
> +	   * 1 1G network controller
> +	   * 1 2.5G Realtek RTL8125 network controller
> +
>   config TARGET_QUARTZ64_RK3566
>   	bool "Pine64 Quartz64"
>   	help
> @@ -70,6 +83,7 @@ source "board/hardkernel/odroid_m1/Kconfig"
>   source "board/hardkernel/odroid_m1s/Kconfig"
>   source "board/pine64/quartz64_rk3566/Kconfig"
>   source "board/powkiddy/x55/Kconfig"
> +source "board/qnap/ts433/Kconfig"
>   source "board/radxa/zero3-rk3566/Kconfig"
>   source "board/xunlong/orangepi-3b-rk3566/Kconfig"
>   
> diff --git a/board/qnap/ts433/Kconfig b/board/qnap/ts433/Kconfig
> new file mode 100644
> index 00000000000..b00e1f9f2ef
> --- /dev/null
> +++ b/board/qnap/ts433/Kconfig
> @@ -0,0 +1,12 @@
> +if TARGET_QNAP_TS433_RK3568
> +
> +config SYS_BOARD
> +	default "qnap_ts433"
> +
> +config SYS_VENDOR
> +	default "qnap"
> +
> +config SYS_CONFIG_NAME
> +	default "qnap_ts433"
> +
> +endif
> diff --git a/board/qnap/ts433/MAINTAINERS b/board/qnap/ts433/MAINTAINERS
> new file mode 100644
> index 00000000000..c2b31ad9794
> --- /dev/null
> +++ b/board/qnap/ts433/MAINTAINERS
> @@ -0,0 +1,8 @@
> +QNAP-TS433
> +M:	Heiko Stuebner <heiko@sntech.de>
> +S:	Maintained
> +F:	board/qnap/ts433/
> +F:	doc/board/qnap/
> +F:	include/configs/qnap_ts433.h
> +F:	configs/qnap-ts433-rk3568_defconfig
> +F:	arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi
> diff --git a/configs/qnap-ts433-rk3568_defconfig b/configs/qnap-ts433-rk3568_defconfig
> new file mode 100644
> index 00000000000..840da7f3759
> --- /dev/null
> +++ b/configs/qnap-ts433-rk3568_defconfig
> @@ -0,0 +1,87 @@
> +CONFIG_ARM=y
> +CONFIG_SKIP_LOWLEVEL_INIT=y
> +CONFIG_SYS_HAS_NONCACHED_MEMORY=y
> +CONFIG_COUNTER_FREQUENCY=24000000
> +CONFIG_ARCH_ROCKCHIP=y
> +CONFIG_DEFAULT_DEVICE_TREE="rockchip/rk3568-qnap-ts433"
> +CONFIG_ROCKCHIP_RK3568=y
> +CONFIG_SPL_SERIAL=y
> +CONFIG_TARGET_QNAP_TS433_RK3568=y
> +CONFIG_DEBUG_UART_BASE=0xFE660000
> +CONFIG_DEBUG_UART_CLOCK=24000000
> +CONFIG_SYS_LOAD_ADDR=0xc00800
> +CONFIG_PCI=y
> +CONFIG_DEBUG_UART=y
> +CONFIG_AHCI=y
> +CONFIG_FIT=y
> +CONFIG_FIT_VERBOSE=y
> +CONFIG_SPL_FIT_SIGNATURE=y
> +CONFIG_SPL_LOAD_FIT=y
> +CONFIG_LEGACY_IMAGE_FORMAT=y
> +CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-qnap-ts433.dtb"
> +# CONFIG_DISPLAY_CPUINFO is not set
> +CONFIG_DISPLAY_BOARDINFO_LATE=y
> +CONFIG_SPL_MAX_SIZE=0x40000
> +CONFIG_SPL_PAD_TO=0x7f8000
> +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
> +CONFIG_SPL_ATF=y
> +CONFIG_CMD_GPIO=y
> +CONFIG_CMD_GPT=y
> +CONFIG_CMD_I2C=y
> +CONFIG_CMD_MMC=y
> +CONFIG_CMD_PCI=y
> +CONFIG_CMD_SATA=y
> +CONFIG_CMD_USB=y
> +CONFIG_CMD_ROCKUSB=y
> +CONFIG_CMD_USB_MASS_STORAGE=y
> +# CONFIG_CMD_SETEXPR is not set
> +CONFIG_CMD_PMIC=y
> +CONFIG_CMD_REGULATOR=y
> +# CONFIG_SPL_DOS_PARTITION is not set
> +CONFIG_SPL_OF_CONTROL=y
> +CONFIG_OF_LIVE=y
> +CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
> +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> +CONFIG_SPL_DM_SEQ_ALIAS=y
> +CONFIG_SPL_REGMAP=y
> +CONFIG_SPL_SYSCON=y
> +CONFIG_AHCI_PCI=y
> +CONFIG_DWC_AHCI=y
> +CONFIG_SPL_CLK=y
> +CONFIG_ROCKCHIP_GPIO=y
> +CONFIG_SYS_I2C_ROCKCHIP=y
> +CONFIG_LED=y
> +CONFIG_LED_GPIO=y
> +CONFIG_MISC=y
> +CONFIG_SUPPORT_EMMC_RPMB=y
> +CONFIG_MMC_DW=y
> +CONFIG_MMC_DW_ROCKCHIP=y
> +CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
> +CONFIG_MMC_SDHCI_ROCKCHIP=y
> +CONFIG_DWC_ETH_QOS=y
> +CONFIG_DWC_ETH_QOS_ROCKCHIP=y
> +CONFIG_RTL8169=y
> +CONFIG_PCIE_DW_ROCKCHIP=y
> +CONFIG_PHY_ROCKCHIP_INNO_USB2=y
> +CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
> +CONFIG_SPL_PINCTRL=y
> +CONFIG_DM_PMIC=y
> +CONFIG_DM_PMIC_FAN53555=y
> +CONFIG_PMIC_RK8XX=y
> +CONFIG_REGULATOR_RK8XX=y
> +CONFIG_PWM_ROCKCHIP=y
> +CONFIG_SPL_RAM=y
> +CONFIG_SCSI=y
> +CONFIG_DEBUG_UART_SHIFT=2
> +CONFIG_SYS_NS16550_MEM32=y
> +CONFIG_SYSRESET=y
> +CONFIG_USB=y
> +CONFIG_USB_XHCI_HCD=y
> +CONFIG_USB_EHCI_HCD=y
> +CONFIG_USB_EHCI_GENERIC=y
> +CONFIG_USB_OHCI_HCD=y
> +CONFIG_USB_OHCI_GENERIC=y
> +CONFIG_USB_DWC3=y
> +CONFIG_USB_DWC3_GENERIC=y
> +CONFIG_ERRNO_STR=y
> diff --git a/doc/board/index.rst b/doc/board/index.rst
> index 3fb7c84f10c..fe775b1b05d 100644
> --- a/doc/board/index.rst
> +++ b/doc/board/index.rst
> @@ -42,6 +42,7 @@ Board-specific doc
>      phytec/index
>      purism/index
>      qualcomm/index
> +   qnap/index
>      renesas/index
>      rockchip/index
>      samsung/index
> diff --git a/doc/board/qnap/index.rst b/doc/board/qnap/index.rst
> new file mode 100644
> index 00000000000..652ea11a056
> --- /dev/null
> +++ b/doc/board/qnap/index.rst
> @@ -0,0 +1,9 @@
> +.. SPDX-License-Identifier: GPL-2.0+
> +
> +Qnap
> +====
> +
> +.. toctree::
> +   :maxdepth: 2
> +
> +   ts433.rst
> diff --git a/doc/board/qnap/ts433.rst b/doc/board/qnap/ts433.rst
> new file mode 100644
> index 00000000000..5c7fd314b7a
> --- /dev/null
> +++ b/doc/board/qnap/ts433.rst
> @@ -0,0 +1,91 @@
> +.. SPDX-License-Identifier: GPL-2.0+
> +
> +U-Boot for Qnap TS433 Devices
> +=================================
> +
> +This allows U-Boot to boot the Qnap TS433 NAS
> +
> +Preparing the serial
> +--------------------
> +
> +Qnap devices run their serial console with a 115200 baudrate. As the
> +binary DDR-init and maskrom-downloader expect a 1500000 rate, it is
> +necessary to adapt the binaries if their output is needed.
> +
> +This can be done with a binary provided in the rkbin repository.
> +First the ddrbin_param.txt in the rkbin repo needs to be modified:
> +
> +.. code-block:: bash
> +
> +    diff --git a/tools/ddrbin_param.txt b/tools/ddrbin_param.txt
> +    index 0dfdd318..82ade7e7 100644
> +    --- a/tools/ddrbin_param.txt
> +    +++ b/tools/ddrbin_param.txt
> +    @@ -11,7 +11,7 @@ lp5_freq=
> +
> +     uart id=
> +     uart iomux=
> +    -uart baudrate=
> +    +uart baudrate=115200
> +
> +     sr_idle=
> +     pd_idle=
> +
> +And after that the ddrbin_tool binary can be used to modify apply this
> +modification and also a new maskrom downloader can be build:
> +
> +.. code-block:: bash
> +
> +    $ tools/ddrbin_tool rk3568 tools/ddrbin_param.txt bin/rk35/rk3568_ddr_1560MHz_v1.21.bin
> +    $ tools/boot_merger RKBOOT/RK3568MINIALL.ini
> +
> +Building U-Boot
> +---------------
> +
> +.. code-block:: bash
> +
> +    $ export CROSS_COMPILE=aarch64-linux-gnu-
> +    $ export BL31=../rkbin/bin/rk35/rk3568_bl31_v1.34.elf
> +    $ export ROCKCHIP_TPL=../rkbin/bin/rk35/rk3568_ddr_1056MHz_v1.13.bin
> +    $ make qnap-ts433-rk3568_defconfig
> +    $ make
> +
> +This will build ``u-boot-rockchip.bin`` which can be written to the
> +on-board eMMC.
> +
> +Image installation
> +------------------
> +
> +The Qnap thankfully provides an easily accessible serial header as well as
> +a very user-friendly jumper-header to bring the device into maskrom mode.
> +
> +To access both, the drive trays need to be removed. Looking at the board,
> +through the upper cutout of the metal frame the white 4-port serial-header
> +can be seen next to a barcode sticker. It's pinout is as follows:
> +
> +.. code-block:: bash
> +
> +   ,_  _.
> +   |1234|  1=TX 2=VCC
> +   `----'  3=RX 4=GND
> +
> +
> +Directly below it, the mentioned 2-pin jumper header can be seen.
> +
> +To write your u-boot to the device, it needs to be powered off first. Then
> +a jumper or suitable cable needs to be used to connect the two pins of the
> +maskrom header. Turning on the device now will start it in maskrom mode.
> +
> +It is important that the jumper gets removed after that stop and before
> +actually trying to write to the emmc.
> +
> +The front usb-port needs to be connected to the host with an USB-A-to-A
> +cable to allow flashing.
> +
> +The flashing itself is done via rkdeveloptool, which can be found for
> +example as package of that name in Debian-based distributions:
> +
> +.. code-block:: bash
> +
> +    $ rkdeveloptool db rk356x_spl_loader_v1.21.113.bin
> +    $ rkdeveloptool wl 64 u-boot-rockchip.bin
> diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst
> index 7b11a2e0a35..0783603ec50 100644
> --- a/doc/board/rockchip/rockchip.rst
> +++ b/doc/board/rockchip/rockchip.rst
> @@ -119,6 +119,7 @@ List of mainline supported Rockchip boards:
>        - FriendlyElec NanoPi R5S (nanopi-r5s-rk3568)
>        - Generic RK3566/RK3568 (generic-rk3568)
>        - Hardkernel ODROID-M1 (odroid-m1-rk3568)
> +     - QNAP TS-433 (qnap-ts433-rk3568)
>        - Radxa E25 Carrier Board (radxa-e25-rk3568)
>        - Radxa ROCK 3A (rock-3a-rk3568)
>        - Radxa ROCK 3B (rock-3b-rk3568)
> diff --git a/include/configs/qnap_ts433.h b/include/configs/qnap_ts433.h
> new file mode 100644
> index 00000000000..aee4546bf07
> --- /dev/null
> +++ b/include/configs/qnap_ts433.h
> @@ -0,0 +1,10 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +
> +#ifndef __QNAP_TS433_H
> +#define __QNAP_TS433_H
> +
> +#define ROCKCHIP_DEVICE_SETTINGS
> +
> +#include <configs/rk3568_common.h>
> +
> +#endif
Kever Yang Nov. 8, 2024, 10:32 a.m. UTC | #2
Hi Heiko,

Again, I got a warning/error from CI system for the doc :(

https://source.denx.de/u-boot/custodians/u-boot-rockchip/-/jobs/941781

/builds/u-boot/custodians/u-boot-rockchip/doc/board/qnap/ts433.rst:66: 
WARNING: Lexing literal_block ",_  _.\n|1234|  1=TX 2=VCC\n`----' 3=RX 
4=GND" as "bash" resulted in an error at token: "'". Retrying in relaxed 
mode. [misc.highlighting_failure]


Maybe you can try with below  command in your environment?

$ make htmldocs KDOC_WERROR=1

I didn't success to run this on my computer due to lots of modules 
missing one after another.


Thanks,
- Kever
On 2024/10/29 03:00, Heiko Stuebner wrote:
> The Qnap TS433 is a 4-bay NAS based around the RK3568.
>
> Two SATA bays are connected to the RK3568's own SATA controllers while
> the other two are connected to a JMicron SATA controller living on the
> PCIe bus.
>
> It provides one 2.5Gb and one 1Gb ethernet port as well as 3 usb ports.
>
> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
> ---
>   arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi |  6 ++
>   arch/arm/mach-rockchip/rk3568/Kconfig      | 14 ++++
>   board/qnap/ts433/Kconfig                   | 12 +++
>   board/qnap/ts433/MAINTAINERS               |  8 ++
>   configs/qnap-ts433-rk3568_defconfig        | 87 +++++++++++++++++++++
>   doc/board/index.rst                        |  1 +
>   doc/board/qnap/index.rst                   |  9 +++
>   doc/board/qnap/ts433.rst                   | 91 ++++++++++++++++++++++
>   doc/board/rockchip/rockchip.rst            |  1 +
>   include/configs/qnap_ts433.h               | 10 +++
>   10 files changed, 239 insertions(+)
>   create mode 100644 arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi
>   create mode 100644 board/qnap/ts433/Kconfig
>   create mode 100644 board/qnap/ts433/MAINTAINERS
>   create mode 100644 configs/qnap-ts433-rk3568_defconfig
>   create mode 100644 doc/board/qnap/index.rst
>   create mode 100644 doc/board/qnap/ts433.rst
>   create mode 100644 include/configs/qnap_ts433.h
>
> diff --git a/arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi b/arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi
> new file mode 100644
> index 00000000000..19acbceb468
> --- /dev/null
> +++ b/arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi
> @@ -0,0 +1,6 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * (C) Copyright 2024 Heiko Stuebner <heiko@sntech.de>
> + */
> +
> +#include "rk356x-u-boot.dtsi"
> diff --git a/arch/arm/mach-rockchip/rk3568/Kconfig b/arch/arm/mach-rockchip/rk3568/Kconfig
> index e646f714c92..ce327ed6f9e 100644
> --- a/arch/arm/mach-rockchip/rk3568/Kconfig
> +++ b/arch/arm/mach-rockchip/rk3568/Kconfig
> @@ -32,6 +32,19 @@ config TARGET_POWKIDDY_X55_RK3566
>   	help
>   	  Powkiddy X55 handheld gaming console with an RK3566 SoC.
>   
> +config TARGET_QNAP_TS433_RK3568
> +	bool "QNAP-TS433"
> +	help
> +	  Qnap TS433 4-bay NAS with a RK3568 SoC.
> +
> +	  It provides the following featureset:
> +	   * 4GB LPDDR4
> +	   * 4GB eMMC
> +	   * 2 SATA ports connected to two RK3568's SATA controllers
> +	   * 2 SATA ports connected to a JMicron JMB58x AHCI SATA controller
> +	   * 1 1G network controller
> +	   * 1 2.5G Realtek RTL8125 network controller
> +
>   config TARGET_QUARTZ64_RK3566
>   	bool "Pine64 Quartz64"
>   	help
> @@ -70,6 +83,7 @@ source "board/hardkernel/odroid_m1/Kconfig"
>   source "board/hardkernel/odroid_m1s/Kconfig"
>   source "board/pine64/quartz64_rk3566/Kconfig"
>   source "board/powkiddy/x55/Kconfig"
> +source "board/qnap/ts433/Kconfig"
>   source "board/radxa/zero3-rk3566/Kconfig"
>   source "board/xunlong/orangepi-3b-rk3566/Kconfig"
>   
> diff --git a/board/qnap/ts433/Kconfig b/board/qnap/ts433/Kconfig
> new file mode 100644
> index 00000000000..b00e1f9f2ef
> --- /dev/null
> +++ b/board/qnap/ts433/Kconfig
> @@ -0,0 +1,12 @@
> +if TARGET_QNAP_TS433_RK3568
> +
> +config SYS_BOARD
> +	default "qnap_ts433"
> +
> +config SYS_VENDOR
> +	default "qnap"
> +
> +config SYS_CONFIG_NAME
> +	default "qnap_ts433"
> +
> +endif
> diff --git a/board/qnap/ts433/MAINTAINERS b/board/qnap/ts433/MAINTAINERS
> new file mode 100644
> index 00000000000..c2b31ad9794
> --- /dev/null
> +++ b/board/qnap/ts433/MAINTAINERS
> @@ -0,0 +1,8 @@
> +QNAP-TS433
> +M:	Heiko Stuebner <heiko@sntech.de>
> +S:	Maintained
> +F:	board/qnap/ts433/
> +F:	doc/board/qnap/
> +F:	include/configs/qnap_ts433.h
> +F:	configs/qnap-ts433-rk3568_defconfig
> +F:	arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi
> diff --git a/configs/qnap-ts433-rk3568_defconfig b/configs/qnap-ts433-rk3568_defconfig
> new file mode 100644
> index 00000000000..840da7f3759
> --- /dev/null
> +++ b/configs/qnap-ts433-rk3568_defconfig
> @@ -0,0 +1,87 @@
> +CONFIG_ARM=y
> +CONFIG_SKIP_LOWLEVEL_INIT=y
> +CONFIG_SYS_HAS_NONCACHED_MEMORY=y
> +CONFIG_COUNTER_FREQUENCY=24000000
> +CONFIG_ARCH_ROCKCHIP=y
> +CONFIG_DEFAULT_DEVICE_TREE="rockchip/rk3568-qnap-ts433"
> +CONFIG_ROCKCHIP_RK3568=y
> +CONFIG_SPL_SERIAL=y
> +CONFIG_TARGET_QNAP_TS433_RK3568=y
> +CONFIG_DEBUG_UART_BASE=0xFE660000
> +CONFIG_DEBUG_UART_CLOCK=24000000
> +CONFIG_SYS_LOAD_ADDR=0xc00800
> +CONFIG_PCI=y
> +CONFIG_DEBUG_UART=y
> +CONFIG_AHCI=y
> +CONFIG_FIT=y
> +CONFIG_FIT_VERBOSE=y
> +CONFIG_SPL_FIT_SIGNATURE=y
> +CONFIG_SPL_LOAD_FIT=y
> +CONFIG_LEGACY_IMAGE_FORMAT=y
> +CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-qnap-ts433.dtb"
> +# CONFIG_DISPLAY_CPUINFO is not set
> +CONFIG_DISPLAY_BOARDINFO_LATE=y
> +CONFIG_SPL_MAX_SIZE=0x40000
> +CONFIG_SPL_PAD_TO=0x7f8000
> +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
> +CONFIG_SPL_ATF=y
> +CONFIG_CMD_GPIO=y
> +CONFIG_CMD_GPT=y
> +CONFIG_CMD_I2C=y
> +CONFIG_CMD_MMC=y
> +CONFIG_CMD_PCI=y
> +CONFIG_CMD_SATA=y
> +CONFIG_CMD_USB=y
> +CONFIG_CMD_ROCKUSB=y
> +CONFIG_CMD_USB_MASS_STORAGE=y
> +# CONFIG_CMD_SETEXPR is not set
> +CONFIG_CMD_PMIC=y
> +CONFIG_CMD_REGULATOR=y
> +# CONFIG_SPL_DOS_PARTITION is not set
> +CONFIG_SPL_OF_CONTROL=y
> +CONFIG_OF_LIVE=y
> +CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
> +CONFIG_SYS_RELOC_GD_ENV_ADDR=y
> +CONFIG_SPL_DM_SEQ_ALIAS=y
> +CONFIG_SPL_REGMAP=y
> +CONFIG_SPL_SYSCON=y
> +CONFIG_AHCI_PCI=y
> +CONFIG_DWC_AHCI=y
> +CONFIG_SPL_CLK=y
> +CONFIG_ROCKCHIP_GPIO=y
> +CONFIG_SYS_I2C_ROCKCHIP=y
> +CONFIG_LED=y
> +CONFIG_LED_GPIO=y
> +CONFIG_MISC=y
> +CONFIG_SUPPORT_EMMC_RPMB=y
> +CONFIG_MMC_DW=y
> +CONFIG_MMC_DW_ROCKCHIP=y
> +CONFIG_MMC_SDHCI=y
> +CONFIG_MMC_SDHCI_SDMA=y
> +CONFIG_MMC_SDHCI_ROCKCHIP=y
> +CONFIG_DWC_ETH_QOS=y
> +CONFIG_DWC_ETH_QOS_ROCKCHIP=y
> +CONFIG_RTL8169=y
> +CONFIG_PCIE_DW_ROCKCHIP=y
> +CONFIG_PHY_ROCKCHIP_INNO_USB2=y
> +CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
> +CONFIG_SPL_PINCTRL=y
> +CONFIG_DM_PMIC=y
> +CONFIG_DM_PMIC_FAN53555=y
> +CONFIG_PMIC_RK8XX=y
> +CONFIG_REGULATOR_RK8XX=y
> +CONFIG_PWM_ROCKCHIP=y
> +CONFIG_SPL_RAM=y
> +CONFIG_SCSI=y
> +CONFIG_DEBUG_UART_SHIFT=2
> +CONFIG_SYS_NS16550_MEM32=y
> +CONFIG_SYSRESET=y
> +CONFIG_USB=y
> +CONFIG_USB_XHCI_HCD=y
> +CONFIG_USB_EHCI_HCD=y
> +CONFIG_USB_EHCI_GENERIC=y
> +CONFIG_USB_OHCI_HCD=y
> +CONFIG_USB_OHCI_GENERIC=y
> +CONFIG_USB_DWC3=y
> +CONFIG_USB_DWC3_GENERIC=y
> +CONFIG_ERRNO_STR=y
> diff --git a/doc/board/index.rst b/doc/board/index.rst
> index 3fb7c84f10c..fe775b1b05d 100644
> --- a/doc/board/index.rst
> +++ b/doc/board/index.rst
> @@ -42,6 +42,7 @@ Board-specific doc
>      phytec/index
>      purism/index
>      qualcomm/index
> +   qnap/index
>      renesas/index
>      rockchip/index
>      samsung/index
> diff --git a/doc/board/qnap/index.rst b/doc/board/qnap/index.rst
> new file mode 100644
> index 00000000000..652ea11a056
> --- /dev/null
> +++ b/doc/board/qnap/index.rst
> @@ -0,0 +1,9 @@
> +.. SPDX-License-Identifier: GPL-2.0+
> +
> +Qnap
> +====
> +
> +.. toctree::
> +   :maxdepth: 2
> +
> +   ts433.rst
> diff --git a/doc/board/qnap/ts433.rst b/doc/board/qnap/ts433.rst
> new file mode 100644
> index 00000000000..5c7fd314b7a
> --- /dev/null
> +++ b/doc/board/qnap/ts433.rst
> @@ -0,0 +1,91 @@
> +.. SPDX-License-Identifier: GPL-2.0+
> +
> +U-Boot for Qnap TS433 Devices
> +=================================
> +
> +This allows U-Boot to boot the Qnap TS433 NAS
> +
> +Preparing the serial
> +--------------------
> +
> +Qnap devices run their serial console with a 115200 baudrate. As the
> +binary DDR-init and maskrom-downloader expect a 1500000 rate, it is
> +necessary to adapt the binaries if their output is needed.
> +
> +This can be done with a binary provided in the rkbin repository.
> +First the ddrbin_param.txt in the rkbin repo needs to be modified:
> +
> +.. code-block:: bash
> +
> +    diff --git a/tools/ddrbin_param.txt b/tools/ddrbin_param.txt
> +    index 0dfdd318..82ade7e7 100644
> +    --- a/tools/ddrbin_param.txt
> +    +++ b/tools/ddrbin_param.txt
> +    @@ -11,7 +11,7 @@ lp5_freq=
> +
> +     uart id=
> +     uart iomux=
> +    -uart baudrate=
> +    +uart baudrate=115200
> +
> +     sr_idle=
> +     pd_idle=
> +
> +And after that the ddrbin_tool binary can be used to modify apply this
> +modification and also a new maskrom downloader can be build:
> +
> +.. code-block:: bash
> +
> +    $ tools/ddrbin_tool rk3568 tools/ddrbin_param.txt bin/rk35/rk3568_ddr_1560MHz_v1.21.bin
> +    $ tools/boot_merger RKBOOT/RK3568MINIALL.ini
> +
> +Building U-Boot
> +---------------
> +
> +.. code-block:: bash
> +
> +    $ export CROSS_COMPILE=aarch64-linux-gnu-
> +    $ export BL31=../rkbin/bin/rk35/rk3568_bl31_v1.34.elf
> +    $ export ROCKCHIP_TPL=../rkbin/bin/rk35/rk3568_ddr_1056MHz_v1.13.bin
> +    $ make qnap-ts433-rk3568_defconfig
> +    $ make
> +
> +This will build ``u-boot-rockchip.bin`` which can be written to the
> +on-board eMMC.
> +
> +Image installation
> +------------------
> +
> +The Qnap thankfully provides an easily accessible serial header as well as
> +a very user-friendly jumper-header to bring the device into maskrom mode.
> +
> +To access both, the drive trays need to be removed. Looking at the board,
> +through the upper cutout of the metal frame the white 4-port serial-header
> +can be seen next to a barcode sticker. It's pinout is as follows:
> +
> +.. code-block:: bash
> +
> +   ,_  _.
> +   |1234|  1=TX 2=VCC
> +   `----'  3=RX 4=GND
> +
> +
> +Directly below it, the mentioned 2-pin jumper header can be seen.
> +
> +To write your u-boot to the device, it needs to be powered off first. Then
> +a jumper or suitable cable needs to be used to connect the two pins of the
> +maskrom header. Turning on the device now will start it in maskrom mode.
> +
> +It is important that the jumper gets removed after that stop and before
> +actually trying to write to the emmc.
> +
> +The front usb-port needs to be connected to the host with an USB-A-to-A
> +cable to allow flashing.
> +
> +The flashing itself is done via rkdeveloptool, which can be found for
> +example as package of that name in Debian-based distributions:
> +
> +.. code-block:: bash
> +
> +    $ rkdeveloptool db rk356x_spl_loader_v1.21.113.bin
> +    $ rkdeveloptool wl 64 u-boot-rockchip.bin
> diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst
> index 7b11a2e0a35..0783603ec50 100644
> --- a/doc/board/rockchip/rockchip.rst
> +++ b/doc/board/rockchip/rockchip.rst
> @@ -119,6 +119,7 @@ List of mainline supported Rockchip boards:
>        - FriendlyElec NanoPi R5S (nanopi-r5s-rk3568)
>        - Generic RK3566/RK3568 (generic-rk3568)
>        - Hardkernel ODROID-M1 (odroid-m1-rk3568)
> +     - QNAP TS-433 (qnap-ts433-rk3568)
>        - Radxa E25 Carrier Board (radxa-e25-rk3568)
>        - Radxa ROCK 3A (rock-3a-rk3568)
>        - Radxa ROCK 3B (rock-3b-rk3568)
> diff --git a/include/configs/qnap_ts433.h b/include/configs/qnap_ts433.h
> new file mode 100644
> index 00000000000..aee4546bf07
> --- /dev/null
> +++ b/include/configs/qnap_ts433.h
> @@ -0,0 +1,10 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +
> +#ifndef __QNAP_TS433_H
> +#define __QNAP_TS433_H
> +
> +#define ROCKCHIP_DEVICE_SETTINGS
> +
> +#include <configs/rk3568_common.h>
> +
> +#endif
diff mbox series

Patch

diff --git a/arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi b/arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi
new file mode 100644
index 00000000000..19acbceb468
--- /dev/null
+++ b/arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi
@@ -0,0 +1,6 @@ 
+// SPDX-License-Identifier: GPL-2.0+
+/*
+ * (C) Copyright 2024 Heiko Stuebner <heiko@sntech.de>
+ */
+
+#include "rk356x-u-boot.dtsi"
diff --git a/arch/arm/mach-rockchip/rk3568/Kconfig b/arch/arm/mach-rockchip/rk3568/Kconfig
index e646f714c92..ce327ed6f9e 100644
--- a/arch/arm/mach-rockchip/rk3568/Kconfig
+++ b/arch/arm/mach-rockchip/rk3568/Kconfig
@@ -32,6 +32,19 @@  config TARGET_POWKIDDY_X55_RK3566
 	help
 	  Powkiddy X55 handheld gaming console with an RK3566 SoC.
 
+config TARGET_QNAP_TS433_RK3568
+	bool "QNAP-TS433"
+	help
+	  Qnap TS433 4-bay NAS with a RK3568 SoC.
+
+	  It provides the following featureset:
+	   * 4GB LPDDR4
+	   * 4GB eMMC
+	   * 2 SATA ports connected to two RK3568's SATA controllers
+	   * 2 SATA ports connected to a JMicron JMB58x AHCI SATA controller
+	   * 1 1G network controller
+	   * 1 2.5G Realtek RTL8125 network controller
+
 config TARGET_QUARTZ64_RK3566
 	bool "Pine64 Quartz64"
 	help
@@ -70,6 +83,7 @@  source "board/hardkernel/odroid_m1/Kconfig"
 source "board/hardkernel/odroid_m1s/Kconfig"
 source "board/pine64/quartz64_rk3566/Kconfig"
 source "board/powkiddy/x55/Kconfig"
+source "board/qnap/ts433/Kconfig"
 source "board/radxa/zero3-rk3566/Kconfig"
 source "board/xunlong/orangepi-3b-rk3566/Kconfig"
 
diff --git a/board/qnap/ts433/Kconfig b/board/qnap/ts433/Kconfig
new file mode 100644
index 00000000000..b00e1f9f2ef
--- /dev/null
+++ b/board/qnap/ts433/Kconfig
@@ -0,0 +1,12 @@ 
+if TARGET_QNAP_TS433_RK3568
+
+config SYS_BOARD
+	default "qnap_ts433"
+
+config SYS_VENDOR
+	default "qnap"
+
+config SYS_CONFIG_NAME
+	default "qnap_ts433"
+
+endif
diff --git a/board/qnap/ts433/MAINTAINERS b/board/qnap/ts433/MAINTAINERS
new file mode 100644
index 00000000000..c2b31ad9794
--- /dev/null
+++ b/board/qnap/ts433/MAINTAINERS
@@ -0,0 +1,8 @@ 
+QNAP-TS433
+M:	Heiko Stuebner <heiko@sntech.de>
+S:	Maintained
+F:	board/qnap/ts433/
+F:	doc/board/qnap/
+F:	include/configs/qnap_ts433.h
+F:	configs/qnap-ts433-rk3568_defconfig
+F:	arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi
diff --git a/configs/qnap-ts433-rk3568_defconfig b/configs/qnap-ts433-rk3568_defconfig
new file mode 100644
index 00000000000..840da7f3759
--- /dev/null
+++ b/configs/qnap-ts433-rk3568_defconfig
@@ -0,0 +1,87 @@ 
+CONFIG_ARM=y
+CONFIG_SKIP_LOWLEVEL_INIT=y
+CONFIG_SYS_HAS_NONCACHED_MEMORY=y
+CONFIG_COUNTER_FREQUENCY=24000000
+CONFIG_ARCH_ROCKCHIP=y
+CONFIG_DEFAULT_DEVICE_TREE="rockchip/rk3568-qnap-ts433"
+CONFIG_ROCKCHIP_RK3568=y
+CONFIG_SPL_SERIAL=y
+CONFIG_TARGET_QNAP_TS433_RK3568=y
+CONFIG_DEBUG_UART_BASE=0xFE660000
+CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_SYS_LOAD_ADDR=0xc00800
+CONFIG_PCI=y
+CONFIG_DEBUG_UART=y
+CONFIG_AHCI=y
+CONFIG_FIT=y
+CONFIG_FIT_VERBOSE=y
+CONFIG_SPL_FIT_SIGNATURE=y
+CONFIG_SPL_LOAD_FIT=y
+CONFIG_LEGACY_IMAGE_FORMAT=y
+CONFIG_DEFAULT_FDT_FILE="rockchip/rk3568-qnap-ts433.dtb"
+# CONFIG_DISPLAY_CPUINFO is not set
+CONFIG_DISPLAY_BOARDINFO_LATE=y
+CONFIG_SPL_MAX_SIZE=0x40000
+CONFIG_SPL_PAD_TO=0x7f8000
+# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
+CONFIG_SPL_ATF=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_PCI=y
+CONFIG_CMD_SATA=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_ROCKUSB=y
+CONFIG_CMD_USB_MASS_STORAGE=y
+# CONFIG_CMD_SETEXPR is not set
+CONFIG_CMD_PMIC=y
+CONFIG_CMD_REGULATOR=y
+# CONFIG_SPL_DOS_PARTITION is not set
+CONFIG_SPL_OF_CONTROL=y
+CONFIG_OF_LIVE=y
+CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
+CONFIG_SYS_RELOC_GD_ENV_ADDR=y
+CONFIG_SPL_DM_SEQ_ALIAS=y
+CONFIG_SPL_REGMAP=y
+CONFIG_SPL_SYSCON=y
+CONFIG_AHCI_PCI=y
+CONFIG_DWC_AHCI=y
+CONFIG_SPL_CLK=y
+CONFIG_ROCKCHIP_GPIO=y
+CONFIG_SYS_I2C_ROCKCHIP=y
+CONFIG_LED=y
+CONFIG_LED_GPIO=y
+CONFIG_MISC=y
+CONFIG_SUPPORT_EMMC_RPMB=y
+CONFIG_MMC_DW=y
+CONFIG_MMC_DW_ROCKCHIP=y
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_SDMA=y
+CONFIG_MMC_SDHCI_ROCKCHIP=y
+CONFIG_DWC_ETH_QOS=y
+CONFIG_DWC_ETH_QOS_ROCKCHIP=y
+CONFIG_RTL8169=y
+CONFIG_PCIE_DW_ROCKCHIP=y
+CONFIG_PHY_ROCKCHIP_INNO_USB2=y
+CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
+CONFIG_SPL_PINCTRL=y
+CONFIG_DM_PMIC=y
+CONFIG_DM_PMIC_FAN53555=y
+CONFIG_PMIC_RK8XX=y
+CONFIG_REGULATOR_RK8XX=y
+CONFIG_PWM_ROCKCHIP=y
+CONFIG_SPL_RAM=y
+CONFIG_SCSI=y
+CONFIG_DEBUG_UART_SHIFT=2
+CONFIG_SYS_NS16550_MEM32=y
+CONFIG_SYSRESET=y
+CONFIG_USB=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_GENERIC=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_GENERIC=y
+CONFIG_USB_DWC3=y
+CONFIG_USB_DWC3_GENERIC=y
+CONFIG_ERRNO_STR=y
diff --git a/doc/board/index.rst b/doc/board/index.rst
index 3fb7c84f10c..fe775b1b05d 100644
--- a/doc/board/index.rst
+++ b/doc/board/index.rst
@@ -42,6 +42,7 @@  Board-specific doc
    phytec/index
    purism/index
    qualcomm/index
+   qnap/index
    renesas/index
    rockchip/index
    samsung/index
diff --git a/doc/board/qnap/index.rst b/doc/board/qnap/index.rst
new file mode 100644
index 00000000000..652ea11a056
--- /dev/null
+++ b/doc/board/qnap/index.rst
@@ -0,0 +1,9 @@ 
+.. SPDX-License-Identifier: GPL-2.0+
+
+Qnap
+====
+
+.. toctree::
+   :maxdepth: 2
+
+   ts433.rst
diff --git a/doc/board/qnap/ts433.rst b/doc/board/qnap/ts433.rst
new file mode 100644
index 00000000000..5c7fd314b7a
--- /dev/null
+++ b/doc/board/qnap/ts433.rst
@@ -0,0 +1,91 @@ 
+.. SPDX-License-Identifier: GPL-2.0+
+
+U-Boot for Qnap TS433 Devices
+=================================
+
+This allows U-Boot to boot the Qnap TS433 NAS
+
+Preparing the serial
+--------------------
+
+Qnap devices run their serial console with a 115200 baudrate. As the
+binary DDR-init and maskrom-downloader expect a 1500000 rate, it is
+necessary to adapt the binaries if their output is needed.
+
+This can be done with a binary provided in the rkbin repository.
+First the ddrbin_param.txt in the rkbin repo needs to be modified:
+
+.. code-block:: bash
+
+    diff --git a/tools/ddrbin_param.txt b/tools/ddrbin_param.txt
+    index 0dfdd318..82ade7e7 100644
+    --- a/tools/ddrbin_param.txt
+    +++ b/tools/ddrbin_param.txt
+    @@ -11,7 +11,7 @@ lp5_freq=
+
+     uart id=
+     uart iomux=
+    -uart baudrate=
+    +uart baudrate=115200
+
+     sr_idle=
+     pd_idle=
+
+And after that the ddrbin_tool binary can be used to modify apply this
+modification and also a new maskrom downloader can be build:
+
+.. code-block:: bash
+
+    $ tools/ddrbin_tool rk3568 tools/ddrbin_param.txt bin/rk35/rk3568_ddr_1560MHz_v1.21.bin
+    $ tools/boot_merger RKBOOT/RK3568MINIALL.ini
+
+Building U-Boot
+---------------
+
+.. code-block:: bash
+
+    $ export CROSS_COMPILE=aarch64-linux-gnu-
+    $ export BL31=../rkbin/bin/rk35/rk3568_bl31_v1.34.elf
+    $ export ROCKCHIP_TPL=../rkbin/bin/rk35/rk3568_ddr_1056MHz_v1.13.bin
+    $ make qnap-ts433-rk3568_defconfig
+    $ make
+
+This will build ``u-boot-rockchip.bin`` which can be written to the
+on-board eMMC.
+
+Image installation
+------------------
+
+The Qnap thankfully provides an easily accessible serial header as well as
+a very user-friendly jumper-header to bring the device into maskrom mode.
+
+To access both, the drive trays need to be removed. Looking at the board,
+through the upper cutout of the metal frame the white 4-port serial-header
+can be seen next to a barcode sticker. It's pinout is as follows:
+
+.. code-block:: bash
+
+   ,_  _.
+   |1234|  1=TX 2=VCC
+   `----'  3=RX 4=GND
+
+
+Directly below it, the mentioned 2-pin jumper header can be seen.
+
+To write your u-boot to the device, it needs to be powered off first. Then
+a jumper or suitable cable needs to be used to connect the two pins of the
+maskrom header. Turning on the device now will start it in maskrom mode.
+
+It is important that the jumper gets removed after that stop and before
+actually trying to write to the emmc.
+
+The front usb-port needs to be connected to the host with an USB-A-to-A
+cable to allow flashing.
+
+The flashing itself is done via rkdeveloptool, which can be found for
+example as package of that name in Debian-based distributions:
+
+.. code-block:: bash
+
+    $ rkdeveloptool db rk356x_spl_loader_v1.21.113.bin
+    $ rkdeveloptool wl 64 u-boot-rockchip.bin
diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst
index 7b11a2e0a35..0783603ec50 100644
--- a/doc/board/rockchip/rockchip.rst
+++ b/doc/board/rockchip/rockchip.rst
@@ -119,6 +119,7 @@  List of mainline supported Rockchip boards:
      - FriendlyElec NanoPi R5S (nanopi-r5s-rk3568)
      - Generic RK3566/RK3568 (generic-rk3568)
      - Hardkernel ODROID-M1 (odroid-m1-rk3568)
+     - QNAP TS-433 (qnap-ts433-rk3568)
      - Radxa E25 Carrier Board (radxa-e25-rk3568)
      - Radxa ROCK 3A (rock-3a-rk3568)
      - Radxa ROCK 3B (rock-3b-rk3568)
diff --git a/include/configs/qnap_ts433.h b/include/configs/qnap_ts433.h
new file mode 100644
index 00000000000..aee4546bf07
--- /dev/null
+++ b/include/configs/qnap_ts433.h
@@ -0,0 +1,10 @@ 
+/* SPDX-License-Identifier: GPL-2.0+ */
+
+#ifndef __QNAP_TS433_H
+#define __QNAP_TS433_H
+
+#define ROCKCHIP_DEVICE_SETTINGS
+
+#include <configs/rk3568_common.h>
+
+#endif