From: Tim Harvey Date: Wed, 17 Apr 2024 20:01:53 +0000 (-0700) Subject: board: gateworks: venice: fix dt adjustment for gw73xx baseboard for imx8mp X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=8d22015d23662a886e4f79c347e5e9cd717fe067;p=u-boot.git board: gateworks: venice: fix dt adjustment for gw73xx baseboard for imx8mp 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 --- diff --git a/board/gateworks/venice/venice.c b/board/gateworks/venice/venice.c index f54f1186b6..5b105d7659 100644 --- a/board/gateworks/venice/venice.c +++ b/board/gateworks/venice/venice.c @@ -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: