rock-5b: add

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>
This commit is contained in:
Trevor Woerner 2023-09-19 10:25:36 -04:00
parent 4e9d72d659
commit f8af59dd7c
11 changed files with 235 additions and 0 deletions

1
README
View File

@ -30,6 +30,7 @@ Status of supported boards:
vyasa-rk3288
firefly-rk3288
nanopi-r4s
rock-5b
builds:
marsboard-rk3066
radxarock

View File

@ -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

View File

@ -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"

12
conf/machine/rock-5b.conf Normal file
View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -0,0 +1 @@
kconf hardware remove-non-rockchip-arch-arm.cfg

View File

@ -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

View File

@ -0,0 +1 @@
kconf hardware remove-non-rockchip-arch-arm64.cfg