I must be overlooking something and could use some help.
I’m writing drivers for PCI device as follows.
VendorID: xxxx DeviceID: yyyyy
BAR0: multiple serial uarts
BAR1: some other feature that will have a driver all its own
I’ve got a top-level INF for xxxx&yyyy that does this using mf.sys:
HKR, Child0000, HardwareID, MF\uarts
HKR, Child0000, ResourceMap,1,00,08 ; Resources 00 (BAR0), 08 (INT)
HKR, Child0001, HardwareID, MF\other
HKR, Child0001, ResourceMap,1,02,08 ; Resources 02 (BAR1), 08 (INT)
I then have another INF for mf\uarts that does this using mf.sys:
HKR, Child0000, HardwareID, MF\serial
HKR, Child0000, VaryingResourceMap,1,00, 00,00,00,00, 20,00,00,00
HKR, Child0000, ResourceMap,1,01
HKR, Child0001, HardwareID, MF\serial
HKR, Child0001, VaryingResourceMap,1,00, 20,00,00,00, 20,00,00,00
HKR, Child0001, ResourceMap,1,01
HKR, Child0002, HardwareID, MF\serial
HKR, Child0002, VaryingResourceMap,1,00, 40,00,00,00, 20,00,00,00
HKR, Child0002, ResourceMap,1,01
HKR, Child0003, HardwareID, MF\serial
HKR, Child0003, VaryingResourceMap,1,00, 60,00,00,00, 20,00,00,00
HKR, Child0003, ResourceMap,1,01
Lastly, I have an INF for MF\serial that installs the serial driver for each uart. During installation the device manager complains that the device can’t find enough free resources to use. I’m expecting each com port to get the resources that I specified for each MF\serial.
If I remove the top-level INF that splits out each BAR it works just fine. In that case the INF above specifying the varyingresourcemap’s targets the xxxx&yyyy hardware ID instead of mf\uarts.
Any ideas?