diff options
-rw-r--r-- | sys/dev/gem/if_gem_pci.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/dev/gem/if_gem_pci.c b/sys/dev/gem/if_gem_pci.c index 9be2fac..26bf635 100644 --- a/sys/dev/gem/if_gem_pci.c +++ b/sys/dev/gem/if_gem_pci.c @@ -143,6 +143,15 @@ gem_pci_attach(dev) { struct gem_pci_softc *gsc = device_get_softc(dev); struct gem_softc *sc = &gsc->gsc_gem; + u_int16_t csr; + + /* + * Enable bus master access. The firmware does in some cases not do + * this for us on sparc64 machines. + */ + csr = pci_read_config(dev, PCIR_COMMAND, 2); + csr |= PCIM_CMD_PORTEN | PCIM_CMD_MEMEN | PCIM_CMD_BUSMASTEREN; + pci_write_config(dev, PCIR_COMMAND, csr, 2); sc->sc_dev = dev; sc->sc_pci = 1; /* XXX */ |