mirror of
https://github.com/smaeul/u-boot.git
synced 2025-10-14 04:46:01 +01:00
board: rockchip: add support for Qnap TS433 devices
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>
This commit is contained in:
parent
373a336e2f
commit
d3cacb79e7
6
arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi
Normal file
6
arch/arm/dts/rk3568-qnap-ts433-u-boot.dtsi
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
/*
|
||||||
|
* (C) Copyright 2024 Heiko Stuebner <heiko@sntech.de>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "rk356x-u-boot.dtsi"
|
@ -32,6 +32,19 @@ config TARGET_POWKIDDY_X55_RK3566
|
|||||||
help
|
help
|
||||||
Powkiddy X55 handheld gaming console with an RK3566 SoC.
|
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
|
config TARGET_QUARTZ64_RK3566
|
||||||
bool "Pine64 Quartz64"
|
bool "Pine64 Quartz64"
|
||||||
help
|
help
|
||||||
@ -70,6 +83,7 @@ source "board/hardkernel/odroid_m1/Kconfig"
|
|||||||
source "board/hardkernel/odroid_m1s/Kconfig"
|
source "board/hardkernel/odroid_m1s/Kconfig"
|
||||||
source "board/pine64/quartz64_rk3566/Kconfig"
|
source "board/pine64/quartz64_rk3566/Kconfig"
|
||||||
source "board/powkiddy/x55/Kconfig"
|
source "board/powkiddy/x55/Kconfig"
|
||||||
|
source "board/qnap/ts433/Kconfig"
|
||||||
source "board/radxa/zero3-rk3566/Kconfig"
|
source "board/radxa/zero3-rk3566/Kconfig"
|
||||||
source "board/xunlong/orangepi-3b-rk3566/Kconfig"
|
source "board/xunlong/orangepi-3b-rk3566/Kconfig"
|
||||||
|
|
||||||
|
12
board/qnap/ts433/Kconfig
Normal file
12
board/qnap/ts433/Kconfig
Normal file
@ -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
|
8
board/qnap/ts433/MAINTAINERS
Normal file
8
board/qnap/ts433/MAINTAINERS
Normal file
@ -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
|
87
configs/qnap-ts433-rk3568_defconfig
Normal file
87
configs/qnap-ts433-rk3568_defconfig
Normal file
@ -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
|
@ -43,6 +43,7 @@ Board-specific doc
|
|||||||
phytec/index
|
phytec/index
|
||||||
purism/index
|
purism/index
|
||||||
qualcomm/index
|
qualcomm/index
|
||||||
|
qnap/index
|
||||||
renesas/index
|
renesas/index
|
||||||
rockchip/index
|
rockchip/index
|
||||||
samsung/index
|
samsung/index
|
||||||
|
9
doc/board/qnap/index.rst
Normal file
9
doc/board/qnap/index.rst
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
.. SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
Qnap
|
||||||
|
====
|
||||||
|
|
||||||
|
.. toctree::
|
||||||
|
:maxdepth: 2
|
||||||
|
|
||||||
|
ts433.rst
|
91
doc/board/qnap/ts433.rst
Normal file
91
doc/board/qnap/ts433.rst
Normal file
@ -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:: none
|
||||||
|
|
||||||
|
,_ _.
|
||||||
|
|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
|
@ -119,6 +119,7 @@ List of mainline supported Rockchip boards:
|
|||||||
- FriendlyElec NanoPi R5S (nanopi-r5s-rk3568)
|
- FriendlyElec NanoPi R5S (nanopi-r5s-rk3568)
|
||||||
- Generic RK3566/RK3568 (generic-rk3568)
|
- Generic RK3566/RK3568 (generic-rk3568)
|
||||||
- Hardkernel ODROID-M1 (odroid-m1-rk3568)
|
- Hardkernel ODROID-M1 (odroid-m1-rk3568)
|
||||||
|
- QNAP TS-433 (qnap-ts433-rk3568)
|
||||||
- Radxa E25 Carrier Board (radxa-e25-rk3568)
|
- Radxa E25 Carrier Board (radxa-e25-rk3568)
|
||||||
- Radxa ROCK 3A (rock-3a-rk3568)
|
- Radxa ROCK 3A (rock-3a-rk3568)
|
||||||
- Radxa ROCK 3B (rock-3b-rk3568)
|
- Radxa ROCK 3B (rock-3b-rk3568)
|
||||||
|
10
include/configs/qnap_ts433.h
Normal file
10
include/configs/qnap_ts433.h
Normal file
@ -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
|
Loading…
x
Reference in New Issue
Block a user