6.0-BETA4: pci/vfs panic

Marius Strobl marius at alchemy.franken.de
Fri Oct 7 04:23:18 PDT 2005

On Thu, Oct 06, 2005 at 07:55:05AM +0100, Bruce Cran wrote:
> I was trying to get a U10 configured to use wireless, but got the
> following panic after I inserted an 11b card into the PCI-PCMCIA
> adapter; the card first fails to attach, then any filesystem
> access triggers the panic:
> panic() at panic+0xf0
> trap() at trap+0x3f0
> -- fast data access mmu miss tar=0xc097e000 %o7=0xc01199f4 --
> witness_init() at witness_init+0x114
> mtx_init() at mtx_init+0xf4
> getnewvnode() at getnewvnode+0x110
> ffs_vget() at ffs_vget+0xc8
> ufs_lookup() at ufs_lookup+0xa14
> vfs_cache_lookup() at vfs_cache_lookup+0xd8
> lookup() at lookup+0x55c
> namei() at namei+0x41c
> kern_stat() at kern_stat+0x24
> stat() at stat+0x14
> syscall() at syscall+0x2dc
> -- syscall (188, FreeBSD ELF64, stat) %o7=0x108628 --
> userland() at 0x40631ae8
> user trace: trap %o7=0x108628
> pc 0x40631ae8, sp 0x7fdffffdf01
> --More--        pc 0x106b20, sp 0x7fdffffe041
> pc 0x105fe4, sp 0x7fdffffe201
> pc 0x1107f8, sp 0x7fdffffe341
> pc 0x110a00, sp 0x7fdffffe421
> pc 0x102354, sp 0x7fdffffe541
> pc 0x40227474, sp 0x7fdffffe601
> Before the panic, the wireless card fails to attach, with:
> wi0: <MELCO WLI-PCM-L11> at port 0x100-0x13f irq 2000 function 0
> config 1 on pccard0
> wi0: record read mismatch, rid=fc01, got=1fc
> wi0: record read mismatch, rid=fc01, got=1fc
> wi0: mac read failed 5
> device_attach: wi0 attach returned 5
> The full serial console log can be found at
> http://www.cran.org.uk/bruce/crash/20051009_6beta4_wi.txt and a core
> dump
> at http://www.cran.org.uk/bruce/crash/20051009_6beta4_vmcore.0.gz.
> Do wireless cards work on sparc64, or are they generally only supported
> on x86?

Well, you're probably the first person to give it a try so far.
As for wi(4) you're hitting an endianness issue. At a first glance
wi(4) is overzealous at converting from little-endian to the host
byte order and vice versa when accessing the hardware as PCI and
PC Card busses behind PCI-PC Card bridges should always be little-
endian. E.g. the PCI bus on sparc64 is connected byte-twisted so
most of the time one doesn't need to take big-endianness of sparc64
into account when accessing PCI space. The PC Card bus behind the
Sun SBus-PC Card bridges actually is big-endian however and wi(4)
probably would need to do the byte order conversion there. So in
order to get wi(4) to work on sparc64 one probably would have to
add a byte order flag to pccard(4) and revisit the byte order
conversions in wi(4), changing most of them to be not done unless
on a big-endian PC Card bus...
Generally it should be possible to make all drivers for wireless
cards work on sparc64. I'd expect e.g. ath(4) to not require such
big changes in order to make it work on sparc64, the main problem
here is that at least FreeBSD doesn't include a binary blob of the
HAL for sparc64 however.
As for the panic I have no idea (your dump also is not fetchable).
wi(4) does leak some stuff when attaching fails but it's not
apparent to me why that would trigger a panic. IIRC there was a
recent report that wi(4) also triggers a strange panic when
attaching fails on i386 and someone working on it, maybe that's


This mail was scanned by AntiVir Milter.
This product is licensed for non-commercial use.
See www.antivir.de for details.

More information about the freebsd-sparc64 mailing list