[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Private Devices and OS support



>
>     
>     We are designing an add-in card with multiple PCI devices behind a PCI 
>     to PCI bridge and have a couple of concerns. The devices behind our 
>     bridge will be controlled by another device on our secondary bus, not 
>     by the host. The controlled devices will have the ability to transfer 
>     data to/from the primary bus.
>     
>     1. Since the BIOS and OS will be able to see our devices, are there 
>     any rules about moving the addresses of these devices? One concern is 
>     that the OS, such as WIN-NT/95 might decide to move our secondary 
>     devices addresses while our card is doing background tasks. (The 
>     scenario might be hot-docking) In other words, there is no outstanding 
>     command that the OS is aware of, yet our card is still moving data 
>     internally. Should the OS reprogram one of our secondary BARs at that 
>     time, the result would be disastrous. Are there any rules for this 
>     scenario? What is Microsoft's policy on this?

>> We don't change a BAR without asking and stopping the device driver first.
Ie a VxD would get a CONFIG_TEST; a WDM driver would get an
IRP_MN_QUERY_REMOVE/STOP. You should fail those calls if you are
busmasteing away (or stop busmastering on the CONFIG_STOP
IRP_MN_STOP_DEVICE). If you fail the queries, we will ask the user to
reboot to change the BAR.
>     
>     2. What is the PCI-SIG policy of hiding the devices from the BIOS/OS? 
>     Some of the newer bridges have features which enable this type of 
>     behavior, however, this creates an address space "hole" in the PCI 
>     address map for the hidden devices. 
>
>> As far as the OS is concerned, this is extremely bad. Nothing will prevent
>>>us to step on these resources.
õèØ