Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 30 additions & 43 deletions config/boards/radxa-zero3.csc
Original file line number Diff line number Diff line change
@@ -1,24 +1,50 @@
# Rockchip RK3566 quad core
# Rockchip RK3566 quad core 1/2/4/8GB RAM WiFi/BT or GBE HDMI USB-C
BOARD_NAME="Radxa ZERO 3"
BOARDFAMILY="rk35xx"
BOARD_MAINTAINER=""
BOOTCONFIG="radxa-zero3-rk3566_defconfig"
KERNEL_TARGET="vendor,current,edge"
KERNEL_TEST_TARGET="vendor"
KERNEL_TEST_TARGET="vendor,current"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3566-radxa-zero3.dtb"
IMAGE_PARTITION_TABLE="gpt"
BOOT_SCENARIO="spl-blobs"
BOOTFS_TYPE="fat" # Only for vendor/legacy


PACKAGE_LIST_BOARD="rfkill bluetooth bluez bluez-tools"
# add for OBEX file transfer:
# PACKAGE_LIST_BOARD+=" bluez-obexd"
AIC8800_TYPE="sdio"
enable_extension "radxa-aic8800"

function post_family_config__use_mainline_uboot() {

# boot.scr will use whatever u-boot detects and sets 'fdtfile' to.
# This however this doesn't work with Rockchip bsp based kernels since naming differs.
# So leave decision to u-boot ONLY when mainline kernel is used.
if [[ "${BRANCH}" != "vendor" ]]; then
unset BOOT_FDT_FILE
fi

BOOTCONFIG="radxa-zero-3-rk3566_defconfig"
BOOTSOURCE="https://github.com/u-boot/u-boot"
BOOTBRANCH="tag:v2025.10"
BOOTPATCHDIR="v2025.10"

UBOOT_TARGET_MAP="BL31=$RKBIN_DIR/$BL31_BLOB ROCKCHIP_TPL=$RKBIN_DIR/$DDR_BLOB;;u-boot-rockchip.bin"
## For binman-atf-mainline: setting BOOT_SCENARIO at the top would break branch=vendor, so we don't enable it globally.
# We cannot set BOOT_SOC=rk3566 due to side effects in Armbian scripts; ATF_TARGET_MAP is the safer override.
# ATF does not currently separate rk3566 from rk3568.
#ATF_TARGET_MAP="M0_CROSS_COMPILE=arm-linux-gnueabi- PLAT=rk3568 bl31;;build/rk3568/release/bl31/bl31.elf:bl31.elf"
#UBOOT_TARGET_MAP="BL31=bl31.elf ROCKCHIP_TPL=$RKBIN_DIR/$DDR_BLOB;;u-boot-rockchip.bin"

unset uboot_custom_postprocess write_uboot_platform write_uboot_platform_mtd

function write_uboot_platform() {
dd if=$1/u-boot-rockchip.bin of=$2 seek=64 conv=notrunc status=none
}
}

function post_family_tweaks_bsp__aic8800_wireless() {
display_alert "$BOARD" "Installing AIC8800 Tweaks" "info"
mkdir -p "${destination}"/etc/modprobe.d
Expand Down Expand Up @@ -54,43 +80,4 @@ function post_family_tweaks__enable_aic8800_bluetooth_service() {
else
display_alert "$BOARD" "aic-bluetooth.service not found in image; skipping enable" "warn"
fi
}

function post_family_config__use_mainline_uboot() {
[[ "${BRANCH}" == "vendor" ]] && return 0

unset BOOT_FDT_FILE # boot.scr will use whatever u-boot detects and sets 'fdtfile' to
unset BOOTFS_TYPE # mainline u-boot can boot ext4 directly
BOOTCONFIG="radxa-zero-3-rk3566_defconfig"
BOOTSOURCE="https://github.com/u-boot/u-boot"
BOOTBRANCH="tag:v2025.10"
BOOTPATCHDIR="v2025.10"

UBOOT_TARGET_MAP="BL31=$RKBIN_DIR/$BL31_BLOB ROCKCHIP_TPL=$RKBIN_DIR/$DDR_BLOB;;u-boot-rockchip.bin"
## For binman-atf-mainline: setting BOOT_SCENARIO at the top would break branch=vendor, so we don't enable it globally.
# We cannot set BOOT_SOC=rk3566 due to side effects in Armbian scripts; ATF_TARGET_MAP is the safer override.
# ATF does not currently separate rk3566 from rk3568.
#ATF_TARGET_MAP="M0_CROSS_COMPILE=arm-linux-gnueabi- PLAT=rk3568 bl31;;build/rk3568/release/bl31/bl31.elf:bl31.elf"
#UBOOT_TARGET_MAP="BL31=bl31.elf ROCKCHIP_TPL=$RKBIN_DIR/$DDR_BLOB;;u-boot-rockchip.bin"

unset uboot_custom_postprocess write_uboot_platform write_uboot_platform_mtd

function write_uboot_platform() {
dd if=$1/u-boot-rockchip.bin of=$2 seek=64 conv=notrunc status=none
}
}

# Override family config for this board; let's avoid conditionals in family config.
function post_family_config_branch_vendor__radxa-zero3_use_vendor_uboot() {
BOOTSOURCE='https://github.com/radxa/u-boot.git'
BOOTBRANCH='branch:rk35xx-2024.01'
BOOTPATCHDIR="u-boot-radxa-latest"

UBOOT_TARGET_MAP="BL31=$RKBIN_DIR/$BL31_BLOB ROCKCHIP_TPL=$RKBIN_DIR/$DDR_BLOB;;u-boot-rockchip.bin"

unset uboot_custom_postprocess write_uboot_platform write_uboot_platform_mtd

function write_uboot_platform() {
dd if=$1/u-boot-rockchip.bin of=$2 seek=64 conv=notrunc status=none
}
}