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: Stefan Roese <sr@denx.de>
This commit is contained in:
Stefan Roese 2007-12-14 08:41:29 +01:00
parent 136288847e
commit 871e6ce188

View File

@ -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 */