rock-3a: add

The ROCK 3A has an rpi form factor and features:
- 4x Cortex-A55 ARM processor
- Mali G52 GPU
- 0.8TOPS NPU
- 32bit 3200Mb/s LPDDR4, up to 4K@60
- HDMI, MIPI DSI, MIPI CSI
- 3.5mm jack with mic
- USB Port
- GbE LAN
- PCIe 3.0, PCIe 2.0
- 40-pin color expansion header
- RTC
- supports USB PD and QC powering

https://wiki.radxa.com/Rock3/3a

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Anthony Davies <anthony.t.davies@gmail.com>
This commit is contained in:
Trevor Woerner 2024-01-20 12:01:48 -05:00
parent 959ba6dc52
commit 3620d858ab
6 changed files with 47 additions and 0 deletions

1
README
View File

@ -38,6 +38,7 @@ Status of supported boards:
roc-rk3328-cc
roc-rk3308-cc
orangepi-5-plus
rock-3a
builds:
marsboard-rk3066
radxarock

View File

@ -0,0 +1,19 @@
SOC_FAMILY = "rk3568"
DEFAULTTUNE ?= "cortexa55"
require conf/machine/include/soc-family.inc
require conf/machine/include/arm/armv8-2a/tune-cortexa55.inc
require conf/machine/include/rockchip-defaults.inc
require conf/machine/include/rockchip-wic.inc
KBUILD_DEFCONFIG ?= "defconfig"
KERNEL_FEATURES:append:rk3568 = " 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"

11
conf/machine/rock-3a.conf Normal file
View File

@ -0,0 +1,11 @@
#@TYPE: Machine
#@NAME: Radxa Rock 3a
#@DESCRIPTION: ROCK3 is a series of Rockchip RK3566/RK3568 based SBC(Single Board Computer) and Compute Module by Radxa.
#https://wiki.radxa.com/Rock3/3a
require conf/machine/include/rk3568.inc
KERNEL_DEVICETREE = "rockchip/rk3568-rock-3a.dtb"
MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
UBOOT_MACHINE = "rock-3a-rk3568_defconfig"

View File

@ -14,6 +14,7 @@ S = "${WORKDIR}/git"
COMPATIBLE_MACHINE = "^$"
COMPATIBLE_MACHINE:rk3308 = "rk3308"
COMPATIBLE_MACHINE:rk3568 = "rk3568"
COMPATIBLE_MACHINE:rk3588s = "rk3588s"
PACKAGE_ARCH = "${MACHINE_ARCH}"
@ -35,6 +36,15 @@ do_deploy:rk3308() {
install -m 644 ${S}/bin/rk33/rk3308_ddr_589MHz_uart?_m0_v*.bin ${DEPLOYDIR}/ddr-rk3308.bin
}
do_deploy:rk3568() {
# Prebuilt TF-A
install -m 644 ${S}/bin/rk35/rk3568_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3568.elf
# Prebuilt OPTEE-OS
install -m 644 ${S}/bin/rk35/rk3568_bl32_v*.bin ${DEPLOYDIR}/tee-rk3568.bin
# Prebuilt U-Boot TPL (DDR init)
install -m 644 ${S}/bin/rk35/rk3568_ddr_1560MHz_v1.18.bin ${DEPLOYDIR}/ddr-rk3568.bin
}
do_deploy:rk3588s() {
# Prebuilt TF-A
install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3588.elf

View File

@ -16,6 +16,10 @@ EXTRA_OEMAKE:append:rk3308 = " \
"
EXTRA_OEMAKE:append:rk3328 = " BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3328.elf"
EXTRA_OEMAKE:append:rk3399 = " BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3399.elf"
EXTRA_OEMAKE:append:rk3568 = " \
BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3568.elf \
ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3568.bin \
"
EXTRA_OEMAKE:append:rk3588s = " \
BL31=${DEPLOY_DIR_IMAGE}/bl31-rk3588.elf \
ROCKCHIP_TPL=${DEPLOY_DIR_IMAGE}/ddr-rk3588.bin \
@ -26,6 +30,7 @@ INIT_FIRMWARE_DEPENDS:px30 = " trusted-firmware-a:do_deploy"
INIT_FIRMWARE_DEPENDS:rk3308 = " ${@bb.utils.contains('RKBIN_RK3308_LATEST', '1', 'rockchip-rkbin', 'rk3308-rkbin', d)}:do_deploy"
INIT_FIRMWARE_DEPENDS:rk3328 = " trusted-firmware-a:do_deploy"
INIT_FIRMWARE_DEPENDS:rk3399 = " trusted-firmware-a:do_deploy"
INIT_FIRMWARE_DEPENDS:rk3568 = " rockchip-rkbin:do_deploy"
INIT_FIRMWARE_DEPENDS:rk3588s = " rockchip-rkbin:do_deploy"
do_compile[depends] .= "${INIT_FIRMWARE_DEPENDS}"

View File

@ -18,6 +18,7 @@ COMPATIBLE_MACHINE:nanopi-m4b = "nanopi-m4b"
COMPATIBLE_MACHINE:rock-pi-s = "rock-pi-s"
COMPATIBLE_MACHINE:roc-rk3328-cc = "roc-rk3328-cc"
COMPATIBLE_MACHINE:roc-rk3308-cc = "roc-rk3308-cc"
COMPATIBLE_MACHINE:rock-3a = "rock-3a"
SRC_URI:append = " file://rockchip-kmeta;type=kmeta;name=rockchip-kmeta;destsuffix=rockchip-kmeta"
SRC_URI:append:nanopi-r4s = " file://nanopi-r4s.scc"