From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Fri, 23 May 2025 15:58:29 +0200 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1uISur-001uXu-1K for lore@lore.pengutronix.de; Fri, 23 May 2025 15:58:29 +0200 Received: from localhost ([127.0.0.1] helo=metis.whiteo.stw.pengutronix.de) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1uISuq-0003DC-RB; Fri, 23 May 2025 15:58:28 +0200 Received: from mail.thorsis.com ([217.92.40.78]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1uISul-00037g-Tf; Fri, 23 May 2025 15:58:24 +0200 Received: from [127.0.0.1] (localhost [127.0.0.1]) by localhost (Mailerdaemon) with ESMTPSA id 5DCDF1487BE2; Fri, 23 May 2025 15:58:23 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thorsis.com; s=dkim; t=1748008703; h=from:subject:date:message-id:to:cc:mime-version: content-transfer-encoding:in-reply-to:references; bh=wpHbO1oIrRnLxfl/UU77w7wjDkk3ltxnoIe4GtjtJ2E=; b=m2z2yJ2+wt4UdygOuJh1bTCEjbnQDO2bwE6AC0cD/yvEJBvBr5sAglJ+iDqdsYtmlLUOR9 iMkPGdJjZm8uDbwer5vhF5OHvxKtiPTk4ehOEqEQ1lfkPMr0etU1O1V1a1lIefi06/s3+N 0q5L0ADSHs/fazfk997RDaQVQW8Gq/JdgEpXiSkdKTYrILqjQDyR1F6Yze5GcRPy+n/Lf3 tvgubhZ9J1udV2b2KtUzPgQLVcpzU+kAnWO11ia3tk5Niioj3GKAM80tulz5achvx3vkFu v/LR6wejCLvk1MmNz66I+lA9vrEVr2nByjkoP2vkM98QNcOJY5NY0HAWZ8ueWw== From: Alexander Dahl To: distrokit@pengutronix.de Date: Fri, 23 May 2025 15:58:14 +0200 Message-Id: <20250523135815.2998753-4-ada@thorsis.com> X-Mailer: git-send-email 2.39.5 In-Reply-To: <20250523135815.2998753-1-ada@thorsis.com> References: <20250523135815.2998753-1-ada@thorsis.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Last-TLS-Session-Version: TLSv1.3 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.whiteo.stw.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-3.3 required=4.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Subject: [DistroKit] [PATCH v2 3/4] platform: v8a: firmware-imx: Break out barebox injects to separate packages X-BeenThere: distrokit@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: DistroKit Mailinglist List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Lars Schmidt Sender: "DistroKit" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: distrokit-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false The firmware-imx package is independent from TF-A. barebox uses both, but that does not mean firmware-imx should inject the tf-a binary for barebox. This is what 'barebox_firmware' was invented for. Done to avoid cluttering the firmware-imx package even more. Before duplicating the firmware-imx package files in an upper layer and adding more such stuff for a different bootloader, we rather move this stuff to multiple barebox_firmware packages (which can also sit in other layers) and inject files from there. The same approach can then be followed by other bootloaders depending on firmware-imx package. This way we can depend on firmware-imx from one, the other, or both bootloaders, respectively their firmware packages, without the need to touch the firmware-imx package itself. Approach inspired by the patch series which introduced that infrastructure in ptxdist. Link: https://lore.ptxdist.org/ptxdist/20220129070330.2601433-6-michael.riesch@wolfvision.net/ Signed-off-by: Alexander Dahl --- Notes: v2: - reordered, now patch 3/4 - extend to not only breakout firmware-imx but also tf-a to separate new package fixups v1: - Link: https://lore.distrokit.org/distrokit/20240425080303.171897-7-ada@thorsis.com/ configs/platform-v8a/platformconfig | 2 ++ configs/platform-v8a/platforms/barebox.imx.in | 12 ++++++++++ .../platform-v8a/platforms/barebox.tf-a.in | 11 ++++++++++ .../platform-v8a/platforms/firmware-imx.in | 6 ----- configs/platform-v8a/rules/barebox.imx.make | 22 +++++++++++++++++++ configs/platform-v8a/rules/barebox.tf-a.make | 19 ++++++++++++++++ configs/platform-v8a/rules/firmware-imx.make | 21 ------------------ 7 files changed, 66 insertions(+), 27 deletions(-) create mode 100644 configs/platform-v8a/platforms/barebox.imx.in create mode 100644 configs/platform-v8a/platforms/barebox.tf-a.in create mode 100644 configs/platform-v8a/rules/barebox.imx.make create mode 100644 configs/platform-v8a/rules/barebox.tf-a.make diff --git a/configs/platform-v8a/platformconfig b/configs/platform-v8a/platformconfig index 83c3615..cf8ba0c 100644 --- a/configs/platform-v8a/platformconfig +++ b/configs/platform-v8a/platformconfig @@ -185,7 +185,9 @@ PTXCONF_BAREBOX_BUILDSYSTEM_VERSION="${PTXDIST_VCS_VERSION}" PTXCONF_BAREBOX_MD5="2b84bcf8644373db021c86864f2e5761" PTXCONF_BAREBOX_CONFIG="barebox.config" PTXCONF_BAREBOX_FIRMWARE=y +PTXCONF_BAREBOX_NEEDS_FIRMWARE_IMX=y PTXCONF_BAREBOX_NEEDS_FIRMWARE_ROCKCHIP=y +PTXCONF_BAREBOX_NEEDS_TF_A=y PTXCONF_BAREBOX_EXTRA_ENV=y PTXCONF_BAREBOX_EXTRA_ENV_PATH="barebox-common-defaultenv" # PTXCONF_BAREBOX_BAREBOXENV is not set diff --git a/configs/platform-v8a/platforms/barebox.imx.in b/configs/platform-v8a/platforms/barebox.imx.in new file mode 100644 index 0000000..971fc9b --- /dev/null +++ b/configs/platform-v8a/platforms/barebox.imx.in @@ -0,0 +1,12 @@ +## SECTION=barebox_firmware + +config BAREBOX_NEEDS_FIRMWARE_IMX + bool + prompt "barebox needs firmware-imx" + help + Select this if barebox needs the non-free IMX firmware blobs. + +config BAREBOX_DEPENDENCIES + tristate + select FIRMWARE_IMX if BAREBOX_NEEDS_FIRMWARE_IMX + select FIRMWARE_IMX_BOOTIMAGE_IMX8 if BAREBOX_NEEDS_FIRMWARE_IMX diff --git a/configs/platform-v8a/platforms/barebox.tf-a.in b/configs/platform-v8a/platforms/barebox.tf-a.in new file mode 100644 index 0000000..20c4bc4 --- /dev/null +++ b/configs/platform-v8a/platforms/barebox.tf-a.in @@ -0,0 +1,11 @@ +## SECTION=barebox_firmware + +config BAREBOX_NEEDS_TF_A + bool + prompt "barebox needs tf-a" + help + Select this if barebox needs the TF-A firmware blobs. + +config BAREBOX_DEPENDENCIES + tristate + select TF_A if BAREBOX_NEEDS_TF_A diff --git a/configs/platform-v8a/platforms/firmware-imx.in b/configs/platform-v8a/platforms/firmware-imx.in index c93e9f8..965db38 100644 --- a/configs/platform-v8a/platforms/firmware-imx.in +++ b/configs/platform-v8a/platforms/firmware-imx.in @@ -53,9 +53,3 @@ config FIRMWARE_IMX_BOOTIMAGE_IMX9 a boot image. endif - -config BAREBOX_DEPENDENCIES - tristate - select FIRMWARE_IMX - select FIRMWARE_IMX_BOOTIMAGE_IMX8 - select TF_A diff --git a/configs/platform-v8a/rules/barebox.imx.make b/configs/platform-v8a/rules/barebox.imx.make new file mode 100644 index 0000000..2137c67 --- /dev/null +++ b/configs/platform-v8a/rules/barebox.imx.make @@ -0,0 +1,22 @@ +# -*-makefile-*- +# +# Copyright (C) 2024 by Alexander Dahl +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +ifdef PTXCONF_FIRMWARE_IMX_BOOTIMAGE_IMX8 + +BAREBOX_INJECT_FILES += ddr/synopsys/lpddr4_pmu_train_1d_dmem.bin:firmware/lpddr4_pmu_train_1d_dmem.bin +BAREBOX_INJECT_FILES += ddr/synopsys/lpddr4_pmu_train_1d_imem.bin:firmware/lpddr4_pmu_train_1d_imem.bin +BAREBOX_INJECT_FILES += ddr/synopsys/lpddr4_pmu_train_2d_dmem.bin:firmware/lpddr4_pmu_train_2d_dmem.bin +BAREBOX_INJECT_FILES += ddr/synopsys/lpddr4_pmu_train_2d_imem.bin:firmware/lpddr4_pmu_train_2d_imem.bin +BAREBOX_INJECT_FILES += ddr/synopsys/ddr4_dmem_1d.bin:firmware/ddr4_dmem_1d.bin +BAREBOX_INJECT_FILES += ddr/synopsys/ddr4_dmem_2d.bin:firmware/ddr4_dmem_2d.bin +BAREBOX_INJECT_FILES += ddr/synopsys/ddr4_imem_1d.bin:firmware/ddr4_imem_1d.bin +BAREBOX_INJECT_FILES += ddr/synopsys/ddr4_imem_2d.bin:firmware/ddr4_imem_2d.bin + +endif + +# vim: syntax=make diff --git a/configs/platform-v8a/rules/barebox.tf-a.make b/configs/platform-v8a/rules/barebox.tf-a.make new file mode 100644 index 0000000..47d8032 --- /dev/null +++ b/configs/platform-v8a/rules/barebox.tf-a.make @@ -0,0 +1,19 @@ +# -*-makefile-*- +# +# Copyright (C) 2025 by Alexander Dahl +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +ifdef PTXCONF_TF_A + +BAREBOX_INJECT_FILES += imx8mm-bl31.bin:firmware/imx8mm-bl31.bin +BAREBOX_INJECT_FILES += imx8mn-bl31.bin:firmware/imx8mn-bl31.bin +BAREBOX_INJECT_FILES += imx8mp-bl31.bin:firmware/imx8mp-bl31.bin +BAREBOX_INJECT_FILES += imx8mq-bl31.bin:firmware/imx8mq-bl31.bin +BAREBOX_INJECT_FILES += imx93-bl31.bin:firmware/imx93-bl31.bin + +endif + +# vim: syntax=make diff --git a/configs/platform-v8a/rules/firmware-imx.make b/configs/platform-v8a/rules/firmware-imx.make index 6b01af3..906691c 100644 --- a/configs/platform-v8a/rules/firmware-imx.make +++ b/configs/platform-v8a/rules/firmware-imx.make @@ -26,27 +26,6 @@ FIRMWARE_IMX_LICENSE := NXP-Software-License-Agreement FIRMWARE_IMX_LICENSE_FILES := \ file://COPYING;md5=44a8052c384584ba09077e85a3d1654f -# -# Firmware blobs for barebox -# -ifdef PTXCONF_FIRMWARE_IMX -BAREBOX_INJECT_FILES += imx8mm-bl31.bin:firmware/imx8mm-bl31.bin -BAREBOX_INJECT_FILES += imx8mn-bl31.bin:firmware/imx8mn-bl31.bin -BAREBOX_INJECT_FILES += imx8mp-bl31.bin:firmware/imx8mp-bl31.bin -BAREBOX_INJECT_FILES += imx8mq-bl31.bin:firmware/imx8mq-bl31.bin -BAREBOX_INJECT_FILES += imx93-bl31.bin:firmware/imx93-bl31.bin -ifdef PTXCONF_FIRMWARE_IMX_BOOTIMAGE_IMX8 -BAREBOX_INJECT_FILES += ddr/synopsys/lpddr4_pmu_train_1d_dmem.bin:firmware/lpddr4_pmu_train_1d_dmem.bin -BAREBOX_INJECT_FILES += ddr/synopsys/lpddr4_pmu_train_1d_imem.bin:firmware/lpddr4_pmu_train_1d_imem.bin -BAREBOX_INJECT_FILES += ddr/synopsys/lpddr4_pmu_train_2d_dmem.bin:firmware/lpddr4_pmu_train_2d_dmem.bin -BAREBOX_INJECT_FILES += ddr/synopsys/lpddr4_pmu_train_2d_imem.bin:firmware/lpddr4_pmu_train_2d_imem.bin -BAREBOX_INJECT_FILES += ddr/synopsys/ddr4_dmem_1d.bin:firmware/ddr4_dmem_1d.bin -BAREBOX_INJECT_FILES += ddr/synopsys/ddr4_dmem_2d.bin:firmware/ddr4_dmem_2d.bin -BAREBOX_INJECT_FILES += ddr/synopsys/ddr4_imem_1d.bin:firmware/ddr4_imem_1d.bin -BAREBOX_INJECT_FILES += ddr/synopsys/ddr4_imem_2d.bin:firmware/ddr4_imem_2d.bin -endif -endif - # ---------------------------------------------------------------------------- # Extract # ---------------------------------------------------------------------------- -- 2.39.5