]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
board: iot2050: Support new IOT2050-SM variant
authorBaocheng Su <baocheng.su@siemens.com>
Tue, 22 Oct 2024 06:04:27 +0000 (08:04 +0200)
committerTom Rini <trini@konsulko.com>
Tue, 29 Oct 2024 16:05:25 +0000 (10:05 -0600)
Main differences between the new variant and Advanced PG2:

1. Arduino interface is removed. Instead, an new ASIC is added for
   communicating with PLC 1200 signal modules.
2. USB 3.0 type A connector is removed, only USB 2.0 type A connector is
   available.
3. DP interface is tailored down. Instead, to communicate with the
   PLC 1200 signal modules, a USB 3.0 type B connector is added but the
   signal is not USB.
4. DDR size is increased to 4 GB.
5. Two sensors are added, one tilt sensor and one light sensor.

Signed-off-by: Baocheng Su <baocheng.su@siemens.com>
[Jan: rebased over OF_UPSTREAM]
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
arch/arm/dts/k3-am65-iot2050-boot-image.dtsi
arch/arm/dts/k3-am6548-iot2050-advanced-sm-u-boot.dtsi [new symlink]
board/siemens/iot2050/board.c
configs/iot2050_defconfig
doc/board/siemens/iot2050.rst

index 1b31d412b4caaeb99bc13d07df2f198e5d8e934b..f49d6f262f2ed12562e02d44851558e5c0248853 100644 (file)
                };
 
                fit@380000 {
-                       fit,fdt-list-val = "ti/k3-am6528-iot2050-basic-pg2", "ti/k3-am6548-iot2050-advanced-pg2", "ti/k3-am6548-iot2050-advanced-m2";
+                       fit,fdt-list-val = "ti/k3-am6528-iot2050-basic-pg2",
+                                          "ti/k3-am6548-iot2050-advanced-pg2",
+                                          "ti/k3-am6548-iot2050-advanced-m2",
+                                          "ti/k3-am6548-iot2050-advanced-sm";
 
                        images {
                                bkey-usb3-overlay {
diff --git a/arch/arm/dts/k3-am6548-iot2050-advanced-sm-u-boot.dtsi b/arch/arm/dts/k3-am6548-iot2050-advanced-sm-u-boot.dtsi
new file mode 120000 (symlink)
index 0000000..859776d
--- /dev/null
@@ -0,0 +1 @@
+k3-am6528-iot2050-basic-pg2-u-boot.dtsi
\ No newline at end of file
index 9d4c9cf1b31251a7089b17ac44865f3e5cd7f1c5..e6bedc389173361463793659c1cc6387c6b9029f 100644 (file)
@@ -174,6 +174,14 @@ static bool board_is_m2(void)
                strcmp((char *)info->name, "IOT2050-ADVANCED-M2") == 0;
 }
 
+static bool board_is_sm(void)
+{
+       struct iot2050_info *info = IOT2050_INFO_DATA;
+
+       return info->magic == IOT2050_INFO_MAGIC &&
+               strcmp((char *)info->name, "IOT2050-ADVANCED-SM") == 0;
+}
+
 static void remove_mmc1_target(void)
 {
        char *boot_targets = strdup(env_get("boot_targets"));
@@ -189,7 +197,10 @@ static void remove_mmc1_target(void)
 
 static void enable_pcie_connector_power(void)
 {
-       set_pinvalue("gpio@601000_17", "P3V3_PCIE_CON_EN", 1);
+       if (board_is_sm())
+               set_pinvalue("gpio@601000_22", "P3V3_PCIE_CON_EN", 1);
+       else
+               set_pinvalue("gpio@601000_17", "P3V3_PCIE_CON_EN", 1);
        udelay(4 * 100);
 }
 
@@ -230,6 +241,8 @@ void set_board_info_env(void)
                        fdtfile = "ti/k3-am6548-iot2050-advanced.dtb";
                else if (board_is_m2())
                        fdtfile = "ti/k3-am6548-iot2050-advanced-m2.dtb";
+               else if (board_is_sm())
+                       fdtfile = "ti/k3-am6548-iot2050-advanced-sm.dtb";
                else
                        fdtfile = "ti/k3-am6548-iot2050-advanced-pg2.dtb";
        } else {
index 78db6d210991fbdd0d4e673df5abfab550db8952..2624f0cb57370571b9b5d61aec5288f3502a8162 100644 (file)
@@ -80,7 +80,7 @@ CONFIG_CMD_TIME=y
 CONFIG_OF_CONTROL=y
 CONFIG_SPL_OF_CONTROL=y
 CONFIG_OF_UPSTREAM=y
-CONFIG_OF_LIST="ti/k3-am6528-iot2050-basic ti/k3-am6528-iot2050-basic-pg2 ti/k3-am6548-iot2050-advanced ti/k3-am6548-iot2050-advanced-pg2 ti/k3-am6548-iot2050-advanced-m2"
+CONFIG_OF_LIST="ti/k3-am6528-iot2050-basic ti/k3-am6528-iot2050-basic-pg2 ti/k3-am6548-iot2050-advanced ti/k3-am6548-iot2050-advanced-pg2 ti/k3-am6548-iot2050-advanced-m2 ti/k3-am6548-iot2050-advanced-sm"
 CONFIG_OF_OVERLAY_LIST="ti/k3-am6548-iot2050-advanced-m2-bkey-usb3 ti/k3-am6548-iot2050-advanced-m2-bkey-ekey-pcie"
 CONFIG_SPL_MULTI_DTB_FIT=y
 CONFIG_SPL_OF_LIST="ti/k3-am6528-iot2050-basic"
index d0c0a412097b12159045154353b56675df8c8f18..37b23f6146ba63fdc1974e282ba145ce009493b6 100644 (file)
@@ -8,7 +8,9 @@ The SIMATIC IOT2050 is an open industrial IoT gateway that is using the TI
 AM6528 GP (Basic variant) or the AM6548 HS (Advanced variant). The Advanced
 variant is prepared for secure boot. M.2 Variant also uses the AM6548 HS.
 Instead of a MiniPCI connector, it comes with two M.2 connectors and can
-support 5G/WIFI/BT applications or connect an SSD.
+support 5G/WIFI/BT applications or connect an SSD. Compared with the AM6548
+Advanced variant, SM variant removes the Arduino interface, and adds a new
+ASIC for communicating with the PLC 1200 signal modules.
 
 The IOT2050 starts only from OSPI. It loads a Siemens-provided bootloader
 called SE-Boot for the MCU domain (R5F cores), then hands over to ATF and