Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/arch/x86/include add interrupt EAPIC register definitions



details:   https://anonhg.NetBSD.org/src/rev/958bbd93a28e
branches:  trunk
changeset: 758778:958bbd93a28e
user:      cegger <cegger%NetBSD.org@localhost>
date:      Mon Nov 15 11:58:09 2010 +0000

description:
add interrupt EAPIC register definitions

diffstat:

 sys/arch/x86/include/i82489reg.h |  44 +++++++++++++++++++++++++++++++++++++++-
 1 files changed, 43 insertions(+), 1 deletions(-)

diffs (58 lines):

diff -r 370eb3cce0da -r 958bbd93a28e sys/arch/x86/include/i82489reg.h
--- a/sys/arch/x86/include/i82489reg.h  Mon Nov 15 09:34:28 2010 +0000
+++ b/sys/arch/x86/include/i82489reg.h  Mon Nov 15 11:58:09 2010 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: i82489reg.h,v 1.9 2010/01/09 20:50:11 cegger Exp $     */
+/*     $NetBSD: i82489reg.h,v 1.10 2010/11/15 11:58:09 cegger Exp $    */
 
 /*-
  * Copyright (c) 1998, 2008 The NetBSD Foundation, Inc.
@@ -143,6 +143,48 @@
 
 #define LAPIC_IRQ_MASK(i)      (1 << ((i) + 1))
 
+/* Extended APIC registers, valid when CPUID features4 EAPIC is present */
+#define LEAPIC_FR      0x400                           /* Feature register */
+#      define LEAPIC_FR_ELC            __BITS(23,16)   /* Ext. Lvt Count RO */
+#      define LEAPIC_FR_EIDCAP         __BIT(2)        /* Ext. Apic ID Cap. RO */
+#      define LEAPIC_FR_SEIOCAP        __BIT(1)        /* Specific EOI Cap. RO */
+#      define LEAPIC_FR_IERCAP         __BIT(0)        /* Intr. Enable Reg. RO */
+
+#define LEAPIC_CR      0x410   /* Control Register */
+#      define LEAPIC_CR_EID_ENABLE     __BIT(2)        /* Ext. Apic ID enable */
+#      define LEAPIC_CR_SEOI_ENABLE    __BIT(1)        /* Specific EOI enable */
+#      define LEAPIC_CR_IER_ENABLE     __BIT(0)        /* Enable writes to IER */
+
+#define LEAPIC_SEOIR   0x420   /* Specific EOI Register */
+#      define LEAPIC_SEOI_VEC  __BITS(7,0)
+
+#define LEAPIC_IER_480 0x480   /* Interrupts 0-31 */
+#define LEAPIC_IER_490 0x490   /* Interrupts 32-63 */
+#define LEAPIC_IER_4B0 0x4B0   /* Interrupts 64-95 */
+#define LEAPIC_IER_4C0 0x4C0   /* Interrupts 96-127 */
+#define LEAPIC_IER_4D0 0x4D0   /* Interrupts 128-159 */
+#define LEAPIC_IER_4E0 0x4E0   /* Interrupts 160-191 */
+#define LEAPIC_IER_4F0 0x4F0   /* Interrupts 192-255 */
+
+/* Extended Local Vector Table Entries */
+#define LEAPIC_LVTR_500        0x500
+#define LEAPIC_LVTR_504        0x504
+#define LEAPIC_LVTR_508        0x508
+#define LEAPIC_LVTR_50C        0x50C
+#define LEAPIC_LVTR_510        0x510
+#define LEAPIC_LVTR_514        0x514
+#define LEAPIC_LVTR_518        0x518
+#define LEAPIC_LVTR_51C        0x51C
+#define LEAPIC_LVTR_520        0x520
+#define LEAPIC_LVTR_524        0x524
+#define LEAPIC_LVTR_528        0x528
+#define LEAPIC_LVTR_52C        0x52C
+#define LEAPIC_LVTR_530        0x530
+#      define LEAPIC_LVTR_MASK         __BIT(16)       /* interrupt masked RW */
+#      define LEAPIC_LVTR_DSTAT        __BIT(12)       /* delivery state RO */
+#      define LEAPIC_LVTR_MSGTYPE      __BITS(10,8)    /* Message type */
+#      define LEAPIC_LVTR_VEC          __BITS(7,0)     /* the intr. vector */
+
 /*
  * Model specific registers
  */



Home | Main Index | Thread Index | Old Index