[wdmaudiodev] Re: Atomic IO Operations.

  • From: John Smith <wadacct@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Tue, 28 Jan 2003 06:40:47 -0800 (PST)

The current PC architecture doesn't appear to be friendly enough. Even if you 
raise IRQL
to HIGH_LEVEL, some HALs might not actually disable interrupts on this CPU, 
they'll just
guarantee that it will not service driver ISRs until you lower it. Thus, you 
will have to
resort to CLI. Plus, there is the System Management Interrupt which you can't 
block even
with CLI, and it can take really huge times to complete. I don't know how to 
disable it,
it is governed by the BIOS. So, these days the best way to solve your problem 
seems to be
to re-architect your hardware to not impose such requirements on software. 
Another, less
reliable, way is to get control of the SMI, which requires close cooperation 
with the
BIOS vendor.

--- Jay Schwichtenberg <jays@xxxxxxxxxxx> wrote:
> 
> Hello,
> 
> I have hardware that in certain cases needs to have IO operations done
> atomicly. Mainly in a DPC and in once case at startup. I'm talking at the HW
> level and not the system level. Basicly these operations can not be
> interrupted by anyone not OS, not timer, not keyboard..... A couple examples
> are: programming FPGAs, in a multiple card system being able to write to
> every cards start register without being interrupted to keep them
> synchronized. Now days you can't just do the old pushfd, cli, .... popfd
> which sucks. (There are some of us out here that can write real drivers and
> not abuse the system.) From what I can tell all the spin lock stuff and
> KeSynchronizeExecution just boost the IRQL to beyond the current cards
> level. Maybe I might be wrong.
> 
> So I'm wondering if someone can enlighten me or explain how they are working
> around this issue.
> 
> Much thanks in advance.
> Jay S.
> 
> 
> ******************
> 
> WDMAUDIODEV addresses:
> Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
> Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
> Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
> Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx
> 
> URL to WDMAUDIODEV page:
> http://www.wdmaudiodev.de/
> 


__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com
******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.de/

Other related posts: