Windows Vista Tips

Windows Vista Tips > Newsgroups > Windows Vista Drivers > Vista 64 - pci.sys cannot allocate PCI bar above 4 gig area

Reply
Thread Tools Display Modes

Vista 64 - pci.sys cannot allocate PCI bar above 4 gig area

 
 
Pat
Guest
Posts: n/a

 
      10-28-2009
Hi everyone,

I need some help. I've a graphic device which allocates 3 bars. I am
trying to allocate the largest aperture to above 4Gig.

It should reside in 0xFF0000000.

When Vista boots up, it seems that pci.sys allocates the other 2 bars
which are below 4Gig, but will refuse to allocate the bar which is above
4Gig. In the device manager, I see

the frame buffer aperture :
[0x0000000F F0000000 - 0x0000000F FFFFFFFF PCI standard PCI-to-Pci Bridge

but it has a yellow ! mark on it. If you open the properties, it says "this
device
cannot find enough free resource that it can use".

Can someone give me some pointers as to what to look or try ?

Using Linux, it seems that I can write to the address (and see it fill up
the video
screen). So at least the hardware seems to be mapped to the correct address.

Using Windbg, I can't seem to read the FrameBuffer when it's mapped at
0x0000000F F0000000, but I can read it ok, when it's mapped below 4Gig. I am
not sure whether this is a clue, or whether WinDbg doesn't work well above
4Gig.

Any help would be greatly appeciated. Thanks in advance.
 
Reply With Quote
 
 
 
 
Tim Roberts
Guest
Posts: n/a

 
      10-28-2009
Pat <> wrote:
>
> I need some help. I've a graphic device which allocates 3 bars. I am
>trying to allocate the largest aperture to above 4Gig.
>
> It should reside in 0xFF0000000.


This is simply not under your control. At boot time, it's the BIOS's job
to assign this region. Once the system loads, it's the Plug-and-Play
manager's job. You do not get to decide this. Remember that whatever PCI
bridge you are behind also has to allow this.
--
Tim Roberts,
Providenza & Boekelheide, Inc.
 
Reply With Quote
 
RossettoeCioccolato
Guest
Posts: n/a

 
      10-28-2009
Tim,

> Using Linux, it seems that I can write to the address (and see it fill up
> the video screen). So at least the hardware seems to be mapped to the
> correct address. <


Assuming that the author meant "using Linux on the same box," the defect
would have to be with Windows 7 and not with the bios or the PCI bridge.

It is becoming pretty difficult to fit video memory at < 4 GiB, particularly
if you have multiple cards.

Regards,

RossetoeCioccolato.

"Tim Roberts" <> wrote in message
news:...
> Pat <> wrote:
>>
>> I need some help. I've a graphic device which allocates 3 bars. I am
>>trying to allocate the largest aperture to above 4Gig.
>>
>> It should reside in 0xFF0000000.

>
> This is simply not under your control. At boot time, it's the BIOS's job
> to assign this region. Once the system loads, it's the Plug-and-Play
> manager's job. You do not get to decide this. Remember that whatever PCI
> bridge you are behind also has to allow this.
> --
> Tim Roberts,
> Providenza & Boekelheide, Inc.



 
Reply With Quote
 
Pat
Guest
Posts: n/a

 
      10-28-2009
Hello all,

[additional info]

I tested the same video card in the same box (linux and Vista64). From
looking at the PCI config space on both Vista and Linux, at least all the
values in the bar seems correct. When I said 0x0000F F0000000, it's the
starting range for the
address that BIOs allocates. That address seems to be the same for both
Linux and Vista64 (at least in initial testing).

I am running Vista64 debug version. Is there anything I can enable/set
so that I can use WinDbg to get some debug messages to try to isolate the
issue ? I had enabled WinDbg, but I don't see to get any messages related to
the issue.

- Pat

 
Reply With Quote
 
Pat
Guest
Posts: n/a

 
      10-28-2009

Additional info from Pci.sys ...


PciMemoryArbiter_PreprocessEntry for arbiter 0x85eb010
PCI: Allocation State after preprocessing
PCI: Arbiter Allocation State for PDO 0x85ed9e0 (bus 0, slot 3)
PCI: Current Alternative:
PCI: Type - 3
PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
PCI: Length - 0x10000000 Alignment - 0x1
PCI: Flags - 0x2
PCI: Current State:
PCI: Start - 0x1 End - 0x0
PCI: Min - 0x0 Max - 0xffffffffffffffff
PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
PCI:
PciMemoryArbiter_GetNextAllocationRange for arbiter 0x85eb010
PCI: Next Allocation range found
PCI: Arbiter Allocation State for PDO 0x85ed9e0 (bus 0, slot 3)
PCI: Current Alternative:
PCI: Type - 3
PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
PCI: Length - 0x10000000 Alignment - 0x1
PCI: Flags - 0x2
PCI: Current State:
PCI: Start - 0x1 End - 0x0
PCI: Min - 0xff0000000 Max - 0xfffffffff
PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
PCI:
PciMemoryArbiter_OverrideConflict for arbiter 0x85eb010
PCI: Arbiter Allocation State for PDO 0x85ed9e0 (bus 0, slot 3)
PCI: Current Alternative:
PCI: Type - 3
PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
PCI: Length - 0x10000000 Alignment - 0x1
PCI: Flags - 0x2
PCI: Current State:
PCI: Start - 0x1 End - 0x0
PCI: Min - 0xff0000000 Max - 0xfffffffff
PCI: Flags - 0x0 RangeAttr - 0x4 RangeAvailAttr - 0x0
PCI:
PciMemoryArbiter_FindSuitableRange returning 0
PCI: Arbiter Allocation State for PDO 0x85ed9e0 (bus 0, slot 3)
PCI: Current Alternative:
PCI: Type - 3
PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
PCI: Length - 0x10000000 Alignment - 0x1
PCI: Flags - 0x2
PCI: Current State:
PCI: Start - 0x1 End - 0x0
PCI: Min - 0xff0000000 Max - 0xfffffffff
PCI: Flags - 0x0 RangeAttr - 0x4 RangeAvailAttr - 0x0
PCI:
::
[repeat 5x]

{
...nextAllocation
....OverrideCOnflict
...FindSoutiableRange returning 0
}


So it would seem that pci.sys is "trying" the address but always gets 0
back in FindSuitableRange. Anybody know what
"PciMemoryArbiter_OverrideConflict" means ?

- Pat

"Pat" wrote:

> Hi everyone,
>
> I need some help. I've a graphic device which allocates 3 bars. I am
> trying to allocate the largest aperture to above 4Gig.
>
> It should reside in 0xFF0000000.
>
> When Vista boots up, it seems that pci.sys allocates the other 2 bars
> which are below 4Gig, but will refuse to allocate the bar which is above
> 4Gig. In the device manager, I see
>
> the frame buffer aperture :
> [0x0000000F F0000000 - 0x0000000F FFFFFFFF PCI standard PCI-to-Pci Bridge
>
> but it has a yellow ! mark on it. If you open the properties, it says "this
> device
> cannot find enough free resource that it can use".
>
> Can someone give me some pointers as to what to look or try ?
>
> Using Linux, it seems that I can write to the address (and see it fill up
> the video
> screen). So at least the hardware seems to be mapped to the correct address.
>
> Using Windbg, I can't seem to read the FrameBuffer when it's mapped at
> 0x0000000F F0000000, but I can read it ok, when it's mapped below 4Gig. I am
> not sure whether this is a clue, or whether WinDbg doesn't work well above
> 4Gig.
>
> Any help would be greatly appeciated. Thanks in advance.

 
Reply With Quote
 
Pat
Guest
Posts: n/a

 
      10-29-2009
Hello Alberto,

The bar looks correct .. and since the address works fine from Linux, I
think would presume that the device is working.


Vista64 detects the correct settings (address and size) but it "fails"
to allocate the resource if it is above 4Gigs. (You can see it from the logs
from pci.sys). If I do-not- allow the device to be remapped below 4Gig, the
Pci bridge fails with a yellow (!), the device is non visible (meaning I
don't even see a vga display device in the device manager) ... but strangely
enough it comes up as a 640x480 (?) 4bit display but I cannot change any
settings.



This is a log of a very good run PCI.sys. You can see for the device,
that it pci.sys
(1) Allocates and maps 0xA0000 successfully
(2) Allocates and maps 0xd8000000 successfully
(3) Trying to allocate 256Mbyte prefetch
a. Tries Min - 0x000f f0000000 Max - 0x000f ffffffff but fails
b. Retries Min - 0x0001 00000000 Max - 0x000f fffffffffffffff but fails
c. Retries Min - 0x100000 Max - 0xffefffff , passes. Gets 0xC0000000, and
maps the Video card there. Video comes up ok, BUT the bar is in < 4Gig range,
which is not what I want.

-- Pci.sys logs --
• PciMemoryArbiter_GetNextAllocationRange for arbiter 0x94f5010
• PCI: Next Allocation range found
• PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
• PCI: Current Alternative:
• PCI: Type - 3
• PCI: Minimum - 0xa0000 Maximum - 0xbffff
• PCI: Length - 0x20000 Alignment - 0x1
• PCI: Flags - 0x2
• PCI: Current State:
• PCI: Start - 0x1 End - 0x0
• PCI: Min - 0xa0000 Max - 0xbffff
• PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
• PCI:
• PciMemoryArbiter_FindSuitableRange returning 1
• PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
• PCI: Current Alternative:
• PCI: Type - 3
• PCI: Minimum - 0xa0000 Maximum - 0xbffff
• PCI: Length - 0x20000 Alignment - 0x1
• PCI: Flags - 0x2
• PCI: Current State:
• PCI: Start - 0xa0000 End - 0xbffff
• PCI: Min - 0xa0000 Max - 0xbffff
• PCI: Flags - 0x0 RangeAttr - 0x4 RangeAvailAttr - 0x0
• PCI:
• PciMemoryArbiter_PreprocessEntry for arbiter 0x94f5010
• PCI: Allocation State after preprocessing
• PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
• PCI: Current Alternative:
• PCI: Type - 3
• PCI: Minimum - 0xd8000000 Maximum - 0xd83fffff
• PCI: Length - 0x400000 Alignment - 0x1
• PCI: Flags - 0x2
• PCI: Current State:
• PCI: Start - 0x1 End - 0x0
• PCI: Min - 0x0 Max - 0x0
• PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
• PCI:
• PciMemoryArbiter_GetNextAllocationRange for arbiter 0x94f5010
• PCI: Next Allocation range found
• PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
• PCI: Current Alternative:
• PCI: Type - 3
• PCI: Minimum - 0xd8000000 Maximum - 0xd83fffff
• PCI: Length - 0x400000 Alignment - 0x1
• PCI: Flags - 0x2
• PCI: Current State:
• PCI: Start - 0x1 End - 0x0
• PCI: Min - 0xd8000000 Max - 0xd83fffff
• PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
• PCI:
• PciMemoryArbiter_FindSuitableRange returning 1
• PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
• PCI: Current Alternative:
• PCI: Type - 3
• PCI: Minimum - 0xd8000000 Maximum - 0xd83fffff
• PCI: Length - 0x400000 Alignment - 0x1
• PCI: Flags - 0x2
• PCI: Current State:
• PCI: Start - 0xd8000000 End - 0xd83fffff
• PCI: Min - 0xd8000000 Max - 0xd83fffff
• PCI: Flags - 0x0 RangeAttr - 0x4 RangeAvailAttr - 0x0
• PCI:
• PciMemoryArbiter_PreprocessEntry for arbiter 0x94f5010
• PCI: Allocation State after preprocessing
• PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
• PCI: Current Alternative:
• PCI: Type - 3
• PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
• PCI: Length - 0x10000000 Alignment - 0x1
• PCI: Flags - 0x2
• PCI: Current State:
• PCI: Start - 0x1 End - 0x0
• PCI: Min - 0x0 Max - 0x0
• PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
• PCI:
• PciMemoryArbiter_GetNextAllocationRange for arbiter 0x94f5010
• PCI: Next Allocation range found
• PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
• PCI: Current Alternative:
• PCI: Type - 3
• PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
• PCI: Length - 0x10000000 Alignment - 0x1
• PCI: Flags - 0x2
• PCI: Current State:
• PCI: Start - 0x1 End - 0x0
• PCI: Min - 0xff0000000 Max - 0xfffffffff
• PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
• PCI:
• PciMemoryArbiter_OverrideConflict for arbiter 0x94f5010
• PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
• PCI: Current Alternative:
• PCI: Type - 3
• PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
• PCI: Length - 0x10000000 Alignment - 0x1
• PCI: Flags - 0x2
• PCI: Current State:
• PCI: Start - 0x1 End - 0x0
• PCI: Min - 0xff0000000 Max - 0xfffffffff
• PCI: Flags - 0x0 RangeAttr - 0x4 RangeAvailAttr - 0x0
• PCI:
• PciMemoryArbiter_FindSuitableRange returning 0
• PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
• PCI: Current Alternative:
• PCI: Type - 3
• PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
• PCI: Length - 0x10000000 Alignment - 0x1
• PCI: Flags - 0x2
• PCI: Current State:
• PCI: Start - 0x1 End - 0x0
• PCI: Min - 0xff0000000 Max - 0xfffffffff
• PCI: Flags - 0x0 RangeAttr - 0x4 RangeAvailAttr - 0x0
• PCI:
• PciMemoryArbiter_GetNextAllocationRange for arbiter 0x94f5010
• PCI: Next Allocation range found
• PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
• PCI: Current Alternative:
• PCI: Type - 3
• PCI: Minimum - 0x0 Maximum - 0xffffffffffffffff
• PCI: Length - 0x10000000 Alignment - 0x100000
• PCI: Flags - 0x0
• PCI: Current State:
• PCI: Start - 0x1 End - 0x0
• PCI: Min - 0x100000000 Max - 0xffffffffffffffff
• PCI: Flags - 0x0 RangeAttr - 0x4 RangeAvailAttr - 0x0
• PCI:
• PciMemoryArbiter_OverrideConflict for arbiter 0x94f5010
• PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
• PCI: Current Alternative:
• PCI: Type - 3
• PCI: Minimum - 0x0 Maximum - 0xffffffffffffffff
• PCI: Length - 0x10000000 Alignment - 0x100000
• PCI: Flags - 0x0
• PCI: Current State:
• PCI: Start - 0x1 End - 0x0
• PCI: Min - 0x100000000 Max - 0xffffffffffffffff
• PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
• PCI:
• PciMemoryArbiter_FindSuitableRange returning 0
• PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
• PCI: Current Alternative:
• PCI: Type - 3
• PCI: Minimum - 0x0 Maximum - 0xffffffffffffffff
• PCI: Length - 0x10000000 Alignment - 0x100000
• PCI: Flags - 0x0
• PCI: Current State:
• PCI: Start - 0x1 End - 0x0
• PCI: Min - 0x100000000 Max - 0xffffffffffffffff
• PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
• PCI:
• PciMemoryArbiter_GetNextAllocationRange for arbiter 0x94f5010
• PCI: Next Allocation range found
• PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
• PCI: Current Alternative:
• PCI: Type - 3
• PCI: Minimum - 0x0 Maximum - 0xffffffffffffffff
• PCI: Length - 0x10000000 Alignment - 0x100000
• PCI: Flags - 0x0
• PCI: Current State:
• PCI: Start - 0x1 End - 0x0
• PCI: Min - 0x100000 Max - 0xffefffff
• PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
• PCI:
• PciMemoryArbiter_FindSuitableRange returning 1
• PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
• PCI: Current Alternative:
• PCI: Type - 3
• PCI: Minimum - 0x0 Maximum - 0xffffffffffffffff
• PCI: Length - 0x10000000 Alignment - 0x100000
• PCI: Flags - 0x0
• PCI: Current State:
• PCI: Start - 0xc0000000 End - 0xcfffffff
• PCI: Min - 0x100000 Max - 0xffefffff
• PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
• PCI: Config Write - (0,1,0) offset 3c length 1 buffer FFFFFA60005AF1F8

// PCI config from my video device
PCI Configuration Space (Segment:0000 Bus:06 Device:00 Function:00)
Common Header:
00: VendorID xxxx
02: DeviceID yyyy
04: Command 0007 IOSpaceEn MemSpaceEn BusInitiate
06: Status 0010 CapList
08: RevisionID 01
09: ProgIF 00 VGA
0a: SubClass 00 VGA Compatible Controller
0b: BaseClass 03 Display Controller
0c: CacheLineSize 0008 Burst4DW
0d: LatencyTimer 00
0e: HeaderType 00
0f: BIST 00
10: BAR0 d8000000 << 32bit bar of 0xd8000000
14: BAR1 f000000c <<
18: BAR2 0000000f << 64bit bar of 0x0000000F
F0000000
1c: BAR3 00000000
20: BAR4 00000000
24: BAR5 00000000
28: CBCISPtr 00000000
2c: SubSysVenID 1649
2e: SubSysID 2002
30: ROMBAR 00000000
34: CapPtr dc
3c: IntLine 0b
3d: IntPin 01
3e: MinGnt 00
3f: MaxLat 00
Device Private:
40: 0002c010 00648f20 00010830 0002c102
50: 10420000 00000000 00000000 00000000
60: 00000000 00000000 00000000 00000000
70: 00000002 00000000 00000000 00000000
80: 00000000 00000000 00000000 00000000
90: 00000000 00000000 00000000 00000000
a0: 00000000 00000000 00000000 00000000
b0: 00000000 00000000 00000000 00000000
c0: 00800005 00000000 00000000 00000000
d0: 00000000 00000000 00000000 06234001
e0: 00000008 00000000 00000000 00000000
f0: 00000000 00000000 00000000 00000000
Capabilities:
dc: CapID 01 PwrMgmt Capability
dd: NextPtr 40
de: PwrMgmtCap 0623 DSI D1Support D2Support Version=3
e0: PwrMgmtCtrl 0008 DataScale:0 DataSel:0 D0

40: CapID 10 PCI Express Capability
41: NextPtr c0
42: Express Caps 0002 Type:Endpoint
44: Device Caps 00648f20
48: Device Control 0830 MRR:128 NS ap pf et MP:256 RO ur fe nf ce
4a: Device Status 0001 tp ap ur fe nf CE
4c: Link Caps 0002c102
50: Link Control 0000 es cc rl ld RCB:64 ASPM:None
52: Link Status 1042 SCC lt lte NLW:x4 LS:2.5
54: Slot Caps 00000000
58: Slot Control 0000 pcc PI:?? AI:?? hpi cc pde mrls pfd ab
5a: Slot Status 0000 pds hpi cc pdc ms pfd ab
5c: Root Control 0000 pmei fs nfs cs
5e: Reserved 0000
60: Root Status 00000000 pmep pmes ID:0

c0: CapID 05 MSI Capability
c1: NextPtr 00
c2: MsgCtrl 64BitCapable MultipleMsgEnable:0 (0x1)
MultipleMsgCapable:0 (0x1) << 64bit capable
c4: MsgAddr 0
c8: MsgAddrHi 0
cc: MsData 0





"alberto" wrote:

> Hi, Pat,
>
> One thing to check first, are you sure your chip's BAR is a 64-bit
> BAR ? A 32-bit BAR register cannot see beyond 4Gb.
>
> Also, I'm not sure I can recommend you do this in a production
> environment, but it should be ok as a proof of concept and to make
> sure that you don't have an underlying hardware issue. In fact, if you
> connect a bus analyzer to your machine while you do this exercise, and
> set it to trigger on a write to your BAR, a hardware-savvy engineer
> should be able to diagnose the problem by looking at the analyzer's
> trace.
>
> You can try to do the arbitration yourself, using the I/O level PCI
> Express configuration mechanisms. Chapter 22 of the PCIe Mindshare
> book explains it: you write all ones to the BAR and read it back: that
> will give you the size of the memory space by clearing the bits
> corresponding to the available address space to zero. After that you
> can write the physical address to the BAR, and it should stick - well,
> of course you will need to allocate the physical address range
> yourself before you do this, or the OS will reuse that space and write
> all over your memory.
>
> One thing to watch out is that some hardware don't like to operate
> across a 4Gb boundary. I have had bad experiences with that kind of
> thing. User beware!
>
>
> Alberto.
>
>
>
> On Oct 28, 6:54 pm, Pat <P...@discussions.microsoft.com> wrote:
> > Additional info from Pci.sys ...
> >
> > PciMemoryArbiter_PreprocessEntry for arbiter 0x85eb010
> > PCI: Allocation State after preprocessing
> > PCI: Arbiter Allocation State for PDO 0x85ed9e0 (bus 0, slot 3)
> > PCI: Current Alternative:
> > PCI: Type - 3
> > PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
> > PCI: Length - 0x10000000 Alignment - 0x1
> > PCI: Flags - 0x2
> > PCI: Current State:
> > PCI: Start - 0x1 End - 0x0
> > PCI: Min - 0x0 Max - 0xffffffffffffffff
> > PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
> > PCI:
> > PciMemoryArbiter_GetNextAllocationRange for arbiter 0x85eb010
> > PCI: Next Allocation range found
> > PCI: Arbiter Allocation State for PDO 0x85ed9e0 (bus 0, slot 3)
> > PCI: Current Alternative:
> > PCI: Type - 3
> > PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
> > PCI: Length - 0x10000000 Alignment - 0x1
> > PCI: Flags - 0x2
> > PCI: Current State:
> > PCI: Start - 0x1 End - 0x0
> > PCI: Min - 0xff0000000 Max - 0xfffffffff
> > PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
> > PCI:
> > PciMemoryArbiter_OverrideConflict for arbiter 0x85eb010
> > PCI: Arbiter Allocation State for PDO 0x85ed9e0 (bus 0, slot 3)
> > PCI: Current Alternative:
> > PCI: Type - 3
> > PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
> > PCI: Length - 0x10000000 Alignment - 0x1
> > PCI: Flags - 0x2
> > PCI: Current State:
> > PCI: Start - 0x1 End - 0x0
> > PCI: Min - 0xff0000000 Max - 0xfffffffff
> > PCI: Flags - 0x0 RangeAttr - 0x4 RangeAvailAttr - 0x0
> > PCI:
> > PciMemoryArbiter_FindSuitableRange returning 0
> > PCI: Arbiter Allocation State for PDO 0x85ed9e0 (bus 0, slot 3)
> > PCI: Current Alternative:
> > PCI: Type - 3
> > PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
> > PCI: Length - 0x10000000 Alignment - 0x1
> > PCI: Flags - 0x2
> > PCI: Current State:
> > PCI: Start - 0x1 End - 0x0
> > PCI: Min - 0xff0000000 Max - 0xfffffffff
> > PCI: Flags - 0x0 RangeAttr - 0x4 RangeAvailAttr - 0x0
> > PCI:
> > ::
> > [repeat 5x]
> >
> > {
> > ...nextAllocation
> > ....OverrideCOnflict
> > ...FindSoutiableRange returning 0
> >
> > }
> >
> > So it would seem that pci.sys is "trying" the address but always gets 0
> > back in FindSuitableRange. Anybody know what
> > "PciMemoryArbiter_OverrideConflict" means ?
> >
> > - Pat
> >
> >
> >
> > "Pat" wrote:
> > > Hi everyone,

> >
> > > I need some help. I've a graphic device which allocates 3 bars. I am
> > > trying to allocate the largest aperture to above 4Gig.

> >
> > > It should reside in 0xFF0000000.

> >
> > > When Vista boots up, it seems that pci.sys allocates the other 2 bars
> > > which are below 4Gig, but will refuse to allocate the bar which is above
> > > 4Gig. In the device manager, I see

> >
> > > the frame buffer aperture :
> > > [0x0000000F F0000000 - 0x0000000F FFFFFFFF PCI standard PCI-to-Pci Bridge

> >
> > > but it has a yellow ! mark on it. If you open the properties, it says "this
> > > device
> > > cannot find enough free resource that it can use".

> >
> > > Can someone give me some pointers as to what to look or try ?

> >
> > > Using Linux, it seems that I can write to the address (and see it fill up
> > > the video
> > > screen). So at least the hardware seems to be mapped to the correct address.

> >
> > > Using Windbg, I can't seem to read the FrameBuffer when it's mapped at
> > > 0x0000000F F0000000, but I can read it ok, when it's mapped below 4Gig. I am
> > > not sure whether this is a clue, or whether WinDbg doesn't work well above
> > > 4Gig.

> >
> > > Any help would be greatly appeciated. Thanks in advance.- Hide quoted text -

> >
> > - Show quoted text -

>
> .
>

 
Reply With Quote
 
Alexander Grigoriev
Guest
Posts: n/a

 
      10-30-2009
I don't think you're running x64 system, your PDO address (0x94f7070) is
typical for x86. x86 client OS (Vista) won't use physical addresses above
4GB. Server-class OS will do. See
http://download.microsoft.com/downlo...4a/PCI-rsc.doc

"Pat" <> wrote in message
news:618C6F1E-A1F6-4DDB-9537-...
> Hello Alberto,
>
> The bar looks correct .. and since the address works fine from Linux,
> I
> think would presume that the device is working.
>
>
> Vista64 detects the correct settings (address and size) but it "fails"
> to allocate the resource if it is above 4Gigs. (You can see it from the
> logs
> from pci.sys). If I do-not- allow the device to be remapped below 4Gig,
> the
> Pci bridge fails with a yellow (!), the device is non visible (meaning I
> don't even see a vga display device in the device manager) ... but
> strangely
> enough it comes up as a 640x480 (?) 4bit display but I cannot change any
> settings.
>
>
>
> This is a log of a very good run PCI.sys. You can see for the device,
> that it pci.sys
> (1) Allocates and maps 0xA0000 successfully
> (2) Allocates and maps 0xd8000000 successfully
> (3) Trying to allocate 256Mbyte prefetch
> a. Tries Min - 0x000f f0000000 Max - 0x000f ffffffff but
> fails
> b. Retries Min - 0x0001 00000000 Max - 0x000f fffffffffffffff but fails>
> c. Retries Min - 0x100000 Max - 0xffefffff , passes. Gets 0xC0000000, and
> maps the Video card there. Video comes up ok, BUT the bar is in < 4Gig
> range,
> which is not what I want.
>
> -- Pci.sys logs --
>  PciMemoryArbiter_GetNextAllocationRange for arbiter 0x94f5010
>  PCI: Next Allocation range found
>  PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
>  PCI: Current Alternative:
>  PCI: Type - 3
>  PCI: Minimum - 0xa0000 Maximum - 0xbffff
>  PCI: Length - 0x20000 Alignment - 0x1
>  PCI: Flags - 0x2
>  PCI: Current State:
>  PCI: Start - 0x1 End - 0x0
>  PCI: Min - 0xa0000 Max - 0xbffff
>  PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
>  PCI:
>  PciMemoryArbiter_FindSuitableRange returning 1
>  PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
>  PCI: Current Alternative:
>  PCI: Type - 3
>  PCI: Minimum - 0xa0000 Maximum - 0xbffff
>  PCI: Length - 0x20000 Alignment - 0x1
>  PCI: Flags - 0x2
>  PCI: Current State:
>  PCI: Start - 0xa0000 End - 0xbffff
>  PCI: Min - 0xa0000 Max - 0xbffff
>  PCI: Flags - 0x0 RangeAttr - 0x4 RangeAvailAttr - 0x0
>  PCI:
>  PciMemoryArbiter_PreprocessEntry for arbiter 0x94f5010
>  PCI: Allocation State after preprocessing
>  PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
>  PCI: Current Alternative:
>  PCI: Type - 3
>  PCI: Minimum - 0xd8000000 Maximum - 0xd83fffff
>  PCI: Length - 0x400000 Alignment - 0x1
>  PCI: Flags - 0x2
>  PCI: Current State:
>  PCI: Start - 0x1 End - 0x0
>  PCI: Min - 0x0 Max - 0x0
>  PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
>  PCI:
>  PciMemoryArbiter_GetNextAllocationRange for arbiter 0x94f5010
>  PCI: Next Allocation range found
>  PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
>  PCI: Current Alternative:
>  PCI: Type - 3
>  PCI: Minimum - 0xd8000000 Maximum - 0xd83fffff
>  PCI: Length - 0x400000 Alignment - 0x1
>  PCI: Flags - 0x2
>  PCI: Current State:
>  PCI: Start - 0x1 End - 0x0
>  PCI: Min - 0xd8000000 Max - 0xd83fffff
>  PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
>  PCI:
>  PciMemoryArbiter_FindSuitableRange returning 1
>  PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
>  PCI: Current Alternative:
>  PCI: Type - 3
>  PCI: Minimum - 0xd8000000 Maximum - 0xd83fffff
>  PCI: Length - 0x400000 Alignment - 0x1
>  PCI: Flags - 0x2
>  PCI: Current State:
>  PCI: Start - 0xd8000000 End - 0xd83fffff
>  PCI: Min - 0xd8000000 Max - 0xd83fffff
>  PCI: Flags - 0x0 RangeAttr - 0x4 RangeAvailAttr - 0x0
>  PCI:
>  PciMemoryArbiter_PreprocessEntry for arbiter 0x94f5010
>  PCI: Allocation State after preprocessing
>  PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
>  PCI: Current Alternative:
>  PCI: Type - 3
>  PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
>  PCI: Length - 0x10000000 Alignment - 0x1
>  PCI: Flags - 0x2
>  PCI: Current State:
>  PCI: Start - 0x1 End - 0x0
>  PCI: Min - 0x0 Max - 0x0
>  PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
>  PCI:
>  PciMemoryArbiter_GetNextAllocationRange for arbiter 0x94f5010
>  PCI: Next Allocation range found
>  PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
>  PCI: Current Alternative:
>  PCI: Type - 3
>  PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
>  PCI: Length - 0x10000000 Alignment - 0x1
>  PCI: Flags - 0x2
>  PCI: Current State:
>  PCI: Start - 0x1 End - 0x0
>  PCI: Min - 0xff0000000 Max - 0xfffffffff
>  PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
>  PCI:
>  PciMemoryArbiter_OverrideConflict for arbiter 0x94f5010
>  PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
>  PCI: Current Alternative:
>  PCI: Type - 3
>  PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
>  PCI: Length - 0x10000000 Alignment - 0x1
>  PCI: Flags - 0x2
>  PCI: Current State:
>  PCI: Start - 0x1 End - 0x0
>  PCI: Min - 0xff0000000 Max - 0xfffffffff
>  PCI: Flags - 0x0 RangeAttr - 0x4 RangeAvailAttr - 0x0
>  PCI:
>  PciMemoryArbiter_FindSuitableRange returning 0
>  PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
>  PCI: Current Alternative:
>  PCI: Type - 3
>  PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
>  PCI: Length - 0x10000000 Alignment - 0x1
>  PCI: Flags - 0x2
>  PCI: Current State:
>  PCI: Start - 0x1 End - 0x0
>  PCI: Min - 0xff0000000 Max - 0xfffffffff
>  PCI: Flags - 0x0 RangeAttr - 0x4 RangeAvailAttr - 0x0
>  PCI:
>  PciMemoryArbiter_GetNextAllocationRange for arbiter 0x94f5010
>  PCI: Next Allocation range found
>  PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
>  PCI: Current Alternative:
>  PCI: Type - 3
>  PCI: Minimum - 0x0 Maximum - 0xffffffffffffffff
>  PCI: Length - 0x10000000 Alignment - 0x100000
>  PCI: Flags - 0x0
>  PCI: Current State:
>  PCI: Start - 0x1 End - 0x0
>  PCI: Min - 0x100000000 Max - 0xffffffffffffffff
>  PCI: Flags - 0x0 RangeAttr - 0x4 RangeAvailAttr - 0x0
>  PCI:
>  PciMemoryArbiter_OverrideConflict for arbiter 0x94f5010
>  PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
>  PCI: Current Alternative:
>  PCI: Type - 3
>  PCI: Minimum - 0x0 Maximum - 0xffffffffffffffff
>  PCI: Length - 0x10000000 Alignment - 0x100000
>  PCI: Flags - 0x0
>  PCI: Current State:
>  PCI: Start - 0x1 End - 0x0
>  PCI: Min - 0x100000000 Max - 0xffffffffffffffff
>  PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
>  PCI:
>  PciMemoryArbiter_FindSuitableRange returning 0
>  PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
>  PCI: Current Alternative:
>  PCI: Type - 3
>  PCI: Minimum - 0x0 Maximum - 0xffffffffffffffff
>  PCI: Length - 0x10000000 Alignment - 0x100000
>  PCI: Flags - 0x0
>  PCI: Current State:
>  PCI: Start - 0x1 End - 0x0
>  PCI: Min - 0x100000000 Max - 0xffffffffffffffff
>  PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
>  PCI:
>  PciMemoryArbiter_GetNextAllocationRange for arbiter 0x94f5010
>  PCI: Next Allocation range found
>  PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
>  PCI: Current Alternative:
>  PCI: Type - 3
>  PCI: Minimum - 0x0 Maximum - 0xffffffffffffffff
>  PCI: Length - 0x10000000 Alignment - 0x100000
>  PCI: Flags - 0x0
>  PCI: Current State:
>  PCI: Start - 0x1 End - 0x0
>  PCI: Min - 0x100000 Max - 0xffefffff
>  PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
>  PCI:
>  PciMemoryArbiter_FindSuitableRange returning 1
>  PCI: Arbiter Allocation State for PDO 0x94f7070 (bus 0, slot 1)
>  PCI: Current Alternative:
>  PCI: Type - 3
>  PCI: Minimum - 0x0 Maximum - 0xffffffffffffffff
>  PCI: Length - 0x10000000 Alignment - 0x100000
>  PCI: Flags - 0x0
>  PCI: Current State:
>  PCI: Start - 0xc0000000 End - 0xcfffffff
>  PCI: Min - 0x100000 Max - 0xffefffff
>  PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
>  PCI: Config Write - (0,1,0) offset 3c length 1 buffer FFFFFA60005AF1F8
>
> // PCI config from my video device
> PCI Configuration Space (Segment:0000 Bus:06 Device:00 Function:00)
> Common Header:
> 00: VendorID xxxx
> 02: DeviceID yyyy
> 04: Command 0007 IOSpaceEn MemSpaceEn BusInitiate
> 06: Status 0010 CapList
> 08: RevisionID 01
> 09: ProgIF 00 VGA
> 0a: SubClass 00 VGA Compatible Controller
> 0b: BaseClass 03 Display Controller
> 0c: CacheLineSize 0008 Burst4DW
> 0d: LatencyTimer 00
> 0e: HeaderType 00
> 0f: BIST 00
> 10: BAR0 d8000000 << 32bit bar of 0xd8000000
> 14: BAR1 f000000c <<
> 18: BAR2 0000000f << 64bit bar of 0x0000000F
> F0000000
> 1c: BAR3 00000000
> 20: BAR4 00000000
> 24: BAR5 00000000
> 28: CBCISPtr 00000000
> 2c: SubSysVenID 1649
> 2e: SubSysID 2002
> 30: ROMBAR 00000000
> 34: CapPtr dc
> 3c: IntLine 0b
> 3d: IntPin 01
> 3e: MinGnt 00
> 3f: MaxLat 00
> Device Private:
> 40: 0002c010 00648f20 00010830 0002c102
> 50: 10420000 00000000 00000000 00000000
> 60: 00000000 00000000 00000000 00000000
> 70: 00000002 00000000 00000000 00000000
> 80: 00000000 00000000 00000000 00000000
> 90: 00000000 00000000 00000000 00000000
> a0: 00000000 00000000 00000000 00000000
> b0: 00000000 00000000 00000000 00000000
> c0: 00800005 00000000 00000000 00000000
> d0: 00000000 00000000 00000000 06234001
> e0: 00000008 00000000 00000000 00000000
> f0: 00000000 00000000 00000000 00000000
> Capabilities:
> dc: CapID 01 PwrMgmt Capability
> dd: NextPtr 40
> de: PwrMgmtCap 0623 DSI D1Support D2Support Version=3
> e0: PwrMgmtCtrl 0008 DataScale:0 DataSel:0 D0
>
> 40: CapID 10 PCI Express Capability
> 41: NextPtr c0
> 42: Express Caps 0002 Type:Endpoint
> 44: Device Caps 00648f20
> 48: Device Control 0830 MRR:128 NS ap pf et MP:256 RO ur fe nf ce
> 4a: Device Status 0001 tp ap ur fe nf CE
> 4c: Link Caps 0002c102
> 50: Link Control 0000 es cc rl ld RCB:64 ASPM:None
> 52: Link Status 1042 SCC lt lte NLW:x4 LS:2.5
> 54: Slot Caps 00000000
> 58: Slot Control 0000 pcc PI:?? AI:?? hpi cc pde mrls pfd ab
> 5a: Slot Status 0000 pds hpi cc pdc ms pfd ab
> 5c: Root Control 0000 pmei fs nfs cs
> 5e: Reserved 0000
> 60: Root Status 00000000 pmep pmes ID:0
>
> c0: CapID 05 MSI Capability
> c1: NextPtr 00
> c2: MsgCtrl 64BitCapable MultipleMsgEnable:0 (0x1)
> MultipleMsgCapable:0 (0x1) << 64bit capable
> c4: MsgAddr 0
> c8: MsgAddrHi 0
> cc: MsData 0
>
>
>
>
>
> "alberto" wrote:
>
>> Hi, Pat,
>>
>> One thing to check first, are you sure your chip's BAR is a 64-bit
>> BAR ? A 32-bit BAR register cannot see beyond 4Gb.
>>
>> Also, I'm not sure I can recommend you do this in a production
>> environment, but it should be ok as a proof of concept and to make
>> sure that you don't have an underlying hardware issue. In fact, if you
>> connect a bus analyzer to your machine while you do this exercise, and
>> set it to trigger on a write to your BAR, a hardware-savvy engineer
>> should be able to diagnose the problem by looking at the analyzer's
>> trace.
>>
>> You can try to do the arbitration yourself, using the I/O level PCI
>> Express configuration mechanisms. Chapter 22 of the PCIe Mindshare
>> book explains it: you write all ones to the BAR and read it back: that
>> will give you the size of the memory space by clearing the bits
>> corresponding to the available address space to zero. After that you
>> can write the physical address to the BAR, and it should stick - well,
>> of course you will need to allocate the physical address range
>> yourself before you do this, or the OS will reuse that space and write
>> all over your memory.
>>
>> One thing to watch out is that some hardware don't like to operate
>> across a 4Gb boundary. I have had bad experiences with that kind of
>> thing. User beware!
>>
>>
>> Alberto.
>>
>>
>>
>> On Oct 28, 6:54 pm, Pat <P...@discussions.microsoft.com> wrote:
>> > Additional info from Pci.sys ...
>> >
>> > PciMemoryArbiter_PreprocessEntry for arbiter 0x85eb010
>> > PCI: Allocation State after preprocessing
>> > PCI: Arbiter Allocation State for PDO 0x85ed9e0 (bus 0, slot 3)
>> > PCI: Current Alternative:
>> > PCI: Type - 3
>> > PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
>> > PCI: Length - 0x10000000 Alignment - 0x1
>> > PCI: Flags - 0x2
>> > PCI: Current State:
>> > PCI: Start - 0x1 End - 0x0
>> > PCI: Min - 0x0 Max - 0xffffffffffffffff
>> > PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
>> > PCI:
>> > PciMemoryArbiter_GetNextAllocationRange for arbiter 0x85eb010
>> > PCI: Next Allocation range found
>> > PCI: Arbiter Allocation State for PDO 0x85ed9e0 (bus 0, slot 3)
>> > PCI: Current Alternative:
>> > PCI: Type - 3
>> > PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
>> > PCI: Length - 0x10000000 Alignment - 0x1
>> > PCI: Flags - 0x2
>> > PCI: Current State:
>> > PCI: Start - 0x1 End - 0x0
>> > PCI: Min - 0xff0000000 Max - 0xfffffffff
>> > PCI: Flags - 0x0 RangeAttr - 0x0 RangeAvailAttr - 0x0
>> > PCI:
>> > PciMemoryArbiter_OverrideConflict for arbiter 0x85eb010
>> > PCI: Arbiter Allocation State for PDO 0x85ed9e0 (bus 0, slot 3)
>> > PCI: Current Alternative:
>> > PCI: Type - 3
>> > PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
>> > PCI: Length - 0x10000000 Alignment - 0x1
>> > PCI: Flags - 0x2
>> > PCI: Current State:
>> > PCI: Start - 0x1 End - 0x0
>> > PCI: Min - 0xff0000000 Max - 0xfffffffff
>> > PCI: Flags - 0x0 RangeAttr - 0x4 RangeAvailAttr - 0x0
>> > PCI:
>> > PciMemoryArbiter_FindSuitableRange returning 0
>> > PCI: Arbiter Allocation State for PDO 0x85ed9e0 (bus 0, slot 3)
>> > PCI: Current Alternative:
>> > PCI: Type - 3
>> > PCI: Minimum - 0xff0000000 Maximum - 0xfffffffff
>> > PCI: Length - 0x10000000 Alignment - 0x1
>> > PCI: Flags - 0x2
>> > PCI: Current State:
>> > PCI: Start - 0x1 End - 0x0
>> > PCI: Min - 0xff0000000 Max - 0xfffffffff
>> > PCI: Flags - 0x0 RangeAttr - 0x4 RangeAvailAttr - 0x0
>> > PCI:
>> > ::
>> > [repeat 5x]
>> >
>> > {
>> > ...nextAllocation
>> > ....OverrideCOnflict
>> > ...FindSoutiableRange returning 0
>> >
>> > }
>> >
>> > So it would seem that pci.sys is "trying" the address but always
>> > gets 0
>> > back in FindSuitableRange. Anybody know what
>> > "PciMemoryArbiter_OverrideConflict" means ?
>> >
>> > - Pat
>> >
>> >
>> >
>> > "Pat" wrote:
>> > > Hi everyone,
>> >
>> > > I need some help. I've a graphic device which allocates 3 bars. I
>> > > am
>> > > trying to allocate the largest aperture to above 4Gig.
>> >
>> > > It should reside in 0xFF0000000.
>> >
>> > > When Vista boots up, it seems that pci.sys allocates the other 2
>> > > bars
>> > > which are below 4Gig, but will refuse to allocate the bar which is
>> > > above
>> > > 4Gig. In the device manager, I see
>> >
>> > > the frame buffer aperture :
>> > > [0x0000000F F0000000 - 0x0000000F FFFFFFFF PCI standard PCI-to-Pci
>> > > Bridge
>> >
>> > > but it has a yellow ! mark on it. If you open the properties, it
>> > > says "this
>> > > device
>> > > cannot find enough free resource that it can use".
>> >
>> > > Can someone give me some pointers as to what to look or try ?
>> >
>> > > Using Linux, it seems that I can write to the address (and see it
>> > > fill up
>> > > the video
>> > > screen). So at least the hardware seems to be mapped to the correct
>> > > address.
>> >
>> > > Using Windbg, I can't seem to read the FrameBuffer when it's mapped
>> > > at
>> > > 0x0000000F F0000000, but I can read it ok, when it's mapped below
>> > > 4Gig. I am
>> > > not sure whether this is a clue, or whether WinDbg doesn't work well
>> > > above
>> > > 4Gig.
>> >
>> > > Any help would be greatly appeciated. Thanks in advance.- Hide quoted
>> > > text -
>> >
>> > - Show quoted text -

>>
>> .
>>



 
Reply With Quote
 
 
 
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Run Vista legally for at least one year/ Vista Activation doesn't stop Piracy Chad Harris Windows Vista Installation 56 12-25-2008 02:34 PM
dual boot xp and vista...with vista recovery dvd VS Windows Vista Installation 16 05-05-2007 12:05 PM
Can Vista be installed on top of itsself? Jeff Ingram Windows Vista Installation 5 03-20-2007 08:48 PM
Installing Vista on top of Vista - and then getting an Installation Error (Sony Vaio VGC-RB38G) Chris Hagler Windows Vista Installation 4 02-16-2007 02:42 AM
For Dual or Single Booting With Vista Jan Il Windows Vista Installation 0 11-03-2006 09:41 PM



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59