NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/38698: NMI during boot on Fujitsu-Siemens Lifebook S-4546



The following reply was made to PR kern/38698; it has been noted by GNATS.

From: gson%gson.org@localhost (Andreas Gustafsson)
To: gnats-bugs%NetBSD.org@localhost
Cc: dyoung%NetBSD.org@localhost
Subject: Re: kern/38698: NMI during boot on Fujitsu-Siemens Lifebook S-4546
Date: Tue, 20 May 2008 21:28:46 +0300

 David Young wrote:
 >  pci_conf_write() is not in the stack trace?
 
 That is correct.  I assume this is just ddb having some kind of
 issue with the callers of leaf functions.  I tried building a new
 kernel without optimization, but ddb is still not showing
 pci_conf_write() in the backtrace.
 
 > Please capture and send
 > the entire stack trace (type 'bt' at the db{0}> prompt) if you can.
 
 The machine lacks a serial port and it's too much text to to
 transcribe by hand, but here's a pair of screenshots:
 
 http://www.gson.org/netbsd/bugs/38698/bt1.jpg
 http://www.gson.org/netbsd/bugs/38698/bt2.jpg
 
 This is from a non-optimized kernel on a live CD, built using
 mklivecd from 20080516-1010 EET kernel sources.
 
 >  Please send the dmesg you get when you apply your workaround, also.
 
 http://www.gson.org/netbsd/bugs/38698/dmesg1.jpg
 http://www.gson.org/netbsd/bugs/38698/dmesg2.jpg
 http://www.gson.org/netbsd/bugs/38698/dmesg3.jpg
 http://www.gson.org/netbsd/bugs/38698/dmesg4.jpg
 http://www.gson.org/netbsd/bugs/38698/dmesg5.jpg
 http://www.gson.org/netbsd/bugs/38698/dmesg6.jpg
 http://www.gson.org/netbsd/bugs/38698/dmesg7.jpg
 
 >  Can you examine the netbsd.gdb file with gdb for me?  The gdb command
 >  'l *(pccbb_chipinit+0x3b5)' will tell you a line number in pccbb_chipinit.
 >  I would like to know that line number.
 
 Sure.  This is with the new kernel, which shows pccbb_chipinit+0xdd in
 the backtrace:
 
   (gdb) l *(pccbb_chipinit+0xdd)
   0xc075373f is in pccbb_chipinit (/usr/src/sys/dev/pci/pccbb.c:767).
 
 I believe the NMI actually occurs in the pci_conf_write call on line
 759, with line 767 being the return address of the function call in
 which the NMI occurs:
 
    752             /*                                                          
                 x
    753              * Set CardBus latency timer.                               
                 x
    754              */                                                         
                 x
    755             lscp = pci_conf_read(pc, tag, PCI_CB_LSCP_REG);             
                 x
    756             if (PCI_CB_LATENCY(lscp) < 0x20) {                          
                 x
    757                     lscp &= ~(PCI_CB_LATENCY_MASK << 
PCI_CB_LATENCY_SHIFT);              x
    758                     lscp |= (0x20 << PCI_CB_LATENCY_SHIFT);             
                 x
    759                     pci_conf_write(pc, tag, PCI_CB_LSCP_REG, lscp);     
                 x
    760             }                                                           
                 x
    761             DPRINTF(("CardBus latency timer 0x%x (%x)\n",               
                 x
    762                 PCI_CB_LATENCY(lscp), pci_conf_read(pc, tag, 
PCI_CB_LSCP_REG)));         x
    763                                                                         
                 x
    764             /*                                                          
                 x
    765              * Set PCI latency timer.                                   
                 x
    766              */                                                         
                 x
    767             bhlc = pci_conf_read(pc, tag, PCI_BHLC_REG);                
                 x
 
 -- 
 Andreas Gustafsson, gson%gson.org@localhost
 


Home | Main Index | Thread Index | Old Index