Hi,
I've booted a Xen kernel over nfs using the mboot.c32 from patched
pxelinux previously posted on this list. Now I can get some debug info
from a running Xen kernel:
# cat /proc/iomem
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000ca000-000cb7ff : Adapter ROM
000cb800-000cbfff : Adapter ROM
000f0000-000fffff : System ROM
06000000-060003ff : 0000:00:1f.2
ec000000-edffffff : 0000:05:07.0
efac0000-efafffff : 0000:05:07.0
efc00000-efcfffff : PCI Bus #04
efcf0000-efcfffff : 0000:04:00.0
efcf0000-efcfffff : tg3
efd00000-efdfffff : PCI Bus #02
efe00000-efefffff : PCI Bus #01
ffa80800-ffa80bff : 0000:00:1d.7
For comparison the native one looks like:
00000000-0009ffff : System RAM
000a0000-000bffff : Video RAM area
000c0000-000c7fff : Video ROM
000ca000-000cbfff : Adapter ROM
000f0000-000fffff : System ROM
00100000-3fe8cbff : System RAM
00100000-0028a7bd : Kernel code
0028a7be-00337b7f : Kernel data
3fe8cc00-3fe8ebff : ACPI Non-volatile Storage
3fe8ec00-3fe90bff : ACPI Tables
3fe90c00-3fffffff : reserved
40000000-400003ff : 0000:00:1f.2
40000000-400003ff : libata
ec000000-edffffff : 0000:05:07.0
efac0000-efafffff : 0000:05:07.0
efc00000-efcfffff : PCI Bus #04
efcf0000-efcfffff : 0000:04:00.0
efcf0000-efcfffff : tg3
efd00000-efdfffff : PCI Bus #02
efe00000-efefffff : PCI Bus #01
f0000000-f3ffffff : reserved
fec00000-fed003ff : reserved
fed20000-fed9ffff : reserved
fee00000-feefffff : reserved
ffa80800-ffa80bff : 0000:00:1d.7
ffb00000-ffffffff : reserved
The region "06000000-060003ff : 0000:00:1f.2" is the SATA MMIO region.
On a native kernel it sits at 0x40000000, which is 1GB, just above
physical memory. Xen seems to make it visible at 0x06000000 which is
96MB, at the end of the dom0_mem region since I have "dom0_mem=98304".
When the kernel tries to probe the MMIO area Xen gives the error:
(XEN) (file=.../xen/include/asm/mm.h, line=201) Error pfn 6000:
rd=ffbfb080, od=00000000, caf=00000000, taf=0000000c
ata_piix: probe of 0000:00:1f.2 failed with error -12
Which is a failed read at 96MB.
Note that the SATA MMIO region is the only device that appears at a
different address under the Xen /proc/iomem - the tg3 ethernet, for
example, keeps the same address. lspci confirms this is the case:
Native lspci -vvvv:
0000:00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH (ICH7
Family) Serial ATA Storage Controllers cc=IDE (rev 01) (prog-if 8f
[Master SecP SecO PriP PriO])
Subsystem: Dell: Unknown device 01ae
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium
>TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin C routed to IRQ 20
Region 0: I/O ports at fe00 [size=8]
Region 1: I/O ports at fe10 [size=4]
Region 2: I/O ports at fe20 [size=8]
Region 3: I/O ports at fe30 [size=4]
Region 4: I/O ports at fea0 [size=16]
Region 5: Memory at 40000000 (32-bit, non-prefetchable) [size=1K]
Capabilities: [70] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot+,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Xen lspci -vvv:
0000:00:1f.2 IDE interface: Intel Corporation 82801GB/GR/GH (ICH7
Family) Serial ATA Storage Controllers cc=IDE (rev 01) (prog-if 8f
[Master SecP SecO PriP PriO])
Subsystem: Dell: Unknown device 01ae
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium
>TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0
Interrupt: pin C routed to IRQ 20
Region 0: I/O ports at fe00 [size=8]
Region 1: I/O ports at fe10 [size=4]
Region 2: I/O ports at fe20 [size=8]
Region 3: I/O ports at fe30 [size=4]
Region 4: I/O ports at fea0 [size=16]
Region 5: Memory at 06000000 (32-bit, non-prefetchable) [size=1K]
Capabilities: [70] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA
PME(D0-,D1-,D2-,D3hot+,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Why is Xen treating the SATA MMIO region as normal memory and making
it appear after the dom0 memory, instead of keeping the same address
as the other PCI devices do? I don't see how it can be related to the
bios e820 memory map - none of the regions it reports contain the
devices at 0xef...... (like the tg3 ethernet), and yet they work ok.
Any ideas of where to look next would be appreciated.
Thanks,
Chris
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|