2009/6/23 Alex Gor <[email protected]>:
> Attached outputs of 'prtconf -pv' and od -x MCFG_S3200SHX.dat

Sorry, the -p option wasn't ok with prtconf, "prtconf -v" should
print the "ecfg" property (e.g. prtconf -v /devices/p...@0,0)


But I think the dump of the MCGF data reveals the problem:

CFG_BASE_ADDR_ALLOC.base_addr:        f0000000
CFG_BASE_ADDR_ALLOC.segment:         0
CFG_BASE_ADDR_ALLOC.start_bno:        0
CFG_BASE_ADDR_ALLOC.end_bno:        ff

Memory mapped pcie configuration space begins at
physical address 0xf0000000 and can be used for pci
bus 0 .. 255.  That should use all physical addresses
from 0xf0000000 ... 0xffffffff.  But that can't work, it
overlaps the IOAPIC at physical address 0xfec00000.

I suspect it panics when Xorg is probing on pci bus 0xec
for video devices, this ends up accessing the physical
address for the IOAPIC, and I suspect the hypervisor
refuses this.

I suspect that another way to crash this system is to
boot into xVM snigle user mode, and run
/usr/X11/bin/scanpci

A bios update might help  - I think the CFG_BASE_ADDR_ALLOC.end_bno
value in the
MCFG table must be reduced so that there is no
overlap with physical address ranges that are already
in use.

OTOH usr/src/uts/i86pc/io/pciex/npe_misc.c
function npe_query_acpi_mcfg() could be changed
to sanity check for and detect this kind of error.
_______________________________________________
xen-discuss mailing list
[email protected]

Reply via email to