aboutsummaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorTim Harvey2024-04-17 13:01:53 -0700
committerFabio Estevam2024-04-20 00:36:45 -0300
commit8d22015d23662a886e4f79c347e5e9cd717fe067 (patch)
treebb54799b6a75bca4f996e2b11d209be2297d08c4 /board
parent45d14c0120537a6fda4968d33bf57bfdef53e5f5 (diff)
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 <tharvey@gateworks.com>
Diffstat (limited to 'board')
-rw-r--r--board/gateworks/venice/venice.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/board/gateworks/venice/venice.c b/board/gateworks/venice/venice.c
index f54f1186b68..5b105d7659e 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: