Message ID | 20230927024220.17766-3-twoerner@gmail.com |
---|---|
State | New |
Headers | show |
Series | rock-5b: add | expand |
Hi Trevor, On 9/27/23 04:42, Trevor Woerner wrote: [...] > 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 050f55e124d4..f7800625aaf1 100644 > --- a/recipes-bsp/u-boot/u-boot%.bbappend > +++ b/recipes-bsp/u-boot/u-boot%.bbappend > @@ -11,6 +11,12 @@ DEPENDS:append = " python3-pyelftools-native" > > INIT_FIRMWARE_DEPENDS ??= "" > > +EXTRA_OEMAKE:append:rk3588s = " \ > + BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3588.elf \ > + ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3588.bin \ > + " > +INIT_FIRMWARE_DEPENDS:rk3588s = " rockchip-rkbin:do_deploy" > + Mmmmmm thinking about this... I think we'll have a difficult time allowing rkbin for ddr.bin and upstream trusted-firmware-a from another recipe for bl31.elf because both would be installing the same bl31 file in the deploy directory. I guess we can postpone this problem until we have to handle it though because nothing comes to mind on how to handle this properly right now. Cheers, Quentin
Hi Quentin, On Wed 2023-09-27 @ 09:59:57 AM, Quentin Schulz wrote: > Hi Trevor, > > On 9/27/23 04:42, Trevor Woerner wrote: > [...] > > 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 050f55e124d4..f7800625aaf1 100644 > > --- a/recipes-bsp/u-boot/u-boot%.bbappend > > +++ b/recipes-bsp/u-boot/u-boot%.bbappend > > @@ -11,6 +11,12 @@ DEPENDS:append = " python3-pyelftools-native" > > INIT_FIRMWARE_DEPENDS ??= "" > > +EXTRA_OEMAKE:append:rk3588s = " \ > > + BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3588.elf \ > > + ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3588.bin \ > > + " > > +INIT_FIRMWARE_DEPENDS:rk3588s = " rockchip-rkbin:do_deploy" > > + > > Mmmmmm thinking about this... I think we'll have a difficult time allowing > rkbin for ddr.bin and upstream trusted-firmware-a from another recipe for > bl31.elf because both would be installing the same bl31 file in the deploy > directory. I guess we can postpone this problem until we have to handle it > though because nothing comes to mind on how to handle this properly right > now. If/when that time comes, we could tweak the do_install()s of rockchip-rkbin and/or tf-a to install or not install various pieces as required by the specific case. Thanks for reviewing!
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 050f55e124d4..f7800625aaf1 100644 --- a/recipes-bsp/u-boot/u-boot%.bbappend +++ b/recipes-bsp/u-boot/u-boot%.bbappend @@ -11,6 +11,12 @@ DEPENDS:append = " python3-pyelftools-native" INIT_FIRMWARE_DEPENDS ??= "" +EXTRA_OEMAKE:append:rk3588s = " \ + BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3588.elf \ + ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3588.bin \ + " +INIT_FIRMWARE_DEPENDS:rk3588s = " rockchip-rkbin:do_deploy" + EXTRA_OEMAKE:append:rk3399 = " BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3399.elf" INIT_FIRMWARE_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