| Message ID | 20251218060321.2194839-1-michael.opdenacker@rootcommit.com |
|---|---|
| State | New |
| Headers | show |
| Series | [meta-rockchip] tinker-board-3: add | expand |
Hi Michael, On 12/18/25 7:03 AM, Michael Opdenacker via lists.yoctoproject.org wrote: > From: Michael Opdenacker <michael.opdenacker@rootcommit.com> > > Add basic support for the Asus Tinker Board 3 [1] and 3S [2] SBCs, > with the Rockchip rk3566 SoC. > > Support for such boards was introduced in the 6.19-rc1 version > of the Linux kernel: > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9f80b3952318d7ef18573a5010f06118602f992e > > Therefore, the https://github.com/betafive/meta-linux-mainline/ > layer is currently a prerequisite to build images for such machines. > > Here are already supported features: > - Debug UART (/dev/ttyS2) > - SD card (/dev/mmcblk1) > - eMMC (/dev/mmcblk0, only on Tinker Board 3S) > - I2C: > - i2c0 (internal bus with a PMIC and regulators) > - i2c2 (internal bus with an at24 eeprom and an RTC device) > - USB 2.0 ports > - 2 GPIO LEDS > > [1] https://tinker-board.asus.com/series/tinker-board-3.html > [2] https://tinker-board.asus.com/series/tinker-board-3s.html > > Signed-off-by: Michael Opdenacker <michael.opdenacker@rootcommit.com> > --- > conf/machine/include/tinker-board-3.inc | 11 +++++++++++ > conf/machine/tinker-board-3.conf | 10 ++++++++++ > conf/machine/tinker-board-3s.conf | 10 ++++++++++ > recipes-kernel/linux/linux-yocto_%.bbappend | 2 ++ > 4 files changed, 33 insertions(+) > create mode 100644 conf/machine/include/tinker-board-3.inc > create mode 100644 conf/machine/tinker-board-3.conf > create mode 100644 conf/machine/tinker-board-3s.conf > > diff --git a/conf/machine/include/tinker-board-3.inc b/conf/machine/include/tinker-board-3.inc > new file mode 100644 > index 0000000..17d0ecc > --- /dev/null > +++ b/conf/machine/include/tinker-board-3.inc > @@ -0,0 +1,11 @@ > +require conf/machine/include/rk3566.inc > + > +# Kernel provided by https://github.com/betafive/meta-linux-mainline/ > +PREFERRED_PROVIDER_virtual/kernel = "linux-mainline" > +PREFERRED_VERSION_virtual/kernel = "6.19-rc1" > + Not sure we really want to do this. Maybe wait for linux-yocto-dev to hit v6.19*? We used to do this for some Radxa board in the past I believe. > +MACHINE_EXTRA_RRECOMMENDS += "kernel-modules" > + > +# U-Boot doesn't support Tinker Board 3 so far > +# but boots fine when configured for a similar SBC > +UBOOT_MACHINE = "soquartz-model-a-rk3566_defconfig" Can you maybe try generic-rk3568_defconfig instead? > diff --git a/conf/machine/tinker-board-3.conf b/conf/machine/tinker-board-3.conf > new file mode 100644 > index 0000000..d6400f3 > --- /dev/null > +++ b/conf/machine/tinker-board-3.conf > @@ -0,0 +1,10 @@ > +# Copyright (C) 2025 Michael Opdenacker <michael.opdenacker@rootcommit.com> > +# Released under the MIT license (see COPYING.MIT for the terms) > + > +#@TYPE: Machine > +#@NAME: Tinker Board 3 RK3566 > +#@DESCRIPTION: ASUS Tinker Board 3 is a Raspberry Pi like SBC based on Rockchip RK3566 Processor. > + > +require conf/machine/include/tinker-board-3.inc > + > +KERNEL_DEVICETREE = "rockchip/rk3566-tinker-board-3.dtb" > diff --git a/conf/machine/tinker-board-3s.conf b/conf/machine/tinker-board-3s.conf > new file mode 100644 > index 0000000..e23dc8b > --- /dev/null > +++ b/conf/machine/tinker-board-3s.conf > @@ -0,0 +1,10 @@ > +# Copyright (C) 2025 Michael Opdenacker <michael.opdenacker@rootcommit.com> > +# Released under the MIT license (see COPYING.MIT for the terms) > + > +#@TYPE: Machine > +#@NAME: Tinker Board 3S RK3566 > +#@DESCRIPTION: ASUS Tinker Board 3 is a Raspberry Pi like SBC based on Rockchip RK3566 Processor. s/Tinker Board 3/Tinker Board 3S. > + > +require conf/machine/include/tinker-board-3.inc > + > +KERNEL_DEVICETREE = "rockchip/rk3566-tinker-board-3s.dtb" Do you know if Asus has provided a way to know at runtime which of the Tinker 3/3S is currently running the software? E.g. via a GPIO or an ADC channel with different voltage values? This would help us only have one machine for supporting both. In U-Boot, you'd do the auto-detection and load the appropriate device tree based on that. We also need an entry in the README for this newly supported board. > diff --git a/recipes-kernel/linux/linux-yocto_%.bbappend b/recipes-kernel/linux/linux-yocto_%.bbappend > index 2dba3d7..684d33a 100644 > --- a/recipes-kernel/linux/linux-yocto_%.bbappend > +++ b/recipes-kernel/linux/linux-yocto_%.bbappend > @@ -30,6 +30,8 @@ COMPATIBLE_MACHINE:rock-pi-e = "rock-pi-e" > COMPATIBLE_MACHINE:rock-pi-s = "rock-pi-s" > COMPATIBLE_MACHINE:rock64 = "rock64" > COMPATIBLE_MACHINE:soquartz = "soquartz" > +COMPATIBLE_MACHINE:tinker-board-3 = "tinker-board-3" > +COMPATIBLE_MACHINE:tinker-board-3s = "tinker-board-3s" > NACK, it isn't supported, you said it yourself. Cheers, Quentin
diff --git a/conf/machine/include/tinker-board-3.inc b/conf/machine/include/tinker-board-3.inc new file mode 100644 index 0000000..17d0ecc --- /dev/null +++ b/conf/machine/include/tinker-board-3.inc @@ -0,0 +1,11 @@ +require conf/machine/include/rk3566.inc + +# Kernel provided by https://github.com/betafive/meta-linux-mainline/ +PREFERRED_PROVIDER_virtual/kernel = "linux-mainline" +PREFERRED_VERSION_virtual/kernel = "6.19-rc1" + +MACHINE_EXTRA_RRECOMMENDS += "kernel-modules" + +# U-Boot doesn't support Tinker Board 3 so far +# but boots fine when configured for a similar SBC +UBOOT_MACHINE = "soquartz-model-a-rk3566_defconfig" diff --git a/conf/machine/tinker-board-3.conf b/conf/machine/tinker-board-3.conf new file mode 100644 index 0000000..d6400f3 --- /dev/null +++ b/conf/machine/tinker-board-3.conf @@ -0,0 +1,10 @@ +# Copyright (C) 2025 Michael Opdenacker <michael.opdenacker@rootcommit.com> +# Released under the MIT license (see COPYING.MIT for the terms) + +#@TYPE: Machine +#@NAME: Tinker Board 3 RK3566 +#@DESCRIPTION: ASUS Tinker Board 3 is a Raspberry Pi like SBC based on Rockchip RK3566 Processor. + +require conf/machine/include/tinker-board-3.inc + +KERNEL_DEVICETREE = "rockchip/rk3566-tinker-board-3.dtb" diff --git a/conf/machine/tinker-board-3s.conf b/conf/machine/tinker-board-3s.conf new file mode 100644 index 0000000..e23dc8b --- /dev/null +++ b/conf/machine/tinker-board-3s.conf @@ -0,0 +1,10 @@ +# Copyright (C) 2025 Michael Opdenacker <michael.opdenacker@rootcommit.com> +# Released under the MIT license (see COPYING.MIT for the terms) + +#@TYPE: Machine +#@NAME: Tinker Board 3S RK3566 +#@DESCRIPTION: ASUS Tinker Board 3 is a Raspberry Pi like SBC based on Rockchip RK3566 Processor. + +require conf/machine/include/tinker-board-3.inc + +KERNEL_DEVICETREE = "rockchip/rk3566-tinker-board-3s.dtb" diff --git a/recipes-kernel/linux/linux-yocto_%.bbappend b/recipes-kernel/linux/linux-yocto_%.bbappend index 2dba3d7..684d33a 100644 --- a/recipes-kernel/linux/linux-yocto_%.bbappend +++ b/recipes-kernel/linux/linux-yocto_%.bbappend @@ -30,6 +30,8 @@ COMPATIBLE_MACHINE:rock-pi-e = "rock-pi-e" COMPATIBLE_MACHINE:rock-pi-s = "rock-pi-s" COMPATIBLE_MACHINE:rock64 = "rock64" COMPATIBLE_MACHINE:soquartz = "soquartz" +COMPATIBLE_MACHINE:tinker-board-3 = "tinker-board-3" +COMPATIBLE_MACHINE:tinker-board-3s = "tinker-board-3s" SRC_URI:append:rockchip = " file://rockchip-kmeta;type=kmeta;name=rockchip-kmeta;destsuffix=rockchip-kmeta" SRC_URI:append:nanopi-r4s = " file://realtek-r8169.cfg"