* [meta-rockchip PATCH v3 1/9] bsp: rkbin: ddr: store directory path for the DDR bin blob in a variable
2025-05-05 14:20 [meta-rockchip PATCH v3 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
@ 2025-05-05 14:20 ` Quentin Schulz
2025-05-05 14:20 ` [meta-rockchip PATCH v3 2/9] bsp: rkbin: ddr: make deployed name configurable Quentin Schulz
` (8 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Quentin Schulz @ 2025-05-05 14:20 UTC (permalink / raw)
To: yocto-patches; +Cc: Quentin Schulz
From: Quentin Schulz <quentin.schulz@cherry.de>
This will be used in a later commit when an SoC-agnostic do_configure will
call ddrbin_tool.py with the DDR bin blob as input.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb b/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb
index 3227a53db22ba5906355e6925399aafe08813c9f..a88cfc10bb4404634671c7f193b4255405da6b21 100644
--- a/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb
+++ b/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb
@@ -2,34 +2,38 @@ DESCRIPTION = "Rockchip Firmware for DDR init (TPL in U-Boot terms)"
require rockchip-rkbin.inc
+DDRBIN_DIR:rk3308 ?= "bin/rk33/"
DDRBIN_VERS:rk3308 ?= "v2.10"
DDRBIN_FILE:rk3308 ?= "rk3308_ddr_589MHz_uart4_m0_${DDRBIN_VERS}.bin"
do_deploy:rk3308() {
# Prebuilt U-Boot TPL (DDR init)
- install -m 644 ${S}/bin/rk33/${DDRBIN_FILE} ${DEPLOYDIR}/ddr-rk3308.bin
+ install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/ddr-rk3308.bin
}
+DDRBIN_DIR:rk3566 ?= "bin/rk35/"
DDRBIN_VERS:rk3566 ?= "v1.23"
DDRBIN_FILE:rk3566 ?= "rk3566_ddr_1056MHz_${DDRBIN_VERS}.bin"
do_deploy:rk3566() {
# Prebuilt U-Boot TPL (DDR init)
- install -m 644 ${S}/bin/rk35/${DDRBIN_FILE} ${DEPLOYDIR}/ddr-rk3566.bin
+ install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/ddr-rk3566.bin
}
+DDRBIN_DIR:rk3568 ?= "bin/rk35/"
DDRBIN_VERS:rk3568 ?= "v1.23"
DDRBIN_FILE:rk3568 ?= "rk3568_ddr_1560MHz_${DDRBIN_VERS}.bin"
do_deploy:rk3568() {
# Prebuilt U-Boot TPL (DDR init)
- install -m 644 ${S}/bin/rk35/${DDRBIN_FILE} ${DEPLOYDIR}/ddr-rk3568.bin
+ install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/ddr-rk3568.bin
}
+DDRBIN_DIR:rk3588s ?= "bin/rk35/"
DDRBIN_VERS:rk3588s ?= "v1.18"
DDRBIN_FILE:rk3588s ?= "rk3588_ddr_lp4_2112MHz_lp5_2400MHz_${DDRBIN_VERS}.bin"
do_deploy:rk3588s() {
# Prebuilt U-Boot TPL (DDR init)
- install -m 644 ${S}/bin/rk35/${DDRBIN_FILE} ${DEPLOYDIR}/ddr-rk3588.bin
+ install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/ddr-rk3588.bin
}
--
2.49.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* [meta-rockchip PATCH v3 2/9] bsp: rkbin: ddr: make deployed name configurable
2025-05-05 14:20 [meta-rockchip PATCH v3 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
2025-05-05 14:20 ` [meta-rockchip PATCH v3 1/9] bsp: rkbin: ddr: store directory path for the DDR bin blob in a variable Quentin Schulz
@ 2025-05-05 14:20 ` Quentin Schulz
2025-05-05 14:20 ` [meta-rockchip PATCH v3 3/9] bsp: rkbin: add native recipe for tools (ddrbin_tool.py) Quentin Schulz
` (7 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Quentin Schulz @ 2025-05-05 14:20 UTC (permalink / raw)
To: yocto-patches; +Cc: Quentin Schulz
From: Quentin Schulz <quentin.schulz@cherry.de>
This will also allow us to generate an SoC-agnostic do_deploy instead of
duplicating it for each SoC.
Additionally, it allows users to pick a different name for the deployed
binary.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb b/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb
index a88cfc10bb4404634671c7f193b4255405da6b21..546560cf58b0480efd0f89ff21639c7b78f70530 100644
--- a/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb
+++ b/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb
@@ -5,35 +5,39 @@ require rockchip-rkbin.inc
DDRBIN_DIR:rk3308 ?= "bin/rk33/"
DDRBIN_VERS:rk3308 ?= "v2.10"
DDRBIN_FILE:rk3308 ?= "rk3308_ddr_589MHz_uart4_m0_${DDRBIN_VERS}.bin"
+DDRBIN_DEPLOY_FILENAME:rk3308 ?= "ddr-rk3308.bin"
do_deploy:rk3308() {
# Prebuilt U-Boot TPL (DDR init)
- install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/ddr-rk3308.bin
+ install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/${DDRBIN_DEPLOY_FILENAME}
}
DDRBIN_DIR:rk3566 ?= "bin/rk35/"
DDRBIN_VERS:rk3566 ?= "v1.23"
DDRBIN_FILE:rk3566 ?= "rk3566_ddr_1056MHz_${DDRBIN_VERS}.bin"
+DDRBIN_DEPLOY_FILENAME:rk3566 ?= "ddr-rk3566.bin"
do_deploy:rk3566() {
# Prebuilt U-Boot TPL (DDR init)
- install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/ddr-rk3566.bin
+ install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/${DDRBIN_DEPLOY_FILENAME}
}
DDRBIN_DIR:rk3568 ?= "bin/rk35/"
DDRBIN_VERS:rk3568 ?= "v1.23"
DDRBIN_FILE:rk3568 ?= "rk3568_ddr_1560MHz_${DDRBIN_VERS}.bin"
+DDRBIN_DEPLOY_FILENAME:rk3568 ?= "ddr-rk3568.bin"
do_deploy:rk3568() {
# Prebuilt U-Boot TPL (DDR init)
- install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/ddr-rk3568.bin
+ install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/${DDRBIN_DEPLOY_FILENAME}
}
DDRBIN_DIR:rk3588s ?= "bin/rk35/"
DDRBIN_VERS:rk3588s ?= "v1.18"
DDRBIN_FILE:rk3588s ?= "rk3588_ddr_lp4_2112MHz_lp5_2400MHz_${DDRBIN_VERS}.bin"
+DDRBIN_DEPLOY_FILENAME:rk3588s ?= "ddr-rk3588.bin"
do_deploy:rk3588s() {
# Prebuilt U-Boot TPL (DDR init)
- install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/ddr-rk3588.bin
+ install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/${DDRBIN_DEPLOY_FILENAME}
}
--
2.49.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* [meta-rockchip PATCH v3 3/9] bsp: rkbin: add native recipe for tools (ddrbin_tool.py)
2025-05-05 14:20 [meta-rockchip PATCH v3 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
2025-05-05 14:20 ` [meta-rockchip PATCH v3 1/9] bsp: rkbin: ddr: store directory path for the DDR bin blob in a variable Quentin Schulz
2025-05-05 14:20 ` [meta-rockchip PATCH v3 2/9] bsp: rkbin: ddr: make deployed name configurable Quentin Schulz
@ 2025-05-05 14:20 ` Quentin Schulz
2025-05-05 14:20 ` [meta-rockchip PATCH v3 4/9] bsp: rkbin: ddr: allow to customize DDR bin blob Quentin Schulz
` (6 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Quentin Schulz @ 2025-05-05 14:20 UTC (permalink / raw)
To: yocto-patches; +Cc: Quentin Schulz
From: Quentin Schulz <quentin.schulz@cherry.de>
This will allow us to use tools from rkbin repo destined to be used on
the host in recipes for the target. For example, ddrbin_tool.py which
is used to modify the configuration of the DDR bin blob.
This has limited usefulness for ddrbin_tool.py as it is a python script
with no external dependencies and could be run directly from
rockchip-ddr-bin recipe. However, this is required so we can decouple
the version of the git repo used for rockchip-ddr-bin DDR bin blob from
the version of the git repo used for ddrbin_tool.py (which is very
recent).
This recipe will be used in a later commit to modify the DDR bin blob if
need be.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
recipes-bsp/rkbin/rockchip-rkbin-native_git.bb | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/recipes-bsp/rkbin/rockchip-rkbin-native_git.bb b/recipes-bsp/rkbin/rockchip-rkbin-native_git.bb
new file mode 100644
index 0000000000000000000000000000000000000000..2adccdd59bbf454bd5264d503d6d5883b94c472d
--- /dev/null
+++ b/recipes-bsp/rkbin/rockchip-rkbin-native_git.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Rockchip native tools related to their rkbin blobs, e.g. ddrbin_tool.py"
+
+SRC_URI = "git://github.com/rockchip-linux/rkbin;protocol=https;branch=master"
+SRCREV = "f43a462e7a1429a9d407ae52b4745033034a6cf9"
+LICENSE = "Proprietary"
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=11e3673115959bf596feaaa6ea7ce9a5"
+
+inherit native
+
+S = "${WORKDIR}/git/tools"
+
+# ddrbin_tool.py only uses python and core modules.
+# Yocto depends on a host python anyway so we can simply ignore that dependency
+# and have ddrbin_tool.py run with the host's python instead of building python
+# natively.
+# DEPENDS = "python3-native"
+
+do_install() {
+ install -d "${D}${bindir}"
+ install -m 0755 ddrbin_tool.py "${D}${bindir}"
+}
--
2.49.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* [meta-rockchip PATCH v3 4/9] bsp: rkbin: ddr: allow to customize DDR bin blob
2025-05-05 14:20 [meta-rockchip PATCH v3 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
` (2 preceding siblings ...)
2025-05-05 14:20 ` [meta-rockchip PATCH v3 3/9] bsp: rkbin: add native recipe for tools (ddrbin_tool.py) Quentin Schulz
@ 2025-05-05 14:20 ` Quentin Schulz
2025-05-05 14:20 ` [meta-rockchip PATCH v3 5/9] bsp: rkbin: ddr: factor out do_deploy to be SoC-agnostic Quentin Schulz
` (5 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Quentin Schulz @ 2025-05-05 14:20 UTC (permalink / raw)
To: yocto-patches; +Cc: Quentin Schulz
From: Quentin Schulz <quentin.schulz@cherry.de>
Rockchip provides a tool to customize the DDR bin blob which can prove
to be extremely useful, for example if your HW doesn't follow the HW
reference design and uses a different UART controller or UART mux for
the serial console, or use a different baudrate.
If RKBIN_DDR_RECONFIGURE is set to 1 for a machine, a ddrbin_params.txt
needs to be provided for said machine and ddrbin_tool.py will be run
against it to generate a new custom binary with the desired config.
Note that future implementations may allow to provide configuration
through a different mechanism than a simple and difficult to
maintain/modify file. E.g. this doesn't really work well when one wants
to have this in sync with SERIAL_CONSOLES for example. But that may be
much harder to support as the serial controller index in
SERIAL_CONSOLES does not necessarily match the hardware index expected
by ddrbin_params.txt. It also doesn't provide the UART mux.
In any case, I believe this is a decent start at allowing customization
of the DDR bin blob without having to provide a blob directly in-tree.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
README | 20 ++++++++++++-
recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb | 44 +++++++++++++++++++++++++++++
2 files changed, 63 insertions(+), 1 deletion(-)
diff --git a/README b/README
index 6bceba0c9cf09cc0fc881c855fabeeb68aeb55fb..9672c6ab8d5b2ce004a33bfb825969ab958d8834 100644
--- a/README
+++ b/README
@@ -55,7 +55,7 @@ Status of supported boards:
Notes:
-----
- Custom DDR rkbin version:
+ Customize DDR rkbin:
If you wish to use a different version of DDR binary provided by
rockchip-rkbin-ddr recipe than the one in this layer, you can create a
.bbappend in your own layer, and accordingly set SRCREV (possibly
@@ -70,6 +70,24 @@ Notes:
DDRBIN_VERS:my-machine = "v2.07"
DDRBIN_FILE:my-machine = "rk3308_ddr_451MHz_uart4_m0_${DDRBIN_VERS}.bin"
+ If you wish to use a configuration for the DDR binary blob provided in
+ rockchip-rkbin-ddr recipe that differs from the default, you can set the
+ RKBIN_DDR_RECONFIGURE variable to 1 for your machine, e.g.:
+
+ RKBIN_DDR_RECONFIGURE:my-machine = "1"
+
+ You will need to provide your custom ddrbin_param.txt via your bbappend, e.g.
+ your ddrbin_param in
+ meta-my-layer/recipes-bsp/rkbin/rockchip-rkbin-ddr/my-machine/ddrbin_param.txt
+ and a bbappend, e.g. in meta-my-layer/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bbappend,
+ which contains:
+
+ FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+ As for the content of ddrbin_param.txt,
+ https://github.com/rockchip-linux/rkbin/blob/master/tools/ddrbin_tool_user_guide.txt
+ may help.
+
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-ddr_git.bb b/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb
index 546560cf58b0480efd0f89ff21639c7b78f70530..c368d3f59a39e73cb95ac0018ea93c013d1ebb3d 100644
--- a/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb
+++ b/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb
@@ -6,6 +6,7 @@ DDRBIN_DIR:rk3308 ?= "bin/rk33/"
DDRBIN_VERS:rk3308 ?= "v2.10"
DDRBIN_FILE:rk3308 ?= "rk3308_ddr_589MHz_uart4_m0_${DDRBIN_VERS}.bin"
DDRBIN_DEPLOY_FILENAME:rk3308 ?= "ddr-rk3308.bin"
+DDRBIN_TOOL_SOC:rk3308 ?= "rk3308"
do_deploy:rk3308() {
# Prebuilt U-Boot TPL (DDR init)
@@ -16,6 +17,7 @@ DDRBIN_DIR:rk3566 ?= "bin/rk35/"
DDRBIN_VERS:rk3566 ?= "v1.23"
DDRBIN_FILE:rk3566 ?= "rk3566_ddr_1056MHz_${DDRBIN_VERS}.bin"
DDRBIN_DEPLOY_FILENAME:rk3566 ?= "ddr-rk3566.bin"
+DDRBIN_TOOL_SOC:rk3566 ?= "rk356x"
do_deploy:rk3566() {
# Prebuilt U-Boot TPL (DDR init)
@@ -26,6 +28,7 @@ DDRBIN_DIR:rk3568 ?= "bin/rk35/"
DDRBIN_VERS:rk3568 ?= "v1.23"
DDRBIN_FILE:rk3568 ?= "rk3568_ddr_1560MHz_${DDRBIN_VERS}.bin"
DDRBIN_DEPLOY_FILENAME:rk3568 ?= "ddr-rk3568.bin"
+DDRBIN_TOOL_SOC:rk3568 ?= "rk356x"
do_deploy:rk3568() {
# Prebuilt U-Boot TPL (DDR init)
@@ -36,8 +39,49 @@ DDRBIN_DIR:rk3588s ?= "bin/rk35/"
DDRBIN_VERS:rk3588s ?= "v1.18"
DDRBIN_FILE:rk3588s ?= "rk3588_ddr_lp4_2112MHz_lp5_2400MHz_${DDRBIN_VERS}.bin"
DDRBIN_DEPLOY_FILENAME:rk3588s ?= "ddr-rk3588.bin"
+DDRBIN_TOOL_SOC:rk3588s ?= "rk3588"
do_deploy:rk3588s() {
# Prebuilt U-Boot TPL (DDR init)
install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/${DDRBIN_DEPLOY_FILENAME}
}
+
+# The following is only required if DDR bin blob needs to be modified
+# (e.g. different UART controller, UART mux, or baudrate)
+# RKBIN_DDR_RECONFIGURE = "1" if it needs to be modified, all below logic needs to
+# depend on that value be 1, and not run if 0.
+RKBIN_DDR_RECONFIGURE ?= "0"
+
+# The tool (ddrbin_tool.py) for modifying the DDR bin is from rockchip-rkbin-native...
+DEPENDS += "${@'rockchip-rkbin-native' if d.getVar('RKBIN_DDR_RECONFIGURE') == '1' else ''}"
+
+# ... and it expects a file as input, which is named ddrbin_param.txt in the tree.
+SRC_URI += "${@'file://ddrbin_param.txt' if d.getVar('RKBIN_DDR_RECONFIGURE') == '1' else ''}"
+
+python __anonymous() {
+ # Because rockchip-rkbin.inc inherits bin_package and we need to run some step before
+ # the install task re-enable do_configure task.
+ # We could use
+ # do_configure[noexec] = "${@'0' if d.getVar('RKBIN_DDR_RECONFIGURE') == '1' else '1'}"
+ # but this spams the console with deprecation warnings, see
+ # https://bugzilla.yoctoproject.org/show_bug.cgi?id=13808
+ if d.getVar('RKBIN_DDR_RECONFIGURE') == '1':
+ d.delVarFlag("do_configure", "noexec")
+}
+
+do_configure() {
+ if [ "${RKBIN_DDR_RECONFIGURE}" = "1" ]; then
+ # ddrbin_tool.py always modifies a date in the DDR blob, based on current time.
+ # This is bad for reproducibility and hashequiv usage, so use the commit author
+ # date of the last change made to the DDR bin.
+ # DATE must be max 17-character long!
+ RKBIN_DDR_DATE=$(git log --pretty=format:"%ad" --date=format:"%Y%m%d-%H:%M:%S" -1 -- ${S}/${DDRBIN_DIR}${DDRBIN_FILE})
+ # DDRBIN_TOOL_SOC is mostly useless except for rk3528 for now. It needs to match one string in the global
+ # chip_list array in ddrbin_tool.py.
+ if [ -z "${DDRBIN_TOOL_SOC}" ]; then
+ bbfatal "Non-empty DDRBIN_TOOL_SOC:<MACHINE> required!"
+ fi
+ # Modify blob with appropriate settings stored in ddrbin_params.txt
+ ddrbin_tool.py ${DDRBIN_TOOL_SOC} ${UNPACKDIR}/ddrbin_param.txt ${S}/${DDRBIN_DIR}${DDRBIN_FILE} --verinfo_editable "${RKBIN_DDR_DATE}"
+ fi
+}
--
2.49.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* [meta-rockchip PATCH v3 5/9] bsp: rkbin: ddr: factor out do_deploy to be SoC-agnostic
2025-05-05 14:20 [meta-rockchip PATCH v3 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
` (3 preceding siblings ...)
2025-05-05 14:20 ` [meta-rockchip PATCH v3 4/9] bsp: rkbin: ddr: allow to customize DDR bin blob Quentin Schulz
@ 2025-05-05 14:20 ` Quentin Schulz
2025-05-05 14:20 ` [meta-rockchip PATCH v3 6/9] bsp: rkbin: optee-os: " Quentin Schulz
` (4 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Quentin Schulz @ 2025-05-05 14:20 UTC (permalink / raw)
To: yocto-patches; +Cc: Quentin Schulz
From: Quentin Schulz <quentin.schulz@cherry.de>
The do_deploy task is essentially the same for all SoCs, install a file
from a specific path to another one.
No magic involved, so let's rather have one generic do_deploy task. For
this to work nicely, we check that all necessary variables are set and
notify the developer otherwise. This may be useful whenever a new SoC
will be supported by this recipe.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb | 70 ++++++++++++++---------------
1 file changed, 34 insertions(+), 36 deletions(-)
diff --git a/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb b/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb
index c368d3f59a39e73cb95ac0018ea93c013d1ebb3d..5b049f9a2b77a77d8ea44268a1f47c60659e16d1 100644
--- a/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb
+++ b/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb
@@ -2,48 +2,46 @@ DESCRIPTION = "Rockchip Firmware for DDR init (TPL in U-Boot terms)"
require rockchip-rkbin.inc
-DDRBIN_DIR:rk3308 ?= "bin/rk33/"
-DDRBIN_VERS:rk3308 ?= "v2.10"
-DDRBIN_FILE:rk3308 ?= "rk3308_ddr_589MHz_uart4_m0_${DDRBIN_VERS}.bin"
-DDRBIN_DEPLOY_FILENAME:rk3308 ?= "ddr-rk3308.bin"
-DDRBIN_TOOL_SOC:rk3308 ?= "rk3308"
+RKBIN_BINDIR:rk3308 ?= "bin/rk33/"
+RKBIN_BINVERS:rk3308 ?= "v2.10"
+RKBIN_BINFILE:rk3308 ?= "rk3308_ddr_589MHz_uart4_m0_${RKBIN_BINVERS}.bin"
+RKBIN_DEPLOY_FILENAME:rk3308 ?= "ddr-rk3308.bin"
-do_deploy:rk3308() {
- # Prebuilt U-Boot TPL (DDR init)
- install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/${DDRBIN_DEPLOY_FILENAME}
-}
+RKBIN_BINDIR:rk3566 ?= "bin/rk35/"
+RKBIN_BINVERS:rk3566 ?= "v1.23"
+RKBIN_BINFILE:rk3566 ?= "rk3566_ddr_1056MHz_${RKBIN_BINVERS}.bin"
+RKBIN_DEPLOY_FILENAME:rk3566 ?= "ddr-rk3566.bin"
-DDRBIN_DIR:rk3566 ?= "bin/rk35/"
-DDRBIN_VERS:rk3566 ?= "v1.23"
-DDRBIN_FILE:rk3566 ?= "rk3566_ddr_1056MHz_${DDRBIN_VERS}.bin"
-DDRBIN_DEPLOY_FILENAME:rk3566 ?= "ddr-rk3566.bin"
-DDRBIN_TOOL_SOC:rk3566 ?= "rk356x"
+RKBIN_BINDIR:rk3568 ?= "bin/rk35/"
+RKBIN_BINVERS:rk3568 ?= "v1.23"
+RKBIN_BINFILE:rk3568 ?= "rk3568_ddr_1560MHz_${RKBIN_BINVERS}.bin"
+RKBIN_DEPLOY_FILENAME:rk3568 ?= "ddr-rk3568.bin"
-do_deploy:rk3566() {
- # Prebuilt U-Boot TPL (DDR init)
- install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/${DDRBIN_DEPLOY_FILENAME}
-}
+RKBIN_BINDIR:rk3588s ?= "bin/rk35/"
+RKBIN_BINVERS:rk3588s ?= "v1.18"
+RKBIN_BINFILE:rk3588s ?= "rk3588_ddr_lp4_2112MHz_lp5_2400MHz_${RKBIN_BINVERS}.bin"
+RKBIN_DEPLOY_FILENAME:rk3588s ?= "ddr-rk3588.bin"
-DDRBIN_DIR:rk3568 ?= "bin/rk35/"
-DDRBIN_VERS:rk3568 ?= "v1.23"
-DDRBIN_FILE:rk3568 ?= "rk3568_ddr_1560MHz_${DDRBIN_VERS}.bin"
-DDRBIN_DEPLOY_FILENAME:rk3568 ?= "ddr-rk3568.bin"
DDRBIN_TOOL_SOC:rk3568 ?= "rk356x"
-
-do_deploy:rk3568() {
- # Prebuilt U-Boot TPL (DDR init)
- install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/${DDRBIN_DEPLOY_FILENAME}
-}
-
-DDRBIN_DIR:rk3588s ?= "bin/rk35/"
-DDRBIN_VERS:rk3588s ?= "v1.18"
-DDRBIN_FILE:rk3588s ?= "rk3588_ddr_lp4_2112MHz_lp5_2400MHz_${DDRBIN_VERS}.bin"
-DDRBIN_DEPLOY_FILENAME:rk3588s ?= "ddr-rk3588.bin"
+DDRBIN_TOOL_SOC:rk3308 ?= "rk3308"
+DDRBIN_TOOL_SOC:rk3566 ?= "rk356x"
DDRBIN_TOOL_SOC:rk3588s ?= "rk3588"
-do_deploy:rk3588s() {
+do_deploy() {
+ if [ -z "${RKBIN_BINDIR}" ]; then
+ bbfatal "Non-empty RKBIN_BINDIR:<MACHINE> required!"
+ fi
+
+ if [ -z "${RKBIN_BINFILE}" ]; then
+ bbfatal "Non-empty RKBIN_BINFILE:<MACHINE> required!"
+ fi
+
+ if [ -z "${RKBIN_DEPLOY_FILENAME}" ]; then
+ bbfatal "Non-empty RKBIN_DEPLOY_FILENAME:<MACHINE> required!"
+ fi
+
# Prebuilt U-Boot TPL (DDR init)
- install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/${DDRBIN_DEPLOY_FILENAME}
+ install -m 644 ${S}/${RKBIN_BINDIR}${RKBIN_BINFILE} ${DEPLOYDIR}/${RKBIN_DEPLOY_FILENAME}
}
# The following is only required if DDR bin blob needs to be modified
@@ -75,13 +73,13 @@ do_configure() {
# This is bad for reproducibility and hashequiv usage, so use the commit author
# date of the last change made to the DDR bin.
# DATE must be max 17-character long!
- RKBIN_DDR_DATE=$(git log --pretty=format:"%ad" --date=format:"%Y%m%d-%H:%M:%S" -1 -- ${S}/${DDRBIN_DIR}${DDRBIN_FILE})
+ RKBIN_DDR_DATE=$(git log --pretty=format:"%ad" --date=format:"%Y%m%d-%H:%M:%S" -1 -- ${S}/${RKBIN_BINDIR}${RKBIN_BINFILE})
# DDRBIN_TOOL_SOC is mostly useless except for rk3528 for now. It needs to match one string in the global
# chip_list array in ddrbin_tool.py.
if [ -z "${DDRBIN_TOOL_SOC}" ]; then
bbfatal "Non-empty DDRBIN_TOOL_SOC:<MACHINE> required!"
fi
# Modify blob with appropriate settings stored in ddrbin_params.txt
- ddrbin_tool.py ${DDRBIN_TOOL_SOC} ${UNPACKDIR}/ddrbin_param.txt ${S}/${DDRBIN_DIR}${DDRBIN_FILE} --verinfo_editable "${RKBIN_DDR_DATE}"
+ ddrbin_tool.py ${DDRBIN_TOOL_SOC} ${UNPACKDIR}/ddrbin_param.txt ${S}/${RKBIN_BINDIR}${RKBIN_BINFILE} --verinfo_editable "${RKBIN_DDR_DATE}"
fi
}
--
2.49.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* [meta-rockchip PATCH v3 6/9] bsp: rkbin: optee-os: factor out do_deploy to be SoC-agnostic
2025-05-05 14:20 [meta-rockchip PATCH v3 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
` (4 preceding siblings ...)
2025-05-05 14:20 ` [meta-rockchip PATCH v3 5/9] bsp: rkbin: ddr: factor out do_deploy to be SoC-agnostic Quentin Schulz
@ 2025-05-05 14:20 ` Quentin Schulz
2025-05-05 14:20 ` [meta-rockchip PATCH v3 7/9] bsp: rkbin: tf-a: " Quentin Schulz
` (3 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Quentin Schulz @ 2025-05-05 14:20 UTC (permalink / raw)
To: yocto-patches; +Cc: Quentin Schulz
From: Quentin Schulz <quentin.schulz@cherry.de>
The do_deploy task is essentially the same for all SoCs, install a file
from a specific path to another one.
No magic involved, so let's rather have one generic do_deploy task. For
this to work nicely, we check that all necessary variables are set and
notify the developer otherwise. This may be useful whenever a new SoC
will be supported by this recipe.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
recipes-bsp/rkbin/rockchip-rkbin-optee-os_git.bb | 46 ++++++++++++++++--------
1 file changed, 32 insertions(+), 14 deletions(-)
diff --git a/recipes-bsp/rkbin/rockchip-rkbin-optee-os_git.bb b/recipes-bsp/rkbin/rockchip-rkbin-optee-os_git.bb
index 6d25368d3392c29438d5ff34c621552633885f1b..7858688b23679d67df5ac2739312ef83b677af6b 100644
--- a/recipes-bsp/rkbin/rockchip-rkbin-optee-os_git.bb
+++ b/recipes-bsp/rkbin/rockchip-rkbin-optee-os_git.bb
@@ -4,24 +4,42 @@ require rockchip-rkbin.inc
PROVIDES += "optee-os"
-do_deploy:rk3308() {
- # Prebuilt OPTEE-OS
- install -m 644 ${S}/bin/rk33/rk3308_bl32_v*.bin ${DEPLOYDIR}/tee-rk3308.bin
-}
+RKBIN_BINDIR:rk3308 ?= "bin/rk33/"
+RKBIN_BINVERS:rk3308 ?= "v2.08"
+RKBIN_BINFILE:rk3308 ?= "rk3308_bl32_${RKBIN_BINVERS}.bin"
+RKBIN_DEPLOY_FILENAME:rk3308 ?= "tee-rk3308.bin"
+RKBIN_BINVERS_RK356x ?= "v2.14"
+RKBIN_BINDIR:rk3566 ?= "bin/rk35/"
+RKBIN_BINVERS:rk3566 ?= "${RKBIN_BINVERS_RK356x}"
# NOTE: the following are not typos
# the rk3566 uses the same bl32 as the rk3568
-do_deploy:rk3566() {
- # Prebuilt OPTEE-OS
- install -m 644 ${S}/bin/rk35/rk3568_bl32_v*.bin ${DEPLOYDIR}/tee-rk3566.bin
-}
+RKBIN_BINFILE:rk3566 ?= "rk3568_bl32_${RKBIN_BINVERS}.bin"
+RKBIN_DEPLOY_FILENAME:rk3566 ?= "tee-rk3566.bin"
-do_deploy:rk3568() {
- # Prebuilt OPTEE-OS
- install -m 644 ${S}/bin/rk35/rk3568_bl32_v*.bin ${DEPLOYDIR}/tee-rk3568.bin
-}
+RKBIN_BINDIR:rk3568 ?= "bin/rk35/"
+RKBIN_BINVERS:rk3568 ?= "${RKBIN_BINVERS_RK356x}"
+RKBIN_BINFILE:rk3568 ?= "rk3568_bl32_${RKBIN_BINVERS}.bin"
+RKBIN_DEPLOY_FILENAME:rk3568 ?= "tee-rk3568.bin"
+
+RKBIN_BINDIR:rk3588s ?= "bin/rk35/"
+RKBIN_BINVERS:rk3588s ?= "v1.17"
+RKBIN_BINFILE:rk3588s ?= "rk3588_bl32_${RKBIN_BINVERS}.bin"
+RKBIN_DEPLOY_FILENAME:rk3588s ?= "tee-rk3588.bin"
+
+do_deploy() {
+ if [ -z "${RKBIN_BINDIR}" ]; then
+ bbfatal "Non-empty RKBIN_BINDIR:<MACHINE> required!"
+ fi
+
+ if [ -z "${RKBIN_BINFILE}" ]; then
+ bbfatal "Non-empty RKBIN_BINFILE:<MACHINE> required!"
+ fi
+
+ if [ -z "${RKBIN_DEPLOY_FILENAME}" ]; then
+ bbfatal "Non-empty RKBIN_DEPLOY_FILENAME:<MACHINE> required!"
+ fi
-do_deploy:rk3588s() {
# Prebuilt OPTEE-OS
- install -m 644 ${S}/bin/rk35/rk3588_bl32_v*.bin ${DEPLOYDIR}/tee-rk3588.bin
+ install -m 644 ${S}/${RKBIN_BINDIR}${RKBIN_BINFILE} ${DEPLOYDIR}/${RKBIN_DEPLOY_FILENAME}
}
--
2.49.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* [meta-rockchip PATCH v3 7/9] bsp: rkbin: tf-a: factor out do_deploy to be SoC-agnostic
2025-05-05 14:20 [meta-rockchip PATCH v3 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
` (5 preceding siblings ...)
2025-05-05 14:20 ` [meta-rockchip PATCH v3 6/9] bsp: rkbin: optee-os: " Quentin Schulz
@ 2025-05-05 14:20 ` Quentin Schulz
2025-05-05 14:20 ` [meta-rockchip PATCH v3 8/9] bsp: rkbin: factor out do_deploy and RKBIN_BINDIR variable Quentin Schulz
` (2 subsequent siblings)
9 siblings, 0 replies; 11+ messages in thread
From: Quentin Schulz @ 2025-05-05 14:20 UTC (permalink / raw)
To: yocto-patches; +Cc: Quentin Schulz
From: Quentin Schulz <quentin.schulz@cherry.de>
The do_deploy task is essentially the same for all SoCs, install a file
from a specific path to another one.
No magic involved, so let's rather have one generic do_deploy task. For
this to work nicely, we check that all necessary variables are set and
notify the developer otherwise. This may be useful whenever a new SoC
will be supported by this recipe.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
recipes-bsp/rkbin/rockchip-rkbin-tf-a_git.bb | 46 +++++++++++++++++++---------
1 file changed, 32 insertions(+), 14 deletions(-)
diff --git a/recipes-bsp/rkbin/rockchip-rkbin-tf-a_git.bb b/recipes-bsp/rkbin/rockchip-rkbin-tf-a_git.bb
index 0ed28a2f18daae280fe38e6939f1b4742b29a778..a515cf8cc01967b0bf23369edebf2061a3c0f877 100644
--- a/recipes-bsp/rkbin/rockchip-rkbin-tf-a_git.bb
+++ b/recipes-bsp/rkbin/rockchip-rkbin-tf-a_git.bb
@@ -4,24 +4,42 @@ require rockchip-rkbin.inc
PROVIDES += "trusted-firmware-a"
-do_deploy:rk3308() {
- # Prebuilt TF-A
- install -m 644 ${S}/bin/rk33/rk3308_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3308.elf
-}
+RKBIN_BINDIR:rk3308 ?= "bin/rk33/"
+RKBIN_BINVERS:rk3308 ?= "v2.26"
+RKBIN_BINFILE:rk3308 ?= "rk3308_bl31_${RKBIN_BINVERS}.elf"
+RKBIN_DEPLOY_FILENAME:rk3308 ?= "bl31-rk3308.elf"
+RKBIN_BINVERS_RK356x ?= "v1.44"
+RKBIN_BINDIR:rk3566 ?= "bin/rk35/"
+RKBIN_BINVERS:rk3566 ?= "${RKBIN_BINVERS_RK356x}"
# NOTE: the following are not typos
# the rk3566 uses the same bl31 as the rk3568
-do_deploy:rk3566() {
- # Prebuilt TF-A
- install -m 644 ${S}/bin/rk35/rk3568_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3566.elf
-}
+RKBIN_BINFILE:rk3566 ?= "rk3568_bl31_${RKBIN_BINVERS}.elf"
+RKBIN_DEPLOY_FILENAME:rk3566 ?= "bl31-rk3566.elf"
-do_deploy:rk3568() {
- # Prebuilt TF-A
- install -m 644 ${S}/bin/rk35/rk3568_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3568.elf
-}
+RKBIN_BINDIR:rk3568 ?= "bin/rk35/"
+RKBIN_BINVERS:rk3568 ?= "${RKBIN_BINVERS_RK356x}"
+RKBIN_BINFILE:rk3568 ?= "rk3568_bl31_${RKBIN_BINVERS}.elf"
+RKBIN_DEPLOY_FILENAME:rk3568 ?= "bl31-rk3568.elf"
+
+RKBIN_BINDIR:rk3588s ?= "bin/rk35/"
+RKBIN_BINVERS:rk3588s ?= "v1.47"
+RKBIN_BINFILE:rk3588s ?= "rk3588_bl31_${RKBIN_BINVERS}.elf"
+RKBIN_DEPLOY_FILENAME:rk3588s ?= "bl31-rk3588.elf"
+
+do_deploy() {
+ if [ -z "${RKBIN_BINDIR}" ]; then
+ bbfatal "Non-empty RKBIN_BINDIR:<MACHINE> required!"
+ fi
+
+ if [ -z "${RKBIN_BINFILE}" ]; then
+ bbfatal "Non-empty RKBIN_BINFILE:<MACHINE> required!"
+ fi
+
+ if [ -z "${RKBIN_DEPLOY_FILENAME}" ]; then
+ bbfatal "Non-empty RKBIN_DEPLOY_FILENAME:<MACHINE> required!"
+ fi
-do_deploy:rk3588s() {
# Prebuilt TF-A
- install -m 644 ${S}/bin/rk35/rk3588_bl31_v*.elf ${DEPLOYDIR}/bl31-rk3588.elf
+ install -m 644 ${S}/${RKBIN_BINDIR}${RKBIN_BINFILE} ${DEPLOYDIR}/${RKBIN_DEPLOY_FILENAME}
}
--
2.49.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* [meta-rockchip PATCH v3 8/9] bsp: rkbin: factor out do_deploy and RKBIN_BINDIR variable
2025-05-05 14:20 [meta-rockchip PATCH v3 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
` (6 preceding siblings ...)
2025-05-05 14:20 ` [meta-rockchip PATCH v3 7/9] bsp: rkbin: tf-a: " Quentin Schulz
@ 2025-05-05 14:20 ` Quentin Schulz
2025-05-05 14:20 ` [meta-rockchip PATCH v3 9/9] bsp: rkbin: bump to latest commit in master branch Quentin Schulz
2025-05-26 16:22 ` [yocto-patches] [meta-rockchip PATCH v3 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Trevor Woerner
9 siblings, 0 replies; 11+ messages in thread
From: Quentin Schulz @ 2025-05-05 14:20 UTC (permalink / raw)
To: yocto-patches; +Cc: Quentin Schulz
From: Quentin Schulz <quentin.schulz@cherry.de>
do_deploy is now identical for all recipes including rockchip-rkbin.inc
so let's simply move it to the .inc file to avoid duplication.
While at it, RKBIN_BINDIR is also identical so can also be moved to the
.inc, so do it.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb | 21 ---------------------
recipes-bsp/rkbin/rockchip-rkbin-optee-os_git.bb | 21 ---------------------
recipes-bsp/rkbin/rockchip-rkbin-tf-a_git.bb | 21 ---------------------
recipes-bsp/rkbin/rockchip-rkbin.inc | 19 ++++++++++++++++++-
4 files changed, 18 insertions(+), 64 deletions(-)
diff --git a/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb b/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb
index 5b049f9a2b77a77d8ea44268a1f47c60659e16d1..7f1e82081ed2925f386a1cee46ab62c549f8b5fa 100644
--- a/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb
+++ b/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb
@@ -2,22 +2,18 @@ DESCRIPTION = "Rockchip Firmware for DDR init (TPL in U-Boot terms)"
require rockchip-rkbin.inc
-RKBIN_BINDIR:rk3308 ?= "bin/rk33/"
RKBIN_BINVERS:rk3308 ?= "v2.10"
RKBIN_BINFILE:rk3308 ?= "rk3308_ddr_589MHz_uart4_m0_${RKBIN_BINVERS}.bin"
RKBIN_DEPLOY_FILENAME:rk3308 ?= "ddr-rk3308.bin"
-RKBIN_BINDIR:rk3566 ?= "bin/rk35/"
RKBIN_BINVERS:rk3566 ?= "v1.23"
RKBIN_BINFILE:rk3566 ?= "rk3566_ddr_1056MHz_${RKBIN_BINVERS}.bin"
RKBIN_DEPLOY_FILENAME:rk3566 ?= "ddr-rk3566.bin"
-RKBIN_BINDIR:rk3568 ?= "bin/rk35/"
RKBIN_BINVERS:rk3568 ?= "v1.23"
RKBIN_BINFILE:rk3568 ?= "rk3568_ddr_1560MHz_${RKBIN_BINVERS}.bin"
RKBIN_DEPLOY_FILENAME:rk3568 ?= "ddr-rk3568.bin"
-RKBIN_BINDIR:rk3588s ?= "bin/rk35/"
RKBIN_BINVERS:rk3588s ?= "v1.18"
RKBIN_BINFILE:rk3588s ?= "rk3588_ddr_lp4_2112MHz_lp5_2400MHz_${RKBIN_BINVERS}.bin"
RKBIN_DEPLOY_FILENAME:rk3588s ?= "ddr-rk3588.bin"
@@ -27,23 +23,6 @@ DDRBIN_TOOL_SOC:rk3308 ?= "rk3308"
DDRBIN_TOOL_SOC:rk3566 ?= "rk356x"
DDRBIN_TOOL_SOC:rk3588s ?= "rk3588"
-do_deploy() {
- if [ -z "${RKBIN_BINDIR}" ]; then
- bbfatal "Non-empty RKBIN_BINDIR:<MACHINE> required!"
- fi
-
- if [ -z "${RKBIN_BINFILE}" ]; then
- bbfatal "Non-empty RKBIN_BINFILE:<MACHINE> required!"
- fi
-
- if [ -z "${RKBIN_DEPLOY_FILENAME}" ]; then
- bbfatal "Non-empty RKBIN_DEPLOY_FILENAME:<MACHINE> required!"
- fi
-
- # Prebuilt U-Boot TPL (DDR init)
- install -m 644 ${S}/${RKBIN_BINDIR}${RKBIN_BINFILE} ${DEPLOYDIR}/${RKBIN_DEPLOY_FILENAME}
-}
-
# The following is only required if DDR bin blob needs to be modified
# (e.g. different UART controller, UART mux, or baudrate)
# RKBIN_DDR_RECONFIGURE = "1" if it needs to be modified, all below logic needs to
diff --git a/recipes-bsp/rkbin/rockchip-rkbin-optee-os_git.bb b/recipes-bsp/rkbin/rockchip-rkbin-optee-os_git.bb
index 7858688b23679d67df5ac2739312ef83b677af6b..b534e6359645cd7082c9ac69036de15ce8813b3a 100644
--- a/recipes-bsp/rkbin/rockchip-rkbin-optee-os_git.bb
+++ b/recipes-bsp/rkbin/rockchip-rkbin-optee-os_git.bb
@@ -4,42 +4,21 @@ require rockchip-rkbin.inc
PROVIDES += "optee-os"
-RKBIN_BINDIR:rk3308 ?= "bin/rk33/"
RKBIN_BINVERS:rk3308 ?= "v2.08"
RKBIN_BINFILE:rk3308 ?= "rk3308_bl32_${RKBIN_BINVERS}.bin"
RKBIN_DEPLOY_FILENAME:rk3308 ?= "tee-rk3308.bin"
RKBIN_BINVERS_RK356x ?= "v2.14"
-RKBIN_BINDIR:rk3566 ?= "bin/rk35/"
RKBIN_BINVERS:rk3566 ?= "${RKBIN_BINVERS_RK356x}"
# NOTE: the following are not typos
# the rk3566 uses the same bl32 as the rk3568
RKBIN_BINFILE:rk3566 ?= "rk3568_bl32_${RKBIN_BINVERS}.bin"
RKBIN_DEPLOY_FILENAME:rk3566 ?= "tee-rk3566.bin"
-RKBIN_BINDIR:rk3568 ?= "bin/rk35/"
RKBIN_BINVERS:rk3568 ?= "${RKBIN_BINVERS_RK356x}"
RKBIN_BINFILE:rk3568 ?= "rk3568_bl32_${RKBIN_BINVERS}.bin"
RKBIN_DEPLOY_FILENAME:rk3568 ?= "tee-rk3568.bin"
-RKBIN_BINDIR:rk3588s ?= "bin/rk35/"
RKBIN_BINVERS:rk3588s ?= "v1.17"
RKBIN_BINFILE:rk3588s ?= "rk3588_bl32_${RKBIN_BINVERS}.bin"
RKBIN_DEPLOY_FILENAME:rk3588s ?= "tee-rk3588.bin"
-
-do_deploy() {
- if [ -z "${RKBIN_BINDIR}" ]; then
- bbfatal "Non-empty RKBIN_BINDIR:<MACHINE> required!"
- fi
-
- if [ -z "${RKBIN_BINFILE}" ]; then
- bbfatal "Non-empty RKBIN_BINFILE:<MACHINE> required!"
- fi
-
- if [ -z "${RKBIN_DEPLOY_FILENAME}" ]; then
- bbfatal "Non-empty RKBIN_DEPLOY_FILENAME:<MACHINE> required!"
- fi
-
- # Prebuilt OPTEE-OS
- install -m 644 ${S}/${RKBIN_BINDIR}${RKBIN_BINFILE} ${DEPLOYDIR}/${RKBIN_DEPLOY_FILENAME}
-}
diff --git a/recipes-bsp/rkbin/rockchip-rkbin-tf-a_git.bb b/recipes-bsp/rkbin/rockchip-rkbin-tf-a_git.bb
index a515cf8cc01967b0bf23369edebf2061a3c0f877..3ad0f7cffa077cfbc88b08a319c181e8a8c5a7c1 100644
--- a/recipes-bsp/rkbin/rockchip-rkbin-tf-a_git.bb
+++ b/recipes-bsp/rkbin/rockchip-rkbin-tf-a_git.bb
@@ -4,42 +4,21 @@ require rockchip-rkbin.inc
PROVIDES += "trusted-firmware-a"
-RKBIN_BINDIR:rk3308 ?= "bin/rk33/"
RKBIN_BINVERS:rk3308 ?= "v2.26"
RKBIN_BINFILE:rk3308 ?= "rk3308_bl31_${RKBIN_BINVERS}.elf"
RKBIN_DEPLOY_FILENAME:rk3308 ?= "bl31-rk3308.elf"
RKBIN_BINVERS_RK356x ?= "v1.44"
-RKBIN_BINDIR:rk3566 ?= "bin/rk35/"
RKBIN_BINVERS:rk3566 ?= "${RKBIN_BINVERS_RK356x}"
# NOTE: the following are not typos
# the rk3566 uses the same bl31 as the rk3568
RKBIN_BINFILE:rk3566 ?= "rk3568_bl31_${RKBIN_BINVERS}.elf"
RKBIN_DEPLOY_FILENAME:rk3566 ?= "bl31-rk3566.elf"
-RKBIN_BINDIR:rk3568 ?= "bin/rk35/"
RKBIN_BINVERS:rk3568 ?= "${RKBIN_BINVERS_RK356x}"
RKBIN_BINFILE:rk3568 ?= "rk3568_bl31_${RKBIN_BINVERS}.elf"
RKBIN_DEPLOY_FILENAME:rk3568 ?= "bl31-rk3568.elf"
-RKBIN_BINDIR:rk3588s ?= "bin/rk35/"
RKBIN_BINVERS:rk3588s ?= "v1.47"
RKBIN_BINFILE:rk3588s ?= "rk3588_bl31_${RKBIN_BINVERS}.elf"
RKBIN_DEPLOY_FILENAME:rk3588s ?= "bl31-rk3588.elf"
-
-do_deploy() {
- if [ -z "${RKBIN_BINDIR}" ]; then
- bbfatal "Non-empty RKBIN_BINDIR:<MACHINE> required!"
- fi
-
- if [ -z "${RKBIN_BINFILE}" ]; then
- bbfatal "Non-empty RKBIN_BINFILE:<MACHINE> required!"
- fi
-
- if [ -z "${RKBIN_DEPLOY_FILENAME}" ]; then
- bbfatal "Non-empty RKBIN_DEPLOY_FILENAME:<MACHINE> required!"
- fi
-
- # Prebuilt TF-A
- install -m 644 ${S}/${RKBIN_BINDIR}${RKBIN_BINFILE} ${DEPLOYDIR}/${RKBIN_DEPLOY_FILENAME}
-}
diff --git a/recipes-bsp/rkbin/rockchip-rkbin.inc b/recipes-bsp/rkbin/rockchip-rkbin.inc
index 9264db9048e31b7dae650bdc8e31009f7f4cf404..8a6a9f44ce908934dd58fc3c37d338a43aa00bff 100644
--- a/recipes-bsp/rkbin/rockchip-rkbin.inc
+++ b/recipes-bsp/rkbin/rockchip-rkbin.inc
@@ -25,8 +25,25 @@ do_install() {
PACKAGES = "${PN}"
ALLOW_EMPTY:${PN} = "1"
+RKBIN_BINDIR:rk3308 ?= "bin/rk33/"
+RKBIN_BINDIR:rk3566 ?= "bin/rk35/"
+RKBIN_BINDIR:rk3568 ?= "bin/rk35/"
+RKBIN_BINDIR:rk3588s ?= "bin/rk35/"
+
do_deploy() {
- bbfatal "COMPATIBLE_MACHINE requires a corresponding do_deploy:<MACHINE>() override"
+ if [ -z "${RKBIN_BINDIR}" ]; then
+ bbfatal "Non-empty RKBIN_BINDIR:<MACHINE> required!"
+ fi
+
+ if [ -z "${RKBIN_BINFILE}" ]; then
+ bbfatal "Non-empty RKBIN_BINFILE:<MACHINE> required!"
+ fi
+
+ if [ -z "${RKBIN_DEPLOY_FILENAME}" ]; then
+ bbfatal "Non-empty RKBIN_DEPLOY_FILENAME:<MACHINE> required!"
+ fi
+
+ install -m 644 ${S}/${RKBIN_BINDIR}${RKBIN_BINFILE} ${DEPLOYDIR}/${RKBIN_DEPLOY_FILENAME}
}
addtask deploy after do_install
--
2.49.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* [meta-rockchip PATCH v3 9/9] bsp: rkbin: bump to latest commit in master branch
2025-05-05 14:20 [meta-rockchip PATCH v3 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
` (7 preceding siblings ...)
2025-05-05 14:20 ` [meta-rockchip PATCH v3 8/9] bsp: rkbin: factor out do_deploy and RKBIN_BINDIR variable Quentin Schulz
@ 2025-05-05 14:20 ` Quentin Schulz
2025-05-26 16:22 ` [yocto-patches] [meta-rockchip PATCH v3 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Trevor Woerner
9 siblings, 0 replies; 11+ messages in thread
From: Quentin Schulz @ 2025-05-05 14:20 UTC (permalink / raw)
To: yocto-patches; +Cc: Quentin Schulz
From: Quentin Schulz <quentin.schulz@cherry.de>
This bumps rkbin to be using the last public blobs.
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
---
recipes-bsp/rkbin/rockchip-rkbin-optee-os_git.bb | 6 +++---
recipes-bsp/rkbin/rockchip-rkbin-tf-a_git.bb | 2 +-
recipes-bsp/rkbin/rockchip-rkbin.inc | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/recipes-bsp/rkbin/rockchip-rkbin-optee-os_git.bb b/recipes-bsp/rkbin/rockchip-rkbin-optee-os_git.bb
index b534e6359645cd7082c9ac69036de15ce8813b3a..0f3c9277a61ec9798f78107fb2f402b8a792f81d 100644
--- a/recipes-bsp/rkbin/rockchip-rkbin-optee-os_git.bb
+++ b/recipes-bsp/rkbin/rockchip-rkbin-optee-os_git.bb
@@ -4,11 +4,11 @@ require rockchip-rkbin.inc
PROVIDES += "optee-os"
-RKBIN_BINVERS:rk3308 ?= "v2.08"
+RKBIN_BINVERS:rk3308 ?= "v2.09"
RKBIN_BINFILE:rk3308 ?= "rk3308_bl32_${RKBIN_BINVERS}.bin"
RKBIN_DEPLOY_FILENAME:rk3308 ?= "tee-rk3308.bin"
-RKBIN_BINVERS_RK356x ?= "v2.14"
+RKBIN_BINVERS_RK356x ?= "v2.15"
RKBIN_BINVERS:rk3566 ?= "${RKBIN_BINVERS_RK356x}"
# NOTE: the following are not typos
# the rk3566 uses the same bl32 as the rk3568
@@ -19,6 +19,6 @@ RKBIN_BINVERS:rk3568 ?= "${RKBIN_BINVERS_RK356x}"
RKBIN_BINFILE:rk3568 ?= "rk3568_bl32_${RKBIN_BINVERS}.bin"
RKBIN_DEPLOY_FILENAME:rk3568 ?= "tee-rk3568.bin"
-RKBIN_BINVERS:rk3588s ?= "v1.17"
+RKBIN_BINVERS:rk3588s ?= "v1.19"
RKBIN_BINFILE:rk3588s ?= "rk3588_bl32_${RKBIN_BINVERS}.bin"
RKBIN_DEPLOY_FILENAME:rk3588s ?= "tee-rk3588.bin"
diff --git a/recipes-bsp/rkbin/rockchip-rkbin-tf-a_git.bb b/recipes-bsp/rkbin/rockchip-rkbin-tf-a_git.bb
index 3ad0f7cffa077cfbc88b08a319c181e8a8c5a7c1..f51d9e934ab52b5ee7f356e7c3c5120513c2f0f1 100644
--- a/recipes-bsp/rkbin/rockchip-rkbin-tf-a_git.bb
+++ b/recipes-bsp/rkbin/rockchip-rkbin-tf-a_git.bb
@@ -19,6 +19,6 @@ RKBIN_BINVERS:rk3568 ?= "${RKBIN_BINVERS_RK356x}"
RKBIN_BINFILE:rk3568 ?= "rk3568_bl31_${RKBIN_BINVERS}.elf"
RKBIN_DEPLOY_FILENAME:rk3568 ?= "bl31-rk3568.elf"
-RKBIN_BINVERS:rk3588s ?= "v1.47"
+RKBIN_BINVERS:rk3588s ?= "v1.48"
RKBIN_BINFILE:rk3588s ?= "rk3588_bl31_${RKBIN_BINVERS}.elf"
RKBIN_DEPLOY_FILENAME:rk3588s ?= "bl31-rk3588.elf"
diff --git a/recipes-bsp/rkbin/rockchip-rkbin.inc b/recipes-bsp/rkbin/rockchip-rkbin.inc
index 8a6a9f44ce908934dd58fc3c37d338a43aa00bff..79149c5bebc3c59e337b303f24274ed1925da5ce 100644
--- a/recipes-bsp/rkbin/rockchip-rkbin.inc
+++ b/recipes-bsp/rkbin/rockchip-rkbin.inc
@@ -1,5 +1,5 @@
SRC_URI = "git://github.com/rockchip-linux/rkbin;protocol=https;branch=master"
-SRCREV = "7c35e21a8529b3758d1f051d1a5dc62aae934b2b"
+SRCREV = "f43a462e7a1429a9d407ae52b4745033034a6cf9"
LICENSE = "Proprietary"
LIC_FILES_CHKSUM = "file://LICENSE;md5=11e3673115959bf596feaaa6ea7ce9a5"
--
2.49.0
^ permalink raw reply related [flat|nested] 11+ messages in thread* Re: [yocto-patches] [meta-rockchip PATCH v3 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin
2025-05-05 14:20 [meta-rockchip PATCH v3 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
` (8 preceding siblings ...)
2025-05-05 14:20 ` [meta-rockchip PATCH v3 9/9] bsp: rkbin: bump to latest commit in master branch Quentin Schulz
@ 2025-05-26 16:22 ` Trevor Woerner
9 siblings, 0 replies; 11+ messages in thread
From: Trevor Woerner @ 2025-05-26 16:22 UTC (permalink / raw)
To: yocto-patches; +Cc: Quentin Schulz
On Mon 2025-05-05 @ 04:20:36 PM, Quentin Schulz via lists.yoctoproject.org wrote:
> This simplifies rockchip-rkbin-ddr, rockchip-rkbin-tf-a and
> rockchip-rkbin-optee-os do_deploy to only have one do_deploy task common
> to all supported SoC instead of having to add a new task override for
> each new SoC. It does require to set a few more variables though.
> Thanks to the variable abstraction, we can now move all of do_deploy
> into the rockchip-rkbin.inc file.
>
> The downside is that the version for OPTEE-OS and TF-A are now hardcoded
> in recipes, so a bump of rkbin requires to bump those as well.
>
> Additionally, this finally allows to customize the DDR binary blob using
> Rockchip's ddrbin_tool.py tool. This is typically useful if your board
> isn't following Rockchip's HW reference design, e.g. using a different
> UART controller or pins for serial output, or using a baudrate different
> from the default of 1500000.
>
> Finally it bumps OP-TEE OS, TF-A and DDR bin recipes to use the latest
> commit in rkbin git repo.
>
> I am not too fond of using a file as input for the customization, but
> this is what ddrbin_tool.py uses and there are possibly too many
> corner-cases to handle by using fine-grained variables. So for now, I
> decided to go with that but that is for sure not the only possible
> implementation!
>
> Note that the bump commit wasn't tested.
>
> Note that I plan on backporting all but the factoring out and rkbin
> bump patches to scarthgap (and I assume styhead too). The factoring out
> patches would break backward compatibility if someone appends to the
> do_deploy:<override> task. The last patch could be merged but there's no
> absolute need for it?
>
> Lastly, the patch about customizing DDR bin needs to be modified before
> being backported as it uses UNPACKDIR which doesn't exist in scarthgap.
> The logic should be safe to use with ${S} (for scarthgap) though!
>
> @Trevor, maybe you can check if that would fix your issue with the
> RK3308 DDR blob you wanted to keep on that outdated version which is one
> of the last versions where the UART you want to use exists? It'd be nice
> to get rid of the rk3308-specific recipes I believe :)
>
> Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
> ---
> Changes in v3:
> - fixed tee- prefix instead of bl31- in rockchip-ddrbin-tf-a recipe,
> - build tested with bitbake virtual/bootloader,
> - Link to v2: https://lore.kernel.org/r/20250418-ddrbin-custom-v2-0-700828527faf@cherry.de
>
> Changes in v2:
> - factored out rockchip-rkbin-optee-os and rockchip-rkbin-tf-a as well,
> - moved do_deploy (and RKBIN_BINDIR) to rockchip-rkbin.inc,
> - removed bbfatal for the version variable as it's not used directly,
> only through another variable, which can be overwritten, so it doesn't
> make sense to enforce it if it's not necessarily used,
> - renamed variables to be recipe-agnostic (e.g. RKBIN_ instead of
> DDRBIN_ for the prefix) so they can be used from the .inc in the
> do_deploy task,
> - renamed ddrbin_params.txt into ddrbin_param.txt to match the original
> filename in rkbin git repo,
> - Link to v1: https://lore.kernel.org/r/20250311-ddrbin-custom-v1-0-e5c994ac25e1@cherry.de
>
> ---
> Quentin Schulz (9):
> bsp: rkbin: ddr: store directory path for the DDR bin blob in a variable
> bsp: rkbin: ddr: make deployed name configurable
> bsp: rkbin: add native recipe for tools (ddrbin_tool.py)
> bsp: rkbin: ddr: allow to customize DDR bin blob
> bsp: rkbin: ddr: factor out do_deploy to be SoC-agnostic
> bsp: rkbin: optee-os: factor out do_deploy to be SoC-agnostic
> bsp: rkbin: tf-a: factor out do_deploy to be SoC-agnostic
> bsp: rkbin: factor out do_deploy and RKBIN_BINDIR variable
> bsp: rkbin: bump to latest commit in master branch
>
> README | 20 +++++-
> recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb | 83 ++++++++++++++++--------
> recipes-bsp/rkbin/rockchip-rkbin-native_git.bb | 21 ++++++
> recipes-bsp/rkbin/rockchip-rkbin-optee-os_git.bb | 29 ++++-----
> recipes-bsp/rkbin/rockchip-rkbin-tf-a_git.bb | 29 ++++-----
> recipes-bsp/rkbin/rockchip-rkbin.inc | 21 +++++-
> 6 files changed, 141 insertions(+), 62 deletions(-)
> ---
> base-commit: 0aba79e47951b049bcdd39e07f660c665e257393
> change-id: 20250311-ddrbin-custom-f83918406e3a
Applied to meta-rockchip, master branch. Thanks!
^ permalink raw reply [flat|nested] 11+ messages in thread