I know, I know, replying to myself. Trying to preempt a question about my video card.
 
MarcT
 
lspci –vv returns the following on my card:
01:00.0 VGA compatible controller: NVIDIA Corporation G80 [GeForce 8800 GTX] (rev a2) (prog-if 00 [VGA controller])
        Subsystem: eVga.com. Corp. Device c837
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 10
        Region 0: Memory at cc000000 (32-bit, non-prefetchable) [size=16M]
        Region 1: Memory at b0000000 (64-bit, prefetchable) [size=256M]
        Region 3: Memory at ca000000 (64-bit, non-prefetchable) [size=32M]
        Region 5: I/O ports at 9c00 [size=128]
        [virtual] Expansion ROM at cd000000 [disabled] [size=128K]
        Capabilities: [60] Power Management version 2
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
                Address: 0000000000000000  Data: 0000
        Capabilities: [78] Express (v1) Endpoint, MSI 00
                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <256ns, L1 <4us
                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE- FLReset-
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- UncorrErr+ FatalErr- UnsuppReq+ AuxPwr- TransPend-
                LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Latency L0 <256ns, L1 <4us
                        ClockPM- Surprise- LLActRep- BwNot-
                LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
        Capabilities: [100 v1] Virtual Channel
                Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
                Arb:    Fixed- WRR32- WRR64- WRR128-
                Ctrl:   ArbSelect=Fixed
                Status: InProgress-
                VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
                        Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
                        Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
                        Status: NegoPending- InProgress-
        Capabilities: [128 v1] Power Budgeting <?>
 
From: Marc Tousignant [mailto:myrdhn@xxxxxxxxx] 
Sent: Wednesday, September 19, 2012 8:23 AM
To: xen-users@xxxxxxxxxxxxx
Subject: PCIe/VGA passthrough
 
I’m trying to follow the guides written by David Techer and Teo En Ming on passing through my video card to one of my virtual machines. However, I had run into an interesting conumdrum.
 
Both of them have a similar section about getting the memory ranges for the MMIO BARS:
 
root@mercury:~# dmesg | grep 01:00.0 | grep BAR
[    2.883158] pci 0000:01:00.0: BAR 0: reserving [mem 0xf8000000-0xf9ffffff flags 0x40200] (d=0, p=0)
[    2.883161] pci 0000:01:00.0: BAR 1: reserving [mem 0xd0000000-0xd7ffffff flags 0x14220c] (d=0, p=0)
[    2.883163] pci 0000:01:00.0: BAR 3: reserving [mem 0xd8000000-0xdbffffff flags 0x14220c] (d=0, p=0)
[    2.883166] pci 0000:01:00.0: BAR 5: reserving [io  0xe000-0xe07f flags 0x40101] (d=0, p=0)
 
dmesg | grep 01:00.0 | grep "pci.*mem"
[ 0.120488] pci 0000:01:00.0: reg 10: [mem 0xd2000000-0xd2ffffff]
[ 0.120508] pci 0000:01:00.0: reg 14: [mem 0xc0000000-0xcfffffff 64bit pref]
[ 0.120528] pci 0000:01:00.0: reg 1c: [mem 0xd0000000-0xd1ffffff 64bit pref]
[ 0.120556] pci 0000:01:00.0: reg 30: [mem 0xd3000000-0xd307ffff pref]
 
Well, here is my problem..
dmesg | grep 01:00.0
pci 0000:01:00.0: BAR 6: assigned [mem 0xcd000000-0xcd01ffff pref]
pci 0000:01:00.0: Boot video device
pci 0000:01:00.0: Signaling PME through PCIe PME interrupt
 
I only have a single range. Did I do something wrong somewhere in my kernel? And if so, what?
 
MarcT