RE: ISR gets called although device does not interrup- t

Yes, you can install the non-acpi hal on your system and ‘voila’ it is a
non-acpi machine.

You want to do this EXPERIMENTALLY using the /HAL= boot.ini switch so that
in case I am a fool who doesn’t know what he is talking about, you can still
boot the system using the original boot configuration. In case this isn’t
clear: you need to get the non-acpi hal from the distribution CD and copy it
to your test system system32 directory, naming it something like halx86.dll
or whatever. You need to copy your current boot.ini line for debugging and
add the /HAL=halx86.dll. Be very careful to use the same hal build type as
your kernel (checked or free) or the system will have a hideous bugcheck.

However this is all a waste of time. Your hardware is broken, very, very
broken, and it has to be fixed.

-----Original Message-----
From: M V [mailto:xxxxx@yahoo.com]
Sent: Wednesday, June 13, 2001 10:24 AM
To: NT Developers Interest List
Subject: [ntdev] RE: ISR gets called although device does not interrup t

Hi Mark,

Yes. I understand that the device must be able to
support shared interrupts. But the person who had
designed this card has not taken care of shared
interrupts and there is no way we can fix the card
now. If I try to read from the status register of the
card while it is in the processing of asserting an
interrupt, the card is left in an invalid state and a
call to READ_REGISTER_ULONG to read the status
register results in the machine freezing. Hence I am
looking for a way to have an exclusive interrupt for
my device. Is there any way to disable ACPI ?

Thanks a lot
Madhu

— “Roddy, Mark” wrote:
> You don’t. The ACPI hal will ignore whatever you try
> to do in the bios. But
> that suggestion was all wrong anyhow. Your PCI
> device absolutely MUST be
> able to share interrupts. You need to figure out
> what you are doing wrong,
> either in your driver or perhaps on your hardware,
> rather than looking for
> hack work arounds.
>
> -----Original Message-----
> From: M V [mailto:xxxxx@yahoo.com]
> Sent: Wednesday, June 13, 2001 8:25 AM
> To: NT Developers Interest List
> Subject: [ntdev] RE: ISR gets called although device
> does not interrupt
>
>
> My machine has ACPI installed on it, which I think
> is responsible for
> interrupt sharing by PCI devices. When I call IoCOnnectInterrupt(),
> for the ShareVector parameter, I just use the parameter
> pPartialDescriptor->ShareDisposition, which is given
> by the
> PnPManager. How do I reserve an interrupt for myself
> in the BIOS setting ?
>
> Thanks
> Madhu
>
> — xxxxx@att.net wrote:
> > If you suspect that it’s PCI interrupt sharing,
> you
> > can
> > make your driver to use one interrupt that it’s
> not
> > used
> > by other PCI devices in your system and reserve
> that
> >
> > Interrupt in BIOS settings and then when ur driver
> > comes
> > up it would be having exclusive access to that
> > Interrupt.
> > Otherway of achieveing this, not to share the
>
> > interrupt at all. Just check out the API that u
> use
> > to
> > register your ISR and rest with OS. But in
> principle
> > PCI
> > should be able to share interrupts with other PCI
> > peripherals.
> > Please let us know about these.
> > 1. What type of device is this?
> > 2. R u checking status register directly in your
> ISR
> > or
> > in a DPC?
> >
> > thanks
> >
> > –
> > Girish H.
> > > Madhu,
> > >
> > > If this hang is narrowed down such that it only
> > appears exactly on the read
> > > of the status port, I’d recommend going to the
> > hardware folks or looking at
> > > what’s on the PCI bus with a logic analyzer.
> > Sounds like hardware/firmware
> > > to me given that information.
> > >
> > > -Tim
> > >
> > >
> > > Timothy A. Johns — xxxxx@driverdev.com
> > > Driver Development Corporation — 800.841.0092
> > > Bring Up Your Hardware — Fast.
> www.driverdev.com
> > >
> > >
> > > > -----Original Message-----
> > > > From: xxxxx@lists.osr.com
> > > > [mailto:xxxxx@lists.osr.com]On
> > Behalf Of M V
> > > > Sent: Tuesday, June 12, 2001 10:01 AM
> > > > To: NT Developers Interest List
> > > > Subject: [ntdev] RE: ISR gets called although
> > device does not interrupt
> > > >
> > > >
> > > > Hi Tim.
> > > >
> > > > My device is accessing an interrupt that seems
> > to be
> > > > shared by all PCI devices including a network
> > adapter.
> > > >
> > > > 1. When I boot the system, my ISR gets a lot
> of interrupts from
> > > > other devices as well, probably because it may
> be among the the
> > > > first ISRs
> > available
> > > > in that interrupt vector chain. When my device
> (
> > a
> > > > FIFO card which sends an interrupt every time
> it
> > is
> > > > half full) starts sending interrupts, in
> between
> > these
> > > > interrupts I get interrupts from other devices
> > as
> > > > well. After some time, the machine just
> freezes
> > > > although the device still is interrupting. It
> > freezes
> > > > at the point where I am trying to read a
> status
> > > > register of the device to determine whether it
> > is my
> > > > interrupt or not.
> > > >
> > > > 2. When I install the driver and then send
> > interrupts
> > > > from the device( without rebooting), my ISR
> gets
> > only
> > > > the interrupts that are meant for my device
> and
> > > > nothing else. Probably this is because my ISR
> is
> > the
> > > > last in the interrupt vector chain for that
> > particular
> > > > interrupt. In this case everything works fine.
> > > >
> > > > Is there any way to make sure that my ISR is
> the
> > last
> > > > ISR available in that interrupt vector chain ?
> > Or is
> > > > there any way to make sure that I use an
> > interrupt
> > > > which is not shared by other devices ?
> > > >
> > > > Thanks for all help
> > > >
> > > > Madhu
> > > > — “Timothy A. Johns”
> > wrote:
> > > > > Madhu,
> > > > >
> > > > > That ‘hang’ sounds like an unhandled PCI
> > interrupt.
> > > > > Is your ISR being
> > > > > called repeatedly while this hang is
> occuring,
> > and
> > > > > if so, can you verify
> > > > > 100% (using a logic analyzer or
> oscilliscope,
> > if
> > > > > you’re going to have to
> > > > > take your evidence to the proverbial
> hardware
> > > > > person) that your device is
> > > > > not asserting the interrupt?
> > > > >
> > > > > Also, it could be a PCI bus access problem,
> or
> > > > > either a master or target
> > > > > abort. It’s also possible that it may be
> that
> > your
> > > > > driver is getting an
> > > > > interrupt that a different device is already
> > using,
> > > > > and the ‘other’ device
> > > > > is not sharing it properly, but I’d view
> that
> > as a
> > > > > last resort, since the
> > > > > driver you added is new and changing the
> > behavior.
> > > > > You can move it to a
> > > > > different slot and if the problem goes away
> or
> > > > > changes, the problem is very
> > > > > likely in either your driver’s ISR or some
> > other
> > > > > device’s ISR.
> > > > >
> > > > > In any case, the registry entries for Start
> > and
>
=== message truncated ===

__________________________________________________
Do You Yahoo!?
Get personalized email addresses from Yahoo! Mail - only $35
a year! http://personal.mail.yahoo.com/


You are currently subscribed to ntdev as: xxxxx@stratus.com To
unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Hi,

clear: you need to get the non-acpi hal from the distribution CD and copy it
to your test system system32 directory, naming it something like halx86.dll
or whatever.

  1. What is the name of the file I have to look for in the distribution CD?
  2. When the PnP Manager sends IRP_MN_FILTER_RESOURCE_REQUIREMENTS, is it
    possible to set CmResourceShareDeviceExclusive somewhere so that we can get
    exclusive interrupt ?

Thanks for your help
Madhu

On 06/13/01, ““Roddy, Mark” ” wrote:
> Yes, you can install the non-acpi hal on your system and ‘voila’ it is a
> non-acpi machine.
>
> You want to do this EXPERIMENTALLY using the /HAL= boot.ini switch so that
> in case I am a fool who doesn’t know what he is talking about, you can still
> boot the system using the original boot configuration. In case this isn’t
> clear: you need to get the non-acpi hal from the distribution CD and copy it
> to your test system system32 directory, naming it something like halx86.dll
> or whatever. You need to copy your current boot.ini line for debugging and
> add the /HAL=halx86.dll. Be very careful to use the same hal build type as
> your kernel (checked or free) or the system will have a hideous bugcheck.
>
> However this is all a waste of time. Your hardware is broken, very, very
> broken, and it has to be fixed.
>
> -----Original Message-----
> From: M V [mailto:xxxxx@yahoo.com]
> Sent: Wednesday, June 13, 2001 10:24 AM
> To: NT Developers Interest List
> Subject: [ntdev] RE: ISR gets called although device does not interrup t
>
>
> Hi Mark,
>
> Yes. I understand that the device must be able to
> support shared interrupts. But the person who had
> designed this card has not taken care of shared
> interrupts and there is no way we can fix the card
> now. If I try to read from the status register of the
> card while it is in the processing of asserting an
> interrupt, the card is left in an invalid state and a
> call to READ_REGISTER_ULONG to read the status
> register results in the machine freezing. Hence I am
> looking for a way to have an exclusive interrupt for
> my device. Is there any way to disable ACPI ?
>
> Thanks a lot
> Madhu
>
> — “Roddy, Mark” wrote:
> > You don’t. The ACPI hal will ignore whatever you try
> > to do in the bios. But
> > that suggestion was all wrong anyhow. Your PCI
> > device absolutely MUST be
> > able to share interrupts. You need to figure out
> > what you are doing wrong,
> > either in your driver or perhaps on your hardware,
> > rather than looking for
> > hack work arounds.
> >
> > -----Original Message-----
> > From: M V [mailto:xxxxx@yahoo.com]
> > Sent: Wednesday, June 13, 2001 8:25 AM
> > To: NT Developers Interest List
> > Subject: [ntdev] RE: ISR gets called although device
> > does not interrupt
> >
> >
> > My machine has ACPI installed on it, which I think
> > is responsible for
> > interrupt sharing by PCI devices. When I call IoCOnnectInterrupt(),
> > for the ShareVector parameter, I just use the parameter
> > pPartialDescriptor->ShareDisposition, which is given
> > by the
> > PnPManager. How do I reserve an interrupt for myself
> > in the BIOS setting ?
> >
> > Thanks
> > Madhu
> >
> > — xxxxx@att.net wrote:
> > > If you suspect that it’s PCI interrupt sharing,
> > you
> > > can
> > > make your driver to use one interrupt that it’s
> > not
> > > used
> > > by other PCI devices in your system and reserve
> > that
> > >
> > > Interrupt in BIOS settings and then when ur driver
> > > comes
> > > up it would be having exclusive access to that
> > > Interrupt.
> > > Otherway of achieveing this, not to share the
> >
> > > interrupt at all. Just check out the API that u
> > use
> > > to
> > > register your ISR and rest with OS. But in
> > principle
> > > PCI
> > > should be able to share interrupts with other PCI
> > > peripherals.
> > > Please let us know about these.
> > > 1. What type of device is this?
> > > 2. R u checking status register directly in your
> > ISR
> > > or
> > > in a DPC?
> > >
> > > thanks
> > >
> > > –
> > > Girish H.
> > > > Madhu,
> > > >
> > > > If this hang is narrowed down such that it only
> > > appears exactly on the read
> > > > of the status port, I’d recommend going to the
> > > hardware folks or looking at
> > > > what’s on the PCI bus with a logic analyzer.
> > > Sounds like hardware/firmware
> > > > to me given that information.
> > > >
> > > > -Tim
> > > >
> > > >
> > > > Timothy A. Johns — xxxxx@driverdev.com
> > > > Driver Development Corporation — 800.841.0092
> > > > Bring Up Your Hardware — Fast.
> > www.driverdev.com
> > > >
> > > >
> > > > > -----Original Message-----
> > > > > From: xxxxx@lists.osr.com
> > > > > [mailto:xxxxx@lists.osr.com]On
> > > Behalf Of M V
> > > > > Sent: Tuesday, June 12, 2001 10:01 AM
> > > > > To: NT Developers Interest List
> > > > > Subject: [ntdev] RE: ISR gets called although
> > > device does not interrupt
> > > > >
> > > > >
> > > > > Hi Tim.
> > > > >
> > > > > My device is accessing an interrupt that seems
> > > to be
> > > > > shared by all PCI devices including a network
> > > adapter.
> > > > >
> > > > > 1. When I boot the system, my ISR gets a lot
> > of interrupts from
> > > > > other devices as well, probably because it may
> > be among the the
> > > > > first ISRs
> > > available
> > > > > in that interrupt vector chain. When my device
> > (
> > > a
> > > > > FIFO card which sends an interrupt every time
> > it
> > > is
> > > > > half full) starts sending interrupts, in
> > between
> > > these
> > > > > interrupts I get interrupts from other devices
> > > as
> > > > > well. After some time, the machine just
> > freezes
> > > > > although the device still is interrupting. It
> > > freezes
> > > > > at the point where I am trying to read a
> > status
> > > > > register of the device to determine whether it
> > > is my
> > > > > interrupt or not.
> > > > >
> > > > > 2. When I install the driver and then send
> > > interrupts
> > > > > from the device( without rebooting), my ISR
> > gets
> > > only
> > > > > the interrupts that are meant for my device
> > and
> > > > > nothing else. Probably this is because my ISR
> > is
> > > the
> > > > > last in the interrupt vector chain for that
> > > particular
> > > > > interrupt. In this case everything works fine.
> > > > >
> > > > > Is there any way to make sure that my ISR is
> > the
> > > last
> > > > > ISR available in that interrupt vector chain ?
> > > Or is
> > > > > there any way to make sure that I use an
> > > interrupt
> > > > > which is not shared by other devices ?
> > > > >
> > > > > Thanks for all help
> > > > >
> > > > > Madhu
> > > > > — “Timothy A. Johns”
> > > wrote:
> > > > > > Madhu,
> > > > > >
> > > > > > That ‘hang’ sounds like an unhandled PCI
> > > interrupt.
> > > > > > Is your ISR being
> > > > > > called repeatedly while this hang is
> > occuring,
> > > and
> > > > > > if so, can you verify
> > > > > > 100% (using a logic analyzer or
> > oscilliscope,
> > > if
> > > > > > you’re going to have to
> > > > > > take your evidence to the proverbial
> > hardware
> > > > > > person) that your device is
> > > > > > not asserting the interrupt?
> > > > > >
> > > > > > Also, it could be a PCI bus access problem,
> > or
> > > > > > either a master or target
> > > > > > abort. It’s also possible that it may be
> > that
> > > your
> > > > > > driver is getting an
> > > > > > interrupt that a different device is already
> > > using,
> > > > > > and the ‘other’ device
> > > > > > is not sharing it properly, but I’d view
> > that
> > > as a
> > > > > > last resort, since the
> > > > > > driver you added is new and changing the
> > > behavior.
> > > > > > You can move it to a
> > > > > > different slot and if the problem goes away
> > or
> > > > > > changes, the problem is very
> > > > > > likely in either your driver’s ISR or some
> > > other
> > > > > > device’s ISR.
> > > > > >
> > > > > > In any case, the registry entries for Start
> > > and
> >
> === message truncated ===
>
>
> __________________________________________________
> Do You Yahoo!?
> Get personalized email addresses from Yahoo! Mail - only $35
> a year! http://personal.mail.yahoo.com/
>
> —
> You are currently subscribed to ntdev as: xxxxx@stratus.com To
> unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
>
> —
> You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
> To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com