Subject: i386 pcibios.c pcibios_get_intr_routing on Libretto L2
To: None <tech-kern@netbsd.org>
From: Curt Sampson <cjs@cynic.net>
List: tech-kern
Date: 08/13/2001 17:06:35
So when I enable cardbus in the kernel I use on my Toshiba
Liberetto L2, the kernel panics with a page fault while trying to
set it up. In particular, it gets as far as the assembler code in
pcibios_get_intr_routing (sys/arch/i386/pci/pcibios.c around line 390)
before it dies.

I'm unfortunately not familiar with i386 assembler or the gcc asm
directive, but I get the feeling that its use here is making a call
into the BIOS32 PCIBIOS handler. At this point, pcibios_entry.offset is
c051bd73, and the location where the page fault is thrown is c051be8b,
which makes me thing that it's in the PCIBIOS code itself (mapped in to
the kernel address space there?) that this is happening.

The failing instruction is "cmpb %cs: 0x2db4(%si),%al", if that helps
at all. (Probably not enough.)

Does anybody have any brilliant ideas for fixing this? Or is this one of
those "single-step through the code 'till you find out what's going on"
type of things?

If anybody in Tokyo wants to help, I'd be happy to lend the machine out
for a day or three. Unfortunately, this machine has no serial ports,
so I can't just hook up a serial console to let someone play over the net.

cjs
-- 
Curt Sampson <cjs@cynic.net>  +81 3 5778 0123   de gustibus, aut bene aut nihil
	    "The chain which can be yanked is not the eternal chain."
			    -- G. Fitch