From patchwork Tue Mar 11 11:26:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 58655 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 465DEC28B2E for ; Tue, 11 Mar 2025 11:26:50 +0000 (UTC) Received: from smtp-42ae.mail.infomaniak.ch (smtp-42ae.mail.infomaniak.ch [84.16.66.174]) by mx.groups.io with SMTP id smtpd.web11.6694.1741692403679720986 for ; Tue, 11 Mar 2025 04:26:44 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 84.16.66.174, mailfrom: foss+yocto@0leil.net) Received: from smtp-3-0001.mail.infomaniak.ch (unknown [IPv6:2001:1600:4:17::246c]) by smtp-3-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4ZBs0f1ClFz2Pr; Tue, 11 Mar 2025 12:26:42 +0100 (CET) Received: from unknown by smtp-3-0001.mail.infomaniak.ch (Postfix) with ESMTPA id 4ZBs0d63nhz6RP; Tue, 11 Mar 2025 12:26:41 +0100 (CET) From: Quentin Schulz Date: Tue, 11 Mar 2025 12:26:30 +0100 Subject: [meta-rockchip PATCH 1/6] bsp: rkbin: ddr: store directory path for the DDR bin blob in a variable MIME-Version: 1.0 Message-Id: <20250311-ddrbin-custom-v1-1-e5c994ac25e1@cherry.de> References: <20250311-ddrbin-custom-v1-0-e5c994ac25e1@cherry.de> In-Reply-To: <20250311-ddrbin-custom-v1-0-e5c994ac25e1@cherry.de> To: yocto-patches@lists.yoctoproject.org Cc: Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 11 Mar 2025 11:26:50 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/yocto-patches/message/1183 From: Quentin Schulz 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 --- 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 } From patchwork Tue Mar 11 11:26:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 58658 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 681E0C35FF3 for ; Tue, 11 Mar 2025 11:26:50 +0000 (UTC) Received: from smtp-bc0e.mail.infomaniak.ch (smtp-bc0e.mail.infomaniak.ch [45.157.188.14]) by mx.groups.io with SMTP id smtpd.web11.6695.1741692404166061725 for ; Tue, 11 Mar 2025 04:26:44 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 45.157.188.14, mailfrom: foss+yocto@0leil.net) Received: from smtp-3-0001.mail.infomaniak.ch (unknown [IPv6:2001:1600:4:17::246c]) by smtp-3-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4ZBs0f3N6Bz1lf; Tue, 11 Mar 2025 12:26:42 +0100 (CET) Received: from unknown by smtp-3-0001.mail.infomaniak.ch (Postfix) with ESMTPA id 4ZBs0f17Vmz503; Tue, 11 Mar 2025 12:26:42 +0100 (CET) From: Quentin Schulz Date: Tue, 11 Mar 2025 12:26:31 +0100 Subject: [meta-rockchip PATCH 2/6] bsp: rkbin: ddr: make deployed name configurable MIME-Version: 1.0 Message-Id: <20250311-ddrbin-custom-v1-2-e5c994ac25e1@cherry.de> References: <20250311-ddrbin-custom-v1-0-e5c994ac25e1@cherry.de> In-Reply-To: <20250311-ddrbin-custom-v1-0-e5c994ac25e1@cherry.de> To: yocto-patches@lists.yoctoproject.org Cc: Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 11 Mar 2025 11:26:50 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/yocto-patches/message/1184 From: Quentin Schulz 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 --- 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} } From patchwork Tue Mar 11 11:26:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 58657 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6EEE7C35FF4 for ; Tue, 11 Mar 2025 11:26:50 +0000 (UTC) Received: from smtp-42ae.mail.infomaniak.ch (smtp-42ae.mail.infomaniak.ch [84.16.66.174]) by mx.groups.io with SMTP id smtpd.web10.6511.1741692404294889897 for ; Tue, 11 Mar 2025 04:26:44 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 84.16.66.174, mailfrom: foss+yocto@0leil.net) Received: from smtp-3-0001.mail.infomaniak.ch (smtp-3-0001.mail.infomaniak.ch [10.4.36.108]) by smtp-3-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4ZBs0f5gs9zyHy; Tue, 11 Mar 2025 12:26:42 +0100 (CET) Received: from unknown by smtp-3-0001.mail.infomaniak.ch (Postfix) with ESMTPA id 4ZBs0f3GfXz60W; Tue, 11 Mar 2025 12:26:42 +0100 (CET) From: Quentin Schulz Date: Tue, 11 Mar 2025 12:26:32 +0100 Subject: [meta-rockchip PATCH 3/6] bsp: rkbin: add native recipe for tools (ddrbin_tool.py) MIME-Version: 1.0 Message-Id: <20250311-ddrbin-custom-v1-3-e5c994ac25e1@cherry.de> References: <20250311-ddrbin-custom-v1-0-e5c994ac25e1@cherry.de> In-Reply-To: <20250311-ddrbin-custom-v1-0-e5c994ac25e1@cherry.de> To: yocto-patches@lists.yoctoproject.org Cc: Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 11 Mar 2025 11:26:50 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/yocto-patches/message/1185 From: Quentin Schulz 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 --- 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}" +} From patchwork Tue Mar 11 11:26:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 58660 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 58314C35FF1 for ; Tue, 11 Mar 2025 11:26:50 +0000 (UTC) Received: from smtp-190c.mail.infomaniak.ch (smtp-190c.mail.infomaniak.ch [185.125.25.12]) by mx.groups.io with SMTP id smtpd.web10.6512.1741692404536409175 for ; Tue, 11 Mar 2025 04:26:45 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 185.125.25.12, mailfrom: foss+yocto@0leil.net) Received: from smtp-3-0001.mail.infomaniak.ch (unknown [IPv6:2001:1600:4:17::246c]) by smtp-3-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4ZBs0g11KMzvPF; Tue, 11 Mar 2025 12:26:43 +0100 (CET) Received: from unknown by smtp-3-0001.mail.infomaniak.ch (Postfix) with ESMTPA id 4ZBs0f5c0yz65y; Tue, 11 Mar 2025 12:26:42 +0100 (CET) From: Quentin Schulz Date: Tue, 11 Mar 2025 12:26:33 +0100 Subject: [meta-rockchip PATCH 4/6] bsp: rkbin: ddr: allow to customize DDR bin blob MIME-Version: 1.0 Message-Id: <20250311-ddrbin-custom-v1-4-e5c994ac25e1@cherry.de> References: <20250311-ddrbin-custom-v1-0-e5c994ac25e1@cherry.de> In-Reply-To: <20250311-ddrbin-custom-v1-0-e5c994ac25e1@cherry.de> To: yocto-patches@lists.yoctoproject.org Cc: Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 11 Mar 2025 11:26:50 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/yocto-patches/message/1186 From: Quentin Schulz 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 --- 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..567d7ed8c5dd37c3c796acb869b85c25ad548a15 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_params.txt via your bbappend, e.g. + your ddrbin_params in + meta-my-layer/recipes-bsp/rkbin/rockchip-rkbin-ddr/my-machine/ddrbin_params.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_params.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..193d0f00a6868f050a0ff4531278b3296d3eae94 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_params.txt in the tree. +SRC_URI += "${@'file://ddrbin_params.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: required!" + fi + # Modify blob with appropriate settings stored in ddrbin_params.txt + ddrbin_tool.py ${DDRBIN_TOOL_SOC} ${UNPACKDIR}/ddrbin_params.txt ${S}/${DDRBIN_DIR}${DDRBIN_FILE} --verinfo_editable "${RKBIN_DDR_DATE}" + fi +} From patchwork Tue Mar 11 11:26:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 58659 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 59BFEC35FF2 for ; Tue, 11 Mar 2025 11:26:50 +0000 (UTC) Received: from smtp-190e.mail.infomaniak.ch (smtp-190e.mail.infomaniak.ch [185.125.25.14]) by mx.groups.io with SMTP id smtpd.web10.6513.1741692404819663191 for ; Tue, 11 Mar 2025 04:26:45 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 185.125.25.14, mailfrom: foss+yocto@0leil.net) Received: from smtp-3-0001.mail.infomaniak.ch (smtp-3-0001.mail.infomaniak.ch [10.4.36.108]) by smtp-3-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4ZBs0g35Grz2nr; Tue, 11 Mar 2025 12:26:43 +0100 (CET) Received: from unknown by smtp-3-0001.mail.infomaniak.ch (Postfix) with ESMTPA id 4ZBs0g0tfYz4hK; Tue, 11 Mar 2025 12:26:43 +0100 (CET) From: Quentin Schulz Date: Tue, 11 Mar 2025 12:26:34 +0100 Subject: [meta-rockchip PATCH 5/6] bsp: rkbin: ddr: factor out do_deploy to be SoC-agnostic MIME-Version: 1.0 Message-Id: <20250311-ddrbin-custom-v1-5-e5c994ac25e1@cherry.de> References: <20250311-ddrbin-custom-v1-0-e5c994ac25e1@cherry.de> In-Reply-To: <20250311-ddrbin-custom-v1-0-e5c994ac25e1@cherry.de> To: yocto-patches@lists.yoctoproject.org Cc: Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 11 Mar 2025 11:26:50 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/yocto-patches/message/1187 From: Quentin Schulz 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 --- recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb | 33 +++++++++++++++-------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb b/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb index 193d0f00a6868f050a0ff4531278b3296d3eae94..17131b6d5a6b443409eacb5806e0613b292852d7 100644 --- a/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb +++ b/recipes-bsp/rkbin/rockchip-rkbin-ddr_git.bb @@ -8,40 +8,41 @@ 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) - 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" DDRBIN_TOOL_SOC:rk3566 ?= "rk356x" -do_deploy:rk3566() { - # Prebuilt U-Boot TPL (DDR init) - 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" 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:rk3588s ?= "rk3588" -do_deploy:rk3588s() { +do_deploy() { + if [ -z "${DDRBIN_DIR}" ]; then + bbfatal "Non-empty DDRBIN_DIR: required!" + fi + + if [ -z "${DDRBIN_VERS}" ]; then + bbfatal "Non-empty DDRBIN_VERS: required!" + fi + + if [ -z "${DDRBIN_FILE}" ]; then + bbfatal "Non-empty DDRBIN_FILE: required!" + fi + + if [ -z "${DDRBIN_DEPLOY_FILENAME}" ]; then + bbfatal "Non-empty DDRBIN_DEPLOY_FILENAME: required!" + fi + # Prebuilt U-Boot TPL (DDR init) install -m 644 ${S}/${DDRBIN_DIR}${DDRBIN_FILE} ${DEPLOYDIR}/${DDRBIN_DEPLOY_FILENAME} } From patchwork Tue Mar 11 11:26:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Quentin Schulz X-Patchwork-Id: 58656 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 47E1FC3DA4A for ; Tue, 11 Mar 2025 11:26:50 +0000 (UTC) Received: from smtp-bc0c.mail.infomaniak.ch (smtp-bc0c.mail.infomaniak.ch [45.157.188.12]) by mx.groups.io with SMTP id smtpd.web10.6514.1741692405312769069 for ; Tue, 11 Mar 2025 04:26:45 -0700 Authentication-Results: mx.groups.io; dkim=none (message not signed); spf=pass (domain: 0leil.net, ip: 45.157.188.12, mailfrom: foss+yocto@0leil.net) Received: from smtp-3-0001.mail.infomaniak.ch (unknown [IPv6:2001:1600:4:17::246c]) by smtp-3-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4ZBs0g5TYYz1Bj; Tue, 11 Mar 2025 12:26:43 +0100 (CET) Received: from unknown by smtp-3-0001.mail.infomaniak.ch (Postfix) with ESMTPA id 4ZBs0g30Z9z3cS; Tue, 11 Mar 2025 12:26:43 +0100 (CET) From: Quentin Schulz Date: Tue, 11 Mar 2025 12:26:35 +0100 Subject: [meta-rockchip PATCH 6/6] bsp: rkbin: bump to latest commit in master branch MIME-Version: 1.0 Message-Id: <20250311-ddrbin-custom-v1-6-e5c994ac25e1@cherry.de> References: <20250311-ddrbin-custom-v1-0-e5c994ac25e1@cherry.de> In-Reply-To: <20250311-ddrbin-custom-v1-0-e5c994ac25e1@cherry.de> To: yocto-patches@lists.yoctoproject.org Cc: Quentin Schulz X-Mailer: b4 0.14.2 X-Infomaniak-Routing: alpha List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Tue, 11 Mar 2025 11:26:50 -0000 X-Groupsio-URL: https://lists.yoctoproject.org/g/yocto-patches/message/1188 From: Quentin Schulz This bumps rkbin to be using the last public blobs. Among RK356x and RK3588, the following changes are noteworthy: - OP-TEE OS (bl32) bump for RK356x and RK3588 - TF-A (bl31) bump for RK3588 Signed-off-by: Quentin Schulz --- recipes-bsp/rkbin/rockchip-rkbin.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes-bsp/rkbin/rockchip-rkbin.inc b/recipes-bsp/rkbin/rockchip-rkbin.inc index 9264db9048e31b7dae650bdc8e31009f7f4cf404..468779ac7e9b939c4f7a5d19aecb7ce0f0fb2d09 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"