radxa-zero-3{e|w}: add

The Radxa ZERO 3{e|w} are ultra-small, high-performance single board computers
based on the Rockchip RK3566, with a compact form factor, and rich interfaces.

	http://radxa.com/products/zeros/zero3e/
	http://radxa.com/products/zeros/zero3w/

common tech specs:
- Rockchip RK3566 (4x Arm Cortex-A55 @ 1.6GHz)
- Arm Mali-G52-2EE (OpenGL ES 1.1/2.0/3.0/3.1/3.2, Vulkan 1.1, OpenCL 2.0)
- LPDDR4 RAM (1/2/3/8 GB)
- µSD
- 1x USB 2.0 Type C OTG, 1x USB 3.0 Type C Host
- 1x µHDMI (1080p @ 60fps)
- 1x MIPI CSI camera port
- colour-coded 40-pin GPIO (uart, spi, i2c, pcm/i2s, pwm, gpio)
- 72mm x 30mm

Radxa ZERO 3e specific tech specs:
- GbE

Radxa ZERO 3w specific tech specs:
- optional onboard eMMC (8/16/32/64 GB)
- IEEE 802.11 b/g/n/ac/ax(WiFi6), BT5.4 with BLE

NOTE: currently support for this board requires a U-Boot fork for the
bootloader, and linux-next for the kernel. Support will probably come in linux
kernel 6.11-ish, at which point U-Boot will then use that kernel's device tree
which means U-Boot support will come after the release of whichever kernel
includes support for this board.

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
This commit is contained in:
Trevor Woerner 2024-06-11 13:48:35 -04:00
parent 63a1fecb54
commit e0b13fe834
8 changed files with 86 additions and 0 deletions

2
README
View File

@ -40,6 +40,8 @@ Status of supported boards:
orangepi-5-plus
rock-3a
rock-4c-plus
radxa-zero-3e
radxa-zero-3w
builds:
marsboard-rk3066
radxarock

View File

@ -0,0 +1,8 @@
MACHINEOVERRIDES =. "radxa-zero-3:"
require conf/machine/include/rk3566.inc
PREFERRED_PROVIDER_virtual/kernel = "linux-torvalds-next"
MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
UBOOT_MACHINE = "radxa-zero-3-rk3566_defconfig"

View File

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

View File

@ -0,0 +1,7 @@
#@TYPE: Machine
#@NAME: Radxa Zero 3E
#@DESCRIPTION: The Radxa ZERO 3e is an ultra-small, high-performance single board computer based on the Rockchip RK3566, with a compact form factor, and rich interfaces.
#http://radxa.com/products/zeros/zero3e/
require conf/machine/include/radxa-zero-3.inc
KERNEL_DEVICETREE = "rockchip/rk3566-radxa-zero-3e.dtb"

View File

@ -0,0 +1,7 @@
#@TYPE: Machine
#@NAME: Radxa Zero 3W
#@DESCRIPTION: The Radxa ZERO 3w is an ultra-small, high-performance single board computer based on the Rockchip RK3566, with a compact form factor, and rich interfaces.
#http://radxa.com/products/zeros/zero3w/
require conf/machine/include/radxa-zero-3.inc
KERNEL_DEVICETREE = "rockchip/rk3566-radxa-zero-3w.dtb"

View File

@ -14,6 +14,7 @@ S = "${WORKDIR}/git"
COMPATIBLE_MACHINE = "^$"
COMPATIBLE_MACHINE:rk3308 = "rk3308"
COMPATIBLE_MACHINE:rk3566 = "rk3566"
COMPATIBLE_MACHINE:rk3568 = "rk3568"
COMPATIBLE_MACHINE:rk3588s = "rk3588s"
@ -36,6 +37,17 @@ do_deploy:rk3308() {
install -m 644 ${S}/bin/rk33/rk3308_ddr_589MHz_uart?_m0_v*.bin ${DEPLOYDIR}/ddr-rk3308.bin
}
# NOTE: the following are not typos
# the rk3566 uses the same bl31/2 as the rk3568
do_deploy:rk3566() {
# Prebuilt TF-A
install -m 644 ${S}/bin/rk35/rk3568_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3566.elf
# Prebuilt OPTEE-OS
install -m 644 ${S}/bin/rk35/rk3568_bl32_v*.bin ${DEPLOYDIR}/tee-rk3566.bin
# Prebuilt U-Boot TPL (DDR init)
install -m 644 ${S}/bin/rk35/rk3566_ddr_1056MHz_v1.21.bin ${DEPLOYDIR}/ddr-rk3566.bin
}
do_deploy:rk3568() {
# Prebuilt TF-A
install -m 644 ${S}/bin/rk35/rk3568_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3568.elf

View File

@ -2,6 +2,10 @@ require u-boot-rockchip.inc
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI:radxa-zero-3 = "git://github.com/Kwiboo/u-boot-rockchip.git;protocol=https;branch=rk3xxx-2024.07;name=Kwiboo"
SRCREV:radxa-zero-3 = "8cdf606e616baa36751f3b4adcfaefc781126c8c"
SRCREV:radxa-zero-3:rk-u-boot-env = "8cdf606e616baa36751f3b4adcfaefc781126c8c"
SRC_URI:append:rk-u-boot-env = " file://rockchip-enable-environment-mmc.cfg"
SRCREV:rk-u-boot-env = "cdfcc37428e06f4730ab9a17cc084eeb7676ea1a"

View File

@ -0,0 +1,25 @@
FILESEXTRAPATHS:prepend := "${THISDIR}/linux-yocto-dev:"
DESCRIPTION = "Linux Kernel"
SECTION = "kernel"
LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
ERROR_QA:remove = "buildpaths"
DEFAULT_PREFERENCE = "-1"
COMPATIBLE_MACHINE = "^$"
COMPATIBLE_MACHINE:radxa-zero-3 = "radxa-zero-3"
LINUX_VERSION = "6.10-rc3"
KERNEL_VERSION_SANITY_SKIP = "1"
PV = "${LINUX_VERSION}+git${SRCPV}"
SRC_URI = " \
git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git;protocol=https;nobranch=1 \
file://rockchip-kmeta;type=kmeta;name=rockchip-kmeta;destsuffix=rockchip-kmeta \
"
# this is tag 'next-20240611'
SRCREV = "a957267fa7e9159d3d2ee1421359ebf228570c68"
inherit kernel
inherit kernel-yocto
require recipes-kernel/linux/linux-yocto.inc