Hello! This adds support for the FriendlyElec CM3588 NAS board. The board's device tree makes use of the latest upstream advances on the RK3588 like USB3 DRD and GPU support as well as the latest Rockchip PCIe driver bifurcation fixes, but some features such as thermal management and HDMI will have to be added later when SoC support for these features is merged. Since the hardware has similarities with FriendlyElec's NanoPC T6, the device tree for the CM3588 NAS also partially shares some sections with the NanoPC T6 tree. Minor issue: The device enumeration of NVMe SSDs plugged into the four PCIe M.2 slots does not follow the order of the slots on the board: The slots are physically named from 1 to 4, top to bottom. However, they do not show up in this same order in Linux when all slots are polulated: - SSD in physical slot 1 shows up as nvme0 - SSD in physical slot 2 shows up as nvme2 - SSD in physical slot 3 shows up as nvme1 - SSD in physical slot 4 shows up as nvme3 This is the same order in which the data lanes are mapped for PCIe bifurcation (dts property: data-lanes = <1 3 2 4>). I could not solve this by using aliases for the PCIe nodes in the device tree. Perhaps this is something that can only be solved at driver level? I am not sure if this behaviour is even considered a bug or if this is intended behaviour by design. Devicetree validation: `make CHECK_DTBS=y rockchip/rk3588-cm3588-nas.dtb` does not give any warnings or errors, tested on Linux next-20240523. Best regards, Sebastian Kropatsch --- Sebastian Kropatsch (2): dt-bindings: arm: rockchip: Add CM3588 NAS arm64: dts: rockchip: Add CM3588 NAS board .../devicetree/bindings/arm/rockchip.yaml | 5 + arch/arm64/boot/dts/rockchip/Makefile | 1 + .../boot/dts/rockchip/rk3588-cm3588-nas.dts | 1269 +++++++++++++++++ 3 files changed, 1275 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3588-cm3588-nas.dts -- 2.43.0