提交 871e6ce1 编写于 作者: S Stefan Roese

ppc4xx: fdt: use fdt_fixup_ethernet()

By using aliases in the dts file, the ethernet node fixup is
much easier with the recently added functions.

Please note that the dts file needs the aliases for this to work.
Signed-off-by: NStefan Roese <sr@denx.de>
上级 13628884
......@@ -21,11 +21,6 @@
* MA 02111-1307 USA
*/
/* define DEBUG for debugging output (obviously ;-)) */
#if 0
#define DEBUG
#endif
#include <common.h>
#include <watchdog.h>
#include <command.h>
......@@ -39,37 +34,10 @@
DECLARE_GLOBAL_DATA_PTR;
/*
* The aliases needed for this generic etherne MAC address
* fixup function are not in place yet. So don't use this
* approach for now. This will be enabled later.
*/
#undef USES_FDT_ALIASES
#ifndef USES_FDT_ALIASES
static void do_fixup_macaddr(void *fdt, int offset, const void *val, int i)
{
int rc;
debug("Updating node EMAC%d\n", i);
rc = fdt_setprop(fdt, offset, "mac-address", val, 6);
if (rc)
printf("Unable to update property %s, err=%s\n",
"mac-address", fdt_strerror(rc));
rc = fdt_setprop(fdt, offset, "local-mac-address", val, 6);
if (rc)
printf("Unable to update property %s, err=%s\n",
"local-mac-address", fdt_strerror(rc));
}
#endif /* USES_FDT_ALIASES */
void ft_cpu_setup(void *blob, bd_t *bd)
{
char *cpu_path = "/cpus/" OF_CPU;
sys_info_t sys_info;
int offset;
int i;
get_sys_info(&sys_info);
......@@ -86,47 +54,10 @@ void ft_cpu_setup(void *blob, bd_t *bd)
*/
do_fixup_by_compat_u32(blob, "ns16550", "clock-frequency", gd->uart_clk, 1);
#ifdef USES_FDT_ALIASES
/*
* The aliases needed for this generic etherne MAC address
* fixup function are not in place yet. So don't use this
* approach for now. This will be enabled later.
* Fixup all ethernet nodes
* Note: aliases in the dts are required for this
*/
fdt_fixup_ethernet(blob, bd);
#else
offset = -1;
for (i = 0; i < 4; i++) {
/*
* FIXME: This will cause problems with emac3 compatible
* devices, like on 405GP. But hopefully when we deal
* with those devices, the aliases stuff will be in
* place.
*/
offset = fdt_node_offset_by_compatible(blob, offset, "ibm,emac4");
if (offset < 0)
break;
switch (i) {
case 0:
do_fixup_macaddr(blob, offset, bd->bi_enetaddr, 0);
break;
#ifdef CONFIG_HAS_ETH1
case 1:
do_fixup_macaddr(blob, offset, bd->bi_enet1addr, 1);
break;
#endif
#ifdef CONFIG_HAS_ETH2
case 2:
do_fixup_macaddr(blob, offset, bd->bi_enet2addr, 2);
break;
#endif
#ifdef CONFIG_HAS_ETH3
case 3:
do_fixup_macaddr(blob, offset, bd->bi_enet3addr, 3);
break;
#endif
}
}
#endif /* USES_FDT_ALIASES */
}
#endif /* CONFIG_OF_LIBFDT */
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册