MultiFunction Card and Varying Resource Maps

I’m trying to get .net up on a machine with some UARTs built into an
FPGA out on a PCI bus. We had NT running with a hacked up version of
the serial driver on the same hardware.

It appears that the .net serial driver should support this hardware, if
I can do the right INF incantation.

It has 4 UARTs. A PCI viewer shows the IO Addresses that I’m interested
in as resource 3, so I started
with the sample below, modified the stuff to identify the card, changed
the PNP0501 to PNP0500,
and changed the resource number on each VaryingResourceMap from 4 to 3.

My understanding (guess) of the ResourceMap parameter is that for PCI
resource 6 always corresponds
to the interrupt, so I left this as is. This device only has one
interrupt.

In the device manager, I see a new device listed under “MultiFunction”,
and it looks reasonable.
The device I have generates interrupt A on the PCI bus, and this is
mapped to 19. It has
a memory range, and I/O range, another memory range, and the I/O range
I’m using, and then
the 19 under resources.

The com ports show up in the device manager as not functioning. The
event log has the the cryptic message
“User Configuration for \Device\Serial2Interrupt must have.” A checked
version of the sample serial.sys
with all the debug prints on bails out with “Bogus Vector 0”, which
indicates that the multi-function stuff is
not setting up the interrupts properly, but I’m a bit lost as to how to
proceed. (I did try the random hypothesis
that “HKR,Child0003,ResourceMap,1,06” should be changed to
“HKR,Child0003,ResourceMap,1,04”
but that failed earlier with “Bogus Port Address”).

Any pointers?

Thanks,

-DH

[Version]
Signature=“$Windows NT$”
Class=MultiFunction
ClassGUID={4d36e971-e325-11ce-bfc1-08002be10318}
Provider=%MYCOMPANY%
LayoutFile=layout.inf
DriverVer=1/20/2000
[ControlFlags]
ExcludeFromSelect=*
[Manufacturer]
%MYCOMPANY%=MYCOMPANY

[MYCOMPANY]
%MYCOMPANY_4PORT%=MYCOMPANY4PORT_inst,
PCI\VEN_10B5&DEV_9050&SUBSYS_003112E0

[MYCOMPANY4PORT_inst]
Include = mf.inf
Needs = MFINSTALL.mf

[MYCOMPANY4PORT_inst.HW]
AddReg=MYCOMPANY4PORT_inst.RegHW

[MYCOMPANY4PORT_inst.Services]
Include = mf.inf
Needs = MFINSTALL.mf.Services

[MYCOMPANY4PORT_inst.RegHW]
HKR,Child0000,HardwareID,*PNP0501
HKR,Child0000,VaryingResourceMap,1,04, 00,00,00,00, 08,00,00,00
HKR,Child0000,ResourceMap,1,06
HKR,Child0001,HardwareID,*PNP0501
HKR,Child0001,VaryingResourceMap,1,04, 08,00,00,00, 08,00,00,00
HKR,Child0001,ResourceMap,1,06
HKR,Child0002,HardwareID,*PNP0501
HKR,Child0002,VaryingResourceMap,1,04, 10,00,00,00, 08,00,00,00
HKR,Child0002,ResourceMap,1,06
HKR,Child0003,HardwareID,*PNP0501
HKR,Child0003,VaryingResourceMap,1,04, 18,00,00,00, 08,00,00,00
HKR,Child0003,ResourceMap,1,06

[Strings]
MYCOMPANY= “MYCOMPANY Inc.”
MYCOMPANY_4PORT=“MYCOMPANY 4PORT”


Dave Harvey, System Software Solutions, Inc.
617-964-7039, FAX 208-361-9395, xxxxx@syssoftsol.com, http://www.syssoftsol.com
Creators of RedunDisks - Robust RAID 1 for embedded systems.