]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
board: gateworks: venice: fix dt adjustment for gw73xx baseboard for imx8mp
authorTim Harvey <tharvey@gateworks.com>
Wed, 17 Apr 2024 20:01:53 +0000 (13:01 -0700)
committerFabio Estevam <festevam@gmail.com>
Sat, 20 Apr 2024 03:36:45 +0000 (00:36 -0300)
The GW73xx baseboard needs a PCI dt adjustment for revC/D based on a
change of the PCIe switch. Make sure we are only doing this for a pci
based ethernet to avoid causing a boot hang when the ethernet1 alias
points to eqos or fec. To know this is a pcie device ensure the alias
begins with the pcie controller.

Signed-off-by: Tim Harvey <tharvey@gateworks.com>
board/gateworks/venice/venice.c

index f54f1186b68674bdfb2aa6de1a49737d54720508..5b105d7659e402e5705a3c94423c7d892f465101 100644 (file)
@@ -230,6 +230,7 @@ uint mmc_get_env_part(struct mmc *mmc)
 int ft_board_setup(void *fdt, struct bd_info *bd)
 {
        const char *base_model = eeprom_get_baseboard_model();
+       const char *path;
        char pcbrev;
        int off;
 
@@ -238,10 +239,10 @@ int ft_board_setup(void *fdt, struct bd_info *bd)
 
        if (!strncmp(base_model, "GW73", 4)) {
                pcbrev = get_pcb_rev(base_model);
+               path = fdt_get_alias(fdt, "ethernet1");
 
-               if (pcbrev > 'B' && pcbrev < 'E') {
-                       printf("adjusting dt for %s\n", base_model);
-
+               if (pcbrev > 'B' && pcbrev < 'E' && path && !strncmp(path, "/soc@0/pcie@", 12)) {
+                       printf("adjusting %s pcie\n", base_model);
                        /*
                         * revC/D/E has PCIe 4-port switch which changes
                         * ethernet1 PCIe GbE: