mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-14 00:47:26 +00:00
Add fdt_fixup_ethernet helper to set mac addresses
Added a fixup helper that uses aliases to set mac addresses in the device tree based on the bd_t Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
This commit is contained in:
parent
dbaf07ce62
commit
ab544633ab
2 changed files with 47 additions and 0 deletions
|
@ -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);
|
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 */
|
#endif /* CONFIG_OF_LIBFDT */
|
||||||
|
|
|
@ -33,6 +33,7 @@ void do_fixup_by_path(void *fdt, const char *path, const char *prop,
|
||||||
const void *val, int len, int create);
|
const void *val, int len, int create);
|
||||||
void do_fixup_by_path_u32(void *fdt, const char *path, const char *prop,
|
void do_fixup_by_path_u32(void *fdt, const char *path, const char *prop,
|
||||||
u32 val, int create);
|
u32 val, int create);
|
||||||
|
void fdt_fixup_ethernet(void *fdt, bd_t *bd);
|
||||||
|
|
||||||
#ifdef CONFIG_OF_HAS_UBOOT_ENV
|
#ifdef CONFIG_OF_HAS_UBOOT_ENV
|
||||||
int fdt_env(void *fdt);
|
int fdt_env(void *fdt);
|
||||||
|
|
Loading…
Reference in a new issue