diff options
-rw-r--r-- | sys/boot/ofw/libofw/ofw_net.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/boot/ofw/libofw/ofw_net.c b/sys/boot/ofw/libofw/ofw_net.c index 712a457..e14759c 100644 --- a/sys/boot/ofw/libofw/ofw_net.c +++ b/sys/boot/ofw/libofw/ofw_net.c @@ -188,10 +188,14 @@ ofwn_init(struct iodesc *desc, void *machdep_hint) chosen = OF_finddevice("/chosen"); OF_getprop(chosen, "memory", &memory, sizeof(memory)); pathlen = OF_getprop(chosen, "bootpath", path, 64); - ch = index(path, ':'); - *ch = '\0'; + if ((ch = index(path, ':')) != NULL) + *ch = '\0'; netdev = OF_finddevice(path); +#ifdef __sparc64__ + if (OF_getprop(netdev, "mac-address", desc->myea, 6) == -1) +#else if (OF_getprop(netdev, "local-mac-address", desc->myea, 6) == -1) +#endif goto punt; printf("boot: ethernet address: %s\n", ether_sprintf(desc->myea)); @@ -205,6 +209,7 @@ ofwn_init(struct iodesc *desc, void *machdep_hint) printf("ofwn_init: OpenFirmware instance handle: %08x\n", netinstance); #endif +#ifndef __sparc64__ if (OF_call_method("dma-alloc", netinstance, 1, 1, NULL, &dmabuf) < 0) { printf("Failed to allocate DMA buffer (got %08x).\n", dmabuf); @@ -214,6 +219,7 @@ ofwn_init(struct iodesc *desc, void *machdep_hint) #if defined(NETIF_DEBUG) printf("ofwn_init: allocated DMA buffer: %08x\n", dmabuf); #endif +#endif return; |