summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/dev/de/if_de.c9
-rw-r--r--sys/pci/if_de.c9
2 files changed, 16 insertions, 2 deletions
diff --git a/sys/dev/de/if_de.c b/sys/dev/de/if_de.c
index 5883f88..dd7786f 100644
--- a/sys/dev/de/if_de.c
+++ b/sys/dev/de/if_de.c
@@ -5135,7 +5135,7 @@ tulip_pci_attach(pcici_t config_id, int unit)
tulip_media_t media = TULIP_MEDIA_UNKNOWN;
#endif
int retval, idx;
- u_int32_t revinfo, cfdainfo, id;
+ u_int32_t revinfo, cfdainfo, id, cfcsinfo;
#if !defined(TULIP_IOMAPPED)
vm_offset_t pa_csrs;
#endif
@@ -5154,6 +5154,13 @@ tulip_pci_attach(pcici_t config_id, int unit)
revinfo = pci_conf_read(config_id, PCI_CFRV) & 0xFF;
id = pci_conf_read(config_id, PCI_CFID);
cfdainfo = pci_conf_read(config_id, PCI_CFDA);
+ cfcsinfo = pci_conf_read(config_id, PCI_CFCS);
+
+ /* turn busmaster on in case BIOS doesn't set it */
+ if(!(cfcsinfo & PCIM_CMD_BUSMASTEREN)) {
+ cfcsinfo |= PCIM_CMD_BUSMASTEREN;
+ pci_conf_write(config_id, PCI_CFCS, cfcsinfo);
+ }
if (PCI_VENDORID(id) == DEC_VENDORID) {
if (PCI_CHIPID(id) == CHIPID_21040)
diff --git a/sys/pci/if_de.c b/sys/pci/if_de.c
index 5883f88..dd7786f 100644
--- a/sys/pci/if_de.c
+++ b/sys/pci/if_de.c
@@ -5135,7 +5135,7 @@ tulip_pci_attach(pcici_t config_id, int unit)
tulip_media_t media = TULIP_MEDIA_UNKNOWN;
#endif
int retval, idx;
- u_int32_t revinfo, cfdainfo, id;
+ u_int32_t revinfo, cfdainfo, id, cfcsinfo;
#if !defined(TULIP_IOMAPPED)
vm_offset_t pa_csrs;
#endif
@@ -5154,6 +5154,13 @@ tulip_pci_attach(pcici_t config_id, int unit)
revinfo = pci_conf_read(config_id, PCI_CFRV) & 0xFF;
id = pci_conf_read(config_id, PCI_CFID);
cfdainfo = pci_conf_read(config_id, PCI_CFDA);
+ cfcsinfo = pci_conf_read(config_id, PCI_CFCS);
+
+ /* turn busmaster on in case BIOS doesn't set it */
+ if(!(cfcsinfo & PCIM_CMD_BUSMASTEREN)) {
+ cfcsinfo |= PCIM_CMD_BUSMASTEREN;
+ pci_conf_write(config_id, PCI_CFCS, cfcsinfo);
+ }
if (PCI_VENDORID(id) == DEC_VENDORID) {
if (PCI_CHIPID(id) == CHIPID_21040)
OpenPOWER on IntegriCloud