At Wed, 2 Jun 2010 15:34:16 -0500, David Young <dyoung%pobox.com@localhost>
wrote:
Subject: Re: pcibios(4) related crash during boot on system with General
Software BIOS
>
> On Wed, Jun 02, 2010 at 03:52:14PM -0400, Greg A. Woods wrote:
> > PCI BIOS rev. 2.1 found at 0xff686
> > pcibios: config mechanism [1][x], special cycles [x][x], last bus 3
> > uvm_fault(0xc0ab0b60, 0xf1000, 1) -> 0xe
> > kernel: supervisor trap page fault, code=0
> > Stopped in pid 0.1 (swapper) at 0xc0c01617: repe movsb
> > (%esi),%es:(%edi
> > )
> > db{0}> trace
> > _prop_array_pool(c3855a00,c0ab5924,c0ab590a,c045f945,c0a1bf6c) at 0xc0c01617
>
> Maybe pcibios_pir_init() jumped through an uninitialized function
> pointer, or your symtab is too small.
Weird. I think you mean the symtab loaded at boot for use by ddb,
right? My kernel prints the following at that time:
Loaded initial symtab at 0xc0ac5270, strtab at 0xc0b31ad4, # entries
26185, NKSYMS=1
How do I tell if it's big enough or not?
> > pcibios_pir_init(c09e8bc4,c0984103,c09840ff,c09840ff,c09840ff) at
> > netbsd:pcibios
> > _pir_init+0x163
>
> What line is that? If you've compiled your kernel with debugging
> symbols, then gdb can tell you, 'l *(pcibios_pir_init+0x163)'.
Well, I recompiled what I believe is substantially the same sources with
"-g", and pcibios.c itself has not been modified in my tree since
Feb. 10, 2007, and this is what GDB says from the result:
(gdb) l *(pcibios_pir_init+0x163)
0xc064ebd3 is in pcibios_pir_init
(/rest/work/woods/m-NetBSD-4/sys/arch/i386/pci/pcibios.c:336).
331 sizeof(*pcibios_pir_table), M_DEVBUF, M_NOWAIT);
332 if (pcibios_pir_table == NULL) {
333 aprint_error("pcibios_pir_init: no memory for $PIR\n");
334 return;
335 }
336 if (pcibios_get_intr_routing(pcibios_pir_table,
337 &pcibios_pir_table_nentries,
338 &pcibios_pir_header.exclusive_irq) != PCIBIOS_SUCCESS) {
339 aprint_normal("No PCI IRQ Routing information
available.\n");
340 free(pcibios_pir_table, M_DEVBUF);
--
Greg A. Woods
Planix, Inc.
<woods%planix.com@localhost> +1 416 218 0099 http://www.planix.com/
Attachment:
pgpeEkT0DZAH7.pgp
Description: PGP signature