From: Bill Gage "Wild on
I am attempting to port a Linux driver to Windows XP, Vista, Servers and
CE. In Linux I preassign PCI bus numbers and either preassign or
dynamically allocate PCI BAR address space and monitor the PCI bus for
the appearance of a new one of my devices. Using these preassigned
resources, I can set up my PCIe bridge and get communications going. I
haven't been able to find any support routines, structures, etc. in the
Windows DDK to help me do this. Is this possible with any version of
Windows?
From: Don Burn on
I haven't looked at this personally, but Windows assigns the resources to
you not the other way around as Linux does. I believe PCIe requires BIOS
support for hotplug see
http://www.microsoft.com/whdc/connect/pci/bios_hotplugpcie.mspx


--
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
Remove StopSpam to reply



"Bill Gage" <"Wild Bill"@newsgroup.nospam> wrote in message
news:OOfQ0VWoIHA.2292(a)TK2MSFTNGP03.phx.gbl...
>I am attempting to port a Linux driver to Windows XP, Vista, Servers and
>CE. In Linux I preassign PCI bus numbers and either preassign or
>dynamically allocate PCI BAR address space and monitor the PCI bus for the
>appearance of a new one of my devices. Using these preassigned resources, I
>can set up my PCIe bridge and get communications going. I haven't been able
>to find any support routines, structures, etc. in the Windows DDK to help
>me do this. Is this possible with any version of Windows?


From: Bill Gage "Wild on
Don Burn wrote:
> I haven't looked at this personally, but Windows assigns the resources to
> you not the other way around as Linux does. I believe PCIe requires BIOS
> support for hotplug see
> http://www.microsoft.com/whdc/connect/pci/bios_hotplugpcie.mspx
>
>
I read the article and Linux works pretty much the same way. However,
the internal resource structures can be changed to reassign the bus
numbers to make room for bridges that may be added. Also, memory
resources may be allocated through system calls and preassigned in
anticipation of a new bridge. When my driver discovers a new bridge, it
assigns the resources it needs, holding back the rest of the
preallocated memory for another bridge. If Windows doesn't make
available these kinds of routines or structures, our Windows customers
will just have to reboot their servers every time they add a new
communication link.
From: Doron Holan [MSFT] on
windows has the ability to rebalance the tree upon insertion, this includes
opening up new memory windows to support downlevel bridges. Vista and later
releases are much better at this then previous versions.

d

--
Please do not send e-mail directly to this alias. this alias is for
newsgroup purposes only.
This posting is provided "AS IS" with no warranties, and confers no rights.


"Bill Gage" <"Wild Bill"@newsgroup.nospam> wrote in message
news:%23HvXB8XoIHA.672(a)TK2MSFTNGP02.phx.gbl...
> Don Burn wrote:
>> I haven't looked at this personally, but Windows assigns the resources to
>> you not the other way around as Linux does. I believe PCIe requires
>> BIOS support for hotplug see
>> http://www.microsoft.com/whdc/connect/pci/bios_hotplugpcie.mspx
>>
>>
> I read the article and Linux works pretty much the same way. However, the
> internal resource structures can be changed to reassign the bus numbers to
> make room for bridges that may be added. Also, memory resources may be
> allocated through system calls and preassigned in anticipation of a new
> bridge. When my driver discovers a new bridge, it assigns the resources it
> needs, holding back the rest of the preallocated memory for another
> bridge. If Windows doesn't make available these kinds of routines or
> structures, our Windows customers will just have to reboot their servers
> every time they add a new communication link.