1 Mar 2006 20:23
weird boot up panics
Garrett D'Amore <garrett_damore <at> tadpole.com>
2006-03-01 19:23:07 GMT
2006-03-01 19:23:07 GMT
every now and then i get a panic in au_icu.c that looks like a null
pointer dereference. it is in au_iointr(). Typically this happens
when I press CTRL-S to stop a boot screen messages while I look for some
particular output.
I *think* what is happening is that the interrupt handlers are coming
and going during boot flow.
irqmask = REGVAL(icu_base + IC_MASK_READ);
au_cpuintrs[level].cintr_count.ev_count++;
LIST_FOREACH(ih, &au_cpuintrs[level].cintr_list, ih_q) {
int irq = (1 << ih->ih_irq);
if ((irq & irqmask) && (irq & irqstat)) {
au_icu_intrtab[ih->ih_irq].intr_count.ev_count++;
(*ih->ih_func)(ih->ih_arg);
I wonder if the ih values need to be protected by splhigh() or some kind
of lock.
I also occasionally see where issue CTRL-C or somesuch causes aucomintr
to throw a fit:
Wed Mar 1 11:20:07 PST 2006
trap: TLB miss (load or instr. fetch) in kernel mode
status=0x2, cause=0x800408, epc=0x802d7e14, vaddr=0x1040002c
curlwp == NULL ksp=0xc0080d80
Stopped at netbsd:aucomintr+0x88: lw v0,44(s2)
I've not looked at this further yet. I just want to document it. I'll
(Continue reading)
-- Garrett
Shigeyuki Fukushima wrote:
> Hi,
>
> I'm implementing SMBus driver on PSC(bus) device.
> Would you like to review the following files (attached with this mail):
>
> sys-arch-mips.diff: diffs for sys/arch/mips from -current.
> ausmbus_psc.c: smbus driver.
> smbusreg.c: definitions for SMBus registers
> (Au1550 DataBook 8.5)
>
> With implementing this driver, I revised up aupsc.c.
> Please review it intensively.
RSS Feed