diff -u nve/if_nve.c /root/nve/if_nve.c --- nve/if_nve.c Wed Jan 17 10:21:20 2007 +++ /root/nve/if_nve.c Thu Jan 25 16:12:44 2007 @@ -237,6 +237,8 @@ "NVIDIA nForce MCP12 Networking Adapter"}, {NVIDIA_VENDORID, NFORCE_MCPNET13_DEVICEID, "NVIDIA nForce MCP13 Networking Adapter"}, + {NVIDIA_VENDORID, NFORCE_MCP61NET00_DEVICEID, + "NVIDIA nForce MCP61 Networking Adapter"}, {0, 0, NULL} }; @@ -488,12 +490,16 @@ sc->adapterdata.ulModeRegTxReadCompleteEnable = 1; sc->hwapi->pfnSetCommonData(sc->hwapi->pADCX, &sc->adapterdata); - /* MAC is loaded backwards into h/w reg */ - sc->hwapi->pfnGetNodeAddress(sc->hwapi->pADCX, sc->original_mac_addr); - for (i = 0; i < 6; i++) { - eaddr[i] = sc->original_mac_addr[5 - i]; - } - sc->hwapi->pfnSetNodeAddress(sc->hwapi->pADCX, eaddr); + sc->hwapi->pfnGetNodeAddress(sc->hwapi->pADCX, sc->original_mac_addr); + // temp, miror hotfix for MCP61 + if ( pci_get_device(dev) != NFORCE_MCP61NET00_DEVICEID ) { + /* MAC is loaded backwards into h/w reg */ + for (i = 0; i < 6; i++) { + eaddr[i] = sc->original_mac_addr[5 - i]; + } + sc->hwapi->pfnSetNodeAddress(sc->hwapi->pADCX, eaddr); + } else + sc->hwapi->pfnGetNodeAddress(sc->hwapi->pADCX, eaddr); /* Display ethernet address ,... */ device_printf(dev, "Ethernet address %6D\n", eaddr, ":"); diff -u nve/if_nvereg.h /root/nve/if_nvereg.h --- nve/if_nvereg.h Fri Dec 8 00:28:52 2006 +++ /root/nve/if_nvereg.h Thu Jan 25 16:12:44 2007 @@ -48,6 +48,7 @@ #define NFORCE_MCPNET11_DEVICEID 0x0038 #define NFORCE_MCPNET12_DEVICEID 0x0268 #define NFORCE_MCPNET13_DEVICEID 0x0269 +#define NFORCE_MCP61NET00_DEVICEID 0x03ef #define NV_RID 0x10