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>