]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
board: siemens: iot2050: Fix M.2 detection
authorJan Kiszka <jan.kiszka@siemens.com>
Tue, 17 Oct 2023 05:20:14 +0000 (07:20 +0200)
committerTom Rini <trini@konsulko.com>
Sat, 28 Oct 2023 01:02:08 +0000 (21:02 -0400)
The "simpler" the logic, the higher the probability to not test and get
things wrong, again: The absence of a "-PG2" suffix is not sufficient to
derive that we are on PG1. There is also "IOT2050-ADVANCED-M2".

Finally fix that by exactly matching against the two PG1 device names.

While changing this, we can also drop the not really needed check for
!board_is_sr1 in board_is_m2 and call the boards by their names
("board_is_pg1").

Reported-and-tested-by: Bao Cheng Su <baocheng.su@siemens.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
board/siemens/iot2050/board.c

index e35e55fb5de8018d658c948a8649675fc813aa4c..0b0686e2628b7dc7a01751d5a136d159740821a3 100644 (file)
@@ -155,19 +155,20 @@ static bool board_is_advanced(void)
                strstr((char *)info->name, "IOT2050-ADVANCED") != NULL;
 }
 
-static bool board_is_sr1(void)
+static bool board_is_pg1(void)
 {
        struct iot2050_info *info = IOT2050_INFO_DATA;
 
        return info->magic == IOT2050_INFO_MAGIC &&
-               strstr((char *)info->name, "-PG2") == NULL;
+               (strcmp((char *)info->name, "IOT2050-BASIC") == 0 ||
+                strcmp((char *)info->name, "IOT2050-ADVANCED") == 0);
 }
 
 static bool board_is_m2(void)
 {
        struct iot2050_info *info = IOT2050_INFO_DATA;
 
-       return !board_is_sr1() && info->magic == IOT2050_INFO_MAGIC &&
+       return info->magic == IOT2050_INFO_MAGIC &&
                strcmp((char *)info->name, "IOT2050-ADVANCED-M2") == 0;
 }
 
@@ -217,14 +218,14 @@ void set_board_info_env(void)
        }
 
        if (board_is_advanced()) {
-               if (board_is_sr1())
+               if (board_is_pg1())
                        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 (board_is_sr1())
+               if (board_is_pg1())
                        fdtfile = "ti/k3-am6528-iot2050-basic.dtb";
                else
                        fdtfile = "ti/k3-am6528-iot2050-basic-pg2.dtb";