mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
boards: ls1046ardb: disable unavailable "ethernet" node in dts
Linux device tree contains "ethernet" node for all possible interface supported by SoC i.e. LS1046A. It is not necessary for a SerDes protocol to support all possible interface. So disable unavailable "ethernet" node in device tree. Also, enable FDT_SEQ_MACADDR_FROM_ENV to fetch MAC address sequentially from environment variables Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com> Reviewed-by: York Sun <york.sun@nxp.com>
This commit is contained in:
parent
6bedf44714
commit
4ace304062
2 changed files with 53 additions and 0 deletions
|
@ -75,3 +75,54 @@ int board_eth_init(bd_t *bis)
|
||||||
|
|
||||||
return pci_eth_init(bis);
|
return pci_eth_init(bis);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_FMAN_ENET
|
||||||
|
int fdt_update_ethernet_dt(void *blob)
|
||||||
|
{
|
||||||
|
u32 srds_s1;
|
||||||
|
int i, prop;
|
||||||
|
int offset, nodeoff;
|
||||||
|
const char *path;
|
||||||
|
struct ccsr_gur *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
|
||||||
|
|
||||||
|
srds_s1 = in_be32(&gur->rcwsr[4]) &
|
||||||
|
FSL_CHASSIS2_RCWSR4_SRDS1_PRTCL_MASK;
|
||||||
|
srds_s1 >>= FSL_CHASSIS2_RCWSR4_SRDS1_PRTCL_SHIFT;
|
||||||
|
|
||||||
|
/* Cycle through all aliases */
|
||||||
|
for (prop = 0; ; prop++) {
|
||||||
|
const char *name;
|
||||||
|
|
||||||
|
/* FDT might have been edited, recompute the offset */
|
||||||
|
offset = fdt_first_property_offset(blob,
|
||||||
|
fdt_path_offset(blob,
|
||||||
|
"/aliases")
|
||||||
|
);
|
||||||
|
/* Select property number 'prop' */
|
||||||
|
for (i = 0; i < prop; i++)
|
||||||
|
offset = fdt_next_property_offset(blob, offset);
|
||||||
|
|
||||||
|
if (offset < 0)
|
||||||
|
break;
|
||||||
|
|
||||||
|
path = fdt_getprop_by_offset(blob, offset, &name, NULL);
|
||||||
|
nodeoff = fdt_path_offset(blob, path);
|
||||||
|
|
||||||
|
switch (srds_s1) {
|
||||||
|
case 0x1133:
|
||||||
|
if (!strcmp(name, "ethernet0"))
|
||||||
|
fdt_status_disabled(blob, nodeoff);
|
||||||
|
|
||||||
|
if (!strcmp(name, "ethernet1"))
|
||||||
|
fdt_status_disabled(blob, nodeoff);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
printf("%s: Invalid SerDes prtcl 0x%x for LS1046ARDB\n",
|
||||||
|
__func__, srds_s1);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
|
@ -195,6 +195,8 @@
|
||||||
|
|
||||||
#define FM1_10GEC1_PHY_ADDR 0x0
|
#define FM1_10GEC1_PHY_ADDR 0x0
|
||||||
|
|
||||||
|
#define FDT_SEQ_MACADDR_FROM_ENV
|
||||||
|
|
||||||
#define CONFIG_ETHPRIME "FM1@DTSEC3"
|
#define CONFIG_ETHPRIME "FM1@DTSEC3"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue