Try the following diff, we only use the io space for a few
models so this will limit it to those. Something like this
is also needed for at least 82580 as well.
Index: if_em.c
===================================================================
RCS file: /cvs/src/sys/dev/pci/if_em.c,v
retrieving revision 1.250
diff -u -p -r1.250 if_em.c
--- if_em.c 9 Mar 2011 12:24:15 -0000 1.250
+++ if_em.c 31 Mar 2011 07:54:32 -0000
@@ -1557,7 +1557,13 @@ em_allocate_pci_resources(struct em_soft
return (ENXIO);
}
- if (sc->hw.mac_type > em_82543) {
+ switch (sc->hw.mac_type) {
+ case em_82544:
+ case em_82540:
+ case em_82545:
+ case em_82546:
+ case em_82541:
+ case em_82541_rev_2:
/* Figure out where our I/O BAR is ? */
for (rid = PCI_MAPREG_START; rid < PCI_MAPREG_END;) {
val = pci_conf_read(pa->pa_pc, pa->pa_tag, rid);
@@ -1579,6 +1585,9 @@ em_allocate_pci_resources(struct em_soft
}
sc->hw.io_base = 0;
+ break;
+ default:
+ break;
}
/* for ICH8 and family we need to find the flash memory */