All of lore.kernel.org
 help / color / mirror / Atom feed
From: Trevor Woerner <twoerner@gmail.com>
To: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Cc: anthony.t.davies@gmail.com, yocto@lists.yoctoproject.org
Subject: Re: [yocto] [meta-rockchip] [PATCH v3] rock-3a add
Date: Wed, 25 Oct 2023 10:42:58 -0400	[thread overview]
Message-ID: <20231025144258.GA14018@localhost> (raw)
In-Reply-To: <3d69f40b-e05d-4d2b-a68d-da2abfa462c8@theobroma-systems.com>

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]
> > > -=-=-=-=-=-=-=-=-=-=-=-
> > > 


  reply	other threads:[~2023-10-25 14:43 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231025144258.GA14018@localhost \
    --to=twoerner@gmail.com \
    --cc=anthony.t.davies@gmail.com \
    --cc=quentin.schulz@theobroma-systems.com \
    --cc=yocto@lists.yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.