public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [PATCH v2 1/2] board: rockchip: Add FriendlyElec NanoPi R6C
@ 2024-06-07 20:17 Sebastian Kropatsch
  2024-06-07 20:17 ` [PATCH v2 2/2] board: rockchip: Add FriendlyElec NanoPi R6S Sebastian Kropatsch
  2024-06-14  8:58 ` [PATCH v2 1/2] board: rockchip: Add FriendlyElec NanoPi R6C Kever Yang
  0 siblings, 2 replies; 6+ messages in thread
From: Sebastian Kropatsch @ 2024-06-07 20:17 UTC (permalink / raw)
  To: Simon Glass, Philipp Tomsich, Kever Yang; +Cc: Tom Rini, u-boot, Quentin Schulz

The NanoPi R6C is a SBC by FriendlyElec based on the Rockchip RK3588s.
It comes with 4GB or 8GB of RAM, a microSD card slot, optional 32GB eMMC
storage, one M.2 M-Key connector, one RTL8211F 1GbE and one RTL8125
2.5GbE Ethernet port, one USB 2.0 Type-A and one USB 3.0 Type-A port, a
HDMI port, a 30-pin GPIO header as well as multiple buttons and LEDs.

Add initial support for this board using the upstream devicetree sources.

Tests in U-Boot proper:
- Booting from eMMC works
- 1GbE Ethernet works using the eth_eqos driver (tested by ping)
- 2.5GbE Ethernet works using the eth_rtl8169 driver (tested by ping),
  but the status LEDs on this specific port currently aren't working
- NVMe SSD in M.2 socket does get recognized (tested with `nvme scan`
  followed by `nvme details`)

Kernel commit:
d5f1d7437451 ("arm64: dts: rockchip: Add support for NanoPi R6C")

Signed-off-by: Sebastian Kropatsch <seb-dev@mail.de>
Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
---

Changes v1 -> v2:

- Add missing 'S' to 'RK3588S' symbols
- Add similar board NanoPi R6S (new patch)
- Collect r-b tag from Quentin Schulz for patch 1
- Link to v1: https://lore.kernel.org/u-boot/20240605155413.226629-1-seb-dev@mail.de/

Hello!

The Ethernet status LEDs which sit directly on the 2.5GbE port using the
RTL8169 driver don't light up when connected and I couldn't figure out
why. The other port with a RTL8211F has no problems with the LEDs.
Have there been occurrences like this in combination with the RTL8125?
I'm trying to figure out if this is something that could be solved in
the devicetree or if this is a potential driver bug.

Secondly, the default active network device in U-Boot is the 1GbE one.
I believe it would make sense to make the 2.5GbE device the default
active one since this one is labeled "LAN", whereas the 1GbE is labeled
"WAN". However, since the 2.5GbE device is PCIe-based, it only shows up
in U-Boot proper after using the `pci enum` command (shows up as in gets
listed in `net list` and `dm tree`).
Do you have any tips on the preferred approach to handle this switch of
the default active net device? Is this even a sensible thing to include
in U-Boot in your opinion?

Thanks for your feedback!

Cheers,
Sebastian

---
 arch/arm/dts/rk3588s-nanopi-r6c-u-boot.dtsi   |  3 +
 arch/arm/mach-rockchip/rk3588/Kconfig         | 13 +++
 board/friendlyelec/nanopi-r6c-rk3588s/Kconfig | 12 +++
 .../nanopi-r6c-rk3588s/MAINTAINERS            |  7 ++
 configs/nanopi-r6c-rk3588s_defconfig          | 83 +++++++++++++++++++
 doc/board/rockchip/rockchip.rst               |  1 +
 include/configs/nanopi-r6c-rk3588s.h          | 12 +++
 7 files changed, 131 insertions(+)
 create mode 100644 arch/arm/dts/rk3588s-nanopi-r6c-u-boot.dtsi
 create mode 100644 board/friendlyelec/nanopi-r6c-rk3588s/Kconfig
 create mode 100644 board/friendlyelec/nanopi-r6c-rk3588s/MAINTAINERS
 create mode 100644 configs/nanopi-r6c-rk3588s_defconfig
 create mode 100644 include/configs/nanopi-r6c-rk3588s.h

diff --git a/arch/arm/dts/rk3588s-nanopi-r6c-u-boot.dtsi b/arch/arm/dts/rk3588s-nanopi-r6c-u-boot.dtsi
new file mode 100644
index 0000000000..853ed58cfe
--- /dev/null
+++ b/arch/arm/dts/rk3588s-nanopi-r6c-u-boot.dtsi
@@ -0,0 +1,3 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+#include "rk3588s-u-boot.dtsi"
diff --git a/arch/arm/mach-rockchip/rk3588/Kconfig b/arch/arm/mach-rockchip/rk3588/Kconfig
index 820e979abb..4b7d751c6f 100644
--- a/arch/arm/mach-rockchip/rk3588/Kconfig
+++ b/arch/arm/mach-rockchip/rk3588/Kconfig
@@ -78,6 +78,18 @@ config TARGET_NANOPCT6_RK3588
 	  Power: 5.5*2.1mm DC Jack, 12VDC input
 	  Dimensions: 110x80x1.6mm (without case) / 86x114.5x30mm (with case)
 
+config TARGET_NANOPI_R6C_RK3588S
+	bool "FriendlyElec NanoPi R6C"
+	select BOARD_LATE_INIT
+	help
+	  The NanoPi R6C is a SBC by FriendlyElec based on the Rockchip
+	  RK3588s.
+	  It comes with 4GB or 8GB of RAM, a microSD card slot, optional 32GB
+	  eMMC storage, one M.2 M-Key connector, one RTL8211F 1GbE and one
+	  RTL8125 2.5GbE Ethernet port, one USB 2.0 Type-A and one USB 3.0
+	  Type-A port, a HDMI port, a 30-pin GPIO header as well as some
+	  buttons and LEDs.
+
 config TARGET_NOVA_RK3588
 	bool "Indiedroid Nova RK3588"
 	select BOARD_LATE_INIT
@@ -232,6 +244,7 @@ config TEXT_BASE
 
 source "board/edgeble/neural-compute-module-6/Kconfig"
 source "board/friendlyelec/nanopc-t6-rk3588/Kconfig"
+source "board/friendlyelec/nanopi-r6c-rk3588s/Kconfig"
 source "board/indiedroid/nova/Kconfig"
 source "board/pine64/quartzpro64-rk3588/Kconfig"
 source "board/turing/turing-rk1-rk3588/Kconfig"
diff --git a/board/friendlyelec/nanopi-r6c-rk3588s/Kconfig b/board/friendlyelec/nanopi-r6c-rk3588s/Kconfig
new file mode 100644
index 0000000000..2d8acbf62f
--- /dev/null
+++ b/board/friendlyelec/nanopi-r6c-rk3588s/Kconfig
@@ -0,0 +1,12 @@
+if TARGET_NANOPI_R6C_RK3588S
+
+config SYS_BOARD
+	default "nanopi-r6c-rk3588s"
+
+config SYS_VENDOR
+	default "friendlyelec"
+
+config SYS_CONFIG_NAME
+	default "nanopi-r6c-rk3588s"
+
+endif
diff --git a/board/friendlyelec/nanopi-r6c-rk3588s/MAINTAINERS b/board/friendlyelec/nanopi-r6c-rk3588s/MAINTAINERS
new file mode 100644
index 0000000000..18d0bd1287
--- /dev/null
+++ b/board/friendlyelec/nanopi-r6c-rk3588s/MAINTAINERS
@@ -0,0 +1,7 @@
+NANOPI-R6C
+M:	Sebastian Kropatsch <seb-dev@mail.de>
+S:	Maintained
+F:	arch/arm/dts/rk3588s-nanopi-r6c-u-boot.dtsi
+F:	board/friendlyelec/nanopi-r6c-rk3588s
+F:	configs/nanopi-r6c-rk3588s_defconfig
+F:	include/configs/nanopi-r6c-rk3588s.h
diff --git a/configs/nanopi-r6c-rk3588s_defconfig b/configs/nanopi-r6c-rk3588s_defconfig
new file mode 100644
index 0000000000..f8d2d67bd3
--- /dev/null
+++ b/configs/nanopi-r6c-rk3588s_defconfig
@@ -0,0 +1,83 @@
+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/rk3588s-nanopi-r6c"
+CONFIG_ROCKCHIP_RK3588=y
+CONFIG_SPL_SERIAL=y
+CONFIG_TARGET_NANOPI_R6C_RK3588S=y
+CONFIG_DEBUG_UART_BASE=0xFEB50000
+CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_SYS_LOAD_ADDR=0xc00800
+CONFIG_PCI=y
+CONFIG_DEBUG_UART=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/rk3588s-nanopi-r6c.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_PWM=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_PCI=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_ROCKUSB=y
+# CONFIG_CMD_SETEXPR is not set
+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_SPL_DM_SEQ_ALIAS=y
+CONFIG_SPL_REGMAP=y
+CONFIG_SPL_SYSCON=y
+CONFIG_SPL_CLK=y
+# CONFIG_USB_FUNCTION_FASTBOOT is not set
+CONFIG_ROCKCHIP_GPIO=y
+CONFIG_SYS_I2C_ROCKCHIP=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_SPI_FLASH is not set
+CONFIG_PHY_REALTEK=y
+CONFIG_DWC_ETH_QOS=y
+CONFIG_DWC_ETH_QOS_ROCKCHIP=y
+CONFIG_RTL8169=y
+CONFIG_NVME_PCI=y
+CONFIG_PCIE_DW_ROCKCHIP=y
+CONFIG_PHY_ROCKCHIP_INNO_USB2=y
+CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
+CONFIG_PHY_ROCKCHIP_USBDP=y
+CONFIG_SPL_PINCTRL=y
+CONFIG_PWM_ROCKCHIP=y
+CONFIG_SPL_RAM=y
+CONFIG_BAUDRATE=1500000
+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_USB_GADGET=y
+CONFIG_USB_GADGET_DOWNLOAD=y
+CONFIG_USB_FUNCTION_ROCKUSB=y
+CONFIG_ERRNO_STR=y
diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst
index cfbf641f49..a3d9837dda 100644
--- a/doc/board/rockchip/rockchip.rst
+++ b/doc/board/rockchip/rockchip.rst
@@ -123,6 +123,7 @@ List of mainline supported Rockchip boards:
      - Edgeble Neural Compute Module 6A SoM - Neu6a (neu6a-io-rk3588)
      - Edgeble Neural Compute Module 6B SoM - Neu6b (neu6b-io-rk3588)
      - FriendlyElec NanoPC-T6 (nanopc-t6-rk3588)
+     - FriendlyElec NanoPi R6C (nanopi-r6c-rk3588s)
      - Generic RK3588S/RK3588 (generic-rk3588)
      - Indiedroid Nova (nova-rk3588s)
      - Pine64 QuartzPro64 (quartzpro64-rk3588)
diff --git a/include/configs/nanopi-r6c-rk3588s.h b/include/configs/nanopi-r6c-rk3588s.h
new file mode 100644
index 0000000000..2b57d60eb5
--- /dev/null
+++ b/include/configs/nanopi-r6c-rk3588s.h
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+
+#ifndef __NANOPI_R6C_RK3588S_H
+#define __NANOPI_R6C_RK3588S_H
+
+#define ROCKCHIP_DEVICE_SETTINGS \
+		"stdout=serial,vidconsole\0" \
+		"stderr=serial,vidconsole\0"
+
+#include <configs/rk3588_common.h>
+
+#endif /* __NANOPI_R6C_RK3588S_H */
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH v2 2/2] board: rockchip: Add FriendlyElec NanoPi R6S
  2024-06-07 20:17 [PATCH v2 1/2] board: rockchip: Add FriendlyElec NanoPi R6C Sebastian Kropatsch
@ 2024-06-07 20:17 ` Sebastian Kropatsch
  2024-06-14  8:58   ` Kever Yang
  2024-06-20 22:07   ` Ulli Kehrle
  2024-06-14  8:58 ` [PATCH v2 1/2] board: rockchip: Add FriendlyElec NanoPi R6C Kever Yang
  1 sibling, 2 replies; 6+ messages in thread
From: Sebastian Kropatsch @ 2024-06-07 20:17 UTC (permalink / raw)
  To: Simon Glass, Philipp Tomsich, Kever Yang; +Cc: Tom Rini, u-boot

The NanoPi R6S is a SBC by FriendlyElec based on the Rockchip RK3588s.
It comes with 4GB or 8GB of RAM, a microSD card slot, 32GB eMMC storage,
one RTL8211F 1GbE and two RTL8125 2.5GbE Ethernet ports, one USB 2.0
Type-A and one USB 3.0 Type-A port, a HDMI port, a 12-pin GPIO FPC
connector, a fan connector, IR receiver as well as some buttons and LEDs.

Add initial support for this board using the upstream devicetree sources.

Kernel commit:
f1b11f43b3e9 ("arm64: dts: rockchip: Add support for NanoPi R6S")

Signed-off-by: Sebastian Kropatsch <seb-dev@mail.de>
---

The R6S is very similar to the R6C, the major difference being that
instead of the M.2 NVMe socket on the R6C, the R6S has a second RTL8125BG
Ethernet chip, which uses the same PCIe lanes that the R6C uses for its
M.2 socket. Other minor differences include:
- 12-pin GPIO FPC instead of 30-pin header
- IR receiver (pwm-based)
- 5V fan connector
Other than that, they are the same, which is why the difference in
U-Boot is only the missing NVME config option in the R6S defconfig.

Please note that I was not able to test this device. I only chose to
add it due to it being a very similar implementation to the R6C, like the
NanoPi R5C and R5S are similar. It should however boot just fine and even
both RTL8125 Ethernet ports should work in U-Boot since RTL8125 is the
same chip used in the R6C, using the rtl8169 driver.

If this is not how things should be done in U-Boot, please disregard
and drop this patch :) Thanks!

---
 arch/arm/dts/rk3588s-nanopi-r6s-u-boot.dtsi   |  3 +
 arch/arm/mach-rockchip/rk3588/Kconfig         | 12 +++
 board/friendlyelec/nanopi-r6s-rk3588s/Kconfig | 12 +++
 .../nanopi-r6s-rk3588s/MAINTAINERS            |  7 ++
 configs/nanopi-r6s-rk3588s_defconfig          | 82 +++++++++++++++++++
 doc/board/rockchip/rockchip.rst               |  1 +
 include/configs/nanopi-r6s-rk3588s.h          | 12 +++
 7 files changed, 129 insertions(+)
 create mode 100644 arch/arm/dts/rk3588s-nanopi-r6s-u-boot.dtsi
 create mode 100644 board/friendlyelec/nanopi-r6s-rk3588s/Kconfig
 create mode 100644 board/friendlyelec/nanopi-r6s-rk3588s/MAINTAINERS
 create mode 100644 configs/nanopi-r6s-rk3588s_defconfig
 create mode 100644 include/configs/nanopi-r6s-rk3588s.h

diff --git a/arch/arm/dts/rk3588s-nanopi-r6s-u-boot.dtsi b/arch/arm/dts/rk3588s-nanopi-r6s-u-boot.dtsi
new file mode 100644
index 0000000000..853ed58cfe
--- /dev/null
+++ b/arch/arm/dts/rk3588s-nanopi-r6s-u-boot.dtsi
@@ -0,0 +1,3 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+#include "rk3588s-u-boot.dtsi"
diff --git a/arch/arm/mach-rockchip/rk3588/Kconfig b/arch/arm/mach-rockchip/rk3588/Kconfig
index 4b7d751c6f..a9e400861a 100644
--- a/arch/arm/mach-rockchip/rk3588/Kconfig
+++ b/arch/arm/mach-rockchip/rk3588/Kconfig
@@ -90,6 +90,18 @@ config TARGET_NANOPI_R6C_RK3588S
 	  Type-A port, a HDMI port, a 30-pin GPIO header as well as some
 	  buttons and LEDs.
 
+config TARGET_NANOPI_R6S_RK3588S
+	bool "FriendlyElec NanoPi R6S"
+	select BOARD_LATE_INIT
+	help
+	  The NanoPi R6S is a SBC by FriendlyElec based on the Rockchip
+	  RK3588s.
+	  It comes with 4GB or 8GB of RAM, a microSD card slot, 32GB eMMC
+	  storage, one RTL8211F 1GbE and two RTL8125 2.5GbE Ethernet ports,
+	  one USB 2.0 Type-A and one USB 3.0 Type-A port, a HDMI port, a
+	  12-pin GPIO FPC connector, a fan connector, IR receiver as well
+	  as some buttons and LEDs.
+
 config TARGET_NOVA_RK3588
 	bool "Indiedroid Nova RK3588"
 	select BOARD_LATE_INIT
diff --git a/board/friendlyelec/nanopi-r6s-rk3588s/Kconfig b/board/friendlyelec/nanopi-r6s-rk3588s/Kconfig
new file mode 100644
index 0000000000..4d579816b1
--- /dev/null
+++ b/board/friendlyelec/nanopi-r6s-rk3588s/Kconfig
@@ -0,0 +1,12 @@
+if TARGET_NANOPI_R6S_RK3588S
+
+config SYS_BOARD
+	default "nanopi-r6s-rk3588s"
+
+config SYS_VENDOR
+	default "friendlyelec"
+
+config SYS_CONFIG_NAME
+	default "nanopi-r6s-rk3588s"
+
+endif
diff --git a/board/friendlyelec/nanopi-r6s-rk3588s/MAINTAINERS b/board/friendlyelec/nanopi-r6s-rk3588s/MAINTAINERS
new file mode 100644
index 0000000000..76288b4320
--- /dev/null
+++ b/board/friendlyelec/nanopi-r6s-rk3588s/MAINTAINERS
@@ -0,0 +1,7 @@
+NANOPI-R6S
+M:	Sebastian Kropatsch <seb-dev@mail.de>
+S:	Maintained
+F:	arch/arm/dts/rk3588s-nanopi-r6s-u-boot.dtsi
+F:	board/friendlyelec/nanopi-r6s-rk3588s
+F:	configs/nanopi-r6s-rk3588s_defconfig
+F:	include/configs/nanopi-r6s-rk3588s.h
diff --git a/configs/nanopi-r6s-rk3588s_defconfig b/configs/nanopi-r6s-rk3588s_defconfig
new file mode 100644
index 0000000000..f7b364655f
--- /dev/null
+++ b/configs/nanopi-r6s-rk3588s_defconfig
@@ -0,0 +1,82 @@
+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/rk3588s-nanopi-r6s"
+CONFIG_ROCKCHIP_RK3588=y
+CONFIG_SPL_SERIAL=y
+CONFIG_TARGET_NANOPI_R6S_RK3588S=y
+CONFIG_DEBUG_UART_BASE=0xFEB50000
+CONFIG_DEBUG_UART_CLOCK=24000000
+CONFIG_SYS_LOAD_ADDR=0xc00800
+CONFIG_PCI=y
+CONFIG_DEBUG_UART=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/rk3588s-nanopi-r6s.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_PWM=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_PCI=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_ROCKUSB=y
+# CONFIG_CMD_SETEXPR is not set
+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_SPL_DM_SEQ_ALIAS=y
+CONFIG_SPL_REGMAP=y
+CONFIG_SPL_SYSCON=y
+CONFIG_SPL_CLK=y
+# CONFIG_USB_FUNCTION_FASTBOOT is not set
+CONFIG_ROCKCHIP_GPIO=y
+CONFIG_SYS_I2C_ROCKCHIP=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_SPI_FLASH is not set
+CONFIG_PHY_REALTEK=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_PHY_ROCKCHIP_USBDP=y
+CONFIG_SPL_PINCTRL=y
+CONFIG_PWM_ROCKCHIP=y
+CONFIG_SPL_RAM=y
+CONFIG_BAUDRATE=1500000
+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_USB_GADGET=y
+CONFIG_USB_GADGET_DOWNLOAD=y
+CONFIG_USB_FUNCTION_ROCKUSB=y
+CONFIG_ERRNO_STR=y
diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst
index a3d9837dda..0b58086f06 100644
--- a/doc/board/rockchip/rockchip.rst
+++ b/doc/board/rockchip/rockchip.rst
@@ -124,6 +124,7 @@ List of mainline supported Rockchip boards:
      - Edgeble Neural Compute Module 6B SoM - Neu6b (neu6b-io-rk3588)
      - FriendlyElec NanoPC-T6 (nanopc-t6-rk3588)
      - FriendlyElec NanoPi R6C (nanopi-r6c-rk3588s)
+     - FriendlyElec NanoPi R6S (nanopi-r6s-rk3588s)
      - Generic RK3588S/RK3588 (generic-rk3588)
      - Indiedroid Nova (nova-rk3588s)
      - Pine64 QuartzPro64 (quartzpro64-rk3588)
diff --git a/include/configs/nanopi-r6s-rk3588s.h b/include/configs/nanopi-r6s-rk3588s.h
new file mode 100644
index 0000000000..a1b19783c5
--- /dev/null
+++ b/include/configs/nanopi-r6s-rk3588s.h
@@ -0,0 +1,12 @@
+/* SPDX-License-Identifier: GPL-2.0+ */
+
+#ifndef __NANOPI_R6S_RK3588S_H
+#define __NANOPI_R6S_RK3588S_H
+
+#define ROCKCHIP_DEVICE_SETTINGS \
+		"stdout=serial,vidconsole\0" \
+		"stderr=serial,vidconsole\0"
+
+#include <configs/rk3588_common.h>
+
+#endif /* __NANOPI_R6S_RK3588S_H */
-- 
2.45.2


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 1/2] board: rockchip: Add FriendlyElec NanoPi R6C
  2024-06-07 20:17 [PATCH v2 1/2] board: rockchip: Add FriendlyElec NanoPi R6C Sebastian Kropatsch
  2024-06-07 20:17 ` [PATCH v2 2/2] board: rockchip: Add FriendlyElec NanoPi R6S Sebastian Kropatsch
@ 2024-06-14  8:58 ` Kever Yang
  1 sibling, 0 replies; 6+ messages in thread
From: Kever Yang @ 2024-06-14  8:58 UTC (permalink / raw)
  To: Sebastian Kropatsch, Simon Glass, Philipp Tomsich
  Cc: Tom Rini, u-boot, Quentin Schulz


On 2024/6/8 04:17, Sebastian Kropatsch wrote:
> The NanoPi R6C is a SBC by FriendlyElec based on the Rockchip RK3588s.
> It comes with 4GB or 8GB of RAM, a microSD card slot, optional 32GB eMMC
> storage, one M.2 M-Key connector, one RTL8211F 1GbE and one RTL8125
> 2.5GbE Ethernet port, one USB 2.0 Type-A and one USB 3.0 Type-A port, a
> HDMI port, a 30-pin GPIO header as well as multiple buttons and LEDs.
>
> Add initial support for this board using the upstream devicetree sources.
>
> Tests in U-Boot proper:
> - Booting from eMMC works
> - 1GbE Ethernet works using the eth_eqos driver (tested by ping)
> - 2.5GbE Ethernet works using the eth_rtl8169 driver (tested by ping),
>    but the status LEDs on this specific port currently aren't working
> - NVMe SSD in M.2 socket does get recognized (tested with `nvme scan`
>    followed by `nvme details`)
>
> Kernel commit:
> d5f1d7437451 ("arm64: dts: rockchip: Add support for NanoPi R6C")
>
> Signed-off-by: Sebastian Kropatsch <seb-dev@mail.de>
> Reviewed-by: Quentin Schulz <quentin.schulz@cherry.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

Thanks,
- Kever
> ---
>
> Changes v1 -> v2:
>
> - Add missing 'S' to 'RK3588S' symbols
> - Add similar board NanoPi R6S (new patch)
> - Collect r-b tag from Quentin Schulz for patch 1
> - Link to v1: https://lore.kernel.org/u-boot/20240605155413.226629-1-seb-dev@mail.de/
>
> Hello!
>
> The Ethernet status LEDs which sit directly on the 2.5GbE port using the
> RTL8169 driver don't light up when connected and I couldn't figure out
> why. The other port with a RTL8211F has no problems with the LEDs.
> Have there been occurrences like this in combination with the RTL8125?
> I'm trying to figure out if this is something that could be solved in
> the devicetree or if this is a potential driver bug.
>
> Secondly, the default active network device in U-Boot is the 1GbE one.
> I believe it would make sense to make the 2.5GbE device the default
> active one since this one is labeled "LAN", whereas the 1GbE is labeled
> "WAN". However, since the 2.5GbE device is PCIe-based, it only shows up
> in U-Boot proper after using the `pci enum` command (shows up as in gets
> listed in `net list` and `dm tree`).
> Do you have any tips on the preferred approach to handle this switch of
> the default active net device? Is this even a sensible thing to include
> in U-Boot in your opinion?
>
> Thanks for your feedback!
>
> Cheers,
> Sebastian
>
> ---
>   arch/arm/dts/rk3588s-nanopi-r6c-u-boot.dtsi   |  3 +
>   arch/arm/mach-rockchip/rk3588/Kconfig         | 13 +++
>   board/friendlyelec/nanopi-r6c-rk3588s/Kconfig | 12 +++
>   .../nanopi-r6c-rk3588s/MAINTAINERS            |  7 ++
>   configs/nanopi-r6c-rk3588s_defconfig          | 83 +++++++++++++++++++
>   doc/board/rockchip/rockchip.rst               |  1 +
>   include/configs/nanopi-r6c-rk3588s.h          | 12 +++
>   7 files changed, 131 insertions(+)
>   create mode 100644 arch/arm/dts/rk3588s-nanopi-r6c-u-boot.dtsi
>   create mode 100644 board/friendlyelec/nanopi-r6c-rk3588s/Kconfig
>   create mode 100644 board/friendlyelec/nanopi-r6c-rk3588s/MAINTAINERS
>   create mode 100644 configs/nanopi-r6c-rk3588s_defconfig
>   create mode 100644 include/configs/nanopi-r6c-rk3588s.h
>
> diff --git a/arch/arm/dts/rk3588s-nanopi-r6c-u-boot.dtsi b/arch/arm/dts/rk3588s-nanopi-r6c-u-boot.dtsi
> new file mode 100644
> index 0000000000..853ed58cfe
> --- /dev/null
> +++ b/arch/arm/dts/rk3588s-nanopi-r6c-u-boot.dtsi
> @@ -0,0 +1,3 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +
> +#include "rk3588s-u-boot.dtsi"
> diff --git a/arch/arm/mach-rockchip/rk3588/Kconfig b/arch/arm/mach-rockchip/rk3588/Kconfig
> index 820e979abb..4b7d751c6f 100644
> --- a/arch/arm/mach-rockchip/rk3588/Kconfig
> +++ b/arch/arm/mach-rockchip/rk3588/Kconfig
> @@ -78,6 +78,18 @@ config TARGET_NANOPCT6_RK3588
>   	  Power: 5.5*2.1mm DC Jack, 12VDC input
>   	  Dimensions: 110x80x1.6mm (without case) / 86x114.5x30mm (with case)
>   
> +config TARGET_NANOPI_R6C_RK3588S
> +	bool "FriendlyElec NanoPi R6C"
> +	select BOARD_LATE_INIT
> +	help
> +	  The NanoPi R6C is a SBC by FriendlyElec based on the Rockchip
> +	  RK3588s.
> +	  It comes with 4GB or 8GB of RAM, a microSD card slot, optional 32GB
> +	  eMMC storage, one M.2 M-Key connector, one RTL8211F 1GbE and one
> +	  RTL8125 2.5GbE Ethernet port, one USB 2.0 Type-A and one USB 3.0
> +	  Type-A port, a HDMI port, a 30-pin GPIO header as well as some
> +	  buttons and LEDs.
> +
>   config TARGET_NOVA_RK3588
>   	bool "Indiedroid Nova RK3588"
>   	select BOARD_LATE_INIT
> @@ -232,6 +244,7 @@ config TEXT_BASE
>   
>   source "board/edgeble/neural-compute-module-6/Kconfig"
>   source "board/friendlyelec/nanopc-t6-rk3588/Kconfig"
> +source "board/friendlyelec/nanopi-r6c-rk3588s/Kconfig"
>   source "board/indiedroid/nova/Kconfig"
>   source "board/pine64/quartzpro64-rk3588/Kconfig"
>   source "board/turing/turing-rk1-rk3588/Kconfig"
> diff --git a/board/friendlyelec/nanopi-r6c-rk3588s/Kconfig b/board/friendlyelec/nanopi-r6c-rk3588s/Kconfig
> new file mode 100644
> index 0000000000..2d8acbf62f
> --- /dev/null
> +++ b/board/friendlyelec/nanopi-r6c-rk3588s/Kconfig
> @@ -0,0 +1,12 @@
> +if TARGET_NANOPI_R6C_RK3588S
> +
> +config SYS_BOARD
> +	default "nanopi-r6c-rk3588s"
> +
> +config SYS_VENDOR
> +	default "friendlyelec"
> +
> +config SYS_CONFIG_NAME
> +	default "nanopi-r6c-rk3588s"
> +
> +endif
> diff --git a/board/friendlyelec/nanopi-r6c-rk3588s/MAINTAINERS b/board/friendlyelec/nanopi-r6c-rk3588s/MAINTAINERS
> new file mode 100644
> index 0000000000..18d0bd1287
> --- /dev/null
> +++ b/board/friendlyelec/nanopi-r6c-rk3588s/MAINTAINERS
> @@ -0,0 +1,7 @@
> +NANOPI-R6C
> +M:	Sebastian Kropatsch <seb-dev@mail.de>
> +S:	Maintained
> +F:	arch/arm/dts/rk3588s-nanopi-r6c-u-boot.dtsi
> +F:	board/friendlyelec/nanopi-r6c-rk3588s
> +F:	configs/nanopi-r6c-rk3588s_defconfig
> +F:	include/configs/nanopi-r6c-rk3588s.h
> diff --git a/configs/nanopi-r6c-rk3588s_defconfig b/configs/nanopi-r6c-rk3588s_defconfig
> new file mode 100644
> index 0000000000..f8d2d67bd3
> --- /dev/null
> +++ b/configs/nanopi-r6c-rk3588s_defconfig
> @@ -0,0 +1,83 @@
> +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/rk3588s-nanopi-r6c"
> +CONFIG_ROCKCHIP_RK3588=y
> +CONFIG_SPL_SERIAL=y
> +CONFIG_TARGET_NANOPI_R6C_RK3588S=y
> +CONFIG_DEBUG_UART_BASE=0xFEB50000
> +CONFIG_DEBUG_UART_CLOCK=24000000
> +CONFIG_SYS_LOAD_ADDR=0xc00800
> +CONFIG_PCI=y
> +CONFIG_DEBUG_UART=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/rk3588s-nanopi-r6c.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_PWM=y
> +CONFIG_CMD_GPT=y
> +CONFIG_CMD_I2C=y
> +CONFIG_CMD_MMC=y
> +CONFIG_CMD_PCI=y
> +CONFIG_CMD_USB=y
> +CONFIG_CMD_ROCKUSB=y
> +# CONFIG_CMD_SETEXPR is not set
> +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_SPL_DM_SEQ_ALIAS=y
> +CONFIG_SPL_REGMAP=y
> +CONFIG_SPL_SYSCON=y
> +CONFIG_SPL_CLK=y
> +# CONFIG_USB_FUNCTION_FASTBOOT is not set
> +CONFIG_ROCKCHIP_GPIO=y
> +CONFIG_SYS_I2C_ROCKCHIP=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_SPI_FLASH is not set
> +CONFIG_PHY_REALTEK=y
> +CONFIG_DWC_ETH_QOS=y
> +CONFIG_DWC_ETH_QOS_ROCKCHIP=y
> +CONFIG_RTL8169=y
> +CONFIG_NVME_PCI=y
> +CONFIG_PCIE_DW_ROCKCHIP=y
> +CONFIG_PHY_ROCKCHIP_INNO_USB2=y
> +CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
> +CONFIG_PHY_ROCKCHIP_USBDP=y
> +CONFIG_SPL_PINCTRL=y
> +CONFIG_PWM_ROCKCHIP=y
> +CONFIG_SPL_RAM=y
> +CONFIG_BAUDRATE=1500000
> +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_USB_GADGET=y
> +CONFIG_USB_GADGET_DOWNLOAD=y
> +CONFIG_USB_FUNCTION_ROCKUSB=y
> +CONFIG_ERRNO_STR=y
> diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst
> index cfbf641f49..a3d9837dda 100644
> --- a/doc/board/rockchip/rockchip.rst
> +++ b/doc/board/rockchip/rockchip.rst
> @@ -123,6 +123,7 @@ List of mainline supported Rockchip boards:
>        - Edgeble Neural Compute Module 6A SoM - Neu6a (neu6a-io-rk3588)
>        - Edgeble Neural Compute Module 6B SoM - Neu6b (neu6b-io-rk3588)
>        - FriendlyElec NanoPC-T6 (nanopc-t6-rk3588)
> +     - FriendlyElec NanoPi R6C (nanopi-r6c-rk3588s)
>        - Generic RK3588S/RK3588 (generic-rk3588)
>        - Indiedroid Nova (nova-rk3588s)
>        - Pine64 QuartzPro64 (quartzpro64-rk3588)
> diff --git a/include/configs/nanopi-r6c-rk3588s.h b/include/configs/nanopi-r6c-rk3588s.h
> new file mode 100644
> index 0000000000..2b57d60eb5
> --- /dev/null
> +++ b/include/configs/nanopi-r6c-rk3588s.h
> @@ -0,0 +1,12 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +
> +#ifndef __NANOPI_R6C_RK3588S_H
> +#define __NANOPI_R6C_RK3588S_H
> +
> +#define ROCKCHIP_DEVICE_SETTINGS \
> +		"stdout=serial,vidconsole\0" \
> +		"stderr=serial,vidconsole\0"
> +
> +#include <configs/rk3588_common.h>
> +
> +#endif /* __NANOPI_R6C_RK3588S_H */

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 2/2] board: rockchip: Add FriendlyElec NanoPi R6S
  2024-06-07 20:17 ` [PATCH v2 2/2] board: rockchip: Add FriendlyElec NanoPi R6S Sebastian Kropatsch
@ 2024-06-14  8:58   ` Kever Yang
  2024-06-20 22:07   ` Ulli Kehrle
  1 sibling, 0 replies; 6+ messages in thread
From: Kever Yang @ 2024-06-14  8:58 UTC (permalink / raw)
  To: Sebastian Kropatsch, Simon Glass, Philipp Tomsich; +Cc: Tom Rini, u-boot


On 2024/6/8 04:17, Sebastian Kropatsch wrote:
> The NanoPi R6S is a SBC by FriendlyElec based on the Rockchip RK3588s.
> It comes with 4GB or 8GB of RAM, a microSD card slot, 32GB eMMC storage,
> one RTL8211F 1GbE and two RTL8125 2.5GbE Ethernet ports, one USB 2.0
> Type-A and one USB 3.0 Type-A port, a HDMI port, a 12-pin GPIO FPC
> connector, a fan connector, IR receiver as well as some buttons and LEDs.
>
> Add initial support for this board using the upstream devicetree sources.
>
> Kernel commit:
> f1b11f43b3e9 ("arm64: dts: rockchip: Add support for NanoPi R6S")
>
> Signed-off-by: Sebastian Kropatsch <seb-dev@mail.de>
Reviewed-by: Kever Yang <kever.yang@rock-chips.com>

Thanks,
- Kever
> ---
>
> The R6S is very similar to the R6C, the major difference being that
> instead of the M.2 NVMe socket on the R6C, the R6S has a second RTL8125BG
> Ethernet chip, which uses the same PCIe lanes that the R6C uses for its
> M.2 socket. Other minor differences include:
> - 12-pin GPIO FPC instead of 30-pin header
> - IR receiver (pwm-based)
> - 5V fan connector
> Other than that, they are the same, which is why the difference in
> U-Boot is only the missing NVME config option in the R6S defconfig.
>
> Please note that I was not able to test this device. I only chose to
> add it due to it being a very similar implementation to the R6C, like the
> NanoPi R5C and R5S are similar. It should however boot just fine and even
> both RTL8125 Ethernet ports should work in U-Boot since RTL8125 is the
> same chip used in the R6C, using the rtl8169 driver.
>
> If this is not how things should be done in U-Boot, please disregard
> and drop this patch :) Thanks!
>
> ---
>   arch/arm/dts/rk3588s-nanopi-r6s-u-boot.dtsi   |  3 +
>   arch/arm/mach-rockchip/rk3588/Kconfig         | 12 +++
>   board/friendlyelec/nanopi-r6s-rk3588s/Kconfig | 12 +++
>   .../nanopi-r6s-rk3588s/MAINTAINERS            |  7 ++
>   configs/nanopi-r6s-rk3588s_defconfig          | 82 +++++++++++++++++++
>   doc/board/rockchip/rockchip.rst               |  1 +
>   include/configs/nanopi-r6s-rk3588s.h          | 12 +++
>   7 files changed, 129 insertions(+)
>   create mode 100644 arch/arm/dts/rk3588s-nanopi-r6s-u-boot.dtsi
>   create mode 100644 board/friendlyelec/nanopi-r6s-rk3588s/Kconfig
>   create mode 100644 board/friendlyelec/nanopi-r6s-rk3588s/MAINTAINERS
>   create mode 100644 configs/nanopi-r6s-rk3588s_defconfig
>   create mode 100644 include/configs/nanopi-r6s-rk3588s.h
>
> diff --git a/arch/arm/dts/rk3588s-nanopi-r6s-u-boot.dtsi b/arch/arm/dts/rk3588s-nanopi-r6s-u-boot.dtsi
> new file mode 100644
> index 0000000000..853ed58cfe
> --- /dev/null
> +++ b/arch/arm/dts/rk3588s-nanopi-r6s-u-boot.dtsi
> @@ -0,0 +1,3 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +
> +#include "rk3588s-u-boot.dtsi"
> diff --git a/arch/arm/mach-rockchip/rk3588/Kconfig b/arch/arm/mach-rockchip/rk3588/Kconfig
> index 4b7d751c6f..a9e400861a 100644
> --- a/arch/arm/mach-rockchip/rk3588/Kconfig
> +++ b/arch/arm/mach-rockchip/rk3588/Kconfig
> @@ -90,6 +90,18 @@ config TARGET_NANOPI_R6C_RK3588S
>   	  Type-A port, a HDMI port, a 30-pin GPIO header as well as some
>   	  buttons and LEDs.
>   
> +config TARGET_NANOPI_R6S_RK3588S
> +	bool "FriendlyElec NanoPi R6S"
> +	select BOARD_LATE_INIT
> +	help
> +	  The NanoPi R6S is a SBC by FriendlyElec based on the Rockchip
> +	  RK3588s.
> +	  It comes with 4GB or 8GB of RAM, a microSD card slot, 32GB eMMC
> +	  storage, one RTL8211F 1GbE and two RTL8125 2.5GbE Ethernet ports,
> +	  one USB 2.0 Type-A and one USB 3.0 Type-A port, a HDMI port, a
> +	  12-pin GPIO FPC connector, a fan connector, IR receiver as well
> +	  as some buttons and LEDs.
> +
>   config TARGET_NOVA_RK3588
>   	bool "Indiedroid Nova RK3588"
>   	select BOARD_LATE_INIT
> diff --git a/board/friendlyelec/nanopi-r6s-rk3588s/Kconfig b/board/friendlyelec/nanopi-r6s-rk3588s/Kconfig
> new file mode 100644
> index 0000000000..4d579816b1
> --- /dev/null
> +++ b/board/friendlyelec/nanopi-r6s-rk3588s/Kconfig
> @@ -0,0 +1,12 @@
> +if TARGET_NANOPI_R6S_RK3588S
> +
> +config SYS_BOARD
> +	default "nanopi-r6s-rk3588s"
> +
> +config SYS_VENDOR
> +	default "friendlyelec"
> +
> +config SYS_CONFIG_NAME
> +	default "nanopi-r6s-rk3588s"
> +
> +endif
> diff --git a/board/friendlyelec/nanopi-r6s-rk3588s/MAINTAINERS b/board/friendlyelec/nanopi-r6s-rk3588s/MAINTAINERS
> new file mode 100644
> index 0000000000..76288b4320
> --- /dev/null
> +++ b/board/friendlyelec/nanopi-r6s-rk3588s/MAINTAINERS
> @@ -0,0 +1,7 @@
> +NANOPI-R6S
> +M:	Sebastian Kropatsch <seb-dev@mail.de>
> +S:	Maintained
> +F:	arch/arm/dts/rk3588s-nanopi-r6s-u-boot.dtsi
> +F:	board/friendlyelec/nanopi-r6s-rk3588s
> +F:	configs/nanopi-r6s-rk3588s_defconfig
> +F:	include/configs/nanopi-r6s-rk3588s.h
> diff --git a/configs/nanopi-r6s-rk3588s_defconfig b/configs/nanopi-r6s-rk3588s_defconfig
> new file mode 100644
> index 0000000000..f7b364655f
> --- /dev/null
> +++ b/configs/nanopi-r6s-rk3588s_defconfig
> @@ -0,0 +1,82 @@
> +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/rk3588s-nanopi-r6s"
> +CONFIG_ROCKCHIP_RK3588=y
> +CONFIG_SPL_SERIAL=y
> +CONFIG_TARGET_NANOPI_R6S_RK3588S=y
> +CONFIG_DEBUG_UART_BASE=0xFEB50000
> +CONFIG_DEBUG_UART_CLOCK=24000000
> +CONFIG_SYS_LOAD_ADDR=0xc00800
> +CONFIG_PCI=y
> +CONFIG_DEBUG_UART=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/rk3588s-nanopi-r6s.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_PWM=y
> +CONFIG_CMD_GPT=y
> +CONFIG_CMD_I2C=y
> +CONFIG_CMD_MMC=y
> +CONFIG_CMD_PCI=y
> +CONFIG_CMD_USB=y
> +CONFIG_CMD_ROCKUSB=y
> +# CONFIG_CMD_SETEXPR is not set
> +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_SPL_DM_SEQ_ALIAS=y
> +CONFIG_SPL_REGMAP=y
> +CONFIG_SPL_SYSCON=y
> +CONFIG_SPL_CLK=y
> +# CONFIG_USB_FUNCTION_FASTBOOT is not set
> +CONFIG_ROCKCHIP_GPIO=y
> +CONFIG_SYS_I2C_ROCKCHIP=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_SPI_FLASH is not set
> +CONFIG_PHY_REALTEK=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_PHY_ROCKCHIP_USBDP=y
> +CONFIG_SPL_PINCTRL=y
> +CONFIG_PWM_ROCKCHIP=y
> +CONFIG_SPL_RAM=y
> +CONFIG_BAUDRATE=1500000
> +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_USB_GADGET=y
> +CONFIG_USB_GADGET_DOWNLOAD=y
> +CONFIG_USB_FUNCTION_ROCKUSB=y
> +CONFIG_ERRNO_STR=y
> diff --git a/doc/board/rockchip/rockchip.rst b/doc/board/rockchip/rockchip.rst
> index a3d9837dda..0b58086f06 100644
> --- a/doc/board/rockchip/rockchip.rst
> +++ b/doc/board/rockchip/rockchip.rst
> @@ -124,6 +124,7 @@ List of mainline supported Rockchip boards:
>        - Edgeble Neural Compute Module 6B SoM - Neu6b (neu6b-io-rk3588)
>        - FriendlyElec NanoPC-T6 (nanopc-t6-rk3588)
>        - FriendlyElec NanoPi R6C (nanopi-r6c-rk3588s)
> +     - FriendlyElec NanoPi R6S (nanopi-r6s-rk3588s)
>        - Generic RK3588S/RK3588 (generic-rk3588)
>        - Indiedroid Nova (nova-rk3588s)
>        - Pine64 QuartzPro64 (quartzpro64-rk3588)
> diff --git a/include/configs/nanopi-r6s-rk3588s.h b/include/configs/nanopi-r6s-rk3588s.h
> new file mode 100644
> index 0000000000..a1b19783c5
> --- /dev/null
> +++ b/include/configs/nanopi-r6s-rk3588s.h
> @@ -0,0 +1,12 @@
> +/* SPDX-License-Identifier: GPL-2.0+ */
> +
> +#ifndef __NANOPI_R6S_RK3588S_H
> +#define __NANOPI_R6S_RK3588S_H
> +
> +#define ROCKCHIP_DEVICE_SETTINGS \
> +		"stdout=serial,vidconsole\0" \
> +		"stderr=serial,vidconsole\0"
> +
> +#include <configs/rk3588_common.h>
> +
> +#endif /* __NANOPI_R6S_RK3588S_H */

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 2/2] board: rockchip: Add FriendlyElec NanoPi R6S
  2024-06-07 20:17 ` [PATCH v2 2/2] board: rockchip: Add FriendlyElec NanoPi R6S Sebastian Kropatsch
  2024-06-14  8:58   ` Kever Yang
@ 2024-06-20 22:07   ` Ulli Kehrle
  2024-07-11 11:03     ` Sebastian Kropatsch
  1 sibling, 1 reply; 6+ messages in thread
From: Ulli Kehrle @ 2024-06-20 22:07 UTC (permalink / raw)
  To: Sebastian Kropatsch, Simon Glass, Philipp Tomsich, Kever Yang
  Cc: Tom Rini, u-boot


Sebastian Kropatsch <seb-dev@mail.de> writes:
> The R6S is very similar to the R6C, the major difference being that
> instead of the M.2 NVMe socket on the R6C, the R6S has a second RTL8125BG
> Ethernet chip, which uses the same PCIe lanes that the R6C uses for its
> M.2 socket. Other minor differences include:
> - 12-pin GPIO FPC instead of 30-pin header
> - IR receiver (pwm-based)
> - 5V fan connector
> Other than that, they are the same, which is why the difference in
> U-Boot is only the missing NVME config option in the R6S defconfig.
>
> Please note that I was not able to test this device. I only chose to
> add it due to it being a very similar implementation to the R6C, like the
> NanoPi R5C and R5S are similar. It should however boot just fine and even
> both RTL8125 Ethernet ports should work in U-Boot since RTL8125 is the
> same chip used in the R6C, using the rtl8169 driver.

Hi Sebastian,

it looks like you forgot to include the hunk that includes the board
config board/friendlyelec/nanopi-r6s-rk3588s/Kconfig into
rk3588/Kconfig.

> diff --git a/arch/arm/mach-rockchip/rk3588/Kconfig b/arch/arm/mach-rockchip/rk3588/Kconfig
> index a9e400861a3..051d50e26f6 100644
> --- a/arch/arm/mach-rockchip/rk3588/Kconfig
> +++ b/arch/arm/mach-rockchip/rk3588/Kconfig
> @@ -257,6 +257,7 @@ config TEXT_BASE
>  source "board/edgeble/neural-compute-module-6/Kconfig"
>  source "board/friendlyelec/nanopc-t6-rk3588/Kconfig"
>  source "board/friendlyelec/nanopi-r6c-rk3588s/Kconfig"
> +source "board/friendlyelec/nanopi-r6s-rk3588s/Kconfig"
>  source "board/indiedroid/nova/Kconfig"
>  source "board/pine64/quartzpro64-rk3588/Kconfig"
>  source "board/turing/turing-rk1-rk3588/Kconfig"

Other than that, this appears to work great on my Nanopi R6S (with the
device tree from linux-6.9), including all three network interfaces, but
no working status leds for the rtl8169 ports. I have also noticed the
minor inconvenience that only the first two interfaces are initialized
with nonzero MAC addresses (because rockchip_setup_macaddr is hardcoded
for two interfaces?):

> => pci enum
> => net list
> eth0 : ethernet@fe1c0000 7a:d9:6d:ad:cb:26 active
> eth1 : eth_rtl8169 7a:d9:6d:ad:cb:27
> eth2 : eth_rtl8169 00:00:00:00:00:00

I don't think this is a huge deal as it works fine when manually setting
a MAC address and other boards with three or more interfaces (like the
NanoPi R5S) also behave that way. What do you think?

Best regards
Ulli

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v2 2/2] board: rockchip: Add FriendlyElec NanoPi R6S
  2024-06-20 22:07   ` Ulli Kehrle
@ 2024-07-11 11:03     ` Sebastian Kropatsch
  0 siblings, 0 replies; 6+ messages in thread
From: Sebastian Kropatsch @ 2024-07-11 11:03 UTC (permalink / raw)
  To: Ulli Kehrle, Simon Glass, Philipp Tomsich, Kever Yang; +Cc: Tom Rini, u-boot

Hi Ulli,

Sorry for the late reply, but thanks for testing!
I have sent a v3 of this patch, please reply to that mail
with your reviewed-by or tested-by tag if you'd like them
to be included.

Am 21.06.2024 um 00:07 schrieb Ulli Kehrle:
> 
> Sebastian Kropatsch <seb-dev@mail.de> writes:
>> The R6S is very similar to the R6C, the major difference being that
>> instead of the M.2 NVMe socket on the R6C, the R6S has a second RTL8125BG
>> Ethernet chip, which uses the same PCIe lanes that the R6C uses for its
>> M.2 socket. Other minor differences include:
>> - 12-pin GPIO FPC instead of 30-pin header
>> - IR receiver (pwm-based)
>> - 5V fan connector
>> Other than that, they are the same, which is why the difference in
>> U-Boot is only the missing NVME config option in the R6S defconfig.
>>
>> Please note that I was not able to test this device. I only chose to
>> add it due to it being a very similar implementation to the R6C, like the
>> NanoPi R5C and R5S are similar. It should however boot just fine and even
>> both RTL8125 Ethernet ports should work in U-Boot since RTL8125 is the
>> same chip used in the R6C, using the rtl8169 driver.
> 
> Hi Sebastian,
> 
> it looks like you forgot to include the hunk that includes the board
> config board/friendlyelec/nanopi-r6s-rk3588s/Kconfig into
> rk3588/Kconfig.

Yes indeed, thanks for catching this oversight! This is fixed in v3.

>> diff --git a/arch/arm/mach-rockchip/rk3588/Kconfig b/arch/arm/mach-rockchip/rk3588/Kconfig
>> index a9e400861a3..051d50e26f6 100644
>> --- a/arch/arm/mach-rockchip/rk3588/Kconfig
>> +++ b/arch/arm/mach-rockchip/rk3588/Kconfig
>> @@ -257,6 +257,7 @@ config TEXT_BASE
>>   source "board/edgeble/neural-compute-module-6/Kconfig"
>>   source "board/friendlyelec/nanopc-t6-rk3588/Kconfig"
>>   source "board/friendlyelec/nanopi-r6c-rk3588s/Kconfig"
>> +source "board/friendlyelec/nanopi-r6s-rk3588s/Kconfig"
>>   source "board/indiedroid/nova/Kconfig"
>>   source "board/pine64/quartzpro64-rk3588/Kconfig"
>>   source "board/turing/turing-rk1-rk3588/Kconfig"
> 
> Other than that, this appears to work great on my Nanopi R6S (with the
> device tree from linux-6.9), including all three network interfaces, but
> no working status leds for the rtl8169 ports.

Yes, I have noticed that too. Maybe this is a bug in the rtl8169 driver
from u-boot? Or maybe this can be fixed in the devicetree? Not sure.

> I have also noticed the
> minor inconvenience that only the first two interfaces are initialized
> with nonzero MAC addresses (because rockchip_setup_macaddr is hardcoded
> for two interfaces?):
> 
>> => pci enum
>> => net list
>> eth0 : ethernet@fe1c0000 7a:d9:6d:ad:cb:26 active
>> eth1 : eth_rtl8169 7a:d9:6d:ad:cb:27
>> eth2 : eth_rtl8169 00:00:00:00:00:00
> 
> I don't think this is a huge deal as it works fine when manually setting
> a MAC address and other boards with three or more interfaces (like the
> NanoPi R5S) also behave that way. What do you think?

Maybe this is a similar issue to this:
https://lore.kernel.org/u-boot/CAPDEroXsN03yKL3D-tCcfQqA6vde7P4t2GmwQq80vnLQJw+4YA@mail.gmail.com/T/

Solving this issue is beyond my current abilities unfortunately.

Cheers,
Sebastian


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-07-11 11:03 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-07 20:17 [PATCH v2 1/2] board: rockchip: Add FriendlyElec NanoPi R6C Sebastian Kropatsch
2024-06-07 20:17 ` [PATCH v2 2/2] board: rockchip: Add FriendlyElec NanoPi R6S Sebastian Kropatsch
2024-06-14  8:58   ` Kever Yang
2024-06-20 22:07   ` Ulli Kehrle
2024-07-11 11:03     ` Sebastian Kropatsch
2024-06-14  8:58 ` [PATCH v2 1/2] board: rockchip: Add FriendlyElec NanoPi R6C Kever Yang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox