* [meta-rockchip] [PATCH v3] rock-3a add
@ 2023-10-16 10:43 anthony.t.davies
2023-10-25 13:56 ` Trevor Woerner
2024-01-21 2:41 ` Trevor Woerner
0 siblings, 2 replies; 8+ messages in thread
From: anthony.t.davies @ 2023-10-16 10:43 UTC (permalink / raw)
To: yocto; +Cc: twoerner, Anthony Davies
From: Anthony Davies <anthony.t.davies@gmail.com>
Add support for the Radxa Rock 3A
https://wiki.radxa.com/Rock3/3a
The TF-A project does not currently have support for
the rk3568. Therefore, for the time-being, the only way to supply a
TPL/DDR-init for the rk3568 is to use the closed-source rkbin binaries
from Rockchip. If/when TF-A adds support for the rk3588 we can investigate
switching.
recipes-bsp/rkbin/rockchip-rkbin_git.bb was modified to allow a machine
override to allow both rk3568 and rk3588s to use differnet binary blobs
Signed-off-by: Anthony Davies <anthony.t.davies@gmail.com>
---
README | 1 +
conf/machine/include/rk3568.inc | 17 +++++++++++++++++
conf/machine/rock-3a.conf | 12 ++++++++++++
recipes-bsp/rkbin/rockchip-rkbin_git.bb | 16 +++++++++++++++-
recipes-bsp/u-boot/u-boot%.bbappend | 5 +++++
5 files changed, 50 insertions(+), 1 deletion(-)
create mode 100644 conf/machine/include/rk3568.inc
create mode 100644 conf/machine/rock-3a.conf
diff --git a/README b/README
index 8104474..3357b47 100644
--- a/README
+++ b/README
@@ -32,6 +32,7 @@ Status of supported boards:
nanopi-r4s
rock-5b
nanopi-r2s
+ rock-3a
builds:
marsboard-rk3066
radxarock
diff --git a/conf/machine/include/rk3568.inc b/conf/machine/include/rk3568.inc
new file mode 100644
index 0000000..5382b58
--- /dev/null
+++ b/conf/machine/include/rk3568.inc
@@ -0,0 +1,17 @@
+MACHINEOVERRIDES =. "rk3568:"
+DEFAULTTUNE ?= "cortexa55"
+
+require conf/machine/include/arm/armv8-2a/tune-cortexa55.inc
+require conf/machine/include/rockchip-defaults.inc
+require conf/machine/include/rockchip-wic.inc
+
+KBUILD_DEFCONFIG ?= "defconfig"
+KERNEL_FEATURES:append:rk3568 = " bsp/rockchip/remove-non-rockchip-arch-arm64.scc"
+KERNEL_CLASSES ??= "kernel-fitimage"
+KERNEL_IMAGETYPE ??= "fitImage"
+
+PREFERRED_PROVIDER_trusted-firmware-a = "rockchip-rkbin"
+PREFERRED_PROVIDER_optee-os = "rockchip-rkbin"
+
+UBOOT_SUFFIX ?= "itb"
+UBOOT_ENTRYPOINT ?= "0x06000000"
diff --git a/conf/machine/rock-3a.conf b/conf/machine/rock-3a.conf
new file mode 100644
index 0000000..2ed83a3
--- /dev/null
+++ b/conf/machine/rock-3a.conf
@@ -0,0 +1,12 @@
+#@TYPE: Machine
+#@NAME: Radxa Rock 3a
+#@DESCRIPTION: ROCK3 is a series of Rockchip RK3566/RK3568 based
+#SBC(Single Board Computer) and Compute Module by Radxa.
+#https://wiki.radxa.com/Rock3
+
+require conf/machine/include/rk3568.inc
+
+KERNEL_DEVICETREE = "rockchip/rk3568-rock-3a.dtb"
+MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
+
+UBOOT_MACHINE = "rock-3a-rk3568_defconfig"
diff --git a/recipes-bsp/rkbin/rockchip-rkbin_git.bb b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
index 7fefb01..ad5593c 100644
--- a/recipes-bsp/rkbin/rockchip-rkbin_git.bb
+++ b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
@@ -14,6 +14,7 @@ S = "${WORKDIR}/git"
COMPATIBLE_MACHINE = ""
COMPATIBLE_MACHINE:rk3588s = "rk3588s"
+COMPATIBLE_MACHINE:rk3568 = "rk3568"
PACKAGE_ARCH = "${MACHINE_ARCH}"
@@ -25,7 +26,16 @@ do_install() {
PACKAGES = "${PN}"
ALLOW_EMPTY:${PN} = "1"
-do_deploy() {
+do_deploy:rk3568() {
+ # Prebuilt TF-A
+ install -m 644 ${S}/bin/rk35/rk3568_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3568.elf
+ # Prebuilt OPTEE-OS
+ install -m 644 ${S}/bin/rk35/rk3568_bl32_v*.bin ${DEPLOYDIR}/tee-rk3568.bin
+ # Prebuilt U-Boot TPL (DDR init)
+ install -m 644 ${S}/bin/rk35/rk3568_ddr_1560MHz_v1.18.bin ${DEPLOYDIR}/ddr-rk3568.bin
+}
+
+do_deploy:rk3588s() {
# Prebuilt TF-A
install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3588.elf
# Prebuilt OPTEE-OS
@@ -34,4 +44,8 @@ do_deploy() {
install -m 644 ${S}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v*.bin ${DEPLOYDIR}/ddr-rk3588.bin
}
+do_deploy() {
+ bbfatal "COMPATIBLE_MACHINE requires a corressponding do_deploy:<MACHINE>() override"
+}
+
addtask deploy after do_install
diff --git a/recipes-bsp/u-boot/u-boot%.bbappend b/recipes-bsp/u-boot/u-boot%.bbappend
index e79c471..66c81da 100644
--- a/recipes-bsp/u-boot/u-boot%.bbappend
+++ b/recipes-bsp/u-boot/u-boot%.bbappend
@@ -9,12 +9,17 @@ EXTRA_OEMAKE:append:rk3588s = " \
BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3588.elf \
ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3588.bin \
"
+EXTRA_OEMAKE:append:rk3568 = " \
+ BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3568.elf \
+ ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3568.bin \
+ "
INIT_FIRMWARE_DEPENDS ??= ""
INIT_FIRMWARE_DEPENDS:px30 = " trusted-firmware-a:do_deploy"
INIT_FIRMWARE_DEPENDS:rk3328 = " trusted-firmware-a:do_deploy"
INIT_FIRMWARE_DEPENDS:rk3399 = " trusted-firmware-a:do_deploy"
INIT_FIRMWARE_DEPENDS:rk3588s = " rockchip-rkbin:do_deploy"
+INIT_FIRMWARE_DEPENDS:rk3568 = " rockchip-rkbin:do_deploy"
do_compile[depends] .= "${INIT_FIRMWARE_DEPENDS}"
do_compile:append:rock2-square () {
--
2.34.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [meta-rockchip] [PATCH v3] rock-3a add
2023-10-16 10:43 [meta-rockchip] [PATCH v3] rock-3a add anthony.t.davies
@ 2023-10-25 13:56 ` Trevor Woerner
2023-10-25 14:22 ` [yocto] " Quentin Schulz
2024-01-21 2:41 ` Trevor Woerner
1 sibling, 1 reply; 8+ messages in thread
From: Trevor Woerner @ 2023-10-25 13:56 UTC (permalink / raw)
To: anthony.t.davies; +Cc: yocto
Hi Anthony,
Thanks for working on this.
On Mon 2023-10-16 @ 09:43:45 PM, anthony.t.davies@gmail.com wrote:
> From: Anthony Davies <anthony.t.davies@gmail.com>
>
> Add support for the Radxa Rock 3A
> https://wiki.radxa.com/Rock3/3a
>
> The TF-A project does not currently have support for
> the rk3568. Therefore, for the time-being, the only way to supply a
> TPL/DDR-init for the rk3568 is to use the closed-source rkbin binaries
> from Rockchip. If/when TF-A adds support for the rk3588 we can investigate
> switching.
>
> recipes-bsp/rkbin/rockchip-rkbin_git.bb was modified to allow a machine
> override to allow both rk3568 and rk3588s to use differnet binary blobs
>
> Signed-off-by: Anthony Davies <anthony.t.davies@gmail.com>
> ---
> README | 1 +
> conf/machine/include/rk3568.inc | 17 +++++++++++++++++
> conf/machine/rock-3a.conf | 12 ++++++++++++
> recipes-bsp/rkbin/rockchip-rkbin_git.bb | 16 +++++++++++++++-
> recipes-bsp/u-boot/u-boot%.bbappend | 5 +++++
> 5 files changed, 50 insertions(+), 1 deletion(-)
> create mode 100644 conf/machine/include/rk3568.inc
> create mode 100644 conf/machine/rock-3a.conf
>
> diff --git a/README b/README
> index 8104474..3357b47 100644
> --- a/README
> +++ b/README
> @@ -32,6 +32,7 @@ Status of supported boards:
> nanopi-r4s
> rock-5b
> nanopi-r2s
> + rock-3a
There's still an issue with indents/tabs.
> builds:
> marsboard-rk3066
> radxarock
> diff --git a/conf/machine/include/rk3568.inc b/conf/machine/include/rk3568.inc
> new file mode 100644
> index 0000000..5382b58
> --- /dev/null
> +++ b/conf/machine/include/rk3568.inc
> @@ -0,0 +1,17 @@
> +MACHINEOVERRIDES =. "rk3568:"
> +DEFAULTTUNE ?= "cortexa55"
> +
> +require conf/machine/include/arm/armv8-2a/tune-cortexa55.inc
> +require conf/machine/include/rockchip-defaults.inc
> +require conf/machine/include/rockchip-wic.inc
> +
> +KBUILD_DEFCONFIG ?= "defconfig"
> +KERNEL_FEATURES:append:rk3568 = " bsp/rockchip/remove-non-rockchip-arch-arm64.scc"
> +KERNEL_CLASSES ??= "kernel-fitimage"
> +KERNEL_IMAGETYPE ??= "fitImage"
> +
> +PREFERRED_PROVIDER_trusted-firmware-a = "rockchip-rkbin"
> +PREFERRED_PROVIDER_optee-os = "rockchip-rkbin"
> +
> +UBOOT_SUFFIX ?= "itb"
> +UBOOT_ENTRYPOINT ?= "0x06000000"
> diff --git a/conf/machine/rock-3a.conf b/conf/machine/rock-3a.conf
> new file mode 100644
> index 0000000..2ed83a3
> --- /dev/null
> +++ b/conf/machine/rock-3a.conf
> @@ -0,0 +1,12 @@
> +#@TYPE: Machine
> +#@NAME: Radxa Rock 3a
> +#@DESCRIPTION: ROCK3 is a series of Rockchip RK3566/RK3568 based
> +#SBC(Single Board Computer) and Compute Module by Radxa.
> +#https://wiki.radxa.com/Rock3
> +
> +require conf/machine/include/rk3568.inc
> +
> +KERNEL_DEVICETREE = "rockchip/rk3568-rock-3a.dtb"
> +MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
> +
> +UBOOT_MACHINE = "rock-3a-rk3568_defconfig"
> diff --git a/recipes-bsp/rkbin/rockchip-rkbin_git.bb b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> index 7fefb01..ad5593c 100644
> --- a/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> +++ b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> @@ -14,6 +14,7 @@ S = "${WORKDIR}/git"
>
> COMPATIBLE_MACHINE = ""
> COMPATIBLE_MACHINE:rk3588s = "rk3588s"
> +COMPATIBLE_MACHINE:rk3568 = "rk3568"
>
> PACKAGE_ARCH = "${MACHINE_ARCH}"
>
> @@ -25,7 +26,16 @@ do_install() {
> PACKAGES = "${PN}"
> ALLOW_EMPTY:${PN} = "1"
>
> -do_deploy() {
> +do_deploy:rk3568() {
> + # Prebuilt TF-A
> + install -m 644 ${S}/bin/rk35/rk3568_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3568.elf
> + # Prebuilt OPTEE-OS
> + install -m 644 ${S}/bin/rk35/rk3568_bl32_v*.bin ${DEPLOYDIR}/tee-rk3568.bin
> + # Prebuilt U-Boot TPL (DDR init)
> + install -m 644 ${S}/bin/rk35/rk3568_ddr_1560MHz_v1.18.bin ${DEPLOYDIR}/ddr-rk3568.bin
> +}
> +
> +do_deploy:rk3588s() {
> # Prebuilt TF-A
> install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3588.elf
> # Prebuilt OPTEE-OS
> @@ -34,4 +44,8 @@ do_deploy() {
> install -m 644 ${S}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v*.bin ${DEPLOYDIR}/ddr-rk3588.bin
> }
>
> +do_deploy() {
> + bbfatal "COMPATIBLE_MACHINE requires a corressponding do_deploy:<MACHINE>() override"
> +}
> +
This is not related to adding support for rock3a.
> addtask deploy after do_install
> diff --git a/recipes-bsp/u-boot/u-boot%.bbappend b/recipes-bsp/u-boot/u-boot%.bbappend
> index e79c471..66c81da 100644
> --- a/recipes-bsp/u-boot/u-boot%.bbappend
> +++ b/recipes-bsp/u-boot/u-boot%.bbappend
> @@ -9,12 +9,17 @@ EXTRA_OEMAKE:append:rk3588s = " \
> BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3588.elf \
> ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3588.bin \
> "
> +EXTRA_OEMAKE:append:rk3568 = " \
> + BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3568.elf \
> + ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3568.bin \
> + "
>
> INIT_FIRMWARE_DEPENDS ??= ""
> INIT_FIRMWARE_DEPENDS:px30 = " trusted-firmware-a:do_deploy"
> INIT_FIRMWARE_DEPENDS:rk3328 = " trusted-firmware-a:do_deploy"
> INIT_FIRMWARE_DEPENDS:rk3399 = " trusted-firmware-a:do_deploy"
> INIT_FIRMWARE_DEPENDS:rk3588s = " rockchip-rkbin:do_deploy"
> +INIT_FIRMWARE_DEPENDS:rk3568 = " rockchip-rkbin:do_deploy"
> do_compile[depends] .= "${INIT_FIRMWARE_DEPENDS}"
>
> do_compile:append:rock2-square () {
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [yocto] [meta-rockchip] [PATCH v3] rock-3a add
2023-10-25 13:56 ` Trevor Woerner
@ 2023-10-25 14:22 ` Quentin Schulz
2023-10-25 14:42 ` Trevor Woerner
2023-10-26 4:17 ` Anthony Davies
0 siblings, 2 replies; 8+ messages in thread
From: Quentin Schulz @ 2023-10-25 14:22 UTC (permalink / raw)
To: twoerner, anthony.t.davies; +Cc: yocto
Hi Trevor,
On 10/25/23 15:56, Trevor Woerner via lists.yoctoproject.org wrote:
> Hi Anthony,
>
> Thanks for working on this.
>
> On Mon 2023-10-16 @ 09:43:45 PM, anthony.t.davies@gmail.com wrote:
>> From: Anthony Davies <anthony.t.davies@gmail.com>
>>
>> Add support for the Radxa Rock 3A
>> https://wiki.radxa.com/Rock3/3a
>>
>> The TF-A project does not currently have support for
>> the rk3568. Therefore, for the time-being, the only way to supply a
>> TPL/DDR-init for the rk3568 is to use the closed-source rkbin binaries
>> from Rockchip. If/when TF-A adds support for the rk3588 we can investigate
>> switching.
>>
>> recipes-bsp/rkbin/rockchip-rkbin_git.bb was modified to allow a machine
>> override to allow both rk3568 and rk3588s to use differnet binary blobs
>>
>> Signed-off-by: Anthony Davies <anthony.t.davies@gmail.com>
>> ---
>> README | 1 +
>> conf/machine/include/rk3568.inc | 17 +++++++++++++++++
>> conf/machine/rock-3a.conf | 12 ++++++++++++
>> recipes-bsp/rkbin/rockchip-rkbin_git.bb | 16 +++++++++++++++-
>> recipes-bsp/u-boot/u-boot%.bbappend | 5 +++++
>> 5 files changed, 50 insertions(+), 1 deletion(-)
>> create mode 100644 conf/machine/include/rk3568.inc
>> create mode 100644 conf/machine/rock-3a.conf
>>
>> diff --git a/README b/README
>> index 8104474..3357b47 100644
>> --- a/README
>> +++ b/README
>> @@ -32,6 +32,7 @@ Status of supported boards:
>> nanopi-r4s
>> rock-5b
>> nanopi-r2s
>> + rock-3a
>
> There's still an issue with indents/tabs.
>
>> builds:
>> marsboard-rk3066
>> radxarock
>> diff --git a/conf/machine/include/rk3568.inc b/conf/machine/include/rk3568.inc
>> new file mode 100644
>> index 0000000..5382b58
>> --- /dev/null
>> +++ b/conf/machine/include/rk3568.inc
>> @@ -0,0 +1,17 @@
>> +MACHINEOVERRIDES =. "rk3568:"
>> +DEFAULTTUNE ?= "cortexa55"
>> +
>> +require conf/machine/include/arm/armv8-2a/tune-cortexa55.inc
>> +require conf/machine/include/rockchip-defaults.inc
>> +require conf/machine/include/rockchip-wic.inc
>> +
>> +KBUILD_DEFCONFIG ?= "defconfig"
>> +KERNEL_FEATURES:append:rk3568 = " bsp/rockchip/remove-non-rockchip-arch-arm64.scc"
>> +KERNEL_CLASSES ??= "kernel-fitimage"
>> +KERNEL_IMAGETYPE ??= "fitImage"
>> +
>> +PREFERRED_PROVIDER_trusted-firmware-a = "rockchip-rkbin"
>> +PREFERRED_PROVIDER_optee-os = "rockchip-rkbin"
>> +
>> +UBOOT_SUFFIX ?= "itb"
>> +UBOOT_ENTRYPOINT ?= "0x06000000"
>> diff --git a/conf/machine/rock-3a.conf b/conf/machine/rock-3a.conf
>> new file mode 100644
>> index 0000000..2ed83a3
>> --- /dev/null
>> +++ b/conf/machine/rock-3a.conf
>> @@ -0,0 +1,12 @@
>> +#@TYPE: Machine
>> +#@NAME: Radxa Rock 3a
>> +#@DESCRIPTION: ROCK3 is a series of Rockchip RK3566/RK3568 based
>> +#SBC(Single Board Computer) and Compute Module by Radxa.
>> +#https://wiki.radxa.com/Rock3
>> +
>> +require conf/machine/include/rk3568.inc
>> +
>> +KERNEL_DEVICETREE = "rockchip/rk3568-rock-3a.dtb"
>> +MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
>> +
>> +UBOOT_MACHINE = "rock-3a-rk3568_defconfig"
>> diff --git a/recipes-bsp/rkbin/rockchip-rkbin_git.bb b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
>> index 7fefb01..ad5593c 100644
>> --- a/recipes-bsp/rkbin/rockchip-rkbin_git.bb
>> +++ b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
>> @@ -14,6 +14,7 @@ S = "${WORKDIR}/git"
>>
>> COMPATIBLE_MACHINE = ""
>> COMPATIBLE_MACHINE:rk3588s = "rk3588s"
>> +COMPATIBLE_MACHINE:rk3568 = "rk3568"
>>
>> PACKAGE_ARCH = "${MACHINE_ARCH}"
>>
>> @@ -25,7 +26,16 @@ do_install() {
>> PACKAGES = "${PN}"
>> ALLOW_EMPTY:${PN} = "1"
>>
>> -do_deploy() {
>> +do_deploy:rk3568() {
>> + # Prebuilt TF-A
>> + install -m 644 ${S}/bin/rk35/rk3568_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3568.elf
>> + # Prebuilt OPTEE-OS
>> + install -m 644 ${S}/bin/rk35/rk3568_bl32_v*.bin ${DEPLOYDIR}/tee-rk3568.bin
>> + # Prebuilt U-Boot TPL (DDR init)
>> + install -m 644 ${S}/bin/rk35/rk3568_ddr_1560MHz_v1.18.bin ${DEPLOYDIR}/ddr-rk3568.bin
>> +}
>> +
>> +do_deploy:rk3588s() {
>> # Prebuilt TF-A
>> install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3588.elf
>> # Prebuilt OPTEE-OS
>> @@ -34,4 +44,8 @@ do_deploy() {
>> install -m 644 ${S}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v*.bin ${DEPLOYDIR}/ddr-rk3588.bin
>> }
>>
>> +do_deploy() {
>> + bbfatal "COMPATIBLE_MACHINE requires a corressponding do_deploy:<MACHINE>() override"
>> +}
>> +
>
> This is not related to adding support for rock3a.
>
In a way it is, but would benefit in being in a different commit I agree.
So basically Anthony's issue (if I remember correctly) was that if
you're not overriding the default do_deploy, the recipe will pass but
install the wrong files with the wrong names, without telling you.
So instead, the thought was to make do_deploy fail by default (with
bbfatal) unless it is overridden (e.g. for rk3588s and rk3568) so that
people adding support for new SoCs don't wonder what's missing.
I could see a commit with a diff like:
"""
-do_deploy() {
+do_deploy:rk3588s() {
# Prebuilt TF-A
install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf
${DEPLOYDIR}/bl31-rk3588.elf
# Prebuilt OPTEE-OS
@@ -34,4 +44,8 @@ do_deploy() {
install -m 644
${S}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v*.bin
${DEPLOYDIR}/ddr-rk3588.bin
}
+do_deploy() {
+ bbfatal "COMPATIBLE_MACHINE requires a corressponding
do_deploy:<MACHINE>() override"
+}
+
"""
with a proper explanation in the commit log, and then a commit that adds
one for rk3568.
Cheers,
Quentin
>> addtask deploy after do_install
>> diff --git a/recipes-bsp/u-boot/u-boot%.bbappend b/recipes-bsp/u-boot/u-boot%.bbappend
>> index e79c471..66c81da 100644
>> --- a/recipes-bsp/u-boot/u-boot%.bbappend
>> +++ b/recipes-bsp/u-boot/u-boot%.bbappend
>> @@ -9,12 +9,17 @@ EXTRA_OEMAKE:append:rk3588s = " \
>> BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3588.elf \
>> ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3588.bin \
>> "
>> +EXTRA_OEMAKE:append:rk3568 = " \
>> + BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3568.elf \
>> + ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3568.bin \
>> + "
>>
>> INIT_FIRMWARE_DEPENDS ??= ""
>> INIT_FIRMWARE_DEPENDS:px30 = " trusted-firmware-a:do_deploy"
>> INIT_FIRMWARE_DEPENDS:rk3328 = " trusted-firmware-a:do_deploy"
>> INIT_FIRMWARE_DEPENDS:rk3399 = " trusted-firmware-a:do_deploy"
>> INIT_FIRMWARE_DEPENDS:rk3588s = " rockchip-rkbin:do_deploy"
>> +INIT_FIRMWARE_DEPENDS:rk3568 = " rockchip-rkbin:do_deploy"
>> do_compile[depends] .= "${INIT_FIRMWARE_DEPENDS}"
>>
>> do_compile:append:rock2-square () {
>> --
>> 2.34.1
>>
>>
>>
>> -=-=-=-=-=-=-=-=-=-=-=-
>> Links: You receive all messages sent to this group.
>> View/Reply Online (#61481): https://lists.yoctoproject.org/g/yocto/message/61481
>> Mute This Topic: https://lists.yoctoproject.org/mt/101992957/6293953
>> Group Owner: yocto+owner@lists.yoctoproject.org
>> Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [quentin.schulz@theobroma-systems.com]
>> -=-=-=-=-=-=-=-=-=-=-=-
>>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [yocto] [meta-rockchip] [PATCH v3] rock-3a add
2023-10-25 14:22 ` [yocto] " Quentin Schulz
@ 2023-10-25 14:42 ` Trevor Woerner
2023-10-25 15:49 ` Quentin Schulz
2023-10-26 4:17 ` Anthony Davies
1 sibling, 1 reply; 8+ messages in thread
From: Trevor Woerner @ 2023-10-25 14:42 UTC (permalink / raw)
To: Quentin Schulz; +Cc: anthony.t.davies, yocto
On Wed 2023-10-25 @ 04:22:17 PM, Quentin Schulz wrote:
> Hi Trevor,
>
> On 10/25/23 15:56, Trevor Woerner via lists.yoctoproject.org wrote:
> > Hi Anthony,
> >
> > Thanks for working on this.
> >
> > On Mon 2023-10-16 @ 09:43:45 PM, anthony.t.davies@gmail.com wrote:
> > > From: Anthony Davies <anthony.t.davies@gmail.com>
> > >
> > > Add support for the Radxa Rock 3A
> > > https://wiki.radxa.com/Rock3/3a
> > >
> > > The TF-A project does not currently have support for
> > > the rk3568. Therefore, for the time-being, the only way to supply a
> > > TPL/DDR-init for the rk3568 is to use the closed-source rkbin binaries
> > > from Rockchip. If/when TF-A adds support for the rk3588 we can investigate
> > > switching.
> > >
> > > recipes-bsp/rkbin/rockchip-rkbin_git.bb was modified to allow a machine
> > > override to allow both rk3568 and rk3588s to use differnet binary blobs
> > >
> > > Signed-off-by: Anthony Davies <anthony.t.davies@gmail.com>
> > > ---
> > > README | 1 +
> > > conf/machine/include/rk3568.inc | 17 +++++++++++++++++
> > > conf/machine/rock-3a.conf | 12 ++++++++++++
> > > recipes-bsp/rkbin/rockchip-rkbin_git.bb | 16 +++++++++++++++-
> > > recipes-bsp/u-boot/u-boot%.bbappend | 5 +++++
> > > 5 files changed, 50 insertions(+), 1 deletion(-)
> > > create mode 100644 conf/machine/include/rk3568.inc
> > > create mode 100644 conf/machine/rock-3a.conf
> > >
> > > diff --git a/README b/README
> > > index 8104474..3357b47 100644
> > > --- a/README
> > > +++ b/README
> > > @@ -32,6 +32,7 @@ Status of supported boards:
> > > nanopi-r4s
> > > rock-5b
> > > nanopi-r2s
> > > + rock-3a
> >
> > There's still an issue with indents/tabs.
> >
> > > builds:
> > > marsboard-rk3066
> > > radxarock
> > > diff --git a/conf/machine/include/rk3568.inc b/conf/machine/include/rk3568.inc
> > > new file mode 100644
> > > index 0000000..5382b58
> > > --- /dev/null
> > > +++ b/conf/machine/include/rk3568.inc
> > > @@ -0,0 +1,17 @@
> > > +MACHINEOVERRIDES =. "rk3568:"
> > > +DEFAULTTUNE ?= "cortexa55"
> > > +
> > > +require conf/machine/include/arm/armv8-2a/tune-cortexa55.inc
> > > +require conf/machine/include/rockchip-defaults.inc
> > > +require conf/machine/include/rockchip-wic.inc
> > > +
> > > +KBUILD_DEFCONFIG ?= "defconfig"
> > > +KERNEL_FEATURES:append:rk3568 = " bsp/rockchip/remove-non-rockchip-arch-arm64.scc"
> > > +KERNEL_CLASSES ??= "kernel-fitimage"
> > > +KERNEL_IMAGETYPE ??= "fitImage"
> > > +
> > > +PREFERRED_PROVIDER_trusted-firmware-a = "rockchip-rkbin"
> > > +PREFERRED_PROVIDER_optee-os = "rockchip-rkbin"
> > > +
> > > +UBOOT_SUFFIX ?= "itb"
> > > +UBOOT_ENTRYPOINT ?= "0x06000000"
> > > diff --git a/conf/machine/rock-3a.conf b/conf/machine/rock-3a.conf
> > > new file mode 100644
> > > index 0000000..2ed83a3
> > > --- /dev/null
> > > +++ b/conf/machine/rock-3a.conf
> > > @@ -0,0 +1,12 @@
> > > +#@TYPE: Machine
> > > +#@NAME: Radxa Rock 3a
> > > +#@DESCRIPTION: ROCK3 is a series of Rockchip RK3566/RK3568 based
> > > +#SBC(Single Board Computer) and Compute Module by Radxa.
> > > +#https://wiki.radxa.com/Rock3
> > > +
> > > +require conf/machine/include/rk3568.inc
> > > +
> > > +KERNEL_DEVICETREE = "rockchip/rk3568-rock-3a.dtb"
> > > +MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
> > > +
> > > +UBOOT_MACHINE = "rock-3a-rk3568_defconfig"
> > > diff --git a/recipes-bsp/rkbin/rockchip-rkbin_git.bb b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> > > index 7fefb01..ad5593c 100644
> > > --- a/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> > > +++ b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> > > @@ -14,6 +14,7 @@ S = "${WORKDIR}/git"
> > > COMPATIBLE_MACHINE = ""
> > > COMPATIBLE_MACHINE:rk3588s = "rk3588s"
> > > +COMPATIBLE_MACHINE:rk3568 = "rk3568"
> > > PACKAGE_ARCH = "${MACHINE_ARCH}"
> > > @@ -25,7 +26,16 @@ do_install() {
> > > PACKAGES = "${PN}"
> > > ALLOW_EMPTY:${PN} = "1"
> > > -do_deploy() {
> > > +do_deploy:rk3568() {
> > > + # Prebuilt TF-A
> > > + install -m 644 ${S}/bin/rk35/rk3568_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3568.elf
> > > + # Prebuilt OPTEE-OS
> > > + install -m 644 ${S}/bin/rk35/rk3568_bl32_v*.bin ${DEPLOYDIR}/tee-rk3568.bin
> > > + # Prebuilt U-Boot TPL (DDR init)
> > > + install -m 644 ${S}/bin/rk35/rk3568_ddr_1560MHz_v1.18.bin ${DEPLOYDIR}/ddr-rk3568.bin
> > > +}
> > > +
> > > +do_deploy:rk3588s() {
> > > # Prebuilt TF-A
> > > install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3588.elf
> > > # Prebuilt OPTEE-OS
> > > @@ -34,4 +44,8 @@ do_deploy() {
> > > install -m 644 ${S}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v*.bin ${DEPLOYDIR}/ddr-rk3588.bin
> > > }
> > > +do_deploy() {
> > > + bbfatal "COMPATIBLE_MACHINE requires a corressponding do_deploy:<MACHINE>() override"
> > > +}
> > > +
> >
> > This is not related to adding support for rock3a.
> >
>
> In a way it is, but would benefit in being in a different commit I agree.
>
> So basically Anthony's issue (if I remember correctly) was that if you're
> not overriding the default do_deploy, the recipe will pass but install the
> wrong files with the wrong names, without telling you.
>
> So instead, the thought was to make do_deploy fail by default (with bbfatal)
> unless it is overridden (e.g. for rk3588s and rk3568) so that people adding
> support for new SoCs don't wonder what's missing.
>
> I could see a commit with a diff like:
> """
> -do_deploy() {
> +do_deploy:rk3588s() {
> # Prebuilt TF-A
> install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf
> ${DEPLOYDIR}/bl31-rk3588.elf
> # Prebuilt OPTEE-OS
> @@ -34,4 +44,8 @@ do_deploy() {
> install -m 644 ${S}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v*.bin
> ${DEPLOYDIR}/ddr-rk3588.bin
> }
>
> +do_deploy() {
> + bbfatal "COMPATIBLE_MACHINE requires a corressponding
> do_deploy:<MACHINE>() override"
> +}
> +
> """
>
> with a proper explanation in the commit log, and then a commit that adds one
> for rk3568.
...and then another set for kirkstone, no doubt?
>
> Cheers,
> Quentin
>
> > > addtask deploy after do_install
> > > diff --git a/recipes-bsp/u-boot/u-boot%.bbappend b/recipes-bsp/u-boot/u-boot%.bbappend
> > > index e79c471..66c81da 100644
> > > --- a/recipes-bsp/u-boot/u-boot%.bbappend
> > > +++ b/recipes-bsp/u-boot/u-boot%.bbappend
> > > @@ -9,12 +9,17 @@ EXTRA_OEMAKE:append:rk3588s = " \
> > > BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3588.elf \
> > > ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3588.bin \
> > > "
> > > +EXTRA_OEMAKE:append:rk3568 = " \
> > > + BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3568.elf \
> > > + ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3568.bin \
> > > + "
> > > INIT_FIRMWARE_DEPENDS ??= ""
> > > INIT_FIRMWARE_DEPENDS:px30 = " trusted-firmware-a:do_deploy"
> > > INIT_FIRMWARE_DEPENDS:rk3328 = " trusted-firmware-a:do_deploy"
> > > INIT_FIRMWARE_DEPENDS:rk3399 = " trusted-firmware-a:do_deploy"
> > > INIT_FIRMWARE_DEPENDS:rk3588s = " rockchip-rkbin:do_deploy"
> > > +INIT_FIRMWARE_DEPENDS:rk3568 = " rockchip-rkbin:do_deploy"
> > > do_compile[depends] .= "${INIT_FIRMWARE_DEPENDS}"
> > > do_compile:append:rock2-square () {
> > > --
> > > 2.34.1
> > >
> > >
> > >
> > > -=-=-=-=-=-=-=-=-=-=-=-
> > > Links: You receive all messages sent to this group.
> > > View/Reply Online (#61481): https://lists.yoctoproject.org/g/yocto/message/61481
> > > Mute This Topic: https://lists.yoctoproject.org/mt/101992957/6293953
> > > Group Owner: yocto+owner@lists.yoctoproject.org
> > > Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [quentin.schulz@theobroma-systems.com]
> > > -=-=-=-=-=-=-=-=-=-=-=-
> > >
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [yocto] [meta-rockchip] [PATCH v3] rock-3a add
2023-10-25 14:42 ` Trevor Woerner
@ 2023-10-25 15:49 ` Quentin Schulz
2023-10-25 16:20 ` Trevor Woerner
0 siblings, 1 reply; 8+ messages in thread
From: Quentin Schulz @ 2023-10-25 15:49 UTC (permalink / raw)
To: Trevor Woerner; +Cc: anthony.t.davies, yocto
Hi Trevor,
On 10/25/23 16:42, Trevor Woerner wrote:
> On Wed 2023-10-25 @ 04:22:17 PM, Quentin Schulz wrote:
>> Hi Trevor,
>>
>> On 10/25/23 15:56, Trevor Woerner via lists.yoctoproject.org wrote:
>>> Hi Anthony,
>>>
>>> Thanks for working on this.
>>>
>>> On Mon 2023-10-16 @ 09:43:45 PM, anthony.t.davies@gmail.com wrote:
>>>> From: Anthony Davies <anthony.t.davies@gmail.com>
>>>>
>>>> Add support for the Radxa Rock 3A
>>>> https://wiki.radxa.com/Rock3/3a
>>>>
>>>> The TF-A project does not currently have support for
>>>> the rk3568. Therefore, for the time-being, the only way to supply a
>>>> TPL/DDR-init for the rk3568 is to use the closed-source rkbin binaries
>>>> from Rockchip. If/when TF-A adds support for the rk3588 we can investigate
>>>> switching.
>>>>
>>>> recipes-bsp/rkbin/rockchip-rkbin_git.bb was modified to allow a machine
>>>> override to allow both rk3568 and rk3588s to use differnet binary blobs
>>>>
>>>> Signed-off-by: Anthony Davies <anthony.t.davies@gmail.com>
>>>> ---
>>>> README | 1 +
>>>> conf/machine/include/rk3568.inc | 17 +++++++++++++++++
>>>> conf/machine/rock-3a.conf | 12 ++++++++++++
>>>> recipes-bsp/rkbin/rockchip-rkbin_git.bb | 16 +++++++++++++++-
>>>> recipes-bsp/u-boot/u-boot%.bbappend | 5 +++++
>>>> 5 files changed, 50 insertions(+), 1 deletion(-)
>>>> create mode 100644 conf/machine/include/rk3568.inc
>>>> create mode 100644 conf/machine/rock-3a.conf
>>>>
>>>> diff --git a/README b/README
>>>> index 8104474..3357b47 100644
>>>> --- a/README
>>>> +++ b/README
>>>> @@ -32,6 +32,7 @@ Status of supported boards:
>>>> nanopi-r4s
>>>> rock-5b
>>>> nanopi-r2s
>>>> + rock-3a
>>>
>>> There's still an issue with indents/tabs.
>>>
>>>> builds:
>>>> marsboard-rk3066
>>>> radxarock
>>>> diff --git a/conf/machine/include/rk3568.inc b/conf/machine/include/rk3568.inc
>>>> new file mode 100644
>>>> index 0000000..5382b58
>>>> --- /dev/null
>>>> +++ b/conf/machine/include/rk3568.inc
>>>> @@ -0,0 +1,17 @@
>>>> +MACHINEOVERRIDES =. "rk3568:"
>>>> +DEFAULTTUNE ?= "cortexa55"
>>>> +
>>>> +require conf/machine/include/arm/armv8-2a/tune-cortexa55.inc
>>>> +require conf/machine/include/rockchip-defaults.inc
>>>> +require conf/machine/include/rockchip-wic.inc
>>>> +
>>>> +KBUILD_DEFCONFIG ?= "defconfig"
>>>> +KERNEL_FEATURES:append:rk3568 = " bsp/rockchip/remove-non-rockchip-arch-arm64.scc"
>>>> +KERNEL_CLASSES ??= "kernel-fitimage"
>>>> +KERNEL_IMAGETYPE ??= "fitImage"
>>>> +
>>>> +PREFERRED_PROVIDER_trusted-firmware-a = "rockchip-rkbin"
>>>> +PREFERRED_PROVIDER_optee-os = "rockchip-rkbin"
>>>> +
>>>> +UBOOT_SUFFIX ?= "itb"
>>>> +UBOOT_ENTRYPOINT ?= "0x06000000"
>>>> diff --git a/conf/machine/rock-3a.conf b/conf/machine/rock-3a.conf
>>>> new file mode 100644
>>>> index 0000000..2ed83a3
>>>> --- /dev/null
>>>> +++ b/conf/machine/rock-3a.conf
>>>> @@ -0,0 +1,12 @@
>>>> +#@TYPE: Machine
>>>> +#@NAME: Radxa Rock 3a
>>>> +#@DESCRIPTION: ROCK3 is a series of Rockchip RK3566/RK3568 based
>>>> +#SBC(Single Board Computer) and Compute Module by Radxa.
>>>> +#https://wiki.radxa.com/Rock3
>>>> +
>>>> +require conf/machine/include/rk3568.inc
>>>> +
>>>> +KERNEL_DEVICETREE = "rockchip/rk3568-rock-3a.dtb"
>>>> +MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
>>>> +
>>>> +UBOOT_MACHINE = "rock-3a-rk3568_defconfig"
>>>> diff --git a/recipes-bsp/rkbin/rockchip-rkbin_git.bb b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
>>>> index 7fefb01..ad5593c 100644
>>>> --- a/recipes-bsp/rkbin/rockchip-rkbin_git.bb
>>>> +++ b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
>>>> @@ -14,6 +14,7 @@ S = "${WORKDIR}/git"
>>>> COMPATIBLE_MACHINE = ""
>>>> COMPATIBLE_MACHINE:rk3588s = "rk3588s"
>>>> +COMPATIBLE_MACHINE:rk3568 = "rk3568"
>>>> PACKAGE_ARCH = "${MACHINE_ARCH}"
>>>> @@ -25,7 +26,16 @@ do_install() {
>>>> PACKAGES = "${PN}"
>>>> ALLOW_EMPTY:${PN} = "1"
>>>> -do_deploy() {
>>>> +do_deploy:rk3568() {
>>>> + # Prebuilt TF-A
>>>> + install -m 644 ${S}/bin/rk35/rk3568_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3568.elf
>>>> + # Prebuilt OPTEE-OS
>>>> + install -m 644 ${S}/bin/rk35/rk3568_bl32_v*.bin ${DEPLOYDIR}/tee-rk3568.bin
>>>> + # Prebuilt U-Boot TPL (DDR init)
>>>> + install -m 644 ${S}/bin/rk35/rk3568_ddr_1560MHz_v1.18.bin ${DEPLOYDIR}/ddr-rk3568.bin
>>>> +}
>>>> +
>>>> +do_deploy:rk3588s() {
>>>> # Prebuilt TF-A
>>>> install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3588.elf
>>>> # Prebuilt OPTEE-OS
>>>> @@ -34,4 +44,8 @@ do_deploy() {
>>>> install -m 644 ${S}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v*.bin ${DEPLOYDIR}/ddr-rk3588.bin
>>>> }
>>>> +do_deploy() {
>>>> + bbfatal "COMPATIBLE_MACHINE requires a corressponding do_deploy:<MACHINE>() override"
>>>> +}
>>>> +
>>>
>>> This is not related to adding support for rock3a.
>>>
>>
>> In a way it is, but would benefit in being in a different commit I agree.
>>
>> So basically Anthony's issue (if I remember correctly) was that if you're
>> not overriding the default do_deploy, the recipe will pass but install the
>> wrong files with the wrong names, without telling you.
>>
>> So instead, the thought was to make do_deploy fail by default (with bbfatal)
>> unless it is overridden (e.g. for rk3588s and rk3568) so that people adding
>> support for new SoCs don't wonder what's missing.
>>
>> I could see a commit with a diff like:
>> """
>> -do_deploy() {
>> +do_deploy:rk3588s() {
>> # Prebuilt TF-A
>> install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf
>> ${DEPLOYDIR}/bl31-rk3588.elf
>> # Prebuilt OPTEE-OS
>> @@ -34,4 +44,8 @@ do_deploy() {
>> install -m 644 ${S}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v*.bin
>> ${DEPLOYDIR}/ddr-rk3588.bin
>> }
>>
>> +do_deploy() {
>> + bbfatal "COMPATIBLE_MACHINE requires a corressponding
>> do_deploy:<MACHINE>() override"
>> +}
>> +
>> """
>>
>> with a proper explanation in the commit log, and then a commit that adds one
>> for rk3568.
>
> ...and then another set for kirkstone, no doubt?
>
I don't have a personal need for supporting anything else other than
RK3588 on kirkstone, so I will not be pushing for it. Therefore, this is
a decision for you to make as a maintainer if you actively want people
to do it as part of follow-up of commits to master branch, do it
yourself or wait for people to contribute backports to kirkstone
whenever they need them.
Cheers,
Quentin
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [yocto] [meta-rockchip] [PATCH v3] rock-3a add
2023-10-25 15:49 ` Quentin Schulz
@ 2023-10-25 16:20 ` Trevor Woerner
0 siblings, 0 replies; 8+ messages in thread
From: Trevor Woerner @ 2023-10-25 16:20 UTC (permalink / raw)
To: Quentin Schulz; +Cc: anthony.t.davies, yocto
On Wed 2023-10-25 @ 05:49:06 PM, Quentin Schulz wrote:
> Hi Trevor,
>
> On 10/25/23 16:42, Trevor Woerner wrote:
> > On Wed 2023-10-25 @ 04:22:17 PM, Quentin Schulz wrote:
> > > Hi Trevor,
> > >
> > > On 10/25/23 15:56, Trevor Woerner via lists.yoctoproject.org wrote:
> > > > Hi Anthony,
> > > >
> > > > Thanks for working on this.
> > > >
> > > > On Mon 2023-10-16 @ 09:43:45 PM, anthony.t.davies@gmail.com wrote:
> > > > > From: Anthony Davies <anthony.t.davies@gmail.com>
> > > > >
> > > > > Add support for the Radxa Rock 3A
> > > > > https://wiki.radxa.com/Rock3/3a
> > > > >
> > > > > The TF-A project does not currently have support for
> > > > > the rk3568. Therefore, for the time-being, the only way to supply a
> > > > > TPL/DDR-init for the rk3568 is to use the closed-source rkbin binaries
> > > > > from Rockchip. If/when TF-A adds support for the rk3588 we can investigate
> > > > > switching.
> > > > >
> > > > > recipes-bsp/rkbin/rockchip-rkbin_git.bb was modified to allow a machine
> > > > > override to allow both rk3568 and rk3588s to use differnet binary blobs
> > > > >
> > > > > Signed-off-by: Anthony Davies <anthony.t.davies@gmail.com>
> > > > > ---
> > > > > README | 1 +
> > > > > conf/machine/include/rk3568.inc | 17 +++++++++++++++++
> > > > > conf/machine/rock-3a.conf | 12 ++++++++++++
> > > > > recipes-bsp/rkbin/rockchip-rkbin_git.bb | 16 +++++++++++++++-
> > > > > recipes-bsp/u-boot/u-boot%.bbappend | 5 +++++
> > > > > 5 files changed, 50 insertions(+), 1 deletion(-)
> > > > > create mode 100644 conf/machine/include/rk3568.inc
> > > > > create mode 100644 conf/machine/rock-3a.conf
> > > > >
> > > > > diff --git a/README b/README
> > > > > index 8104474..3357b47 100644
> > > > > --- a/README
> > > > > +++ b/README
> > > > > @@ -32,6 +32,7 @@ Status of supported boards:
> > > > > nanopi-r4s
> > > > > rock-5b
> > > > > nanopi-r2s
> > > > > + rock-3a
> > > >
> > > > There's still an issue with indents/tabs.
> > > >
> > > > > builds:
> > > > > marsboard-rk3066
> > > > > radxarock
> > > > > diff --git a/conf/machine/include/rk3568.inc b/conf/machine/include/rk3568.inc
> > > > > new file mode 100644
> > > > > index 0000000..5382b58
> > > > > --- /dev/null
> > > > > +++ b/conf/machine/include/rk3568.inc
> > > > > @@ -0,0 +1,17 @@
> > > > > +MACHINEOVERRIDES =. "rk3568:"
> > > > > +DEFAULTTUNE ?= "cortexa55"
> > > > > +
> > > > > +require conf/machine/include/arm/armv8-2a/tune-cortexa55.inc
> > > > > +require conf/machine/include/rockchip-defaults.inc
> > > > > +require conf/machine/include/rockchip-wic.inc
> > > > > +
> > > > > +KBUILD_DEFCONFIG ?= "defconfig"
> > > > > +KERNEL_FEATURES:append:rk3568 = " bsp/rockchip/remove-non-rockchip-arch-arm64.scc"
> > > > > +KERNEL_CLASSES ??= "kernel-fitimage"
> > > > > +KERNEL_IMAGETYPE ??= "fitImage"
> > > > > +
> > > > > +PREFERRED_PROVIDER_trusted-firmware-a = "rockchip-rkbin"
> > > > > +PREFERRED_PROVIDER_optee-os = "rockchip-rkbin"
> > > > > +
> > > > > +UBOOT_SUFFIX ?= "itb"
> > > > > +UBOOT_ENTRYPOINT ?= "0x06000000"
> > > > > diff --git a/conf/machine/rock-3a.conf b/conf/machine/rock-3a.conf
> > > > > new file mode 100644
> > > > > index 0000000..2ed83a3
> > > > > --- /dev/null
> > > > > +++ b/conf/machine/rock-3a.conf
> > > > > @@ -0,0 +1,12 @@
> > > > > +#@TYPE: Machine
> > > > > +#@NAME: Radxa Rock 3a
> > > > > +#@DESCRIPTION: ROCK3 is a series of Rockchip RK3566/RK3568 based
> > > > > +#SBC(Single Board Computer) and Compute Module by Radxa.
> > > > > +#https://wiki.radxa.com/Rock3
> > > > > +
> > > > > +require conf/machine/include/rk3568.inc
> > > > > +
> > > > > +KERNEL_DEVICETREE = "rockchip/rk3568-rock-3a.dtb"
> > > > > +MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
> > > > > +
> > > > > +UBOOT_MACHINE = "rock-3a-rk3568_defconfig"
> > > > > diff --git a/recipes-bsp/rkbin/rockchip-rkbin_git.bb b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> > > > > index 7fefb01..ad5593c 100644
> > > > > --- a/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> > > > > +++ b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> > > > > @@ -14,6 +14,7 @@ S = "${WORKDIR}/git"
> > > > > COMPATIBLE_MACHINE = ""
> > > > > COMPATIBLE_MACHINE:rk3588s = "rk3588s"
> > > > > +COMPATIBLE_MACHINE:rk3568 = "rk3568"
> > > > > PACKAGE_ARCH = "${MACHINE_ARCH}"
> > > > > @@ -25,7 +26,16 @@ do_install() {
> > > > > PACKAGES = "${PN}"
> > > > > ALLOW_EMPTY:${PN} = "1"
> > > > > -do_deploy() {
> > > > > +do_deploy:rk3568() {
> > > > > + # Prebuilt TF-A
> > > > > + install -m 644 ${S}/bin/rk35/rk3568_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3568.elf
> > > > > + # Prebuilt OPTEE-OS
> > > > > + install -m 644 ${S}/bin/rk35/rk3568_bl32_v*.bin ${DEPLOYDIR}/tee-rk3568.bin
> > > > > + # Prebuilt U-Boot TPL (DDR init)
> > > > > + install -m 644 ${S}/bin/rk35/rk3568_ddr_1560MHz_v1.18.bin ${DEPLOYDIR}/ddr-rk3568.bin
> > > > > +}
> > > > > +
> > > > > +do_deploy:rk3588s() {
> > > > > # Prebuilt TF-A
> > > > > install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3588.elf
> > > > > # Prebuilt OPTEE-OS
> > > > > @@ -34,4 +44,8 @@ do_deploy() {
> > > > > install -m 644 ${S}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v*.bin ${DEPLOYDIR}/ddr-rk3588.bin
> > > > > }
> > > > > +do_deploy() {
> > > > > + bbfatal "COMPATIBLE_MACHINE requires a corressponding do_deploy:<MACHINE>() override"
> > > > > +}
> > > > > +
> > > >
> > > > This is not related to adding support for rock3a.
> > > >
> > >
> > > In a way it is, but would benefit in being in a different commit I agree.
> > >
> > > So basically Anthony's issue (if I remember correctly) was that if you're
> > > not overriding the default do_deploy, the recipe will pass but install the
> > > wrong files with the wrong names, without telling you.
> > >
> > > So instead, the thought was to make do_deploy fail by default (with bbfatal)
> > > unless it is overridden (e.g. for rk3588s and rk3568) so that people adding
> > > support for new SoCs don't wonder what's missing.
> > >
> > > I could see a commit with a diff like:
> > > """
> > > -do_deploy() {
> > > +do_deploy:rk3588s() {
> > > # Prebuilt TF-A
> > > install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf
> > > ${DEPLOYDIR}/bl31-rk3588.elf
> > > # Prebuilt OPTEE-OS
> > > @@ -34,4 +44,8 @@ do_deploy() {
> > > install -m 644 ${S}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v*.bin
> > > ${DEPLOYDIR}/ddr-rk3588.bin
> > > }
> > >
> > > +do_deploy() {
> > > + bbfatal "COMPATIBLE_MACHINE requires a corressponding
> > > do_deploy:<MACHINE>() override"
> > > +}
> > > +
> > > """
> > >
> > > with a proper explanation in the commit log, and then a commit that adds one
> > > for rk3568.
> >
> > ...and then another set for kirkstone, no doubt?
> >
>
> I don't have a personal need for supporting anything else other than RK3588
> on kirkstone, so I will not be pushing for it. Therefore, this is a decision
> for you to make as a maintainer if you actively want people to do it as part
> of follow-up of commits to master branch, do it yourself or wait for people
> to contribute backports to kirkstone whenever they need them.
Okay, sounds good. I won't backport until/unless I know someone is interested.
Also, rk3568 support is probably poor in kirkstone anyway (same as rk3588/s).
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [yocto] [meta-rockchip] [PATCH v3] rock-3a add
2023-10-25 14:22 ` [yocto] " Quentin Schulz
2023-10-25 14:42 ` Trevor Woerner
@ 2023-10-26 4:17 ` Anthony Davies
1 sibling, 0 replies; 8+ messages in thread
From: Anthony Davies @ 2023-10-26 4:17 UTC (permalink / raw)
To: Quentin Schulz; +Cc: twoerner, yocto
Hi,
It is in that the rk3568 won't boot without rkbin and it needed to be
modified to allow multiple machines to be able to have their own
rkbin.
I never had a problem with not having the catchall, just old habits of
never have a conditional without a catchall explaining the problem of
getting there (if it should never get there)
On Thu, 26 Oct 2023 at 01:22, Quentin Schulz
<quentin.schulz@theobroma-systems.com> wrote:
>
> Hi Trevor,
>
> On 10/25/23 15:56, Trevor Woerner via lists.yoctoproject.org wrote:
> > Hi Anthony,
> >
> > Thanks for working on this.
> >
> > On Mon 2023-10-16 @ 09:43:45 PM, anthony.t.davies@gmail.com wrote:
> >> From: Anthony Davies <anthony.t.davies@gmail.com>
> >>
> >> Add support for the Radxa Rock 3A
> >> https://wiki.radxa.com/Rock3/3a
> >>
> >> The TF-A project does not currently have support for
> >> the rk3568. Therefore, for the time-being, the only way to supply a
> >> TPL/DDR-init for the rk3568 is to use the closed-source rkbin binaries
> >> from Rockchip. If/when TF-A adds support for the rk3588 we can investigate
> >> switching.
> >>
> >> recipes-bsp/rkbin/rockchip-rkbin_git.bb was modified to allow a machine
> >> override to allow both rk3568 and rk3588s to use differnet binary blobs
> >>
> >> Signed-off-by: Anthony Davies <anthony.t.davies@gmail.com>
> >> ---
> >> README | 1 +
> >> conf/machine/include/rk3568.inc | 17 +++++++++++++++++
> >> conf/machine/rock-3a.conf | 12 ++++++++++++
> >> recipes-bsp/rkbin/rockchip-rkbin_git.bb | 16 +++++++++++++++-
> >> recipes-bsp/u-boot/u-boot%.bbappend | 5 +++++
> >> 5 files changed, 50 insertions(+), 1 deletion(-)
> >> create mode 100644 conf/machine/include/rk3568.inc
> >> create mode 100644 conf/machine/rock-3a.conf
> >>
> >> diff --git a/README b/README
> >> index 8104474..3357b47 100644
> >> --- a/README
> >> +++ b/README
> >> @@ -32,6 +32,7 @@ Status of supported boards:
> >> nanopi-r4s
> >> rock-5b
> >> nanopi-r2s
> >> + rock-3a
> >
> > There's still an issue with indents/tabs.
> >
> >> builds:
> >> marsboard-rk3066
> >> radxarock
> >> diff --git a/conf/machine/include/rk3568.inc b/conf/machine/include/rk3568.inc
> >> new file mode 100644
> >> index 0000000..5382b58
> >> --- /dev/null
> >> +++ b/conf/machine/include/rk3568.inc
> >> @@ -0,0 +1,17 @@
> >> +MACHINEOVERRIDES =. "rk3568:"
> >> +DEFAULTTUNE ?= "cortexa55"
> >> +
> >> +require conf/machine/include/arm/armv8-2a/tune-cortexa55.inc
> >> +require conf/machine/include/rockchip-defaults.inc
> >> +require conf/machine/include/rockchip-wic.inc
> >> +
> >> +KBUILD_DEFCONFIG ?= "defconfig"
> >> +KERNEL_FEATURES:append:rk3568 = " bsp/rockchip/remove-non-rockchip-arch-arm64.scc"
> >> +KERNEL_CLASSES ??= "kernel-fitimage"
> >> +KERNEL_IMAGETYPE ??= "fitImage"
> >> +
> >> +PREFERRED_PROVIDER_trusted-firmware-a = "rockchip-rkbin"
> >> +PREFERRED_PROVIDER_optee-os = "rockchip-rkbin"
> >> +
> >> +UBOOT_SUFFIX ?= "itb"
> >> +UBOOT_ENTRYPOINT ?= "0x06000000"
> >> diff --git a/conf/machine/rock-3a.conf b/conf/machine/rock-3a.conf
> >> new file mode 100644
> >> index 0000000..2ed83a3
> >> --- /dev/null
> >> +++ b/conf/machine/rock-3a.conf
> >> @@ -0,0 +1,12 @@
> >> +#@TYPE: Machine
> >> +#@NAME: Radxa Rock 3a
> >> +#@DESCRIPTION: ROCK3 is a series of Rockchip RK3566/RK3568 based
> >> +#SBC(Single Board Computer) and Compute Module by Radxa.
> >> +#https://wiki.radxa.com/Rock3
> >> +
> >> +require conf/machine/include/rk3568.inc
> >> +
> >> +KERNEL_DEVICETREE = "rockchip/rk3568-rock-3a.dtb"
> >> +MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
> >> +
> >> +UBOOT_MACHINE = "rock-3a-rk3568_defconfig"
> >> diff --git a/recipes-bsp/rkbin/rockchip-rkbin_git.bb b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> >> index 7fefb01..ad5593c 100644
> >> --- a/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> >> +++ b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> >> @@ -14,6 +14,7 @@ S = "${WORKDIR}/git"
> >>
> >> COMPATIBLE_MACHINE = ""
> >> COMPATIBLE_MACHINE:rk3588s = "rk3588s"
> >> +COMPATIBLE_MACHINE:rk3568 = "rk3568"
> >>
> >> PACKAGE_ARCH = "${MACHINE_ARCH}"
> >>
> >> @@ -25,7 +26,16 @@ do_install() {
> >> PACKAGES = "${PN}"
> >> ALLOW_EMPTY:${PN} = "1"
> >>
> >> -do_deploy() {
> >> +do_deploy:rk3568() {
> >> + # Prebuilt TF-A
> >> + install -m 644 ${S}/bin/rk35/rk3568_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3568.elf
> >> + # Prebuilt OPTEE-OS
> >> + install -m 644 ${S}/bin/rk35/rk3568_bl32_v*.bin ${DEPLOYDIR}/tee-rk3568.bin
> >> + # Prebuilt U-Boot TPL (DDR init)
> >> + install -m 644 ${S}/bin/rk35/rk3568_ddr_1560MHz_v1.18.bin ${DEPLOYDIR}/ddr-rk3568.bin
> >> +}
> >> +
> >> +do_deploy:rk3588s() {
> >> # Prebuilt TF-A
> >> install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3588.elf
> >> # Prebuilt OPTEE-OS
> >> @@ -34,4 +44,8 @@ do_deploy() {
> >> install -m 644 ${S}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v*.bin ${DEPLOYDIR}/ddr-rk3588.bin
> >> }
> >>
> >> +do_deploy() {
> >> + bbfatal "COMPATIBLE_MACHINE requires a corressponding do_deploy:<MACHINE>() override"
> >> +}
> >> +
> >
> > This is not related to adding support for rock3a.
> >
>
> In a way it is, but would benefit in being in a different commit I agree.
>
> So basically Anthony's issue (if I remember correctly) was that if
> you're not overriding the default do_deploy, the recipe will pass but
> install the wrong files with the wrong names, without telling you.
>
> So instead, the thought was to make do_deploy fail by default (with
> bbfatal) unless it is overridden (e.g. for rk3588s and rk3568) so that
> people adding support for new SoCs don't wonder what's missing.
>
> I could see a commit with a diff like:
> """
> -do_deploy() {
> +do_deploy:rk3588s() {
> # Prebuilt TF-A
> install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf
> ${DEPLOYDIR}/bl31-rk3588.elf
> # Prebuilt OPTEE-OS
> @@ -34,4 +44,8 @@ do_deploy() {
> install -m 644
> ${S}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v*.bin
> ${DEPLOYDIR}/ddr-rk3588.bin
> }
>
> +do_deploy() {
> + bbfatal "COMPATIBLE_MACHINE requires a corressponding
> do_deploy:<MACHINE>() override"
> +}
> +
> """
>
> with a proper explanation in the commit log, and then a commit that adds
> one for rk3568.
>
> Cheers,
> Quentin
>
> >> addtask deploy after do_install
> >> diff --git a/recipes-bsp/u-boot/u-boot%.bbappend b/recipes-bsp/u-boot/u-boot%.bbappend
> >> index e79c471..66c81da 100644
> >> --- a/recipes-bsp/u-boot/u-boot%.bbappend
> >> +++ b/recipes-bsp/u-boot/u-boot%.bbappend
> >> @@ -9,12 +9,17 @@ EXTRA_OEMAKE:append:rk3588s = " \
> >> BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3588.elf \
> >> ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3588.bin \
> >> "
> >> +EXTRA_OEMAKE:append:rk3568 = " \
> >> + BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3568.elf \
> >> + ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3568.bin \
> >> + "
> >>
> >> INIT_FIRMWARE_DEPENDS ??= ""
> >> INIT_FIRMWARE_DEPENDS:px30 = " trusted-firmware-a:do_deploy"
> >> INIT_FIRMWARE_DEPENDS:rk3328 = " trusted-firmware-a:do_deploy"
> >> INIT_FIRMWARE_DEPENDS:rk3399 = " trusted-firmware-a:do_deploy"
> >> INIT_FIRMWARE_DEPENDS:rk3588s = " rockchip-rkbin:do_deploy"
> >> +INIT_FIRMWARE_DEPENDS:rk3568 = " rockchip-rkbin:do_deploy"
> >> do_compile[depends] .= "${INIT_FIRMWARE_DEPENDS}"
> >>
> >> do_compile:append:rock2-square () {
> >> --
> >> 2.34.1
> >>
> >>
> >>
> >> -=-=-=-=-=-=-=-=-=-=-=-
> >> Links: You receive all messages sent to this group.
> >> View/Reply Online (#61481): https://lists.yoctoproject.org/g/yocto/message/61481
> >> Mute This Topic: https://lists.yoctoproject.org/mt/101992957/6293953
> >> Group Owner: yocto+owner@lists.yoctoproject.org
> >> Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [quentin.schulz@theobroma-systems.com]
> >> -=-=-=-=-=-=-=-=-=-=-=-
> >>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-rockchip] [PATCH v3] rock-3a add
2023-10-16 10:43 [meta-rockchip] [PATCH v3] rock-3a add anthony.t.davies
2023-10-25 13:56 ` Trevor Woerner
@ 2024-01-21 2:41 ` Trevor Woerner
1 sibling, 0 replies; 8+ messages in thread
From: Trevor Woerner @ 2024-01-21 2:41 UTC (permalink / raw)
To: anthony.t.davies; +Cc: yocto
On Mon 2023-10-16 @ 09:43:45 PM, anthony.t.davies@gmail.com wrote:
> From: Anthony Davies <anthony.t.davies@gmail.com>
>
> Add support for the Radxa Rock 3A
> https://wiki.radxa.com/Rock3/3a
>
> The TF-A project does not currently have support for
> the rk3568. Therefore, for the time-being, the only way to supply a
> TPL/DDR-init for the rk3568 is to use the closed-source rkbin binaries
> from Rockchip. If/when TF-A adds support for the rk3588 we can investigate
> switching.
>
> recipes-bsp/rkbin/rockchip-rkbin_git.bb was modified to allow a machine
> override to allow both rk3568 and rk3588s to use differnet binary blobs
>
> Signed-off-by: Anthony Davies <anthony.t.davies@gmail.com>
> ---
> README | 1 +
> conf/machine/include/rk3568.inc | 17 +++++++++++++++++
> conf/machine/rock-3a.conf | 12 ++++++++++++
> recipes-bsp/rkbin/rockchip-rkbin_git.bb | 16 +++++++++++++++-
> recipes-bsp/u-boot/u-boot%.bbappend | 5 +++++
> 5 files changed, 50 insertions(+), 1 deletion(-)
> create mode 100644 conf/machine/include/rk3568.inc
> create mode 100644 conf/machine/rock-3a.conf
Applied some form of this patch to meta-rockchip, master branch.
Thanks!
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2024-01-21 2:41 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-10-16 10:43 [meta-rockchip] [PATCH v3] rock-3a add anthony.t.davies
2023-10-25 13:56 ` Trevor Woerner
2023-10-25 14:22 ` [yocto] " Quentin Schulz
2023-10-25 14:42 ` Trevor Woerner
2023-10-25 15:49 ` Quentin Schulz
2023-10-25 16:20 ` Trevor Woerner
2023-10-26 4:17 ` Anthony Davies
2024-01-21 2:41 ` Trevor Woerner
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.