|
@@ -22,6 +22,14 @@
|
|
#define MPIC_GREG_FEATURE_1 0x00010
|
|
#define MPIC_GREG_FEATURE_1 0x00010
|
|
#define MPIC_GREG_GLOBAL_CONF_0 0x00020
|
|
#define MPIC_GREG_GLOBAL_CONF_0 0x00020
|
|
#define MPIC_GREG_GCONF_RESET 0x80000000
|
|
#define MPIC_GREG_GCONF_RESET 0x80000000
|
|
|
|
+/* On the FSL mpic implementations the Mode field is expand to be
|
|
|
|
+ * 2 bits wide:
|
|
|
|
+ * 0b00 = pass through (interrupts routed to IRQ0)
|
|
|
|
+ * 0b01 = Mixed mode
|
|
|
|
+ * 0b10 = reserved
|
|
|
|
+ * 0b11 = External proxy / coreint
|
|
|
|
+ */
|
|
|
|
+#define MPIC_GREG_GCONF_COREINT 0x60000000
|
|
#define MPIC_GREG_GCONF_8259_PTHROU_DIS 0x20000000
|
|
#define MPIC_GREG_GCONF_8259_PTHROU_DIS 0x20000000
|
|
#define MPIC_GREG_GCONF_NO_BIAS 0x10000000
|
|
#define MPIC_GREG_GCONF_NO_BIAS 0x10000000
|
|
#define MPIC_GREG_GCONF_BASE_MASK 0x000fffff
|
|
#define MPIC_GREG_GCONF_BASE_MASK 0x000fffff
|
|
@@ -357,6 +365,8 @@ struct mpic
|
|
#define MPIC_BROKEN_FRR_NIRQS 0x00000800
|
|
#define MPIC_BROKEN_FRR_NIRQS 0x00000800
|
|
/* Destination only supports a single CPU at a time */
|
|
/* Destination only supports a single CPU at a time */
|
|
#define MPIC_SINGLE_DEST_CPU 0x00001000
|
|
#define MPIC_SINGLE_DEST_CPU 0x00001000
|
|
|
|
+/* Enable CoreInt delivery of interrupts */
|
|
|
|
+#define MPIC_ENABLE_COREINT 0x00002000
|
|
|
|
|
|
/* MPIC HW modification ID */
|
|
/* MPIC HW modification ID */
|
|
#define MPIC_REGSET_MASK 0xf0000000
|
|
#define MPIC_REGSET_MASK 0xf0000000
|
|
@@ -470,6 +480,8 @@ extern void mpic_end_irq(unsigned int irq);
|
|
extern unsigned int mpic_get_one_irq(struct mpic *mpic);
|
|
extern unsigned int mpic_get_one_irq(struct mpic *mpic);
|
|
/* This one gets from the primary mpic */
|
|
/* This one gets from the primary mpic */
|
|
extern unsigned int mpic_get_irq(void);
|
|
extern unsigned int mpic_get_irq(void);
|
|
|
|
+/* This one gets from the primary mpic via CoreInt*/
|
|
|
|
+extern unsigned int mpic_get_coreint_irq(void);
|
|
/* Fetch Machine Check interrupt from primary mpic */
|
|
/* Fetch Machine Check interrupt from primary mpic */
|
|
extern unsigned int mpic_get_mcirq(void);
|
|
extern unsigned int mpic_get_mcirq(void);
|
|
|
|
|