diff mbox series

[meta-rockchip] nanopc-t6: add

Message ID 20250803172432.1341178-1-scott.murray@konsulko.com
State New
Headers show
Series [meta-rockchip] nanopc-t6: add | expand

Commit Message

Scott Murray Aug. 3, 2025, 5:24 p.m. UTC
The FriendlyElec NanoPC-T6 is a one-for-all high performance open
source platform for edge computing, designed and developed by the
FriendlyElec team.

Website:
    https://www.friendlyelec.com/index.php?route=product/product&path=69&product_id=292

Wiki:
    https://wiki.friendlyelec.com/wiki/index.php/NanoPC-T6

Specs:
- Rockchip RK3588 (4x ARM Cortex-A76 + 4x Cortex-A55)
- ARM Mali-G610 MP4 (OpenGLES 1.1, 2.0, and 3.2, OpenCL up to 2.2 and Vulkan 1.2)
- 4GB/8GB/16GB LPDDR4X
- µSD
- 32GB/64GB/256GB eMMC
- 32MB SPI NOR Flash
- 2x PCIe 2.5G Ethernet
- 1x USB 3.0 Type A, 1x USB Type C
- 2x USB 2.0 Type A (LTS model)
- 1x HDMI (4Kp60) in
- 2x HDMI (HDMI2.1, HDMI2.0, and HDMI1.4, 1x 8Kp60, 1x 4Kp60) out
- 2x 4-lane MIPI-CSI
- 2x 4-lane MIPI-DSI
- 1x M.2 M-Key connector with PCIe 3.0 x4
- 1x M.2 E-key connector with PCIe 2.1 x1 and USB2.0 Host
- 1x Mini PCIe for 3G/4G module (non-LTS model)
- 40-pin 2.54mm header (up to 2x SPIs, 6x UARTs, 1x I2Cs, 8x PWMs, 2x I2Ss, 28x GPIO)
- 110 x 80 mm

Upstream kernel support for the T6 has matured enough to be usable, so
add a machine configuration to allow people to migrate off of the older
bits in the Rockchip BSP layer.  Note that there are two variants of
the board, original and a newer "LTS" version that drops the MiniPCIe
slot for a modem for two extra USB 2.0 ports and adds a USB-C connector
for the debug UART.  Devicetrees for both are shipped.

Signed-off-by: Scott Murray <scott.murray@konsulko.com>
---
 conf/machine/nanopc-t6.conf                   | 15 +++++++++++++++
 recipes-kernel/linux/linux-yocto-dev.bbappend |  2 ++
 2 files changed, 17 insertions(+)
 create mode 100644 conf/machine/nanopc-t6.conf

Comments

Trevor Woerner Aug. 5, 2025, 9:46 p.m. UTC | #1
On Sun 2025-08-03 @ 01:24:32 PM, Scott Murray wrote:
> The FriendlyElec NanoPC-T6 is a one-for-all high performance open
> source platform for edge computing, designed and developed by the
> FriendlyElec team.
> 
> Website:
>     https://www.friendlyelec.com/index.php?route=product/product&path=69&product_id=292
> 
> Wiki:
>     https://wiki.friendlyelec.com/wiki/index.php/NanoPC-T6
> 
> Specs:
> - Rockchip RK3588 (4x ARM Cortex-A76 + 4x Cortex-A55)
> - ARM Mali-G610 MP4 (OpenGLES 1.1, 2.0, and 3.2, OpenCL up to 2.2 and Vulkan 1.2)
> - 4GB/8GB/16GB LPDDR4X
> - µSD
> - 32GB/64GB/256GB eMMC
> - 32MB SPI NOR Flash
> - 2x PCIe 2.5G Ethernet
> - 1x USB 3.0 Type A, 1x USB Type C
> - 2x USB 2.0 Type A (LTS model)
> - 1x HDMI (4Kp60) in
> - 2x HDMI (HDMI2.1, HDMI2.0, and HDMI1.4, 1x 8Kp60, 1x 4Kp60) out
> - 2x 4-lane MIPI-CSI
> - 2x 4-lane MIPI-DSI
> - 1x M.2 M-Key connector with PCIe 3.0 x4
> - 1x M.2 E-key connector with PCIe 2.1 x1 and USB2.0 Host
> - 1x Mini PCIe for 3G/4G module (non-LTS model)
> - 40-pin 2.54mm header (up to 2x SPIs, 6x UARTs, 1x I2Cs, 8x PWMs, 2x I2Ss, 28x GPIO)
> - 110 x 80 mm
> 
> Upstream kernel support for the T6 has matured enough to be usable, so
> add a machine configuration to allow people to migrate off of the older
> bits in the Rockchip BSP layer.  Note that there are two variants of
> the board, original and a newer "LTS" version that drops the MiniPCIe
> slot for a modem for two extra USB 2.0 ports and adds a USB-C connector
> for the debug UART.  Devicetrees for both are shipped.
> 
> Signed-off-by: Scott Murray <scott.murray@konsulko.com>
> ---
>  conf/machine/nanopc-t6.conf                   | 15 +++++++++++++++
>  recipes-kernel/linux/linux-yocto-dev.bbappend |  2 ++
>  2 files changed, 17 insertions(+)
>  create mode 100644 conf/machine/nanopc-t6.conf

Added to meta-rockchip, master branch
(with the addition of an entry in the README)

Thanks!
Quentin Schulz Aug. 11, 2025, 12:44 p.m. UTC | #2
Hi Scott,

On 8/3/25 7:24 PM, Scott Murray via lists.yoctoproject.org wrote:
> The FriendlyElec NanoPC-T6 is a one-for-all high performance open
> source platform for edge computing, designed and developed by the
> FriendlyElec team.
> 
> Website:
>      https://www.friendlyelec.com/index.php?route=product/product&path=69&product_id=292
> 
> Wiki:
>      https://wiki.friendlyelec.com/wiki/index.php/NanoPC-T6
> 
> Specs:
> - Rockchip RK3588 (4x ARM Cortex-A76 + 4x Cortex-A55)
> - ARM Mali-G610 MP4 (OpenGLES 1.1, 2.0, and 3.2, OpenCL up to 2.2 and Vulkan 1.2)
> - 4GB/8GB/16GB LPDDR4X
> - µSD
> - 32GB/64GB/256GB eMMC
> - 32MB SPI NOR Flash
> - 2x PCIe 2.5G Ethernet
> - 1x USB 3.0 Type A, 1x USB Type C
> - 2x USB 2.0 Type A (LTS model)
> - 1x HDMI (4Kp60) in
> - 2x HDMI (HDMI2.1, HDMI2.0, and HDMI1.4, 1x 8Kp60, 1x 4Kp60) out
> - 2x 4-lane MIPI-CSI
> - 2x 4-lane MIPI-DSI
> - 1x M.2 M-Key connector with PCIe 3.0 x4
> - 1x M.2 E-key connector with PCIe 2.1 x1 and USB2.0 Host
> - 1x Mini PCIe for 3G/4G module (non-LTS model)
> - 40-pin 2.54mm header (up to 2x SPIs, 6x UARTs, 1x I2Cs, 8x PWMs, 2x I2Ss, 28x GPIO)
> - 110 x 80 mm
> 
> Upstream kernel support for the T6 has matured enough to be usable, so
> add a machine configuration to allow people to migrate off of the older
> bits in the Rockchip BSP layer.  Note that there are two variants of
> the board, original and a newer "LTS" version that drops the MiniPCIe
> slot for a modem for two extra USB 2.0 ports and adds a USB-C connector
> for the debug UART.  Devicetrees for both are shipped.
> 
> Signed-off-by: Scott Murray <scott.murray@konsulko.com>
> ---
>   conf/machine/nanopc-t6.conf                   | 15 +++++++++++++++
>   recipes-kernel/linux/linux-yocto-dev.bbappend |  2 ++
>   2 files changed, 17 insertions(+)
>   create mode 100644 conf/machine/nanopc-t6.conf
> 
> diff --git a/conf/machine/nanopc-t6.conf b/conf/machine/nanopc-t6.conf
> new file mode 100644
> index 0000000..5ed413d
> --- /dev/null
> +++ b/conf/machine/nanopc-t6.conf
> @@ -0,0 +1,15 @@
> +#@TYPE: Machine
> +#@NAME: NanoPC-T6
> +#@DESCRIPTION: NanoPC-T6 from FriendlyElec
> +#https://www.friendlyelec.com/index.php?route=product/product&path=69&product_id=292
> +
> +require conf/machine/include/rk3588.inc
> +
> +PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-dev"

Why do we need linux-yocto-dev here instead of linux-yocto?

Initial support was added in 6.6 and linux-yocto in master is currently 
at 6.12.

Differences between 6.12 and 6.16 (linux-yocto-dev) is HDMI output and 
USB support, so i guess that's the reason? It would be nice to add a 
comment in code or commit log (too late now that it's merged) to explain 
why we're targeting a "development" version of the kernel recipe instead 
of the expected one so we know when to "revert" it back to using 
linux-yocto in the future?

Cheers,
Quentin
diff mbox series

Patch

diff --git a/conf/machine/nanopc-t6.conf b/conf/machine/nanopc-t6.conf
new file mode 100644
index 0000000..5ed413d
--- /dev/null
+++ b/conf/machine/nanopc-t6.conf
@@ -0,0 +1,15 @@ 
+#@TYPE: Machine
+#@NAME: NanoPC-T6
+#@DESCRIPTION: NanoPC-T6 from FriendlyElec
+#https://www.friendlyelec.com/index.php?route=product/product&path=69&product_id=292
+
+require conf/machine/include/rk3588.inc
+
+PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-dev"
+KERNEL_DEVICETREE = " \
+    rockchip/rk3588-nanopc-t6.dtb \
+    rockchip/rk3588-nanopc-t6-lts.dtb \
+"
+MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
+
+UBOOT_MACHINE = "nanopc-t6-rk3588_defconfig"
diff --git a/recipes-kernel/linux/linux-yocto-dev.bbappend b/recipes-kernel/linux/linux-yocto-dev.bbappend
index f738d13..f49768b 100644
--- a/recipes-kernel/linux/linux-yocto-dev.bbappend
+++ b/recipes-kernel/linux/linux-yocto-dev.bbappend
@@ -2,6 +2,8 @@  FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
 
 COMPATIBLE_MACHINE:orangepi-5-plus = "orangepi-5-plus"
 COMPATIBLE_MACHINE:radxa-zero-3 = "radxa-zero-3"
+COMPATIBLE_MACHINE:nanopc-t6 = "nanopc-t6"
 
 SRC_URI:append:orangepi-5-plus = " file://rockchip-kmeta;type=kmeta;name=rockchip-kmeta;destsuffix=rockchip-kmeta"
 SRC_URI:append:radxa-zero-3 = " file://rockchip-kmeta;type=kmeta;name=rockchip-kmeta;destsuffix=rockchip-kmeta"
+SRC_URI:append:nanopc-t6 = " file://rockchip-kmeta;type=kmeta;name=rockchip-kmeta;destsuffix=rockchip-kmeta"