From: Trevor Woerner <twoerner@gmail.com>
To: Quentin Schulz <quentin.schulz@theobroma-systems.com>
Cc: yocto@lists.yoctoproject.org
Subject: Re: [meta-rockchip][PATCH v2] rock5b: add
Date: Mon, 25 Sep 2023 10:24:00 -0400 [thread overview]
Message-ID: <20230925142400.GB37849@localhost> (raw)
In-Reply-To: <e11a7d2e-ed60-87e7-8734-61ae1bcb4ee3@theobroma-systems.com>
On Mon 2023-09-25 @ 03:36:06 PM, Quentin Schulz wrote:
> Hi Trevor,
>
> On 9/22/23 23:26, Trevor Woerner wrote:
> > Add support for the Radxa Rock 5B
> > https://wiki.radxa.com/Rock5/5b
> >
> > The device-tree for this board is better in the 6.5 (and later) kernels,
> > therefore set the kernel to linux-yocto-dev for now (eventually this won't be
> > needed as linux-yocto moves forward).
> >
> > Unfortunately the TF-A project does not currently have support for
> > the rk3588. Therefore, for the time-being, the only way to supply a
> > TPL/DDR-init for the rk3588 is to use the closed-source rkbin binaries
> > from Rockchip. If/when TF-A adds support for the rk3588 we can investigate
> > switching.
> >
> > The rk3588 comes in two variants: rk3588 and rk3588s. The "s" option is a
> > stripped-down version of the rk3588. In the Linux kernel these two SoCs are
> > kept separate, with the rk3588 building on the rk3588s, so we've mimicked that
> > same behaviour here.
> >
> > Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
> > Signed-off-by: Trevor Woerner <twoerner@gmail.com>
> > ---
> > v2:
> > - fix the logic behind the MACHINEOVERRIDES to get the content, and
> > ordering, correct
> > - improved the commit message around TF-A/rkbin
> > - correct Quentin's SoB line
> > ---
> > README | 1 +
> > conf/machine/include/rk3588.inc | 6 ++
> > conf/machine/include/rk3588s.inc | 17 ++++
> > conf/machine/rock5b.conf | 12 +++
> > recipes-bsp/rkbin/rockchip-rkbin_git.bb | 37 ++++++++
> > recipes-bsp/u-boot/u-boot%.bbappend | 5 ++
> > recipes-kernel/linux/linux-yocto-dev.bbappend | 3 +
> > .../rockchip/remove-non-rockchip-arch-arm.cfg | 85 +++++++++++++++++++
> > .../rockchip/remove-non-rockchip-arch-arm.scc | 1 +
> > .../remove-non-rockchip-arch-arm64.cfg | 66 ++++++++++++++
> > .../remove-non-rockchip-arch-arm64.scc | 1 +
> > 11 files changed, 234 insertions(+)
> > create mode 100644 conf/machine/include/rk3588.inc
> > create mode 100644 conf/machine/include/rk3588s.inc
> > create mode 100644 conf/machine/rock5b.conf
> > create mode 100644 recipes-bsp/rkbin/rockchip-rkbin_git.bb
> > create mode 100644 recipes-kernel/linux/linux-yocto-dev.bbappend
> > create mode 100644 recipes-kernel/linux/linux-yocto-dev/rockchip-kmeta/bsp/rockchip/remove-non-rockchip-arch-arm.cfg
> > create mode 100644 recipes-kernel/linux/linux-yocto-dev/rockchip-kmeta/bsp/rockchip/remove-non-rockchip-arch-arm.scc
> > create mode 100644 recipes-kernel/linux/linux-yocto-dev/rockchip-kmeta/bsp/rockchip/remove-non-rockchip-arch-arm64.cfg
> > create mode 100644 recipes-kernel/linux/linux-yocto-dev/rockchip-kmeta/bsp/rockchip/remove-non-rockchip-arch-arm64.scc
> >
> > diff --git a/README b/README
> > index 286dafbe1020..032d9bbb6b34 100644
> > --- a/README
> > +++ b/README
> > @@ -30,6 +30,7 @@ Status of supported boards:
> > vyasa-rk3288
> > firefly-rk3288
> > nanopi-r4s
> > + rock5b
> > builds:
> > marsboard-rk3066
> > radxarock
> > diff --git a/conf/machine/include/rk3588.inc b/conf/machine/include/rk3588.inc
> > new file mode 100644
> > index 000000000000..34f0627dc085
> > --- /dev/null
> > +++ b/conf/machine/include/rk3588.inc
> > @@ -0,0 +1,6 @@
> > +MACHINEOVERRIDES =. "rk3588:"
> > +
> > +# the rk3588s is a "stripped-down" version of the rk3588
> > +# in the kernel's device-tree the rk3588 builds on top of the rk3588s
> > +# so anything that is valid for the rk3588s is valid for the rk3588
> > +require conf/machine/include/rk3588s.inc
> > diff --git a/conf/machine/include/rk3588s.inc b/conf/machine/include/rk3588s.inc
> > new file mode 100644
> > index 000000000000..65d9054e88d8
> > --- /dev/null
> > +++ b/conf/machine/include/rk3588s.inc
> > @@ -0,0 +1,17 @@
> > +MACHINEOVERRIDES =. "rk3588s:"
> > +DEFAULTTUNE ?= "cortexa76-cortexa55-crypto"
> > +
> > +require conf/machine/include/arm/armv8-2a/tune-cortexa76-cortexa55.inc
> > +require conf/machine/include/rockchip-defaults.inc
> > +require conf/machine/include/rockchip-wic.inc
> > +
> > +KBUILD_DEFCONFIG ?= "defconfig"
> > +KERNEL_FEATURES:append:rk3588 = " bsp/rockchip/remove-non-rockchip-arch-arm64.scc"
>
> I believe this is supposed to be an OVERRIDES for rk3588s and not rk3588
> since it applies to both (in addition of being in the rk3588s.inc file).
Great catch!
>
> The rest looks fine otherwise :)
Thanks :-)
>
> Thanks!
>
> Cheers,
> Quentin
>
> > +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/rock5b.conf b/conf/machine/rock5b.conf
> > new file mode 100644
> > index 000000000000..dc31a9f3a4e4
> > --- /dev/null
> > +++ b/conf/machine/rock5b.conf
> > @@ -0,0 +1,12 @@
> > +#@TYPE: Machine
> > +#@NAME: Radxa Rock5b
> > +#@DESCRIPTION: ROCK5 is the 5th generation of SBC designed by Radxa.
> > +#https://wiki.radxa.com/Rock5/5b
> > +
> > +require conf/machine/include/rk3588.inc
> > +
> > +PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-dev"
> > +KERNEL_DEVICETREE = "rockchip/rk3588-rock-5b.dtb"
> > +MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
> > +
> > +UBOOT_MACHINE = "rock5b-rk3588_defconfig"
> > diff --git a/recipes-bsp/rkbin/rockchip-rkbin_git.bb b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> > new file mode 100644
> > index 000000000000..7fefb017053b
> > --- /dev/null
> > +++ b/recipes-bsp/rkbin/rockchip-rkbin_git.bb
> > @@ -0,0 +1,37 @@
> > +DESCRIPTION = "Rockchip Firmware and Tool Binaries"
> > +LICENSE = "Proprietary"
> > +LIC_FILES_CHKSUM = "file://LICENSE;md5=15faa4a01e7eb0f5d33f9f2bcc7bff62"
> > +
> > +SRC_URI = "git://github.com/rockchip-linux/rkbin;protocol=https;branch=master"
> > +SRCREV = "b4558da0860ca48bf1a571dd33ccba580b9abe23"
> > +
> > +PROVIDES += "trusted-firmware-a"
> > +PROVIDES += "optee-os"
> > +
> > +inherit bin_package deploy
> > +
> > +S = "${WORKDIR}/git"
> > +
> > +COMPATIBLE_MACHINE = ""
> > +COMPATIBLE_MACHINE:rk3588s = "rk3588s"
> > +
> > +PACKAGE_ARCH = "${MACHINE_ARCH}"
> > +
> > +do_install() {
> > + # Nothing in this recipe is useful in a filesystem
> > + :
> > +}
> > +
> > +PACKAGES = "${PN}"
> > +ALLOW_EMPTY:${PN} = "1"
> > +
> > +do_deploy() {
> > + # Prebuilt TF-A
> > + install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3588.elf
> > + # Prebuilt OPTEE-OS
> > + install -m 644 ${S}/bin/rk35/rk3588_bl32_v*.bin ${DEPLOYDIR}/tee-rk3588.bin
> > + # Prebuilt U-Boot TPL (DDR init)
> > + install -m 644 ${S}/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v*.bin ${DEPLOYDIR}/ddr-rk3588.bin
> > +}
> > +
> > +addtask deploy after do_install
> > diff --git a/recipes-bsp/u-boot/u-boot%.bbappend b/recipes-bsp/u-boot/u-boot%.bbappend
> > index db8e0166f5b3..3732c7f04373 100644
> > --- a/recipes-bsp/u-boot/u-boot%.bbappend
> > +++ b/recipes-bsp/u-boot/u-boot%.bbappend
> > @@ -11,6 +11,11 @@ DEPENDS:append = " python3-pyelftools-native"
> > ATF_DEPENDS ??= ""
> > +EXTRA_OEMAKE:append:rk3588s = " BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3588.elf"
> > +ATF_DEPENDS:append:rk3588s = " trusted-firmware-a:do_deploy"
> > +EXTRA_OEMAKE:append:rk3588s = " ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3588.bin"
> > +ATF_DEPENDS:append:rk3588s = " rockchip-rkbin:do_deploy"
> > +
> > EXTRA_OEMAKE:append:rk3399 = " BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3399.elf"
> > ATF_DEPENDS:rk3399 = " trusted-firmware-a:do_deploy"
> > EXTRA_OEMAKE:append:rk3328 = " BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3328.elf"
> > diff --git a/recipes-kernel/linux/linux-yocto-dev.bbappend b/recipes-kernel/linux/linux-yocto-dev.bbappend
> > new file mode 100644
> > index 000000000000..cda5c520c4fe
> > --- /dev/null
> > +++ b/recipes-kernel/linux/linux-yocto-dev.bbappend
> > @@ -0,0 +1,3 @@
> > +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
> > +COMPATIBLE_MACHINE:rock5b = "rock5b"
> > +SRC_URI:append:rock5b = " file://rockchip-kmeta;type=kmeta;name=rockchip-kmeta;destsuffix=rockchip-kmeta"
> > diff --git a/recipes-kernel/linux/linux-yocto-dev/rockchip-kmeta/bsp/rockchip/remove-non-rockchip-arch-arm.cfg b/recipes-kernel/linux/linux-yocto-dev/rockchip-kmeta/bsp/rockchip/remove-non-rockchip-arch-arm.cfg
> > new file mode 100644
> > index 000000000000..e9443f17895c
> > --- /dev/null
> > +++ b/recipes-kernel/linux/linux-yocto-dev/rockchip-kmeta/bsp/rockchip/remove-non-rockchip-arch-arm.cfg
> > @@ -0,0 +1,85 @@
> > +CONFIG_ARCH_ACTIONS=n
> > +CONFIG_ARCH_AIROHA=n
> > +CONFIG_ARCH_ALPINE=n
> > +CONFIG_ARCH_ARTPEC=n
> > +CONFIG_ARCH_ASPEED=n
> > +CONFIG_ARCH_AT91=n
> > +CONFIG_ARCH_BCM2835=n
> > +CONFIG_ARCH_BCM=n
> > +CONFIG_ARCH_BCMBCA=n
> > +CONFIG_ARCH_BCMBCA_BRAHMAB15=n
> > +CONFIG_ARCH_BCMBCA_CORTEXA7=n
> > +CONFIG_ARCH_BCMBCA_CORTEXA9=n
> > +CONFIG_ARCH_BCM_21664=n
> > +CONFIG_ARCH_BCM_23550=n
> > +CONFIG_ARCH_BCM_281XX=n
> > +CONFIG_ARCH_BCM_5301X=n
> > +CONFIG_ARCH_BCM_53573=n
> > +CONFIG_ARCH_BCM_CYGNUS=n
> > +CONFIG_ARCH_BCM_HR2=n
> > +CONFIG_ARCH_BCM_NSP=n
> > +CONFIG_ARCH_BERLIN=n
> > +CONFIG_ARCH_BRCMSTB=n
> > +CONFIG_ARCH_DIGICOLOR=n
> > +CONFIG_ARCH_EMEV2=n
> > +CONFIG_ARCH_EXYNOS=n
> > +CONFIG_ARCH_HI3xxx=n
> > +CONFIG_ARCH_HIGHBANK=n
> > +CONFIG_ARCH_HIP01=n
> > +CONFIG_ARCH_HIP04=n
> > +CONFIG_ARCH_HISI=n
> > +CONFIG_ARCH_HIX5HD2=n
> > +CONFIG_ARCH_HPE=n
> > +CONFIG_ARCH_HPE_GXP=n
> > +CONFIG_ARCH_INTEL_SOCFPGA=n
> > +CONFIG_ARCH_KEYSTONE=n
> > +CONFIG_ARCH_MEDIATEK=n
> > +CONFIG_ARCH_MESON=n
> > +CONFIG_ARCH_MILBEAUT=n
> > +CONFIG_ARCH_MILBEAUT_M10V=n
> > +CONFIG_ARCH_MMP=n
> > +CONFIG_ARCH_MSM8916=n
> > +CONFIG_ARCH_MSM8960=n
> > +CONFIG_ARCH_MSM8974=n
> > +CONFIG_ARCH_MSM8X60=n
> > +CONFIG_ARCH_MVEBU=n
> > +CONFIG_ARCH_MXC=n
> > +CONFIG_ARCH_OMAP3=n
> > +CONFIG_ARCH_OMAP4=n
> > +CONFIG_ARCH_QCOM=n
> > +CONFIG_ARCH_R7S72100=n
> > +CONFIG_ARCH_R7S9210=n
> > +CONFIG_ARCH_R8A73A4=n
> > +CONFIG_ARCH_R8A7740=n
> > +CONFIG_ARCH_R8A7742=n
> > +CONFIG_ARCH_R8A7743=n
> > +CONFIG_ARCH_R8A7744=n
> > +CONFIG_ARCH_R8A7745=n
> > +CONFIG_ARCH_R8A77470=n
> > +CONFIG_ARCH_R8A7778=n
> > +CONFIG_ARCH_R8A7779=n
> > +CONFIG_ARCH_R8A7790=n
> > +CONFIG_ARCH_R8A7791=n
> > +CONFIG_ARCH_R8A7792=n
> > +CONFIG_ARCH_R8A7793=n
> > +CONFIG_ARCH_R8A7794=n
> > +CONFIG_ARCH_R9A06G032=n
> > +CONFIG_ARCH_RENESAS=n
> > +CONFIG_ARCH_SH73A0=n
> > +CONFIG_ARCH_SPEAR13XX=n
> > +CONFIG_ARCH_STI=n
> > +CONFIG_ARCH_STM32=n
> > +CONFIG_ARCH_SUNPLUS=n
> > +CONFIG_ARCH_SUNXI=n
> > +CONFIG_ARCH_TEGRA=n
> > +CONFIG_ARCH_TEGRA_114_SOC=n
> > +CONFIG_ARCH_TEGRA_124_SOC=n
> > +CONFIG_ARCH_TEGRA_2x_SOC=n
> > +CONFIG_ARCH_TEGRA_3x_SOC=n
> > +CONFIG_ARCH_U8500=n
> > +CONFIG_ARCH_UNIPHIER=n
> > +CONFIG_ARCH_VEXPRESS=n
> > +CONFIG_ARCH_VEXPRESS_TC2_PM=n
> > +CONFIG_ARCH_VIRT=n
> > +CONFIG_ARCH_WM8850=n
> > +CONFIG_ARCH_ZYNQ=n
> > diff --git a/recipes-kernel/linux/linux-yocto-dev/rockchip-kmeta/bsp/rockchip/remove-non-rockchip-arch-arm.scc b/recipes-kernel/linux/linux-yocto-dev/rockchip-kmeta/bsp/rockchip/remove-non-rockchip-arch-arm.scc
> > new file mode 100644
> > index 000000000000..ce7770456ea4
> > --- /dev/null
> > +++ b/recipes-kernel/linux/linux-yocto-dev/rockchip-kmeta/bsp/rockchip/remove-non-rockchip-arch-arm.scc
> > @@ -0,0 +1 @@
> > +kconf hardware remove-non-rockchip-arch-arm.cfg
> > diff --git a/recipes-kernel/linux/linux-yocto-dev/rockchip-kmeta/bsp/rockchip/remove-non-rockchip-arch-arm64.cfg b/recipes-kernel/linux/linux-yocto-dev/rockchip-kmeta/bsp/rockchip/remove-non-rockchip-arch-arm64.cfg
> > new file mode 100644
> > index 000000000000..5b804a2ca26b
> > --- /dev/null
> > +++ b/recipes-kernel/linux/linux-yocto-dev/rockchip-kmeta/bsp/rockchip/remove-non-rockchip-arch-arm64.cfg
> > @@ -0,0 +1,66 @@
> > +CONFIG_ARCH_ACTIONS=n
> > +CONFIG_ARCH_ALPINE=n
> > +CONFIG_ARCH_APPLE=n
> > +CONFIG_ARCH_BCM2835=n
> > +CONFIG_ARCH_BCM=n
> > +CONFIG_ARCH_BCMBCA=n
> > +CONFIG_ARCH_BCM_IPROC=n
> > +CONFIG_ARCH_BERLIN=n
> > +CONFIG_ARCH_BRCMSTB=n
> > +CONFIG_ARCH_EXYNOS=n
> > +CONFIG_ARCH_SPARX5=n
> > +CONFIG_ARCH_HISI=n
> > +CONFIG_ARCH_INTEL_SOCFPGA=n
> > +CONFIG_ARCH_K3=n
> > +CONFIG_ARCH_KEEMBAY=n
> > +CONFIG_ARCH_LAYERSCAPE=n
> > +CONFIG_ARCH_LG1K=n
> > +CONFIG_ARCH_MEDIATEK=n
> > +CONFIG_ARCH_MESON=n
> > +CONFIG_ARCH_MVEBU=n
> > +CONFIG_ARCH_MXC=n
> > +CONFIG_ARCH_NPCM=n
> > +CONFIG_ARCH_NXP=n
> > +CONFIG_ARCH_MA35=n
> > +CONFIG_ARCH_QCOM=n
> > +CONFIG_ARCH_REALTEK=n
> > +CONFIG_ARCH_R8A774A1=n
> > +CONFIG_ARCH_R8A774B1=n
> > +CONFIG_ARCH_R8A774C0=n
> > +CONFIG_ARCH_R8A774E1=n
> > +CONFIG_ARCH_R8A77951=n
> > +CONFIG_ARCH_R8A77960=n
> > +CONFIG_ARCH_R8A77961=n
> > +CONFIG_ARCH_R8A77965=n
> > +CONFIG_ARCH_R8A77970=n
> > +CONFIG_ARCH_R8A77980=n
> > +CONFIG_ARCH_R8A77990=n
> > +CONFIG_ARCH_R8A77995=n
> > +CONFIG_ARCH_R8A779A0=n
> > +CONFIG_ARCH_R8A779F0=n
> > +CONFIG_ARCH_R8A779G0=n
> > +CONFIG_ARCH_R9A07G043=n
> > +CONFIG_ARCH_R9A07G044=n
> > +CONFIG_ARCH_R9A07G054=n
> > +CONFIG_ARCH_R9A09G011=n
> > +CONFIG_ARCH_RENESAS=n
> > +CONFIG_ARCH_S32=n
> > +CONFIG_ARCH_SEATTLE=n
> > +CONFIG_ARCH_STM32=n
> > +CONFIG_ARCH_SPRD=n
> > +CONFIG_ARCH_SUNXI=n
> > +CONFIG_ARCH_SYNQUACER=n
> > +CONFIG_ARCH_TEGRA=n
> > +CONFIG_ARCH_TEGRA_132_SOC=n
> > +CONFIG_ARCH_TEGRA_186_SOC=n
> > +CONFIG_ARCH_TEGRA_194_SOC=n
> > +CONFIG_ARCH_TEGRA_210_SOC=n
> > +CONFIG_ARCH_TEGRA_234_SOC=n
> > +CONFIG_ARCH_TESLA_FSD=n
> > +CONFIG_ARCH_THUNDER2=n
> > +CONFIG_ARCH_THUNDER=n
> > +CONFIG_ARCH_UNIPHIER=n
> > +CONFIG_ARCH_VEXPRESS=n
> > +CONFIG_ARCH_VISCONTI=n
> > +CONFIG_ARCH_XGENE=n
> > +CONFIG_ARCH_ZYNQMP=n
> > diff --git a/recipes-kernel/linux/linux-yocto-dev/rockchip-kmeta/bsp/rockchip/remove-non-rockchip-arch-arm64.scc b/recipes-kernel/linux/linux-yocto-dev/rockchip-kmeta/bsp/rockchip/remove-non-rockchip-arch-arm64.scc
> > new file mode 100644
> > index 000000000000..e169240f5067
> > --- /dev/null
> > +++ b/recipes-kernel/linux/linux-yocto-dev/rockchip-kmeta/bsp/rockchip/remove-non-rockchip-arch-arm64.scc
> > @@ -0,0 +1 @@
> > +kconf hardware remove-non-rockchip-arch-arm64.cfg
prev parent reply other threads:[~2023-09-25 14:24 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-22 21:26 [meta-rockchip][PATCH v2] rock5b: add Trevor Woerner
2023-09-25 0:10 ` Anthony Davies
2023-09-25 14:22 ` [yocto] " Trevor Woerner
2023-09-25 13:36 ` Quentin Schulz
2023-09-25 14:24 ` Trevor Woerner [this message]
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=20230925142400.GB37849@localhost \
--to=twoerner@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox