Module Name: src Committed By: bouyer Date: Fri May 20 19:19:57 UTC 2011
Modified Files: src/sys/dev/pci [netbsd-5]: if_lii.c Log Message: Pull up following revision(s) (requested by dholland in ticket #1612): sys/dev/pci/if_lii.c: revision 1.10 PR/41258: Elias Benali: Try to get the ethernet address from the BIOS before failing. To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.5.4.1 src/sys/dev/pci/if_lii.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/if_lii.c diff -u src/sys/dev/pci/if_lii.c:1.5 src/sys/dev/pci/if_lii.c:1.5.4.1 --- src/sys/dev/pci/if_lii.c:1.5 Tue Jul 8 12:39:27 2008 +++ src/sys/dev/pci/if_lii.c Fri May 20 19:19:57 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: if_lii.c,v 1.5 2008/07/08 12:39:27 sborrill Exp $ */ +/* $NetBSD: if_lii.c,v 1.5.4.1 2011/05/20 19:19:57 bouyer Exp $ */ /* * Copyright (c) 2008 The NetBSD Foundation. @@ -31,7 +31,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: if_lii.c,v 1.5 2008/07/08 12:39:27 sborrill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: if_lii.c,v 1.5.4.1 2011/05/20 19:19:57 bouyer Exp $"); #include "bpfilter.h" @@ -547,17 +547,18 @@ } if (found < 2) { - aprint_error_dev(sc->sc_dev, "error reading MAC address\n"); - return 1; - } - - addr0 = htole32(addr0); - addr1 = htole32(addr1); - - if ((addr0 == 0xffffff && (addr1 & 0xffff) == 0xffff) || - (addr0 == 0 && (addr1 & 0xffff) == 0)) { + /* Make sure we try the BIOS method before giving up */ addr0 = htole32(AT_READ_4(sc, ATL2_MAC_ADDR_0)); addr1 = htole32(AT_READ_4(sc, ATL2_MAC_ADDR_1)); + if ((addr0 == 0xffffff && (addr1 & 0xffff) == 0xffff) || + (addr0 == 0 && (addr1 & 0xffff) == 0)) { + aprint_error_dev(sc->sc_dev, + "error reading MAC address\n"); + return 1; + } + } else { + addr0 = htole32(addr0); + addr1 = htole32(addr1); } ea[0] = (addr1 & 0x0000ff00) >> 8;