* [meta-rockchip PATCH v2 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin
@ 2025-04-18 14:50 Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 1/9] bsp: rkbin: ddr: store directory path for the DDR bin blob in a variable Quentin Schulz
` (9 more replies)
0 siblings, 10 replies; 12+ messages in thread
From: Quentin Schulz @ 2025-04-18 14:50 UTC (permalink / raw)
To: yocto-patches; +Cc: Quentin Schulz
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 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: 1d920b9c411bc5025a55eccb91cb7ab70faeb0bd
change-id: 20250311-ddrbin-custom-f83918406e3a
Best regards,
--
Quentin Schulz <quentin.schulz@cherry.de>
^ permalink raw reply [flat|nested] 12+ messages in thread
* [meta-rockchip PATCH v2 1/9] bsp: rkbin: ddr: store directory path for the DDR bin blob in a variable
2025-04-18 14:50 [meta-rockchip PATCH v2 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
@ 2025-04-18 14:50 ` Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 2/9] bsp: rkbin: ddr: make deployed name configurable Quentin Schulz
` (8 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Quentin Schulz @ 2025-04-18 14:50 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] 12+ messages in thread
* [meta-rockchip PATCH v2 2/9] bsp: rkbin: ddr: make deployed name configurable
2025-04-18 14:50 [meta-rockchip PATCH v2 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 1/9] bsp: rkbin: ddr: store directory path for the DDR bin blob in a variable Quentin Schulz
@ 2025-04-18 14:50 ` Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 3/9] bsp: rkbin: add native recipe for tools (ddrbin_tool.py) Quentin Schulz
` (7 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Quentin Schulz @ 2025-04-18 14:50 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] 12+ messages in thread
* [meta-rockchip PATCH v2 3/9] bsp: rkbin: add native recipe for tools (ddrbin_tool.py)
2025-04-18 14:50 [meta-rockchip PATCH v2 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 1/9] bsp: rkbin: ddr: store directory path for the DDR bin blob in a variable Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 2/9] bsp: rkbin: ddr: make deployed name configurable Quentin Schulz
@ 2025-04-18 14:50 ` Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 4/9] bsp: rkbin: ddr: allow to customize DDR bin blob Quentin Schulz
` (6 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Quentin Schulz @ 2025-04-18 14:50 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] 12+ messages in thread
* [meta-rockchip PATCH v2 4/9] bsp: rkbin: ddr: allow to customize DDR bin blob
2025-04-18 14:50 [meta-rockchip PATCH v2 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
` (2 preceding siblings ...)
2025-04-18 14:50 ` [meta-rockchip PATCH v2 3/9] bsp: rkbin: add native recipe for tools (ddrbin_tool.py) Quentin Schulz
@ 2025-04-18 14:50 ` Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 5/9] bsp: rkbin: ddr: factor out do_deploy to be SoC-agnostic Quentin Schulz
` (5 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Quentin Schulz @ 2025-04-18 14:50 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] 12+ messages in thread
* [meta-rockchip PATCH v2 5/9] bsp: rkbin: ddr: factor out do_deploy to be SoC-agnostic
2025-04-18 14:50 [meta-rockchip PATCH v2 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
` (3 preceding siblings ...)
2025-04-18 14:50 ` [meta-rockchip PATCH v2 4/9] bsp: rkbin: ddr: allow to customize DDR bin blob Quentin Schulz
@ 2025-04-18 14:50 ` Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 6/9] bsp: rkbin: optee-os: " Quentin Schulz
` (4 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Quentin Schulz @ 2025-04-18 14:50 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] 12+ messages in thread
* [meta-rockchip PATCH v2 6/9] bsp: rkbin: optee-os: factor out do_deploy to be SoC-agnostic
2025-04-18 14:50 [meta-rockchip PATCH v2 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
` (4 preceding siblings ...)
2025-04-18 14:50 ` [meta-rockchip PATCH v2 5/9] bsp: rkbin: ddr: factor out do_deploy to be SoC-agnostic Quentin Schulz
@ 2025-04-18 14:50 ` Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 7/9] bsp: rkbin: tf-a: " Quentin Schulz
` (3 subsequent siblings)
9 siblings, 0 replies; 12+ messages in thread
From: Quentin Schulz @ 2025-04-18 14:50 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] 12+ messages in thread
* [meta-rockchip PATCH v2 7/9] bsp: rkbin: tf-a: factor out do_deploy to be SoC-agnostic
2025-04-18 14:50 [meta-rockchip PATCH v2 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
` (5 preceding siblings ...)
2025-04-18 14:50 ` [meta-rockchip PATCH v2 6/9] bsp: rkbin: optee-os: " Quentin Schulz
@ 2025-04-18 14:50 ` Quentin Schulz
2025-04-29 8:40 ` Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 8/9] bsp: rkbin: factor out do_deploy and RKBIN_BINDIR variable Quentin Schulz
` (2 subsequent siblings)
9 siblings, 1 reply; 12+ messages in thread
From: Quentin Schulz @ 2025-04-18 14:50 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..e6c3199c9fc06aa88173aaa42f2bc8cd365551a8 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 ?= "tee-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 ?= "tee-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 ?= "tee-rk3568.elf"
+
+RKBIN_BINDIR:rk3588s ?= "bin/rk35/"
+RKBIN_BINVERS:rk3588s ?= "v1.47"
+RKBIN_BINFILE:rk3588s ?= "rk3588_bl31_${RKBIN_BINVERS}.elf"
+RKBIN_DEPLOY_FILENAME:rk3588s ?= "tee-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] 12+ messages in thread
* [meta-rockchip PATCH v2 8/9] bsp: rkbin: factor out do_deploy and RKBIN_BINDIR variable
2025-04-18 14:50 [meta-rockchip PATCH v2 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
` (6 preceding siblings ...)
2025-04-18 14:50 ` [meta-rockchip PATCH v2 7/9] bsp: rkbin: tf-a: " Quentin Schulz
@ 2025-04-18 14:50 ` Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 9/9] bsp: rkbin: bump to latest commit in master branch Quentin Schulz
2025-04-28 20:32 ` [yocto-patches] [meta-rockchip PATCH v2 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Trevor Woerner
9 siblings, 0 replies; 12+ messages in thread
From: Quentin Schulz @ 2025-04-18 14:50 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 e6c3199c9fc06aa88173aaa42f2bc8cd365551a8..94dfd229c3b92613d9e5313bb8d3296f74cee6d1 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 ?= "tee-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 ?= "tee-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 ?= "tee-rk3568.elf"
-RKBIN_BINDIR:rk3588s ?= "bin/rk35/"
RKBIN_BINVERS:rk3588s ?= "v1.47"
RKBIN_BINFILE:rk3588s ?= "rk3588_bl31_${RKBIN_BINVERS}.elf"
RKBIN_DEPLOY_FILENAME:rk3588s ?= "tee-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] 12+ messages in thread
* [meta-rockchip PATCH v2 9/9] bsp: rkbin: bump to latest commit in master branch
2025-04-18 14:50 [meta-rockchip PATCH v2 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
` (7 preceding siblings ...)
2025-04-18 14:50 ` [meta-rockchip PATCH v2 8/9] bsp: rkbin: factor out do_deploy and RKBIN_BINDIR variable Quentin Schulz
@ 2025-04-18 14:50 ` Quentin Schulz
2025-04-28 20:32 ` [yocto-patches] [meta-rockchip PATCH v2 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Trevor Woerner
9 siblings, 0 replies; 12+ messages in thread
From: Quentin Schulz @ 2025-04-18 14:50 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 94dfd229c3b92613d9e5313bb8d3296f74cee6d1..98cc28465b4d8ea209c4425d23e7e07e4b83d147 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 ?= "tee-rk3568.elf"
-RKBIN_BINVERS:rk3588s ?= "v1.47"
+RKBIN_BINVERS:rk3588s ?= "v1.48"
RKBIN_BINFILE:rk3588s ?= "rk3588_bl31_${RKBIN_BINVERS}.elf"
RKBIN_DEPLOY_FILENAME:rk3588s ?= "tee-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] 12+ messages in thread
* Re: [yocto-patches] [meta-rockchip PATCH v2 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin
2025-04-18 14:50 [meta-rockchip PATCH v2 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
` (8 preceding siblings ...)
2025-04-18 14:50 ` [meta-rockchip PATCH v2 9/9] bsp: rkbin: bump to latest commit in master branch Quentin Schulz
@ 2025-04-28 20:32 ` Trevor Woerner
9 siblings, 0 replies; 12+ messages in thread
From: Trevor Woerner @ 2025-04-28 20:32 UTC (permalink / raw)
To: yocto-patches; +Cc: Quentin Schulz
On Fri 2025-04-18 @ 04:50:12 PM, Quentin Schulz via lists.yoctoproject.org wrote:
With this v2 I'm seeing build failures:
| binman: [Errno 2] No such file or directory: '/z/build-master/rockchip-nightly/build/tmp/deploy/images/rock-3a/bl31-rk3568.elf'
This happens with MACHINE:
- orangepi-5-plus
- radxa-zero-3e
- radxa-zero-3w
- rock-3a
- rock-5a
- rock-5b
- soquartz-model-a
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [meta-rockchip PATCH v2 7/9] bsp: rkbin: tf-a: factor out do_deploy to be SoC-agnostic
2025-04-18 14:50 ` [meta-rockchip PATCH v2 7/9] bsp: rkbin: tf-a: " Quentin Schulz
@ 2025-04-29 8:40 ` Quentin Schulz
0 siblings, 0 replies; 12+ messages in thread
From: Quentin Schulz @ 2025-04-29 8:40 UTC (permalink / raw)
To: Quentin Schulz, yocto-patches
Hi Trevor,
On 4/18/25 4:50 PM, Quentin Schulz wrote:
> 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..e6c3199c9fc06aa88173aaa42f2bc8cd365551a8 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 ?= "tee-rk3308.elf"
Someone clearly made an oopsie there :)
Should be bl31- instead of tee-.
Will send a v3 fixing that, sorry for the noise. Will test build with
U-Boot now instead of simply building rockchip-rkbin-* recipes :)
Cheers,
Quentin
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2025-04-29 8:40 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-18 14:50 [meta-rockchip PATCH v2 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 1/9] bsp: rkbin: ddr: store directory path for the DDR bin blob in a variable Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 2/9] bsp: rkbin: ddr: make deployed name configurable Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 3/9] bsp: rkbin: add native recipe for tools (ddrbin_tool.py) Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 4/9] bsp: rkbin: ddr: allow to customize DDR bin blob Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 5/9] bsp: rkbin: ddr: factor out do_deploy to be SoC-agnostic Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 6/9] bsp: rkbin: optee-os: " Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 7/9] bsp: rkbin: tf-a: " Quentin Schulz
2025-04-29 8:40 ` Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 8/9] bsp: rkbin: factor out do_deploy and RKBIN_BINDIR variable Quentin Schulz
2025-04-18 14:50 ` [meta-rockchip PATCH v2 9/9] bsp: rkbin: bump to latest commit in master branch Quentin Schulz
2025-04-28 20:32 ` [yocto-patches] [meta-rockchip PATCH v2 0/9] rkbin: factoring do_deploy, customize ddrbin and bump rkbin Trevor Woerner
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.