Message ID | 20230925162628.24482-1-twoerner@gmail.com |
---|---|
State | New |
Headers | show |
Series | [meta-rockchip,v3] rock-5b: add | expand |
Hi Trevor, On 9/25/23 18: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> > --- > v3: > - change name from "rock5b" to "rock-5b", there seem to be more instances > of the latter on the manufacturer's website than the former > - fix the MACHINEOVERRIDE in conf/machine/include/rk3588s.inc to be > "rk3588s" and not "rk3588" > > 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/rock-5b.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/rock-5b.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..d4576d73c636 100644 > --- a/README > +++ b/README > @@ -30,6 +30,7 @@ Status of supported boards: > vyasa-rk3288 > firefly-rk3288 > nanopi-r4s > + rock-5b > 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..7bfc9474e96e > --- /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:rk3588s = " 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-5b.conf b/conf/machine/rock-5b.conf > new file mode 100644 > index 000000000000..d1371084becc > --- /dev/null > +++ b/conf/machine/rock-5b.conf > @@ -0,0 +1,12 @@ > +#@TYPE: Machine > +#@NAME: Radxa Rock 5B > +#@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" > + Now to come to think of it... I don't think ATF_DEPENDS is the right name for this variable, because TPL doesn't come from TF-A/ATF. But the end result is the expected one, so up to you. Thanks! Reviewed-by: Quentin Schulz <quentin.schulz@theobroma-systems.com> Would you be open to backporting this to other branches (e.g. kirkstone :) ) ? Cheers, Quentin > 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..419ebc18b229 > --- /dev/null > +++ b/recipes-kernel/linux/linux-yocto-dev.bbappend > @@ -0,0 +1,3 @@ > +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" > +COMPATIBLE_MACHINE:rock-5b = "rock-5b" > +SRC_URI:append:rock-5b = " 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
diff --git a/README b/README index 286dafbe1020..d4576d73c636 100644 --- a/README +++ b/README @@ -30,6 +30,7 @@ Status of supported boards: vyasa-rk3288 firefly-rk3288 nanopi-r4s + rock-5b 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..7bfc9474e96e --- /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:rk3588s = " 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-5b.conf b/conf/machine/rock-5b.conf new file mode 100644 index 000000000000..d1371084becc --- /dev/null +++ b/conf/machine/rock-5b.conf @@ -0,0 +1,12 @@ +#@TYPE: Machine +#@NAME: Radxa Rock 5B +#@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..419ebc18b229 --- /dev/null +++ b/recipes-kernel/linux/linux-yocto-dev.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" +COMPATIBLE_MACHINE:rock-5b = "rock-5b" +SRC_URI:append:rock-5b = " 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