From: Casey Connolly <casey.conno...@linaro.org>

Remove the load address and REMAKE_ELF from Qualcomm defconfigs. This
information is now encoded in a table in mkmbn.py.

Add a new qcom-binman.dts file to configure binman to build a u-boot.mbn
file.

mkmbn.py is now run by binman during the build process and will emit an
MBN file for supported boards with the appropriate signatures.

This removes the need for additional processing of the image in most
cases.

To avoid having to explicitly disable BINMAN_FDT in all qcom defconfigs,
make it depend on !ARCH_SNAPDRAGON.

We also duplicate the BINMAN_DTB node in mach-snapdragon/kconfig to set
the default path to the qcom binman dtb for configuring binman.

Signed-off-by: Casey Connolly <casey.conno...@linaro.org>
---
 arch/arm/Kconfig                   |  1 +
 arch/arm/dts/qcom-binman.dts       | 16 ++++++++++++++++
 arch/arm/mach-snapdragon/Kconfig   |  4 ++++
 configs/qcm6490_defconfig          |  4 ----
 configs/qcom_ipq9574_mmc_defconfig |  1 -
 configs/qcs9100_defconfig          |  3 ---
 lib/Kconfig                        |  2 +-
 7 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 9ed55e6cfacd..1ac94a4ab420 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1122,8 +1122,9 @@ config ARCH_RENESAS
 
 config ARCH_SNAPDRAGON
        bool "Qualcomm Snapdragon SoCs"
        select ARM64
+       select BINMAN
        select DM
        select DM_GPIO
        select DM_SERIAL
        select DM_RESET
diff --git a/arch/arm/dts/qcom-binman.dts b/arch/arm/dts/qcom-binman.dts
new file mode 100644
index 000000000000..da5d4a23d2fa
--- /dev/null
+++ b/arch/arm/dts/qcom-binman.dts
@@ -0,0 +1,16 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * (C) Copyright 2025, Linaro Ltd.
+ *
+ * Casey Connolly <casey.conno...@linaro.org>
+ */
+
+/* Configure binman to build a u-boot.mbn */
+/dts-v1/;
+/{
+       binman {
+               u-boot-mbn {
+
+               };
+       };
+};
diff --git a/arch/arm/mach-snapdragon/Kconfig b/arch/arm/mach-snapdragon/Kconfig
index 976c0e35fcef..5d734e09570c 100644
--- a/arch/arm/mach-snapdragon/Kconfig
+++ b/arch/arm/mach-snapdragon/Kconfig
@@ -44,5 +44,9 @@ config SYS_CONFIG_NAME
          This option contains information about board configuration name.
          Based on this option include/configs/<CONFIG_SYS_CONFIG_NAME>.h header
          will be used for board configuration.
 
+config BINMAN_DTB
+       string "binman DTB description"
+       default "./arch/arm/dts/qcom-binman.dtb"
+
 endif
diff --git a/configs/qcm6490_defconfig b/configs/qcm6490_defconfig
index 54eb5dedaecb..63daa74a451a 100644
--- a/configs/qcm6490_defconfig
+++ b/configs/qcm6490_defconfig
@@ -7,9 +7,5 @@
 
 # Otherwise buildman thinks this isn't an ARM platform
 CONFIG_ARM=y
 
-# Address where U-Boot will be loaded
-CONFIG_TEXT_BASE=0x9fc00000
-CONFIG_REMAKE_ELF=y
-
 CONFIG_DEFAULT_DEVICE_TREE="qcom/qcs6490-rb3gen2"
diff --git a/configs/qcom_ipq9574_mmc_defconfig 
b/configs/qcom_ipq9574_mmc_defconfig
index 720220dc98a8..02ffaf97b624 100644
--- a/configs/qcom_ipq9574_mmc_defconfig
+++ b/configs/qcom_ipq9574_mmc_defconfig
@@ -11,9 +11,8 @@ CONFIG_DEFAULT_DEVICE_TREE="qcom/ipq9574-rdp433"
 CONFIG_SYS_LOAD_ADDR=0x50000000
 CONFIG_DEBUG_UART_BASE=0x78b1000
 CONFIG_DEBUG_UART_CLOCK=1843200
 CONFIG_DEBUG_UART=y
-CONFIG_REMAKE_ELF=y
 # CONFIG_EFI_LOADER is not set
 CONFIG_FIT=y
 CONFIG_FIT_VERBOSE=y
 # CONFIG_BOOTSTD is not set
diff --git a/configs/qcs9100_defconfig b/configs/qcs9100_defconfig
index 216dfa3211ec..e1f6d6fdf00e 100644
--- a/configs/qcs9100_defconfig
+++ b/configs/qcs9100_defconfig
@@ -4,11 +4,8 @@
 # a dedicated "uefi" partition for edk2/U-Boot)
 
 #include "qcom_defconfig"
 
-# Address where U-Boot will be loaded
-CONFIG_TEXT_BASE=0xaf000000
-CONFIG_REMAKE_ELF=y
 CONFIG_DEFAULT_DEVICE_TREE="qcom/qcs9100-ride-r3"
 CONFIG_ENV_IS_IN_SCSI=y
 CONFIG_SCSI_ENV_PART_UUID="71cb9cd0-acf1-b6cb-ad91-be9572fe11a9"
 # CONFIG_ENV_IS_DEFAULT is not set
diff --git a/lib/Kconfig b/lib/Kconfig
index 6a89f797beff..443363f889b6 100644
--- a/lib/Kconfig
+++ b/lib/Kconfig
@@ -36,9 +36,9 @@ config BCH
          hardware engine required for BCH ECC correction.
 
 config BINMAN_FDT
        bool "Allow access to binman information in the device tree"
-       depends on BINMAN && DM && OF_CONTROL
+       depends on BINMAN && DM && OF_CONTROL && !ARCH_SNAPDRAGON
        default y if OF_SEPARATE || OF_EMBED
        help
          This enables U-Boot to access information about binman entries,
          stored in the device tree in a binman node. Typical uses are to

-- 
2.50.1

Reply via email to