|
|
|
@ -386,4 +386,50 @@ void do_fixup_by_path_u32(void *fdt, const char *path, const char *prop, |
|
|
|
|
do_fixup_by_path(fdt, path, prop, &val, sizeof(val), create); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void fdt_fixup_ethernet(void *fdt, bd_t *bd) |
|
|
|
|
{ |
|
|
|
|
int node; |
|
|
|
|
const char *path; |
|
|
|
|
|
|
|
|
|
node = fdt_path_offset(fdt, "/aliases"); |
|
|
|
|
if (node >= 0) { |
|
|
|
|
#if defined(CONFIG_HAS_ETH0) |
|
|
|
|
path = fdt_getprop(fdt, node, "ethernet0", NULL); |
|
|
|
|
if (path) { |
|
|
|
|
do_fixup_by_path(fdt, path, "mac-address", |
|
|
|
|
bd->bi_enetaddr, 6, 0); |
|
|
|
|
do_fixup_by_path(fdt, path, "local-mac-address", |
|
|
|
|
bd->bi_enetaddr, 6, 1); |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
#if defined(CONFIG_HAS_ETH1) |
|
|
|
|
path = fdt_getprop(fdt, node, "ethernet1", NULL); |
|
|
|
|
if (path) { |
|
|
|
|
do_fixup_by_path(fdt, path, "mac-address", |
|
|
|
|
bd->bi_enet1addr, 6, 0); |
|
|
|
|
do_fixup_by_path(fdt, path, "local-mac-address", |
|
|
|
|
bd->bi_enet1addr, 6, 1); |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
#if defined(CONFIG_HAS_ETH2) |
|
|
|
|
path = fdt_getprop(fdt, node, "ethernet2", NULL); |
|
|
|
|
if (path) { |
|
|
|
|
do_fixup_by_path(fdt, path, "mac-address", |
|
|
|
|
bd->bi_enet2addr, 6, 0); |
|
|
|
|
do_fixup_by_path(fdt, path, "local-mac-address", |
|
|
|
|
bd->bi_enet2addr, 6, 1); |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
#if defined(CONFIG_HAS_ETH3) |
|
|
|
|
path = fdt_getprop(fdt, node, "ethernet3", NULL); |
|
|
|
|
if (path) { |
|
|
|
|
do_fixup_by_path(fdt, path, "mac-address", |
|
|
|
|
bd->bi_enet3addr, 6, 0); |
|
|
|
|
do_fixup_by_path(fdt, path, "local-mac-address", |
|
|
|
|
bd->bi_enet3addr, 6, 1); |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#endif /* CONFIG_OF_LIBFDT */ |
|
|
|
|