Port-sparc archive

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

Re: Severe problems with sun4



On Fri, 16 Jul 2010, Christian Corti wrote:
is it possible that the sun4 port has some issues? Fact is that support of VME bus SUNs (a 4/260 in my case) seems to be utterly broken. The main problem I have is with the Xylogics drivers (xy, but xd seems to be almost identical), they always create kernel panics while attaching the controller.

More problems:
First I fixed the xy driver (which was painful due to the uncomprehensible code) and now it seems that NetBSD is broken in respect with VME bus interrupts. This also explains why I can't use any SCSI disk, too. The kernel panics when a VME interrupt is generated:
[...]
si0 at vme0 addr 200000 irq 2 vector 40
si0: options=7<RESELECT,DMA_INTR,DMA>
scsibus0 at si0: 8 targets, 8 luns per target
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
scsibus0: waiting 2 seconds for devices to settle...
sd0 at scsibus0 target 0 lun 0: <MAXTOR, XT-4380S, B3C> disk fixed
vmeintr4: level 2 vector 0x40 [**]
trap type 0x7: pc=0xf014492c npc=0xf0144930 psr=8000c6<S,PS>
kernel: alignment fault trap
Stopped at      netbsd:vmeintr4+0x90:   ld              [%i0 + %g0], %g1
[...]

[**] this output has been introduced by me in vme_machdep.c in function
     vmeintr4

Taking SCSI out of the kernel, it panics when the Xylogics controller generates an interrupt:

[...]
xyc0 at vme0 addr ee40 irq 2 vector 48: Xylogics 450/451
xy0 at xyc0 drive 0: ready (drive type 3)
xy0: <Fujitsu-M2344 cyl 622 alt 2 hd 27 sec 67>, pcyl 624
xy0: 549MB, 622 cyl, 27 head, 67 sec, 512 bytes/sec
xy1 at xyc0 drive 1: ready
xy1: reading disk label failed: Sector count zero
[...]
# disklabel xy1
xy1 at xyc0 drive 1: readyvmeintr4: level 2 vector 0x48
vmeintr4: level 2 vector 0x48
vmeintr4: level 2 vector 0x48
vmeintr4: level 2 vector 0x48
vmeintr4: level 2 vector 0x48
vmeintr4: level 2 vector 0x48
vmeintr4: level 2 vector 0x48
vmeintr4: level 2 vector 0x48
vmeintr4: level 2 vector 0x48
vmeintr4: level 2 vector 0x48
vmeintr4: level 2 vector 0x48
vmeintr4: level 2 vector 0x48
vmeintr4: level 2 vector 0x48
vmeintr4: level 2 vector 0x48
vmeintr4: level 2 vector 0x48
vmeintr4: level 2 vector 0x48
vmeintr4: level 2 vector 0x48

Watchdog reset.


Simple question: why isn't the interrupt handler xycintr() called? I know this because I've put some debug statements in there.
So, where should I start fixing all that stuff? Why is it broken anyways?
Is it possible that vmeintr4 is the culprit and that it hasn't worked since ages?

Christian

--------------------------------------------------
Universität Stuttgart
Zentrale Dienste der Informatik
Universitätsstraße 38
70569 Stuttgart

EMail: Christian.Corti%informatik.uni-stuttgart.de@localhost
Tel: (+49) 711 / 7816-234
--------------------------------------------------


Home | Main Index | Thread Index | Old Index