* [meta-rockchip] [PATCH] tinker-board-3: add
@ 2025-12-18 6:03 michael.opdenacker
2025-12-18 10:46 ` [yocto-patches] " Quentin Schulz
0 siblings, 1 reply; 4+ messages in thread
From: michael.opdenacker @ 2025-12-18 6:03 UTC (permalink / raw)
To: yocto-patches; +Cc: Michael Opdenacker
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"
+
+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"
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [yocto-patches] [meta-rockchip] [PATCH] tinker-board-3: add
2025-12-18 6:03 [meta-rockchip] [PATCH] tinker-board-3: add michael.opdenacker
@ 2025-12-18 10:46 ` Quentin Schulz
2025-12-19 2:47 ` Trevor Woerner
2025-12-19 15:17 ` Michael Opdenacker
0 siblings, 2 replies; 4+ messages in thread
From: Quentin Schulz @ 2025-12-18 10:46 UTC (permalink / raw)
To: yocto-patches; +Cc: Michael Opdenacker
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [yocto-patches] [meta-rockchip] [PATCH] tinker-board-3: add
2025-12-18 10:46 ` [yocto-patches] " Quentin Schulz
@ 2025-12-19 2:47 ` Trevor Woerner
2025-12-19 15:17 ` Michael Opdenacker
1 sibling, 0 replies; 4+ messages in thread
From: Trevor Woerner @ 2025-12-19 2:47 UTC (permalink / raw)
To: yocto-patches; +Cc: Michael Opdenacker
On Thu 2025-12-18 @ 11:46:10 AM, Quentin Schulz via lists.yoctoproject.org wrote:
> 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.
I would prefer to add this board once support is available via any of
the Yocto Project kernels. We've added boards to meta-rockchip many
times in the past when support was available through linux-yocto-dev.
Ideally upstream U-Boot would support it as well.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [yocto-patches] [meta-rockchip] [PATCH] tinker-board-3: add
2025-12-18 10:46 ` [yocto-patches] " Quentin Schulz
2025-12-19 2:47 ` Trevor Woerner
@ 2025-12-19 15:17 ` Michael Opdenacker
1 sibling, 0 replies; 4+ messages in thread
From: Michael Opdenacker @ 2025-12-19 15:17 UTC (permalink / raw)
To: Quentin Schulz; +Cc: michael.opdenacker, yocto-patches
Hi Quentin
Thanks a lot for the review, much appreciated!
You're my top (and favorite) reviewer :)
On 12/18/25 11:46, Quentin Schulz wrote:
>> +# 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.
Understood, let's wait for 2 more months then ;-)
>
>> +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?
Excellent, it works!
And instead of displaying a wrong board name at boot time, we have
something correct in U-Boot's output:
Model: Generic RK3566/RK3568
SoC: RK3566
>> +++ 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.
Fixed, thanks!
>
>> +
>> +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.
I don't know, but I can investigate. That would be useful indeed.
>
> We also need an entry in the README for this newly supported board.
Correct, fixed.
>
>> 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.
Yep, see you in 2 months for a V2 ;-)
Thanks again
Michael.
--
Michael Opdenacker
Root Commit
Yocto Project and OpenEmbedded Training course - Learn by doing:
https://rootcommit.com/training/yocto/
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-12-19 15:17 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-18 6:03 [meta-rockchip] [PATCH] tinker-board-3: add michael.opdenacker
2025-12-18 10:46 ` [yocto-patches] " Quentin Schulz
2025-12-19 2:47 ` Trevor Woerner
2025-12-19 15:17 ` Michael Opdenacker
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.