]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
board: siemens: iot2050: Split the build for PG1 and PG2
authorSu Baocheng <baocheng.su@siemens.com>
Tue, 28 Feb 2023 18:19:09 +0000 (19:19 +0100)
committerTom Rini <trini@konsulko.com>
Wed, 29 Mar 2023 15:58:25 +0000 (11:58 -0400)
Due to different signature keys, the PG1 and the PG2 boards can no
longer use the same FSBL (tiboot3). This makes it impossible anyway to
maintaine a single flash.bin for both variants, so we can also split the
build.

A new target is added to indicates the build is for PG1 vs. PG2 boards.
Hence now the variants have separated defconfig files.

The runtime board_is_sr1() check does make no sense anymore, so remove
it and replace with build time check.

Documentation is updated accordingly. New binary artifacts are already
available via meta-iot2050.

Signed-off-by: Su Baocheng <baocheng.su@siemens.com>
[Jan: refactor config option into targets, tweak some wordings]
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
arch/arm/dts/k3-am65-iot2050-boot-image.dtsi
board/siemens/iot2050/Kconfig
board/siemens/iot2050/board.c
configs/iot2050_pg1_defconfig [moved from configs/iot2050_defconfig with 99% similarity]
configs/iot2050_pg2_defconfig [new file with mode: 0644]
doc/board/siemens/iot2050.rst

index 27058370cccbb0592e09419c558cb15b85e278ad..3135ad047151b629a0aa729dede717157266c22d 100644 (file)
@@ -1,6 +1,6 @@
 // SPDX-License-Identifier: GPL-2.0
 /*
- * Copyright (c) Siemens AG, 2020-2021
+ * Copyright (c) Siemens AG, 2020-2022
  *
  * Authors:
  *   Jan Kiszka <jan.kiszka@siemens.com>
 
                blob-ext@0x000000 {
                        offset = <0x000000>;
-                       filename = "tiboot3.bin";
+#ifdef CONFIG_TARGET_IOT2050_A53_PG1
+                       filename = "seboot_pg1.bin";
+#else
+                       filename = "seboot_pg2.bin";
+#endif
                        missing-msg = "iot2050-seboot";
                };
 
                                };
 
                                fdt-iot2050-basic {
-                                       description = "k3-am6528-iot2050-basic.dtb";
+                                       description = "k3-am6528-iot2050-basic*.dtb";
                                        type = "flat_dt";
                                        arch = "arm64";
                                        compression = "none";
                                        blob {
+#ifdef CONFIG_TARGET_IOT2050_A53_PG1
                                                filename = "arch/arm/dts/k3-am6528-iot2050-basic.dtb";
-                                       };
-                               };
-
-                               fdt-iot2050-basic-pg2 {
-                                       description = "k3-am6528-iot2050-basic-pg2.dtb";
-                                       type = "flat_dt";
-                                       arch = "arm64";
-                                       compression = "none";
-                                       blob {
+#else
                                                filename = "arch/arm/dts/k3-am6528-iot2050-basic-pg2.dtb";
+#endif
                                        };
                                };
 
                                fdt-iot2050-advanced {
-                                       description = "k3-am6548-iot2050-advanced.dtb";
+                                       description = "k3-am6548-iot2050-advanced*.dtb";
                                        type = "flat_dt";
                                        arch = "arm64";
                                        compression = "none";
                                        blob {
+#ifdef CONFIG_TARGET_IOT2050_A53_PG1
                                                filename = "arch/arm/dts/k3-am6548-iot2050-advanced.dtb";
-                                       };
-                               };
-
-                               fdt-iot2050-advanced-pg2 {
-                                       description = "k3-am6548-iot2050-advanced-pg2.dtb";
-                                       type = "flat_dt";
-                                       arch = "arm64";
-                                       compression = "none";
-                                       blob {
+#else
                                                filename = "arch/arm/dts/k3-am6548-iot2050-advanced-pg2.dtb";
+#endif
                                        };
                                };
 
 #endif
                                };
 
-                               conf-iot2050-basic-pg2 {
-                                       description = "iot2050-basic-pg2";
-                                       firmware = "u-boot";
-                                       fdt = "fdt-iot2050-basic-pg2";
-#ifdef CONFIG_WDT_K3_RTI_FW_FILE
-                                       loadables = "k3-rti-wdt-firmware";
-#endif
-                               };
-
                                conf-iot2050-advanced {
                                        description = "iot2050-advanced";
                                        firmware = "u-boot";
                                        fdt = "fdt-iot2050-advanced";
 #ifdef CONFIG_WDT_K3_RTI_FW_FILE
                                        loadables = "k3-rti-wdt-firmware";
-#endif
-                               };
-
-                               conf-iot2050-advanced-pg2 {
-                                       description = "iot2050-advanced-pg2";
-                                       firmware = "u-boot";
-                                       fdt = "fdt-iot2050-advanced-pg2";
-#ifdef CONFIG_WDT_K3_RTI_FW_FILE
-                                       loadables = "k3-rti-wdt-firmware";
 #endif
                                };
                        };
                        fill-byte = [00];
                };
 
-               /* PG1 sysfw, basic variant */
+               /* sysfw, basic variant */
                blob-ext@0x6c0000 {
                        offset = <0x6c0000>;
-                       filename = "sysfw.itb";
+#ifdef CONFIG_TARGET_IOT2050_A53_PG1
+                       filename = "sysfw_sr1.itb";
+#else
+                       filename = "sysfw_sr2.itb";
+#endif
                        missing-msg = "iot2050-sysfw";
                };
-               /* PG1 sysfw, advanced variant */
+               /* sysfw, advanced variant */
                blob-ext@0x740000 {
                        offset = <0x740000>;
-                       filename = "sysfw.itb_HS";
-                       missing-msg = "iot2050-sysfw";
-               };
-               /* PG2 sysfw, basic variant */
-               blob-ext@0x7c0000 {
-                       offset = <0x7c0000>;
-                       filename = "sysfw_sr2.itb";
-                       missing-msg = "iot2050-sysfw";
-               };
-               /* PG2 sysfw, advanced variant */
-               blob-ext@0x840000 {
-                       offset = <0x840000>;
+#ifdef CONFIG_TARGET_IOT2050_A53_PG1
+                       filename = "sysfw_sr1.itb_HS";
+#else
                        filename = "sysfw_sr2.itb_HS";
+#endif
                        missing-msg = "iot2050-sysfw";
                };
        };
index 063142a43bfa735154d7d97ae6edcace22534510..a2b40881d112f6e49c86bc291b0855daf5d04a3e 100644 (file)
@@ -1,20 +1,40 @@
 # SPDX-License-Identifier: GPL-2.0+
 #
-# Copyright (c) Siemens AG, 2018-2021
+# Copyright (c) Siemens AG, 2018-2022
 #
 # Authors:
 #   Le Jin <le.jin@siemens.com>
 #   Jan Kiszka <jan.kiszka@siemens.com>
 
-config TARGET_IOT2050_A53
-       bool "IOT2050 running on A53"
+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
        select ARM64
        select SOC_K3_AM654
        select BOARD_LATE_INIT
        select SYS_DISABLE_DCACHE_OPS
        select BINMAN
 
-if TARGET_IOT2050_A53
+if IOT2050_A53_COMMON
 
 config SYS_BOARD
        default "iot2050"
index 8f4b0eae49516e1542e6cee79086ffdf468f4b1a..dbf893000a7d4010a6f7b0bef3acf77110c6309a 100644 (file)
@@ -55,14 +55,6 @@ 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"));
@@ -109,12 +101,12 @@ void set_board_info_env(void)
        }
 
        if (board_is_advanced()) {
-               if (board_is_sr1())
+               if (IS_ENABLED(CONFIG_TARGET_IOT2050_A53_PG1))
                        fdtfile = "ti/k3-am6548-iot2050-advanced.dtb";
                else
                        fdtfile = "ti/k3-am6548-iot2050-advanced-pg2.dtb";
        } else {
-               if (board_is_sr1())
+               if (IS_ENABLED(CONFIG_TARGET_IOT2050_A53_PG1))
                        fdtfile = "ti/k3-am6528-iot2050-basic.dtb";
                else
                        fdtfile = "ti/k3-am6528-iot2050-basic-pg2.dtb";
similarity index 99%
rename from configs/iot2050_defconfig
rename to configs/iot2050_pg1_defconfig
index 57387edcb412cf766640f4ddd8ff4aee65b232ed..0440cf1c008113e5c6f1a3b711e8f63e2b71358b 100644 (file)
@@ -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=y
+CONFIG_TARGET_IOT2050_A53_PG1=y
 CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
 CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80100000
 CONFIG_ENV_SIZE=0x20000
diff --git a/configs/iot2050_pg2_defconfig b/configs/iot2050_pg2_defconfig
new file mode 100644 (file)
index 0000000..58aefac
--- /dev/null
@@ -0,0 +1,149 @@
+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_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_DISTRO_DEFAULTS=y
+CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y
+CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x80100000
+# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
+CONFIG_SPL_LOAD_FIT=y
+# CONFIG_USE_SPL_FIT_GENERATOR is not set
+CONFIG_OF_BOARD_SETUP=y
+CONFIG_BOOTSTAGE=y
+CONFIG_SHOW_BOOT_PROGRESS=y
+CONFIG_SPL_SHOW_BOOT_PROGRESS=y
+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=0x280000
+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_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_DM=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=y
+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_DM_RESET=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_WDT=y
+CONFIG_WDT_K3_RTI=y
+CONFIG_WDT_K3_RTI_LOAD_FW=y
+CONFIG_OF_LIBFDT_OVERLAY=y
index 7e97f817ce4c977eb1c42da4ea99d6d646f44274..fd3431fa3f8ce701011be799a7eebcb7cb867a96 100644 (file)
@@ -24,9 +24,10 @@ Binary dependencies can be found in
 https://github.com/siemens/meta-iot2050/tree/master/recipes-bsp/u-boot/files/prebuild.
 The following binaries from that source need to be present in the build folder:
 
- - tiboot3.bin
- - sysfw.itb
- - sysfw.itb_HS
+ - seboot_pg1.bin
+ - sysfw_sr1.itb
+ - sysfw_sr1.itb_HS
+ - seboot_pg2.bin
  - sysfw_sr2.itb
  - sysfw_sr2.itb_HS
 
@@ -57,7 +58,13 @@ U-Boot:
 
  $ export ATF=/path/to/bl31.bin
  $ export TEE=/path/to/tee-pager_v2.bin
- $ make iot2050_defconfig
+
+ # configure for PG1
+ $ make iot2050_pg1_defconfig
+
+ # or configure for PG2
+ $ make iot2050_pg2_defconfig
+
  $ make
 
 Flashing