I have a problem in my specialized serial device driver
that only manifests itself in multiprocessor machines.
-
The driver is a Windows NT4.0 driver.
-
The driver works fine on single processor machines
for both ISA and PCI serial cards.
-
On the multiprocessor machines running Window 2000
I do not get interrupts from ISA cards or PCI
cards.
-
On multiprocessor machines running Windows NT4.0
I get interrupts from the ISA cards but no
interrupts from the PCI card.
-
For the PCI card I use HalGetBusData() to get both
the I/O address of the card and the interrupt line.
I get the interrupt from
PCIInfo.u.type0.InterruptLine in the PCI config
space. I then call HalGetInterruptVector() using
the value PCIInfo.u.type0.InterruptLine for both
the BusInterruptLevel & BusInterruptVector
parameters. The system has one PCI bus which is
zero. I then call the IoConnectInterrupt().
-
For the ISA card I call HalGetInterruptVector()
using the known IRQ for the board for both
the BusInterruptLevel & BusInterruptVector
parameters. The system has one ISA bus which is
zero. I then call the IoConnectInterrupt().
What am I missing? The driver has been working fine on
single processor machines for some time now. What
do I need to do to get it to work on a
multiprocessor system? Please reply to the newsgroup
as well as to xxxxx@wcscnet.com.
Best Regards,
Egberto Willies
WCSC(Willies Computer Software Co)
http://www.wcscnet.com
Tel: (281)360-4232 Fax: (281)360-3231
You aren’t the first one to hit this, but I don’t remember the solution.
I believe the issue is related to how HALMPS uses the APIC.
I’d expect the same symptoms if you use HalMps with one CPU.
-DH
----- Original Message -----
From: “Berto”
To: “NT Developers Interest List”
Sent: Friday, December 08, 2000 12:07 AM
Subject: [ntdev] Device Will Not Generate Interrupts On Multiprocessor Computers
> I have a problem in my specialized serial device driver
> that only manifests itself in multiprocessor machines.
>
> 1. The driver is a Windows NT4.0 driver.
>
> 2. The driver works fine on single processor machines
> for both ISA and PCI serial cards.
>
> 3. On the multiprocessor machines running Window 2000
> I do not get interrupts from ISA cards or PCI
> cards.
>
> 4. On multiprocessor machines running Windows NT4.0
> I get interrupts from the ISA cards but no
> interrupts from the PCI card.
>
> 5. For the PCI card I use HalGetBusData() to get both
> the I/O address of the card and the interrupt line.
> I get the interrupt from
> PCIInfo.u.type0.InterruptLine in the PCI config
> space. I then call HalGetInterruptVector() using
> the value PCIInfo.u.type0.InterruptLine for both
> the BusInterruptLevel & BusInterruptVector
> parameters. The system has one PCI bus which is
> zero. I then call the IoConnectInterrupt().
>
> 6. For the ISA card I call HalGetInterruptVector()
> using the known IRQ for the board for both
> the BusInterruptLevel & BusInterruptVector
> parameters. The system has one ISA bus which is
> zero. I then call the IoConnectInterrupt().
>
>
> What am I missing? The driver has been working fine on
> single processor machines for some time now. What
> do I need to do to get it to work on a
> multiprocessor system? Please reply to the newsgroup
> as well as to xxxxx@wcscnet.com.
>
> Best Regards,
> Egberto Willies
>
>
>
> WCSC(Willies Computer Software Co)
> http://www.wcscnet.com
> Tel: (281)360-4232 Fax: (281)360-3231
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@syssoftsol.com
> To unsubscribe send a blank email to $subst(‘Email.Unsub’)