Skip to content

Commit

Permalink
rock5b: add
Browse files Browse the repository at this point in the history
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).

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
  • Loading branch information
twoerner committed Sep 20, 2023
1 parent dd1fc4a commit 8da8f66
Show file tree
Hide file tree
Showing 11 changed files with 235 additions and 0 deletions.
1 change: 1 addition & 0 deletions README
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ Status of supported boards:
tinker-board-s
vyasa-rk3288
firefly-rk3288
rock5b
builds:
marsboard-rk3066
radxarock
Expand Down
3 changes: 3 additions & 0 deletions conf/machine/include/rk3588.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SOC_FAMILY = "rk3588"

This comment has been minimized.

Copy link
@QSchulz

QSchulz Sep 21, 2023

question: identical to rk3588s's

both rk3588s and rk3588 have SOC_FAMILY set to rk3588, is this on purpose or a typo?

This comment has been minimized.

Copy link
@twoerner

twoerner Sep 21, 2023

Author Owner

oops! typo. i was trying to incorporate your rk3588/rk3588s things and missed.
good catch

MACHINEOVERRIDES =. "rk3588s:"
require conf/machine/include/rk3588s.inc
19 changes: 19 additions & 0 deletions conf/machine/include/rk3588s.inc
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
SOC_FAMILY = "rk3588"

DEFAULTTUNE ?= "cortexa76-cortexa55-crypto"

require conf/machine/include/soc-family.inc
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"
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"
14 changes: 14 additions & 0 deletions conf/machine/rock5b.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#@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

MACHINEOVERRIDES =. "rock5b:"

This comment has been minimized.

Copy link
@QSchulz

QSchulz Sep 21, 2023

issue: unnecessary

MACHINEOVERRIDES already contain MACHINE in it, which is the filename so this isn't required.

This comment has been minimized.

Copy link
@twoerner

twoerner Sep 21, 2023

Author Owner

i probably just copy&paste'd that from others i was looking at. i'll fix this here, then create a new patch (outside this series) to fix up the others too. thanks!


PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-dev"
KERNEL_DEVICETREE = "rockchip/rk3588-rock-5b.dtb"
MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"

UBOOT_MACHINE = "rock5b-rk3588_defconfig"
37 changes: 37 additions & 0 deletions recipes-bsp/rkbin/rockchip-rkbin_git.bb
Original file line number Diff line number Diff line change
@@ -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:rk3588 = "rk3588"

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
5 changes: 5 additions & 0 deletions recipes-bsp/u-boot/u-boot%.bbappend
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@ DEPENDS:append = " python3-pyelftools-native"

ATF_DEPENDS ??= ""

EXTRA_OEMAKE:append:rk3588 = " BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3588.elf"
ATF_DEPENDS:rk3588 = " trusted-firmware-a:do_deploy"

This comment has been minimized.

Copy link
@QSchulz

QSchulz Sep 21, 2023

issue: broken logic

ATF_DEPENDS is then overridden two lines down instead of appending so this line is lost, we should use :append or += with it.

This comment has been minimized.

Copy link
@twoerner

twoerner Sep 21, 2023

Author Owner

huh!! that was a copy&paste from the stanza below. i'll have to add a new patch (outside this series) to fix that up as well. thanks! nice catch :-)

This comment has been minimized.

Copy link
@twoerner

twoerner Sep 21, 2023

Author Owner

oh wait... the rk3588 one needs the logic fixed, but the remainder are okay

EXTRA_OEMAKE:append:rk3588 = " ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3588.bin"
ATF_DEPENDS:rk3588 = " 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"
Expand Down
3 changes: 3 additions & 0 deletions recipes-kernel/linux/linux-yocto-dev.bbappend
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"

This comment has been minimized.

Copy link
@QSchulz

QSchulz Sep 21, 2023

question: what about reusing the kmeta files you have for linux-yocto?

Could they be shared? If so, then using linux-yocto instead of ${PN} would probably help with that (or maybe rename to files if you prefer?)

This comment has been minimized.

Copy link
@twoerner

twoerner Sep 21, 2023

Author Owner

the list of config options is different for different versions of the kernel, so it's easier if they're separate.
in theory i could create one big list, but in the future patches for different versions will probably be different.
in other words, although they're very close to being the same now, they might diverge later, so i'd prefer to start with different directories now

COMPATIBLE_MACHINE:rock5b = "rock5b"
SRC_URI:append:rock5b = " file://rockchip-kmeta;type=kmeta;name=rockchip-kmeta;destsuffix=rockchip-kmeta"
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
kconf hardware remove-non-rockchip-arch-arm.cfg
Original file line number Diff line number Diff line change
@@ -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
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
kconf hardware remove-non-rockchip-arch-arm64.cfg

0 comments on commit 8da8f66

Please sign in to comment.