Please can you do an 'lspci -nv' to find out the exact version of your
controller.
I'm wandering whether it features in pci/quirks.c and whether the fixup
code is borked on Xen.
Also, have you tried fiddling around with any of the BIOS IDE legacy
mode settings?
There really is no good explanation for a) why the MMIO region is so low
on native, and b) why it is different under Xen. I suspect this is a
native bug that is being compounded by Xen.
Ian
> -----Original Message-----
> From: Chris Bainbridge [mailto:chris.bainbridge@xxxxxxxxx]
> Sent: 05 September 2005 15:16
> To: Ian Pratt; xen-devel@xxxxxxxxxxxxxxxxxxx
> Subject: Re: [Xen-devel] SATA detect fails on ICH7 chipset /
> DellPoweredgeSC430
>
> 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
|