From: Jan Kiszka <jan.kis...@siemens.com>

This avoids having to maintain to defconfigs that are 99% equivalent.
The approach is to use binman to generate two flash images,
flash-pg1.bin and flash-pg2.bin. With the help of some macros, we can
avoid duplicating the common binman image definitions.

Suggested-by: Andrew Davis <a...@ti.com>
Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
---
 arch/arm/dts/k3-am65-iot2050-boot-image.dtsi  | 299 ++++++++++--------
 board/siemens/iot2050/Kconfig                 |  30 +-
 board/siemens/iot2050/board.c                 |  14 +-
 board/siemens/iot2050/config.mk               |   6 +-
 ...ot2050_pg1_defconfig => iot2050_defconfig} |   3 +-
 configs/iot2050_pg2_defconfig                 | 150 ---------
 doc/board/siemens/iot2050.rst                 |  29 +-
 tools/iot2050-sign-fw.sh                      |   9 +-
 8 files changed, 202 insertions(+), 338 deletions(-)
 rename configs/{iot2050_pg1_defconfig => iot2050_defconfig} (97%)
 delete mode 100644 configs/iot2050_pg2_defconfig

diff --git a/arch/arm/dts/k3-am65-iot2050-boot-image.dtsi 
b/arch/arm/dts/k3-am65-iot2050-boot-image.dtsi
index 03ccc543293..1ea3fa85120 100644
--- a/arch/arm/dts/k3-am65-iot2050-boot-image.dtsi
+++ b/arch/arm/dts/k3-am65-iot2050-boot-image.dtsi
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (c) Siemens AG, 2020-2022
+ * Copyright (c) Siemens AG, 2020-2023
  *
  * Authors:
  *   Jan Kiszka <jan.kis...@siemens.com>
@@ -8,158 +8,177 @@
  */
 
 #include <config.h>
+#include <linux/stringify.h>
 
-/ {
-       binman {
-               filename = "flash.bin";
-               pad-byte = <0xff>;
-               size = <0x8c0000>;
-               allow-repack;
-
-               blob-ext@0x000000 {
-                       offset = <0x000000>;
-#ifdef CONFIG_TARGET_IOT2050_A53_PG1
-                       filename = "seboot_pg1.bin";
+#ifdef CONFIG_WDT_K3_RTI_FW_FILE
+#define IOT2050_WDT_FIRMWARE_LOADABLE  "k3-rti-wdt-firmware"
+#define IOT2050_WDT_FIRMWARE                                           \
+       k3-rti-wdt-firmware {                                           \
+               type = "firmware";                                      \
+               load = <0x82000000>;                                    \
+               arch = "arm";                                           \
+               compression = "none";                                   \
+               blob-ext {                                              \
+                       filename = CONFIG_WDT_K3_RTI_FW_FILE;           \
+                       missing-msg = IOT2050_WDT_FIRMWARE_LOADABLE;    \
+               };                                                      \
+               hash {                                                  \
+                       algo = "sha256";                                \
+               };                                                      \
+       };
 #else
-                       filename = "seboot_pg2.bin";
+#define IOT2050_WDT_FIRMWARE_LOADABLE
+#define IOT2050_WDT_FIRMWARE
 #endif
-                       missing-msg = "iot2050-seboot";
-               };
-
-               blob@0x180000 {
-                       offset = <0x180000>;
-                       filename = "tispl.bin";
-               };
-
-               fit@0x380000 {
-                       description = "U-Boot for IOT2050";
-                       fit,fdt-list = "of-list";
-                       offset = <0x380000>;
-                       images {
-                               u-boot {
-                                       description = "U-Boot";
-                                       type = "standalone";
-                                       arch = "arm64";
-                                       os = "u-boot";
-                                       compression = "none";
-                                       load = <0x80800000>;
-                                       entry = <0x80800000>;
-                                       u-boot-nodtb {
-                                       };
-                                       hash {
-                                               algo = "sha256";
-                                       };
-                               };
 
-                               @fdt-SEQ {
-                                       description = "fdt-NAME";
-                                       type = "flat_dt";
-                                       arch = "arm64";
-                                       compression = "none";
-                                       hash {
-                                               algo = "sha256";
-                                       };
-                               };
-
-#ifdef CONFIG_TARGET_IOT2050_A53_PG2
-                               bkey-usb3-overlay {
-                                       description = "M.2-bkey-usb3-overlay";
-                                       type = "blob";
-                                       load = <0x82100000>;
-                                       arch = "arm64";
-                                       compression = "none";
-                                       blob-ext {
-                                               filename = 
"k3-am6548-iot2050-advanced-m2-bkey-usb3-overlay.dtbo";
-                                       };
-                                       hash {
-                                               algo = "sha256";
-                                       };
-                               };
-
-                               bkey-ekey-pcie-overlay {
-                                       description = 
"M.2-bkey-ekey-pcie-overlay";
-                                       type = "blob";
-                                       load = <0x82110000>;
-                                       arch = "arm64";
-                                       compression = "none";
-                                       blob-ext {
-                                               filename = 
"k3-am6548-iot2050-advanced-m2-bkey-ekey-pcie-overlay.dtbo";
-                                       };
-                                       hash {
-                                               algo = "sha256";
-                                       };
-                               };
+#if CONFIG_IOT2050_EMBED_OTPCMD
+#define IOT2050_OTPCMD_BLOCK                                           \
+       blob-ext@0x6c0000 {                                             \
+               offset = <0x6c0000>;                                    \
+                                                                       \
+               size   = <0x010000>;                                    \
+               filename = "otpcmd.bin";                                \
+               missing-msg = "iot2050-otpcmd";                         \
+       };
+#else
+#define IOT2050_OTPCMD_BLOCK                                           \
+       fill@0x6c0000 {                                                 \
+               offset = <0x6c0000>;                                    \
+               size   = <0x010000>;                                    \
+               fill-byte = [ff];                                       \
+       };
 #endif
 
-#ifdef CONFIG_WDT_K3_RTI_FW_FILE
-                               k3-rti-wdt-firmware {
-                                       type = "firmware";
-                                       load = <0x82000000>;
-                                       arch = "arm";
-                                       compression = "none";
-                                       blob-ext {
-                                               filename = 
CONFIG_WDT_K3_RTI_FW_FILE;
-                                               missing-msg = 
"k3-rti-wdt-firmware";
-                                       };
-                                       hash {
-                                               algo = "sha256";
-                                       };
-                               };
-#endif
-                       };
+#define IOT2050_FLASH_COMMON(variant, default_dt, extra_loadables...)  \
+       filename = __stringify(flash-##variant##.bin);                  \
+       pad-byte = <0xff>;                                              \
+       size = <0x8c0000>;                                              \
+       allow-repack;                                                   \
+                                                                       \
+       blob-ext@0x000000 {                                             \
+               offset = <0x000000>;                                    \
+               filename = __stringify(seboot_##variant##.bin);         \
+               missing-msg = "iot2050-seboot";                         \
+       };                                                              \
+                                                                       \
+       blob@0x180000 {                                                 \
+               offset = <0x180000>;                                    \
+               filename = "tispl.bin";                                 \
+       };                                                              \
+                                                                       \
+       fit@0x380000 {                                                  \
+               description = "U-Boot for IOT2050";                     \
+               fit,fdt-list = __stringify(of-list-##variant);          \
+               offset = <0x380000>;                                    \
+               u_boot_images_##variant: images {                       \
+                       u-boot {                                        \
+                               description = "U-Boot";                 \
+                               type = "standalone";                    \
+                               arch = "arm64";                         \
+                               os = "u-boot";                          \
+                               compression = "none";                   \
+                               load = <0x80800000>;                    \
+                               entry = <0x80800000>;                   \
+                               u-boot-nodtb {                          \
+                               };                                      \
+                               hash {                                  \
+                                       algo = "sha256";                \
+                               };                                      \
+                       };                                              \
+                                                                       \
+                       @fdt-SEQ {                                      \
+                               description = "fdt-NAME";               \
+                               type = "flat_dt";                       \
+                               arch = "arm64";                         \
+                               compression = "none";                   \
+                               hash {                                  \
+                                       algo = "sha256";                \
+                               };                                      \
+                       };                                              \
+                                                                       \
+                       IOT2050_WDT_FIRMWARE                            \
+               };                                                      \
+                                                                       \
+               configurations {                                        \
+                       default = default_dt;                           \
+                       @config-SEQ {                                   \
+                               description = "NAME";                   \
+                               firmware = "u-boot";                    \
+                               fdt = "fdt-SEQ";                        \
+                               loadables =                             \
+                                       IOT2050_WDT_FIRMWARE_LOADABLE,  \
+                                       ## extra_loadables,             \
+                                       <>;                             \
+                               signature {                             \
+                                       sign-images = "firmware", "fdt", 
"loadables"; \
+                               };                                      \
+                       };                                              \
+               };                                                      \
+       };                                                              \
+                                                                       \
+       fdtmap {                                                        \
+       };                                                              \
+                                                                       \
+       /* primary env */                                               \
+       fill@0x680000 {                                                 \
+               offset = <0x680000>;                                    \
+               size   = <0x020000>;                                    \
+               fill-byte = [00];                                       \
+       };                                                              \
+       /* secondary env */                                             \
+       fill@0x6a0000 {                                                 \
+               offset = <0x6a0000>;                                    \
+               size   = <0x020000>;                                    \
+               fill-byte = [00];                                       \
+       };                                                              \
+                                                                       \
+       /* OTP update command block */                                  \
+       IOT2050_OTPCMD_BLOCK
 
-                       configurations {
-                               default = "@config-DEFAULT-SEQ";
-                               @config-SEQ {
-                                       description = "NAME";
-                                       firmware = "u-boot";
-                                       fdt = "fdt-SEQ";
-                                       loadables =
-#ifdef CONFIG_TARGET_IOT2050_A53_PG2
-                                               "bkey-usb3-overlay",
-                                               "bkey-ekey-pcie-overlay",
-#endif
-#ifdef CONFIG_WDT_K3_RTI_FW_FILE
-                                               "k3-rti-wdt-firmware",
-#endif
-                                               <>;
-                                       signature {
-                                               sign-images = "firmware", 
"fdt", "loadables";
-                                       };
-                               };
-                       };
-               };
+/ {
+       binman: binman {
+               multiple-images;
+       };
+};
 
-               fdtmap {
-               };
+&binman {
+       flash-pg1 {
+               IOT2050_FLASH_COMMON(pg1, "k3-am6528-iot2050-basic")
+       };
+
+       flash-pg2 {
+               IOT2050_FLASH_COMMON(pg2, "k3-am6528-iot2050-basic-pg2",
+                                    "bkey-usb3-overlay",
+                                    "bkey-ekey-pcie-overlay")
+       };
+};
 
-               /* primary env */
-               fill@0x680000 {
-                       offset = <0x680000>;
-                       size   = <0x020000>;
-                       fill-byte = [00];
+&u_boot_images_pg2 {
+       bkey-usb3-overlay {
+               description = "M.2-bkey-usb3-overlay";
+               type = "blob";
+               load = <0x82100000>;
+               arch = "arm64";
+               compression = "none";
+               blob-ext {
+                       filename = 
"k3-am6548-iot2050-advanced-m2-bkey-usb3-overlay.dtbo";
                };
-               /* secondary env */
-               fill@0x6a0000 {
-                       offset = <0x6a0000>;
-                       size   = <0x020000>;
-                       fill-byte = [00];
+               hash {
+                       algo = "sha256";
                };
+       };
 
-               /* OTP update command block */
-#if CONFIG_IOT2050_EMBED_OTPCMD
-               blob-ext@0x6c0000 {
-                       offset = <0x6c0000>;
-                       size   = <0x010000>;
-                       filename = "otpcmd.bin";
-                       missing-msg = "iot2050-otpcmd";
+       bkey-ekey-pcie-overlay {
+               description = "M.2-bkey-ekey-pcie-overlay";
+               type = "blob";
+               load = <0x82110000>;
+               arch = "arm64";
+               compression = "none";
+               blob-ext {
+                       filename = 
"k3-am6548-iot2050-advanced-m2-bkey-ekey-pcie-overlay.dtbo";
                };
-#else
-               fill@0x6c0000 {
-                       offset = <0x6c0000>;
-                       size   = <0x010000>;
-                       fill-byte = [ff];
+               hash {
+                       algo = "sha256";
                };
-#endif
        };
 };
diff --git a/board/siemens/iot2050/Kconfig b/board/siemens/iot2050/Kconfig
index e66b2427d95..a6170aae807 100644
--- a/board/siemens/iot2050/Kconfig
+++ b/board/siemens/iot2050/Kconfig
@@ -1,40 +1,22 @@
 # SPDX-License-Identifier: GPL-2.0+
 #
-# Copyright (c) Siemens AG, 2018-2022
+# Copyright (c) Siemens AG, 2018-2023
 #
 # Authors:
 #   Le Jin <le....@siemens.com>
 #   Jan Kiszka <jan.kis...@siemens.com>
 
-choice
-        prompt "Siemens SIMATIC IOT2050 boards"
-        optional
-
-config TARGET_IOT2050_A53_PG1
-       bool "IOT2050 PG1 running on A53"
-       select IOT2050_A53_COMMON
-       help
-         This builds U-Boot for the Product Generation 1 (PG1) of the IOT2050
-         devices.
-
-config TARGET_IOT2050_A53_PG2
-       bool "IOT2050 PG2 running on A53"
-       select IOT2050_A53_COMMON
-       help
-         This builds U-Boot for the Product Generation 2 (PG2) of the IOT2050
-         devices.
-
-endchoice
-
-config IOT2050_A53_COMMON
-       bool
+config TARGET_IOT2050_A53
+       bool "IOT2050 running on A53"
        select ARM64
        select SOC_K3_AM654
        select BOARD_LATE_INIT
        select SYS_DISABLE_DCACHE_OPS
        select BINMAN
+       help
+         This builds U-Boot for the IOT2050 devices.
 
-if IOT2050_A53_COMMON
+if TARGET_IOT2050_A53
 
 config SYS_BOARD
        default "iot2050"
diff --git a/board/siemens/iot2050/board.c b/board/siemens/iot2050/board.c
index 2653e107450..cab23494030 100644
--- a/board/siemens/iot2050/board.c
+++ b/board/siemens/iot2050/board.c
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0+
 /*
  * Board specific initialization for IOT2050
- * Copyright (c) Siemens AG, 2018-2022
+ * Copyright (c) Siemens AG, 2018-2023
  *
  * Authors:
  *   Le Jin <le....@siemens.com>
@@ -164,6 +164,14 @@ static bool board_is_advanced(void)
                strstr((char *)info->name, "IOT2050-ADVANCED") != NULL;
 }
 
+static bool board_is_sr1(void)
+{
+       struct iot2050_info *info = IOT2050_INFO_DATA;
+
+       return info->magic == IOT2050_INFO_MAGIC &&
+               !strstr((char *)info->name, "-PG2");
+}
+
 static void remove_mmc1_target(void)
 {
        char *boot_targets = strdup(env_get("boot_targets"));
@@ -210,14 +218,14 @@ void set_board_info_env(void)
        }
 
        if (board_is_advanced()) {
-               if (IS_ENABLED(CONFIG_TARGET_IOT2050_A53_PG1))
+               if (board_is_sr1())
                        fdtfile = "ti/k3-am6548-iot2050-advanced.dtb";
                else if(board_is_m2())
                        fdtfile = "ti/k3-am6548-iot2050-advanced-m2.dtb";
                else
                        fdtfile = "ti/k3-am6548-iot2050-advanced-pg2.dtb";
        } else {
-               if (IS_ENABLED(CONFIG_TARGET_IOT2050_A53_PG1))
+               if (board_is_sr1())
                        fdtfile = "ti/k3-am6528-iot2050-basic.dtb";
                else
                        fdtfile = "ti/k3-am6528-iot2050-basic-pg2.dtb";
diff --git a/board/siemens/iot2050/config.mk b/board/siemens/iot2050/config.mk
index 267ec76c4ef..05111d5ebab 100644
--- a/board/siemens/iot2050/config.mk
+++ b/board/siemens/iot2050/config.mk
@@ -1,8 +1,12 @@
 # SPDX-License-Identifier: GPL-2.0+
 #
-# Copyright (c) Siemens AG, 2020-2021
+# Copyright (c) Siemens AG, 2020-2023
 #
 # Authors:
 #   Jan Kiszka <jan.kis...@siemens.com>
 
+BINMAN_EXTRA_ARGS = \
+       -a of-list-pg1="k3-am6528-iot2050-basic k3-am6548-iot2050-advanced" \
+       -a of-list-pg2="k3-am6528-iot2050-basic-pg2 
k3-am6548-iot2050-advanced-pg2 k3-am6548-iot2050-advanced-m2"
+
 flash.bin: all
diff --git a/configs/iot2050_pg1_defconfig b/configs/iot2050_defconfig
similarity index 97%
rename from configs/iot2050_pg1_defconfig
rename to configs/iot2050_defconfig
index cc1b9673d79..bbbc040af40 100644
--- a/configs/iot2050_pg1_defconfig
+++ b/configs/iot2050_defconfig
@@ -8,7 +8,7 @@ CONFIG_SPL_LIBCOMMON_SUPPORT=y
 CONFIG_SPL_LIBGENERIC_SUPPORT=y
 CONFIG_NR_DRAM_BANKS=2
 CONFIG_SOC_K3_AM654=y
-CONFIG_TARGET_IOT2050_A53_PG1=y
+CONFIG_TARGET_IOT2050_A53=y
 CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
 CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80100000
 CONFIG_ENV_SIZE=0x20000
@@ -73,7 +73,6 @@ CONFIG_CMD_TIME=y
 # CONFIG_ISO_PARTITION is not set
 CONFIG_OF_CONTROL=y
 CONFIG_SPL_OF_CONTROL=y
-CONFIG_OF_LIST="k3-am6528-iot2050-basic k3-am6548-iot2050-advanced"
 CONFIG_SPL_MULTI_DTB_FIT=y
 CONFIG_SPL_OF_LIST="k3-am65-iot2050-spl"
 CONFIG_SPL_MULTI_DTB_FIT_NO_COMPRESSION=y
diff --git a/configs/iot2050_pg2_defconfig b/configs/iot2050_pg2_defconfig
deleted file mode 100644
index c5741a4dae4..00000000000
--- a/configs/iot2050_pg2_defconfig
+++ /dev/null
@@ -1,150 +0,0 @@
-CONFIG_ARM=y
-CONFIG_SKIP_LOWLEVEL_INIT=y
-CONFIG_ARCH_K3=y
-CONFIG_SYS_MALLOC_LEN=0x2000000
-CONFIG_SYS_MALLOC_F_LEN=0x8000
-CONFIG_SPL_GPIO=y
-CONFIG_SPL_LIBCOMMON_SUPPORT=y
-CONFIG_SPL_LIBGENERIC_SUPPORT=y
-CONFIG_NR_DRAM_BANKS=2
-CONFIG_SOC_K3_AM654=y
-CONFIG_TARGET_IOT2050_A53_PG2=y
-CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
-CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80100000
-CONFIG_ENV_SIZE=0x20000
-CONFIG_ENV_OFFSET=0x680000
-CONFIG_ENV_SECT_SIZE=0x20000
-CONFIG_DM_GPIO=y
-CONFIG_SPL_DM_SPI=y
-CONFIG_DEFAULT_DEVICE_TREE="k3-am6528-iot2050-basic-pg2"
-CONFIG_SPL_TEXT_BASE=0x80080000
-CONFIG_SYS_PROMPT="IOT2050> "
-CONFIG_OF_LIBFDT_OVERLAY=y
-CONFIG_DM_RESET=y
-CONFIG_SPL_SERIAL=y
-CONFIG_SPL_STACK_R_ADDR=0x82000000
-CONFIG_ENV_OFFSET_REDUND=0x6a0000
-CONFIG_SPL_SPI_FLASH_SUPPORT=y
-CONFIG_SPL_SPI=y
-CONFIG_PCI=y
-# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
-CONFIG_SPL_LOAD_FIT=y
-CONFIG_OF_BOARD_SETUP=y
-CONFIG_OF_SYSTEM_SETUP=y
-CONFIG_DISTRO_DEFAULTS=y
-CONFIG_BOOTSTAGE=y
-CONFIG_SHOW_BOOT_PROGRESS=y
-CONFIG_SPL_SHOW_BOOT_PROGRESS=y
-CONFIG_BOOTCOMMAND="run start_watchdog; run distro_bootcmd"
-CONFIG_CONSOLE_MUX=y
-# CONFIG_DISPLAY_CPUINFO is not set
-CONFIG_SPL_MAX_SIZE=0x58000
-CONFIG_SPL_HAS_BSS_LINKER_SECTION=y
-CONFIG_SPL_BSS_START_ADDR=0x80a00000
-CONFIG_SPL_BSS_MAX_SIZE=0x80000
-CONFIG_SPL_BOARD_INIT=y
-CONFIG_SPL_SYS_MALLOC_SIMPLE=y
-CONFIG_SPL_STACK_R=y
-CONFIG_SYS_SPL_MALLOC=y
-CONFIG_SYS_SPL_MALLOC_SIZE=0x800000
-CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
-CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x1400
-CONFIG_SPL_DM_MAILBOX=y
-CONFIG_SPL_DM_SPI_FLASH=y
-CONFIG_SPL_DM_RESET=y
-CONFIG_SPL_POWER_DOMAIN=y
-# CONFIG_SPL_SPI_FLASH_TINY is not set
-CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT=y
-CONFIG_SPL_SPI_LOAD=y
-CONFIG_SYS_SPI_U_BOOT_OFFS=0x380000
-CONFIG_SYS_MAXARGS=64
-CONFIG_SYS_PBSIZE=1050
-CONFIG_CMD_ASKENV=y
-CONFIG_CMD_DFU=y
-CONFIG_CMD_GPT=y
-CONFIG_CMD_I2C=y
-CONFIG_CMD_MMC=y
-CONFIG_CMD_PCI=y
-CONFIG_CMD_REMOTEPROC=y
-CONFIG_CMD_USB=y
-CONFIG_CMD_WDT=y
-# CONFIG_CMD_SETEXPR is not set
-CONFIG_CMD_TIME=y
-# CONFIG_ISO_PARTITION is not set
-CONFIG_OF_CONTROL=y
-CONFIG_SPL_OF_CONTROL=y
-CONFIG_OF_LIST="k3-am6528-iot2050-basic-pg2 k3-am6548-iot2050-advanced-pg2 
k3-am6548-iot2050-advanced-m2"
-CONFIG_SPL_MULTI_DTB_FIT=y
-CONFIG_SPL_OF_LIST="k3-am65-iot2050-spl"
-CONFIG_SPL_MULTI_DTB_FIT_NO_COMPRESSION=y
-CONFIG_ENV_IS_IN_SPI_FLASH=y
-CONFIG_SYS_REDUNDAND_ENVIRONMENT=y
-CONFIG_SPL_DM=y
-CONFIG_SPL_DM_SEQ_ALIAS=y
-CONFIG_SPL_REGMAP=y
-CONFIG_SPL_OF_TRANSLATE=y
-CONFIG_CLK=y
-CONFIG_SPL_CLK=y
-CONFIG_CLK_TI_SCI=y
-CONFIG_DFU_MMC=y
-CONFIG_DFU_RAM=y
-CONFIG_DFU_SF=y
-CONFIG_DMA_CHANNELS=y
-CONFIG_TI_K3_NAVSS_UDMA=y
-CONFIG_TI_SCI_PROTOCOL=y
-CONFIG_DA8XX_GPIO=y
-CONFIG_DM_PCA953X=y
-CONFIG_DM_I2C=y
-CONFIG_I2C_SET_DEFAULT_BUS_NUM=y
-CONFIG_SYS_I2C_OMAP24XX=y
-CONFIG_LED=y
-CONFIG_SPL_LED=y
-CONFIG_LED_GPIO=y
-CONFIG_SPL_LED_GPIO=y
-CONFIG_DM_MAILBOX=y
-CONFIG_K3_SEC_PROXY=y
-CONFIG_MMC_HS200_SUPPORT=y
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_ADMA=y
-CONFIG_MMC_SDHCI_AM654=y
-CONFIG_DM_SPI_FLASH=y
-CONFIG_SPI_FLASH_SFDP_SUPPORT=y
-CONFIG_SPI_FLASH_STMICRO=y
-CONFIG_SPI_FLASH_WINBOND=y
-# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set
-CONFIG_PCI_KEYSTONE=y
-CONFIG_PHY=y
-CONFIG_AM654_PHY=y
-CONFIG_OMAP_USB2_PHY=y
-CONFIG_PINCTRL=y
-# CONFIG_PINCTRL_GENERIC is not set
-CONFIG_SPL_PINCTRL=y
-# CONFIG_SPL_PINCTRL_GENERIC is not set
-CONFIG_PINCTRL_SINGLE=y
-CONFIG_POWER_DOMAIN=y
-CONFIG_TI_SCI_POWER_DOMAIN=y
-CONFIG_REMOTEPROC_TI_K3_R5F=y
-CONFIG_RESET_TI_SCI=y
-CONFIG_DM_SERIAL=y
-CONFIG_SOC_DEVICE=y
-CONFIG_SOC_DEVICE_TI_K3=y
-CONFIG_SOC_TI=y
-CONFIG_SPI=y
-CONFIG_DM_SPI=y
-CONFIG_CADENCE_QSPI=y
-CONFIG_SYSRESET=y
-CONFIG_SPL_SYSRESET=y
-CONFIG_SYSRESET_TI_SCI=y
-CONFIG_USB=y
-CONFIG_USB_XHCI_HCD=y
-CONFIG_USB_XHCI_DWC3=y
-CONFIG_USB_DWC3=y
-CONFIG_USB_DWC3_GENERIC=y
-CONFIG_USB_KEYBOARD=y
-# CONFIG_WATCHDOG is not set
-# CONFIG_WATCHDOG_AUTOSTART is not set
-CONFIG_WATCHDOG_TIMEOUT_MSECS=0
-CONFIG_WDT=y
-CONFIG_WDT_K3_RTI=y
-CONFIG_WDT_K3_RTI_LOAD_FW=y
-CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN=y
diff --git a/doc/board/siemens/iot2050.rst b/doc/board/siemens/iot2050.rst
index 074d6aa15af..9c7b5bac6ea 100644
--- a/doc/board/siemens/iot2050.rst
+++ b/doc/board/siemens/iot2050.rst
@@ -66,17 +66,16 @@ U-Boot:
 
 .. code-block:: text
 
- $ export ATF=/path/to/bl31.bin
+ $ export BL31=/path/to/bl31.bin
  $ export TEE=/path/to/tee-pager_v2.bin
-
- # configure for PG1
- $ make iot2050_pg1_defconfig
-
- # or configure for PG2 or the M.2 variant
- $ make iot2050_pg2_defconfig
+ $ make iot2050_defconfig
 
  $ make
 
+This will generate two different flash images: flash-p1.bin that targets the
+first generation of IOT2050 devices and flash-pg2.bin that runs on PG2
+including M.2 devices.
+
 Flashing
 --------
 
@@ -85,20 +84,20 @@ Via U-Boot:
 .. code-block:: text
 
  IOT2050> sf probe
- IOT2050> load mmc 0:1 $loadaddr /path/to/flash.bin
+ IOT2050> load mmc 0:1 $loadaddr /path/to/flash-pgX.bin
  IOT2050> sf update $loadaddr 0x0 $filesize
 
 Via external programmer Dediprog SF100 or SF600:
 
 .. code-block:: text
 
- $ dpcmd --vcc 2 -v -u flash.bin
+ $ dpcmd --vcc 2 -v -u flash-pgX.bin
 
 Signing (optional)
 ------------------
 
 To enable verified boot for the firmware artifacts after the Siemens-managed
-first-stage loader (seboot_pg*.bin), the following steps need to be taken
+first-stage loader (seboot_pgX.bin), the following steps need to be taken
 before and after the build:
 
 Generate dtsi holding the public key
@@ -131,8 +130,8 @@ Build U-Boot
 
 See related section above.
 
-Sign flash.bin
-^^^^^^^^^^^^^^
+Sign flash-pgX.bin
+^^^^^^^^^^^^^^^^^^
 
 In the build folder still containing artifacts from step 3, invoke:
 
@@ -140,10 +139,10 @@ In the build folder still containing artifacts from step 
3, invoke:
 
  tools/iot2050-sign-fw.sh /path/to/key.pem
 
-Flash signed flash.bin
-^^^^^^^^^^^^^^^^^^^^^^
+Flash signed flash-pgX.bin
+^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-The signing has happen in-place in flash.bin, thus the flashing procedure
+The signing has happen in-place in flash-pgX.bin, thus the flashing procedure
 described above.
 
 M.2 slot configuration
diff --git a/tools/iot2050-sign-fw.sh b/tools/iot2050-sign-fw.sh
index da425c94a5d..74084f0980e 100755
--- a/tools/iot2050-sign-fw.sh
+++ b/tools/iot2050-sign-fw.sh
@@ -39,9 +39,12 @@ CERT_X509=$(mktemp XXXXXXXX.crt)
 
 openssl req -new -x509 -key $1 -nodes -outform DER -out $CERT_X509 -config 
$TEMP_X509 -sha512
 cat $CERT_X509 tispl.bin > tispl.bin_signed
-source/tools/binman/binman replace -i flash.bin -f tispl.bin_signed 
blob@0x180000
+source/tools/binman/binman replace -i flash-pg1.bin -f tispl.bin_signed 
blob@0x180000
+source/tools/binman/binman replace -i flash-pg2.bin -f tispl.bin_signed 
blob@0x180000
 
 rm $TEMP_X509 $CERT_X509
 
-tools/mkimage -G $1 -r -o sha256,rsa4096 -F f...@0x380000.fit
-source/tools/binman/binman replace -i flash.bin -f f...@0x380000.fit 
fit@0x380000
+tools/mkimage -G $1 -r -o sha256,rsa4096 -F flash-pg1....@0x380000.fit
+tools/mkimage -G $1 -r -o sha256,rsa4096 -F flash-pg2....@0x380000.fit
+source/tools/binman/binman replace -i flash-pg1.bin -f 
flash-pg1....@0x380000.fit fit@0x380000
+source/tools/binman/binman replace -i flash-pg2.bin -f 
flash-pg2....@0x380000.fit fit@0x380000
-- 
2.35.3

Reply via email to