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.sch...@theobroma-systems.com>
> > Signed-off-by: Trevor Woerner <twoer...@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
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#61101): https://lists.yoctoproject.org/g/yocto/message/61101
Mute This Topic: https://lists.yoctoproject.org/mt/101530319/21656
Group Owner: yocto+ow...@lists.yoctoproject.org
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to