HEAD panic with ofw_pcibus.c 1.21 on Blade 100

Gavin Atkinson gavin at FreeBSD.org
Mon Sep 1 14:39:46 UTC 2008


Hi all,

My Blade 100 now panics on boot with HEAD, and I've tracked it down to
sys/sparc64/pci/ofw_pcibus.c 1.21 (SVN r182108) by marius at .
Specifically, this version now configures bridges differently, and not
setting "Master Abort Mode" prevents the panic:

Index: src/sys/sparc64/pci/ofw_pcibus.c
===================================================================
RCS file: /home/ncvs/src/sys/sparc64/pci/ofw_pcibus.c,v
retrieving revision 1.21
diff -u -r1.21 ofw_pcibus.c
--- src/sys/sparc64/pci/ofw_pcibus.c    24 Aug 2008 15:05:46 -0000      1.21
+++ src/sys/sparc64/pci/ofw_pcibus.c    1 Sep 2008 14:09:27 -0000
@@ -140,7 +140,7 @@
            PCIM_HDRTYPE) == PCIM_HDRTYPE_BRIDGE) {
                reg = PCIB_READ_CONFIG(bridge, busno, slot, func,
                    PCIR_BRIDGECTL_1, 1);
-               reg |= PCIB_BCR_MASTER_ABORT_MODE | PCIB_BCR_SERR_ENABLE |
+               reg |= /* PCIB_BCR_MASTER_ABORT_MODE | */ PCIB_BCR_SERR_ENABLE |
                    PCIB_BCR_PERR_ENABLE;
 #ifdef OFW_PCI_DEBUG
                device_printf(bridge,



My Blade 100 (dmesg and panic backtrace attached) has three extra ATI
graphics cards installed (Official Sun ones, PN 370-4362), it doesn't
panic with these removed.  Removing them and throwing a generic fxp(4)
card into one of the slots also gives the panic, so I suspect having
anything in at least one of the slots will cause a panic for me.

I'm pretty sure the panic is not hardware related, as the machine will
happily run Solaris 10.

Any suggestions?  Are we missing some code necessary to support master
mode aborts?  I'm happy to test anything necessary.  This code was also
MFC'd, so I'm concerned about seeing 7.1 also have this issue.

Thanks,

Gavin
-------------- next part --------------
jumping to kernel entry at 0xc0078000.
GDB: no debug ports present
KDB: debugger backends: ddb
KDB: current backend: ddb
Copyright (c) 1992-2008 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 8.0-CURRENT #10: Mon Sep  1 12:25:27 BST 2008
    root at violet.york.ac.uk:/usr/obj/usr/src/sys/GENERIC
WARNING: WITNESS option enabled, expect reduced performance.
Timecounter "tick" frequency 502000000 Hz quality 1000
real memory  = 536870912 (512 MB)
avail memory = 506454016 (482 MB)
cpu0: Sun Microsystems UltraSparc-IIe Processor (502.00 MHz CPU)
registered firmware set <isp_1000>
registered firmware set <isp_1040>
registered firmware set <isp_1040_it>
registered firmware set <isp_1080>
registered firmware set <isp_1080_it>
registered firmware set <isp_12160>
registered firmware set <isp_12160_it>
registered firmware set <isp_2100>
registered firmware set <isp_2200>
registered firmware set <isp_2300>
registered firmware set <isp_2322>
registered firmware set <isp_2400>
kbd0 at kbdmux0
ath_hal: 0.9.20.3 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413, REGOPS_FUNC)
nexus0: <Open Firmware Nexus device>
pcib0: <U2P UPA-PCI bridge> mem 0x1fe00000000-0x1fe0000ffff,0x1fe01000000-0x1fe010000ff irq 2032,2030,2031,2021 on nexus0
pcib0: Hummingbird compatible, impl 0, version 0, IGN 0x1f, bus A
pcib0: [FILTER]
pcib0: [FILTER]
pcib0: [GIANT-LOCKED]
pcib0: [ITHREAD]
pcib0: DVMA map: 0xc0000000 to 0xc3ffffff
pcib0: [FILTER]
pci0: <OFW PCI bus> on pcib0
pcib0: device 0/12/0: latency timer 64 -> 80
pcib0: device 0/7/0: latency timer 0 -> 64
pcib0: device 0/12/1: latency timer 64 -> 80
pcib0: device 0/12/2: latency timer 64 -> 80
pcib0: device 0/12/3: latency timer 64 -> 80
pcib0: device 0/3/0: latency timer 0 -> 64
pcib0: device 0/8/0: latency timer 64 -> 16
pcib0: device 0/13/0: latency timer 64 -> 16
pcib0: device 0/19/0: latency timer 64 -> 64
pcib0: bridge 0/5/0: control 0x0 -> 0x23
pcib0: bridge 0/5/0: latency timer 0 -> 64
pcib0: device 0/5/0: latency timer 64 -> 64
ebus0: <PCI-EBus3 bridge> mem 0xf0000000-0xf0ffffff,0xf1000000-0xf17fffff at device 12.0 on pci0
ebus0: <idprom>: incomplete
ebus0: <flashprom> addr 0-0xfffff (no driver attached)
eeprom0: <EEPROM/clock> addr 0x100000000-0x100001fff on ebus0
eeprom0: model mk48t59
isab0: <PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
gem0: <Sun ERI 10/100 Ethernet> mem 0x400000-0x41ffff at device 12.1 on pci0
miibus0: <MII bus> on gem0
ukphy0: <Generic IEEE 802.3u media interface> PHY 1 on miibus0
ukphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
gem0: 2kB RX FIFO, 2kB TX FIFO
gem0: Ethernet address: 00:03:ba:1d:8d:7f
gem0: [ITHREAD]
fwohci0: <Sun PCIO-2> mem 0x420000-0x4207ff,0x422000-0x4227ff at device 12.2 on pci0
fwohci0: [FILTER]
fwohci0: OHCI version 1.0 (ROM=0)
fwohci0: No. of Isochronous channels is 4.
fwohci0: EUI64 00:03:ba:ff:fe:1d:8d:7f
fwohci0: Phy 1394a available S400, 2 ports.
fwohci0: Link S400, max_rec 2048 bytes.
firewire0: <IEEE1394(FireWire) bus> on fwohci0
dcons_crom0: <dcons configuration ROM> on firewire0
dcons_crom0: bus_addr 0xc1128000
fwip0: <IP over FireWire> on firewire0
fwip0: Firewire address: 00:03:ba:ff:fe:1d:8d:7f @ 0xfffe00000000, S400, maxrec 2048
sbp0: <SBP-2/SCSI over FireWire> on firewire0
fwe0: <Ethernet over FireWire> on firewire0
if_fwe0: Fake Ethernet address: 02:03:ba:1d:8d:7f
fwe0: Ethernet address: 02:03:ba:1d:8d:7f
fwohci0: Initiate bus reset
fwohci0: BUS reset
fwohci0: node_id=0xc800ffc0, gen=1, CYCLEMASTER mode
ohci0: <Sun PCIO-2 USB controller> mem 0x2000000-0x2007fff at device 12.3 on pci0
ohci0: [GIANT-LOCKED]
ohci0: [ITHREAD]
usb0: OHCI version 1.0, legacy support
usb0: <Sun PCIO-2 USB controller> on ohci0
usb0: USB revision 1.0
uhub0: <(0x108e) OHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb0
uhub0: 4 ports with 4 removable, self powered
pci0: <old, non-VGA display device> at device 3.0 (no driver attached)
pci0: <multimedia, audio> at device 8.0 (no driver attached)
atapci0: <AcerLabs M5229 UDMA66 controller> port 0xa00-0xa07,0xa18-0xa1b,0xa10-0xa17,0xa08-0xa0b,0xa20-0xa2f at device 13.0 on pci0
atapci0: [ITHREAD]
atapci0: using PIO transfers above 137GB as workaround for 48bit DMA access bug, expect reduced performance
ata2: <ATA channel 0> on atapci0
ata2: [ITHREAD]
ata3: <ATA channel 1> on atapci0
ata3: [ITHREAD]
machfb0: <ATI Rage XL> port 0xb00-0xbff mem 0x3000000-0x3ffffff,0x426000-0x426fff at device 19.0 on pci0
machfb0: 16 MB aperture at 0xd5906000, 1 KB registers at 0x037ffc00
machfb0: 8188 KB SDRAM 114.992 MHz, maximum RAMDAC clock 230 MHz, DSP
machfb0: resolution 1152x900 at 8 bpp
pcib1: <OFW PCI-PCI bridge> at device 5.0 on pci0
pci1: <OFW PCI bus> on pcib1
pcib1: device 1/0/0: latency timer 64 -> 64
pcib1: device 1/1/0: latency timer 64 -> 64
pcib1: device 1/2/0: latency timer 64 -> 64
machfb1: <ATI Rage XL> port 0x1000-0x10ff mem 0x4000000-0x4ffffff,0x5000000-0x5000fff at device 0.0 on pci1
machfb1: 16 MB aperture at 0xd6908000, 1 KB registers at 0x047ffc00
machfb1: 8188 KB SGRAM 114.992 MHz, maximum RAMDAC clock 230 MHz, DSP
machfb1: resolution 1152x900 at 8 bpp
machfb2: <ATI Rage XL> port 0x1100-0x11ff mem 0x6000000-0x6ffffff,0x5002000-0x5002fff at device 1.0 on pci1
machfb2: 16 MB aperture at 0xd790a000, 1 KB registers at 0x067ffc00
machfb2: 8188 KB SGRAM 114.992 MHz, maximum RAMDAC clock 230 MHz, DSP
machfb2: resolution 1152x900 at 8 bpp
machfb3: <ATI Rage XL> port 0x1200-0x12ff mem 0x7000000-0x7ffffff,0x5004000-0x5004fff at device 2.0 on pci1
machfb3: 16 MB aperture at 0xd890c000, 1 KB registers at 0x077ffc00
machfb3: 8188 KB SGRAM 114.992 MHz, maximum RAMDAC clock 230 MHz, DSP
machfb3: resolution 1152x900 at 8 bpp
syscons0: <System console> on nexus0
syscons0: Unknown <16 virtual consoles, flags=0x100>
panic: pcib: PCI bus A error AFAR 0x1fe02001c80 AFSR 0x4000000100000000
cpuid = 0
KDB: enter: panic
[thread pid 0 tid 100000 ]
Stopped at      kdb_enter+0x80: ta              %xcc, 1
db> tr
Tracing pid 0 tid 100000 td 0xc07d2e70
panic() at panic+0x208
psycho_pci_bus() at psycho_pci_bus+0x88
intr_event_handle() at intr_event_handle+0x5c
intr_execute_handlers() at intr_execute_handlers+0x14
intr_fast() at intr_fast+0x68
-- interrupt level=0xd pil=0 %o7=0xc02ea55c --
-- data access error %o7=0xc0c1757c --
ahc_isa_find_device() at ahc_isa_find_device+0x50
ahc_isa_identify() at ahc_isa_identify+0xd8
bus_generic_probe() at bus_generic_probe+0x64
isa_probe_children() at isa_probe_children+0x4
configure() at configure+0x2c
mi_startup() at mi_startup+0x18c
btext() at btext+0x34
db>




Next lines to be printed if the panic didn't occur:

uart0: <16550 or compatible> at port 0x3f8-0x3ff irq 43 on isa0
uart0: [FILTER]
uart0: console (9600,n,8,1)
uart1: <16550 or compatible> at port 0x2e8-0x2ef irq 43 on isa0
uart1: [FILTER]
Timecounters tick every 1.000 msec
firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me)
firewire0: bus manager 0 (me)
ad0: 19092MB <Seagate ST320011A 3.19> at ata2-master UDMA66
acd0: CDRW <LTN486S/Y3S2> at ata2-slave UDMA33
WARNING: WITNESS option enabled, expect reduced performance.


More information about the freebsd-sparc64 mailing list