From 7e3c9685d27eb0779066395e4b724e34bbd643ba Mon Sep 17 00:00:00 2001 From: Quentin Schulz Date: Mon, 16 Dec 2024 14:39:48 +0100 Subject: [PATCH] bsp: rkbin: use version and file variables for path matching the DDR init binary By using variables to give the path where to find the file to install, it is easier for users to have a different SRCREV for their own machine. Additionally, because glob patterns are now not used by default, it is guaranteed only to match a single file. The glob pattern for rk3308 has been hardcoded with the only file that matches in the rkbin git repository at the currently used commit. Reviewed-by: Trevor Woerner Signed-off-by: Quentin Schulz (cherry picked from commit ca38f7cea5a6dc50cba46459741564961f55485f) [apply to rockchip-rkbin_git.bb instead of rockchip-rkbin.inc] [reword commit title] [reword README] Signed-off-by: Quentin Schulz --- README | 15 +++++++++++++++ recipes-bsp/rkbin/rockchip-rkbin_git.bb | 20 ++++++++++++++++---- 2 files changed, 31 insertions(+), 4 deletions(-) diff --git a/README b/README index 09f8691..6f5866b 100644 --- a/README +++ b/README @@ -54,6 +54,21 @@ Status of supported boards: Notes: ----- + Custom rkbin version: + If you wish to use a different version of DDR binary provided by + rockchip-rkbin recipe than the one in this layer, you can create a + .bbappend in your own layer, and accordingly set SRCREV (possibly + LIC_FILES_CHKSUM too) and the version for path matching stored in + DDRBIN_VERS variable. Do so in your .bbappend with: + + DDRBIN_VERS:my-machine = "v2.07" + + If somehow the filename differs from the one provided in this layer, you + can override it from your bbappend with the DDRBIN_FILE variable: + + DDRBIN_VERS:my-machine = "v2.07" + DDRBIN_FILE:my-machine = "rk3308_ddr_451MHz_uart4_m0_${DDRBIN_VERS}.bin" + rk3308 rkbin: The latest ddr initializer for the rk3308 platform does not output diagnostic messages to uart0. This causes a bunch of gibberish to diff --git a/recipes-bsp/rkbin/rockchip-rkbin_git.bb b/recipes-bsp/rkbin/rockchip-rkbin_git.bb index 6e87507..f13c134 100644 --- a/recipes-bsp/rkbin/rockchip-rkbin_git.bb +++ b/recipes-bsp/rkbin/rockchip-rkbin_git.bb @@ -30,15 +30,21 @@ do_install() { PACKAGES = "${PN}" ALLOW_EMPTY:${PN} = "1" +DDRBIN_VERS:rk3308 ?= "v2.07" +DDRBIN_FILE:rk3308 ?= "rk3308_ddr_589MHz_uart4_m0_${DDRBIN_VERS}.bin" + do_deploy:rk3308() { # Prebuilt TF-A install -m 644 ${S}/bin/rk33/rk3308_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3308.elf # Prebuilt OPTEE-OS install -m 644 ${S}/bin/rk33/rk3308_bl32_v*.bin ${DEPLOYDIR}/tee-rk3308.bin # Prebuilt U-Boot TPL (DDR init) - install -m 644 ${S}/bin/rk33/rk3308_ddr_589MHz_uart?_m0_v*.bin ${DEPLOYDIR}/ddr-rk3308.bin + install -m 644 ${S}/bin/rk33/${DDRBIN_FILE} ${DEPLOYDIR}/ddr-rk3308.bin } +DDRBIN_VERS:rk3566 ?= "v1.21" +DDRBIN_FILE:rk3566 ?= "rk3566_ddr_1056MHz_${DDRBIN_VERS}.bin" + # NOTE: the following are not typos # the rk3566 uses the same bl31/2 as the rk3568 do_deploy:rk3566() { @@ -47,25 +53,31 @@ do_deploy:rk3566() { # 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 + install -m 644 ${S}/bin/rk35/${DDRBIN_FILE} ${DEPLOYDIR}/ddr-rk3566.bin } +DDRBIN_VERS:rk3568 ?= "v1.21" +DDRBIN_FILE:rk3568 ?= "rk3568_ddr_1560MHz_${DDRBIN_VERS}.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.21.bin ${DEPLOYDIR}/ddr-rk3568.bin + install -m 644 ${S}/bin/rk35/${DDRBIN_FILE} ${DEPLOYDIR}/ddr-rk3568.bin } +DDRBIN_VERS:rk3588s ?= "v1.16" +DDRBIN_FILE:rk3588s ?= "rk3588_ddr_lp4_2112MHz_lp5_2400MHz_${DDRBIN_VERS}.bin" + do_deploy:rk3588s() { # 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_2400MHz_v1.16.bin ${DEPLOYDIR}/ddr-rk3588.bin + install -m 644 ${S}/bin/rk35/${DDRBIN_FILE} ${DEPLOYDIR}/ddr-rk3588.bin } do_deploy() {