PCI bridge with I/O decode 0x0-0x0

Serge Semenenko serge at a-1.com.ua
Tue May 20 21:27:40 UTC 2008


Hi

Have the same problem with my Acer 6292... But at the same time there 
are no problems on my friend's EX5620G. I've spent some time trying to 
fix aml code but with no success. May be I'm not too good in that or the 
problem might be somewhere else... Anyway, it seems that somewhere 
during acpi initialization PCI Config space of PCI bridges gets 
corrupted. So, to get my network cards working as a temporary solution I 
use the patch attached. Memory ranges I've found while booting with acpi 
disabled. I know that's not a solution but at least I could send now 
this message through built-in wifi card :)

Regards,
Serge


-------------- next part --------------
--- acpi_pcib_pci.c.orig	2008-02-28 00:55:04.000000000 +0200
+++ acpi_pcib_pci.c	2008-02-28 23:51:16.000000000 +0200
@@ -133,6 +133,22 @@
 
     ACPI_FUNCTION_TRACE((char *)(uintptr_t)__func__);
 
+    if (device_get_unit(dev)==2){
+	pci_write_config(dev, PCIR_COMMAND, PCIM_CMD_MEMEN | PCIM_CMD_PORTEN, 1);
+	pci_enable_busmaster(dev);
+	pci_write_config(dev, PCIR_IOBASEL_1, 0xf0, 1);
+	pci_write_config(dev, PCIR_MEMBASE_1, 0xf020, 2);
+	pci_write_config(dev, PCIR_MEMLIMIT_1, 0xf020, 2);
+	pci_write_config(dev, PCIR_PMBASEL_1, 0xfff1, 2);
+    }
+    if (device_get_unit(dev)==3){
+        pci_write_config(dev, PCIR_COMMAND, PCIM_CMD_MEMEN | PCIM_CMD_PORTEN, 1);
+        pci_enable_busmaster(dev);
+        pci_write_config(dev, PCIR_IOBASEL_1, 0xf0, 1);
+        pci_write_config(dev, PCIR_MEMBASE_1, 0xf030, 2);
+        pci_write_config(dev, PCIR_MEMLIMIT_1, 0xf030, 2);
+        pci_write_config(dev, PCIR_PMBASEL_1, 0xfff1, 2);
+    }
     pcib_attach_common(dev);
     sc = device_get_softc(dev);
     sc->ap_handle = acpi_get_handle(dev);


More information about the freebsd-acpi mailing list