Date: Sat, 24 Jan 1998 15:26:55 +0100 (MET) From: Ugo Paternostro <paterno@dsi.UNIFI.IT> To: Nate Williams <nate@mt.sri.com> Cc: freebsd-mobile@FreeBSD.ORG Subject: Re: Cirrus Logic PD6729 Message-ID: <XFMail.980124152655.paterno@dsi.UNIFI.IT> In-Reply-To: <199801230503.WAA19888@mt.sri.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On 23-Jan-98 Nate Williams wrote about "Re: Cirrus Logic PD6729":
> The error would probably occur even if you didn't compile DDB. Also,
No, this behavior first showed up when I added "options DDB" in the kernel
config.
> did config blow away everything so that the compile was done from
> scratch?
It said so... shouldn't I trust it? :)
>> debugger. Almost any command (but help) prints something like "Panic... blah
>> blah blah". I tried a trace, but it gives no useful information. What should
>
> *grin* Read the handbook on kernel debugging, that should be a big help
> and can give you more information than I can provide in email.
Well, if I enter the debugger by pressing CTRL-ALT-ESC and then I give a
"Trace" command, I can see the stack trace (it starts form _Debugger(...) and
so on), but if I wait the panic and ask for a trace, I simply see something
like this (I marked with "==>" my commands) (WARNING: hand copied from the
console, may contain errors):
----------------------------------------------------------------------------
[...some information is missing due to the limited screen length...]
fault code = supervisor read, page not present
instruction pointer = 0x8:0x10
stack pointer = 0x10:0xf01ebef4
frame pointer = 0x10:0xf01ebf44
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = Idle
interrupt mask =
kernel: type 12 trap, code=0
Stopped at 0x10:
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x10
fault code = supervisor read, page not present
instruction pointer = 0x8:0xf01b7808
stack pointer = 0x10:0xf01ebd68
frame pointer = 0x10:0xf01ebd6c
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = Idle
interrupt mask =
kernel: type 12 trap, code=0
==> db> trace
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x10
fault code = supervisor read, page not present
instruction pointer = 0x8:0xf01b7808
stack pointer = 0x10:0xf01ebca4
frame pointer = 0x10:0xf01ebca8
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = Idle
interrupt mask =
kernel: type 12 trap, code=0
==> db> show reg
[...some information is missing due to the limited screen length...]
eax 0xc0000400
ecx 0xf261bf14
edx 0x3e0
ebx 0xf01fef00 _r_hook+0xd4
esp 0xf01ebef4 _etext+0x2654
ebp 0xf01ebf44 _etext+0x26a4
esi 0xf018f140 _inserted
edi 0xc0000000
eip 0x10
efl 0x10286
0x10:
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x10
fault code = supervisor read, page not present
instruction pointer = 0x8:0xf01b7808
stack pointer = 0x10:0xf01ebc90
frame pointer = 0x10:0xf01ebc90
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = Idle
interrupt mask =
kernel: type 12 trap, code=0
==> db> panic
panic: from debugger
Debugger("panic")
Stopped at 0x10:
Fatal trap 12: page fault while in kernel mode
fault virtual address = 0x10
fault code = supervisor read, page not present
instruction pointer = 0x8:0xf01b7808
stack pointer = 0x10:0xf01ebd68
frame pointer = 0x10:0xf01ebd6c
code segment = base 0x0, limit 0xfffff, type 0x1b
= DPL 0, pres 1, def32 1, gran 1
processor eflags = interrupt enabled, resume, IOPL = 0
current process = Idle
interrupt mask =
kernel: type 12 trap, code=0
==> db> panic
panic: from debugger
dumping to dev 30001, offset 0
dump device bad
Automatic reboot in 15 seconds - press a key on the console to abort
Rebooting...
----------------------------------------------------------------------------
without any stack trace: it seems that the debugger itself is panicing, right
after accessing location 0x10. Please note that the IP points to that location.
Reading the edx value, I could guess it just did or it is going to do and I/O
to that port, and, from the reference to r_hook, I could guess it is something
related to APM (this would also explain why somethimes the machine goes in
sleep mode when I remove the PCMCIA card). BTW, insert() is the function where
it should print "Card inserted, slot 0" (that it never prints on the second
boot).
Unfortunately, I do not know the code enough to use this little information.
Could you please help me?
>> Should I force the pccard driver to use irq 9 for the chip?
>
> You can't force the pccard driver to use irq 9 unfortunately. That's
> one of the (known) problems with the current setup. :(
What about modifying pccard/pcic.c and initializing the pcic_irq variable to
(say) 9 ? I know this is not "The Solution For Everybody", but I wanted to try,
and it seemed to work, but crashed when it loaded the OSS driver... sigh
It crashed also when I reconfigured OSS to use irq 5...
>> P.S.: I have a problem with the anti-spam behavior of sendmail at
>
> Send email to freefall the same way you send email to me. :)
Nope: I now masquerade :)
> Nate
Bye, UP
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.980124152655.paterno>
