x86, nmi: Define a name for NMI control port
PATCH RESEND 1/2 x86, nmi: Define a name for NMI control port
Also add a comment anout why we need in-out operations.
---
Ingo I hope this time I've resolved MUA space injection.
arch/x86/include/asm/mach_traps.h | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-)
arch/x86/include/asm/mach_traps.h +13 -5
@@ -8,6 +8,7 @@#include <asm/mc146818rtc.h> #define NMI_REASON_PORT 0x61 +#define NMI_ENABLE_PORT 0x70/* Real-Time Clock Address Register as well */ #define NMI_REASON_SERR 0x80#define NMI_REASON_IOCHK 0x40
@@ -30,12 +31,19 @@ static inline void reassert_nmi(void) old_reg =current_lock_cmos_reg (); else lock_cmos(0); /* register doesn't matter here */ -outb (0x8f ,0x70 ); -inb (0x71 );/* dummy */ -outb (0x0f ,0x70 ); -inb (0x71 );/* dummy */ + +/* +* This will cause the NMI output to transition low +* then high if there are any pending NMI sources. The +* CPU's NMI input logic will then register a new NMI. +*/ +outb (0x8f ,NMI_ENABLE_PORT ); +inb (0x71 );/* dummy */ +outb (0x0f ,NMI_ENABLE_PORT ); +inb (0x71 );/* dummy */ +if (old_reg >=0 ) -outb (old_reg,0x70 ); +outb (old_reg,NMI_ENABLE_PORT );else unlock_cmos (); }
Signature · 1 line
Cyrill
Commit-ID: 0f5dbad5ecab0921911966e857eab408ef32163c Gitweb: http://git.kernel.org/tip/0f5dbad5ecab0921911966e857eab408ef32163c Author: Cyrill Gorcunov <[email protected]> AuthorDate: Wed, 2 Mar 2011 18:32:30 +0300 Committer: Ingo Molnar <[email protected]> CommitDate: Wed, 2 Mar 2011 16:44:44 +0100
x86, nmi: Define a name for NMI control port
Also add a comment about why we need in/out operations.
LKML-Reference: <[email protected]>
--- arch/x86/include/asm/mach_traps.h | 18 +++++++++++++----- 1 files changed, 13 insertions(+), 5 deletions(-)
arch/x86/include/asm/mach_traps.h +13 -5
@@ -8,6 +8,7 @@#include <asm/mc146818rtc.h> #define NMI_REASON_PORT 0x61 +#define NMI_ENABLE_PORT 0x70/* Real-Time Clock Address Register as well */ #define NMI_REASON_SERR 0x80#define NMI_REASON_IOCHK 0x40
@@ -30,12 +31,19 @@ static inline void reassert_nmi(void) old_reg =current_lock_cmos_reg (); else lock_cmos(0); /* register doesn't matter here */ -outb (0x8f ,0x70 ); -inb (0x71 );/* dummy */ -outb (0x0f ,0x70 ); -inb (0x71 );/* dummy */ + +/* +* This will cause the NMI output to transition low +* then high if there are any pending NMI sources. The +* CPU's NMI input logic will then register a new NMI. +*/ +outb (0x8f ,NMI_ENABLE_PORT ); +inb (0x71 );/* dummy */ +outb (0x0f ,NMI_ENABLE_PORT ); +inb (0x71 );/* dummy */ +if (old_reg >=0 ) -outb (old_reg,0x70 ); +outb (old_reg,NMI_ENABLE_PORT );else unlock_cmos (); }
Quoted 23 lines · Cyrill Gorcunov
Also add a comment anout why we need in-out operations.
Signed-off-by Cyrill Gorcunov <[email protected]>---
Ingo I hope this time I've resolved MUA space injection.
arch/x86/include/asm/mach_traps.h | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-)Index:
linux-2.6.git/arch/x86/include/asm/mach_traps.h
=====================================================================arch/x86/include/asm/mach_traps.h +1
-0@@ -8,6 +8,7 @@#include <asm/mc146818rtc.h> #define NMI_REASON_PORT 0x61 +#define NMI_ENABLE_PORT 0x70/* Real-Time Clock Address Register as well */ #define NMI_REASON_SERR 0x80#define NMI_REASON_IOCHK 0x40
arch/x86/include/asm/mach_traps.h static inline void reassert_nmi(void) · line 34
Quoted 5 lines
arch/x86/include/asm/mach_traps.h +0
-2@@ -30,12 +31,19 @@ static inline void reassert_nmi(void) old_reg =current_lock_cmos_reg (); else lock_cmos(0); /* register doesn't matter here */ -outb (0x8f ,0x70 ); -inb (0x71 );/* dummy */
I was wondering if 0x71 should get a name change too. Then again I can't find the Intel doc that tells me what 0x70 is either (I remember seeing it somewhere).
Cheers,
Don
Quoted 34 lines · Don Zickus
Quoted 23 lines · Cyrill Gorcunov
Also add a comment anout why we need in-out operations.
Signed-off-by Cyrill Gorcunov <[email protected]>---
Ingo I hope this time I've resolved MUA space injection.
arch/x86/include/asm/mach_traps.h | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-)Index:
linux-2.6.git/arch/x86/include/asm/mach_traps.h
=====================================================================arch/x86/include/asm/mach_traps.h +1
-0@@ -8,6 +8,7 @@#include <asm/mc146818rtc.h> #define NMI_REASON_PORT 0x61 +#define NMI_ENABLE_PORT 0x70/* Real-Time Clock Address Register as well */ #define NMI_REASON_SERR 0x80#define NMI_REASON_IOCHK 0x40arch/x86/include/asm/mach_traps.h static inline void reassert_nmi(void) · line 34
Quoted 5 lines
arch/x86/include/asm/mach_traps.h +0
-2@@ -30,12 +31,19 @@ static inline void reassert_nmi(void) old_reg =current_lock_cmos_reg (); else lock_cmos(0); /* register doesn't matter here */ -outb (0x8f ,0x70 ); -inb (0x71 );/* dummy */ I was wondering if
0x71should get a name change too. Then again I can't find the Intel doc that tells me what0x70is either (I remember seeing it somewhere).
Quoted 2 lines
Cheers,
Don
Well, me specs are on another machine (which I didn't copied back yet :) but
if my memory doesn't betray me it can be found in ICH specification. For 0x71 i simply don't remember how it's named in spec but it stands for RTC ram target register iirc.
Signature · 1 line
Cyrill