|
|
; SOFTPCI Device Installation Script ; ; For more details on SoftPCI Scripting support see ; "%sdxroot%\base\testsrc\pnp\pcisim\softpci\SoftPCI Script Engine Specification.doc" ; ; ; ; INSTALL - This section designates the list of devices to be installed ; ; Type - "Device" - SoftPCI Device. VENID = 0xABCD, DEVID = 0xDCBA ; "PPBridge" - SoftPCI-PCI Bridge. VENID = 0xABCD, DEVID = 0xDCBB ; "HPBridge" - SoftPCI-HOTPLUG Bridge. VENID = 0xABCD, DEVID = 0xDCBC ; "CBDevice" - SoftPCI CardBus Device. VENID = 0xABCD, DEVID = 0xDCBD (NOT CURRENTLY SUPPORTED!) ; "CBBridge" - SoftPCI-CardBus Bridge. VENID = 0xABCD, DEVID = 0xDCBE (NOT CURRENTLY SUPPORTED!) ; "Private" - User defined configspace for all registers ; ; Note: For all types other than "Private" any "ConfigSpace=" or "ConfigSpaceMask" ; offset not explicitly modified will be defaulted to values as defined in ; the SoftPCI Specification. If using "Private" then user must provide all required ; registers in order to complete device install. Examples are Vendor ID, HeaderType, and ; BaseClass/SubClass. ; ; ; Slot - The Device and Function number of the device. Example 0501 = DEV 5 FUNC 1 ; If not specified then next available DEV number will be used and function 0 will ; be assumed. Function numbers higher than 0 will fail install unless function 0 already ; exists. ; ; ParentPath - Path to the desination of "Slot". The "Slot" itself is not ; included in this path. If path doesnt exist first root bus is assumed. ; Must specify FF for the device number when specifying the root bus. The function ; number for Root buses is treated as the bus number for that root bus. ; ; Example: FFXX\DEVFUNC\DEVFUNC\.... ; FF00\0200\0501 <--- Place a device specified by "Slot" behind bridge ; located at 0501 (which is behind bridge 0200 on root 0). ; ; ConfigSpace - Specifies the OFFSET: VALUE, VALUE etc. OFFSET can be on any boundary (BYTE, WORD, DWORD) and ; value size will be determined autmatically. You can specify up to 4 values on each line separated ; by commas. Each comma will increment the offset by a DWORD (4 bytes). ; ; Example: 3C: 0b <-- here we will be updating one single byte at offset 0x3C. ; 3C: 0000000b <-- here the entire DWORD at 0x3C will be updated ; E0: 000b, 0000a0b0 <-- here we modify WORD at 0xE0 and DWORD at 0xE4 ; ; ConfigSpaceMask - Specifies the OFFSET: VALUE, VALUE etc. Bits set in these registers ; indicate bits that are writeable in the devices ConfigSpace. ;
[SOFTPCI] Version=1
[INSTALL] device2 bridge1 bridge2 device3 device4 bridge3 SomeCoolPrivateDevice
[device1] Type=Device ConfigSpaceMask= 00: FFFFFFFF,FFFFFFFF,FFFFFFFF,FFFFFFFF 14: FFFFF000
[device2] Type = Device Slot=1600 ParentPath=ff00 ConfigSpace= 04: 00000007 50: 00f20000,00000000,00000000,00000000 70: 00000000,ABCDEFFF,00000000,00000000 f0: 00000000,00000000,00000000,00000001 ConfigSpaceMask= 04: 00000007 10: ffff0000,00000000,ff01,00000000 9c: 00000008 fc: 00000001
[bridge1] Type=PPBridge Slot=0b00 ParentPath=FF00
[bridge2] Type=pPBridge Slot=0100 ParentPath=ff00\0b00
[device3] Type=Device Slot=0000 ParentPath=FF00\0b00
[device4] Type=Device Slot=1200 ParentPath=ff00\0b00
[SomeCoolPrivateDevice] Type=private Slot=0300 ParentPath=FF00\0b00\0100 ConfigSpace= 00: 25308086,20900006,06000002,00000000 10: D0000008,00000000,00000000,00000000 20: 00000000,00000000,00000000,000E1025 30: 00000000,000000A0,00000000,00000000 40: 80808092,80808080,80808080,80808080 50: 00020805,00000000,31111000,00000000 60: 00080008,00080008,00080008,00080008 70: 00080008,00080008,00080008,00080008 80: 00000000,00000000,0000008F,00000000 90: 00030003,08010061,00001955,00380A80 A0: 00200002,1F000217,00000104,00000000 B0: 00000080,00000030,00000000,00891020 C0: 11504044,00000800,0000C200,00000000 D0: 0E002802,33000003,B53109AF,7F060001 E0: 00000000,00000000,252D232E,00000007 F0: 00010000,8030FC74,00000F38,00000000 configspacemask= 70: 000ff000,,,abcd F0: 12345678,9abcdeff
|