kern/81015: System locks up during PCI devices initialization

Andrey Sverdlichenko blaze at rudy.ru
Sat May 14 13:20:03 GMT 2005


>Number:         81015
>Category:       kern
>Synopsis:       System locks up during PCI devices initialization
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat May 14 13:20:02 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Andrey Sverdlichenko
>Release:        5.3-RELEASE, 5.4-RELEASE
>Organization:
>Environment:
FreeBSD lsd.infosec.ru 5.4-RELEASE FreeBSD 5.4-RELEASE #4: Fri May 13 18:14:44 MSK 2005 root at lsd.infosec.ru:/usr/src/sys/i386/compile/LSD  i386
>Description:
On Acer TravelMate 5020 notebook, Toshiba A50-111 notebook and possibly other 855GME-based notebooks kernel locks up during PCI devices initialization. Nothing works, except power button.
Looks like kernel tries to initalize second video chip and something goes wrong here. I'm not even sure there is any second video chip in chipset.
>How-To-Repeat:
Simply try to install FreeBSD on this notebooks.
>Fix:
This is workaround, it simply skip second device by PCI id.

--- pci.c       Fri Mar 18 20:00:06 2005
+++ /usr/src/sys/dev/pci/pci.c  Sat Feb 26 12:41:36 2005
@@ -961,6 +961,16 @@
                for (f = 0; f <= pcifunchigh; f++) {
                        dinfo = pci_read_device(pcib, busno, s, f, dinfo_size);
                        if (dinfo != NULL) {
+                               static int skipped = 0;
+                               pcicfgregs *cfg = &dinfo->cfg;
+                               if (cfg->vendor == 0x8086
+                                               && cfg->device == 0x3582) {
+                                       if (skipped) {
+                                               printf("Weird controller skipped\n");
+                                               continue;
+                                       }
+                                       skipped++;
+                               }
                                pci_add_child(dev, dinfo);
                        }
                }
>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list