[PATCH v2 12/12] rockchip: board: qnap-tsx33: add support for Qnap TS233 devices
Quentin Schulz
quentin.schulz at cherry.de
Fri Feb 13 18:06:16 CET 2026
Hi Heiko,
On 1/14/26 9:28 AM, Heiko Stuebner wrote:
> The TS233 shares the same basic peripheral setup for
> SoC, DDR, EMMC, 3 USB-ports, 1G network interface, SoC-SATA ports,
> serial and maskrom access.
>
> It could just share the same U-Boot binary with the TS433, and the type-
> selection would take care of loading the right DTB for the operating
> system. But right now we can't select the correct DTB for inside U-Boot
> itself.
>
> So for the time being, add separate defconfig and documentation for it.
>
> Signed-off-by: Heiko Stuebner <heiko at sntech.de>
> ---
> arch/arm/dts/rk3568-qnap-ts233-u-boot.dtsi | 6 ++
> board/qnap/tsx33_rk356x/MAINTAINERS | 2 +
> board/qnap/tsx33_rk356x/board.c | 4 +-
> configs/qnap-ts233-rk3568_defconfig | 85 ++++++++++++++++++++++
> doc/board/qnap/ts233.rst | 37 ++++++++++
> 5 files changed, 132 insertions(+), 2 deletions(-)
> create mode 100644 arch/arm/dts/rk3568-qnap-ts233-u-boot.dtsi
> create mode 100644 configs/qnap-ts233-rk3568_defconfig
> create mode 100644 doc/board/qnap/ts233.rst
>
> diff --git a/arch/arm/dts/rk3568-qnap-ts233-u-boot.dtsi b/arch/arm/dts/rk3568-qnap-ts233-u-boot.dtsi
> new file mode 100644
> index 00000000000..19acbceb468
> --- /dev/null
> +++ b/arch/arm/dts/rk3568-qnap-ts233-u-boot.dtsi
> @@ -0,0 +1,6 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * (C) Copyright 2024 Heiko Stuebner <heiko at sntech.de>
> + */
> +
> +#include "rk356x-u-boot.dtsi"
> diff --git a/board/qnap/tsx33_rk356x/MAINTAINERS b/board/qnap/tsx33_rk356x/MAINTAINERS
> index b91274c7b43..af9bf9fe0c5 100644
> --- a/board/qnap/tsx33_rk356x/MAINTAINERS
> +++ b/board/qnap/tsx33_rk356x/MAINTAINERS
> @@ -4,5 +4,7 @@ S: Maintained
> F: board/qnap/tsx33_rk356x/
> F: doc/board/qnap/
> F: include/configs/qnap_tsx33.h
> +F: configs/qnap-ts233-rk3568_defconfig
> F: configs/qnap-ts433-rk3568_defconfig
> +F: arch/arm/dts/rk3568-qnap-ts233-u-boot.dtsi
> F: arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi
> diff --git a/board/qnap/tsx33_rk356x/board.c b/board/qnap/tsx33_rk356x/board.c
> index 006add6fb30..7cfff372d8e 100644
> --- a/board/qnap/tsx33_rk356x/board.c
> +++ b/board/qnap/tsx33_rk356x/board.c
> @@ -85,7 +85,7 @@ static const struct tsx33_model tsx33_models[TSX33_MODELS] = {
> "Q0AM0",
> 11,
> "TS233",
> - NULL, /* not yet supported */
> + DTB_DIR "rk3568-qnap-ts233.dtb",
> },
> [Q0AJ0_Q0AM0_11_10] = {
> "Q0AJ0",
> @@ -93,7 +93,7 @@ static const struct tsx33_model tsx33_models[TSX33_MODELS] = {
> "Q0AM0",
> 10,
> "TS233",
> - NULL, /* not yet supported */
> + DTB_DIR "rk3568-qnap-ts233.dtb",
> },
> [Q0B20_Q0AW0_12_10] = {
> "Q0B20",
> diff --git a/configs/qnap-ts233-rk3568_defconfig b/configs/qnap-ts233-rk3568_defconfig
> new file mode 100644
> index 00000000000..53ac5b25bd0
> --- /dev/null
> +++ b/configs/qnap-ts233-rk3568_defconfig
> @@ -0,0 +1,85 @@
> +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-ts233"
> +CONFIG_ROCKCHIP_RK3568=y
> +CONFIG_SPL_SERIAL=y
> +CONFIG_TARGET_QNAP_TSX33_RK356X=y
> +CONFIG_SYS_LOAD_ADDR=0xc00800
> +CONFIG_DEBUG_UART_BASE=0xFE660000
> +CONFIG_DEBUG_UART_CLOCK=24000000
> +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-ts233.dtb"
> +# CONFIG_DISPLAY_CPUINFO is not set
> +CONFIG_DISPLAY_BOARDINFO_LATE=y
> +CONFIG_SPL_MAX_SIZE=0x40000
> +# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
> +CONFIG_SPL_ATF=y
> +CONFIG_BOARD_TYPES=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_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_ENV_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_I2C_EEPROM=y
> +CONFIG_SUPPORT_EMMC_RPMB=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_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
> +# CONFIG_SPL_ATF_NO_PLATFORM_PARAM is not set
NAK. This forces upstream TF-A to be used with this device and differs
from the config used for TS433.
> +CONFIG_OPTEE_LIB=y
> diff --git a/doc/board/qnap/ts233.rst b/doc/board/qnap/ts233.rst
> new file mode 100644
> index 00000000000..b706d97afa0
> --- /dev/null
> +++ b/doc/board/qnap/ts233.rst
You need to add ts233.rst to doc/board/qnap/index.rst (or use :glob:
with a pattern in the toctree, see
https://www.sphinx-doc.org/en/master/usage/restructuredtext/directives.html#directive-option-toctree-glob).
> @@ -0,0 +1,37 @@
> +.. SPDX-License-Identifier: GPL-2.0+
> +
> +U-Boot for Qnap TS233 Devices
> +=============================
> +
> +This allows U-Boot to boot the Qnap TS233 NAS
> +
> +The device is similar to the TS433 in terms of its basic peripheral setup
> +of SoC, DDR, EMMC, 3 USB-ports, 1G network interface, SoC-SATA ports,
> +serial and maskrom access.
> +
> +Please follow the TS433 steps but with the following changes.
Please link to it, e.g. with :doc:`../ts433` (not tested).
Otherwise, I can suggest to make use of the include directive such that
you have a file with the common content for TS233 and TS433 that you
.. include:: building-u-boot.rst
See https://docutils.sourceforge.io/docs/ref/rst/directives.html#include.
Maybe we should provide such a base file for Rockchip SoCs such that we
don't need to duplicate this for all boards. And they won't be outdated.
For another time :)
Cheers,
Quentin
More information about the U-Boot
mailing list