[POWERPC] bootwrapper: Factor out dt_set_mac_address()
This allows callers to set addresses one at a time when that would be more convenient. Signed-off-by: Scott Wood <scottwood@freescale.com> Acked-by: David Gibson <david@gibson.dropbear.id.au> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
51a505d73b
commit
27ff35d902
2 changed files with 18 additions and 14 deletions
|
@ -88,29 +88,32 @@ void dt_fixup_clock(const char *path, u32 freq)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void dt_fixup_mac_address(u32 index, const u8 *addr)
|
||||||
|
{
|
||||||
|
void *devp = find_node_by_prop_value(NULL, "linux,network-index",
|
||||||
|
(void*)&index, sizeof(index));
|
||||||
|
|
||||||
|
if (devp) {
|
||||||
|
printf("ENET%d: local-mac-address <-"
|
||||||
|
" %02x:%02x:%02x:%02x:%02x:%02x\n\r", index,
|
||||||
|
addr[0], addr[1], addr[2],
|
||||||
|
addr[3], addr[4], addr[5]);
|
||||||
|
|
||||||
|
setprop(devp, "local-mac-address", addr, 6);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void __dt_fixup_mac_addresses(u32 startindex, ...)
|
void __dt_fixup_mac_addresses(u32 startindex, ...)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
u32 index = startindex;
|
u32 index = startindex;
|
||||||
void *devp;
|
|
||||||
const u8 *addr;
|
const u8 *addr;
|
||||||
|
|
||||||
va_start(ap, startindex);
|
va_start(ap, startindex);
|
||||||
while ((addr = va_arg(ap, const u8 *))) {
|
|
||||||
devp = find_node_by_prop_value(NULL, "linux,network-index",
|
|
||||||
(void*)&index, sizeof(index));
|
|
||||||
|
|
||||||
if (devp) {
|
while ((addr = va_arg(ap, const u8 *)))
|
||||||
printf("ENET%d: local-mac-address <-"
|
dt_fixup_mac_address(index++, addr);
|
||||||
" %02x:%02x:%02x:%02x:%02x:%02x\n\r", index,
|
|
||||||
addr[0], addr[1], addr[2],
|
|
||||||
addr[3], addr[4], addr[5]);
|
|
||||||
|
|
||||||
setprop(devp, "local-mac-address", addr, 6);
|
|
||||||
}
|
|
||||||
|
|
||||||
index++;
|
|
||||||
}
|
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -161,6 +161,7 @@ static inline void *find_node_by_devtype(const void *prev,
|
||||||
void dt_fixup_memory(u64 start, u64 size);
|
void dt_fixup_memory(u64 start, u64 size);
|
||||||
void dt_fixup_cpu_clocks(u32 cpufreq, u32 tbfreq, u32 busfreq);
|
void dt_fixup_cpu_clocks(u32 cpufreq, u32 tbfreq, u32 busfreq);
|
||||||
void dt_fixup_clock(const char *path, u32 freq);
|
void dt_fixup_clock(const char *path, u32 freq);
|
||||||
|
void dt_fixup_mac_address(u32 index, const u8 *addr);
|
||||||
void __dt_fixup_mac_addresses(u32 startindex, ...);
|
void __dt_fixup_mac_addresses(u32 startindex, ...);
|
||||||
#define dt_fixup_mac_addresses(...) \
|
#define dt_fixup_mac_addresses(...) \
|
||||||
__dt_fixup_mac_addresses(0, __VA_ARGS__, NULL)
|
__dt_fixup_mac_addresses(0, __VA_ARGS__, NULL)
|
||||||
|
|
Loading…
Reference in a new issue