Index: if_wm.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_wm.c,v retrieving revision 1.214 diff -u -p -r1.214 if_wm.c --- if_wm.c 26 Jul 2010 22:33:24 -0000 1.214 +++ if_wm.c 10 Sep 2010 12:46:23 -0000 @@ -4518,6 +4518,14 @@ wm_read_eeprom_uwire(struct wm_softc *sc reg = CSR_READ(sc, WMREG_EECD) & ~(EECD_SK | EECD_DI); CSR_WRITE(sc, WMREG_EECD, reg); + /* XXX: workaround for a bug in qemu-0.12.x and prior */ + reg |= EECD_SK; + CSR_WRITE(sc, WMREG_EECD, reg); + reg &= ~EECD_SK; + CSR_WRITE(sc, WMREG_EECD, reg); + delay(2); + /* XXX: end of workaround */ + /* Set CHIP SELECT. */ reg |= EECD_CS; CSR_WRITE(sc, WMREG_EECD, reg);