diff options
Diffstat (limited to 'include/asm-x86/io_apic.h')
| -rw-r--r-- | include/asm-x86/io_apic.h | 49 |
1 files changed, 42 insertions, 7 deletions
diff --git a/include/asm-x86/io_apic.h b/include/asm-x86/io_apic.h index d593e14f034..721605d8f11 100644 --- a/include/asm-x86/io_apic.h +++ b/include/asm-x86/io_apic.h | |||
| @@ -11,6 +11,15 @@ | |||
| 11 | * Copyright (C) 1997, 1998, 1999, 2000 Ingo Molnar | 11 | * Copyright (C) 1997, 1998, 1999, 2000 Ingo Molnar |
| 12 | */ | 12 | */ |
| 13 | 13 | ||
| 14 | /* I/O Unit Redirection Table */ | ||
| 15 | #define IO_APIC_REDIR_VECTOR_MASK 0x000FF | ||
| 16 | #define IO_APIC_REDIR_DEST_LOGICAL 0x00800 | ||
| 17 | #define IO_APIC_REDIR_DEST_PHYSICAL 0x00000 | ||
| 18 | #define IO_APIC_REDIR_SEND_PENDING (1 << 12) | ||
| 19 | #define IO_APIC_REDIR_REMOTE_IRR (1 << 14) | ||
| 20 | #define IO_APIC_REDIR_LEVEL_TRIGGER (1 << 15) | ||
| 21 | #define IO_APIC_REDIR_MASKED (1 << 16) | ||
| 22 | |||
| 14 | /* | 23 | /* |
| 15 | * The structure of the IO-APIC: | 24 | * The structure of the IO-APIC: |
| 16 | */ | 25 | */ |
| @@ -112,21 +121,32 @@ extern int nr_ioapic_registers[MAX_IO_APICS]; | |||
| 112 | 121 | ||
| 113 | #define MP_MAX_IOAPIC_PIN 127 | 122 | #define MP_MAX_IOAPIC_PIN 127 |
| 114 | 123 | ||
| 115 | struct mp_ioapic_routing { | 124 | struct mp_config_ioapic { |
| 116 | int apic_id; | 125 | unsigned long mp_apicaddr; |
| 117 | int gsi_base; | 126 | unsigned int mp_apicid; |
| 118 | int gsi_end; | 127 | unsigned char mp_type; |
| 119 | DECLARE_BITMAP(pin_programmed, MP_MAX_IOAPIC_PIN + 1); | 128 | unsigned char mp_apicver; |
| 129 | unsigned char mp_flags; | ||
| 130 | }; | ||
| 131 | |||
| 132 | struct mp_config_intsrc { | ||
| 133 | unsigned int mp_dstapic; | ||
| 134 | unsigned char mp_type; | ||
| 135 | unsigned char mp_irqtype; | ||
| 136 | unsigned short mp_irqflag; | ||
| 137 | unsigned char mp_srcbus; | ||
| 138 | unsigned char mp_srcbusirq; | ||
| 139 | unsigned char mp_dstirq; | ||
| 120 | }; | 140 | }; |
| 121 | 141 | ||
| 122 | /* I/O APIC entries */ | 142 | /* I/O APIC entries */ |
| 123 | extern struct mpc_config_ioapic mp_ioapics[MAX_IO_APICS]; | 143 | extern struct mp_config_ioapic mp_ioapics[MAX_IO_APICS]; |
| 124 | 144 | ||
| 125 | /* # of MP IRQ source entries */ | 145 | /* # of MP IRQ source entries */ |
| 126 | extern int mp_irq_entries; | 146 | extern int mp_irq_entries; |
| 127 | 147 | ||
| 128 | /* MP IRQ source entries */ | 148 | /* MP IRQ source entries */ |
| 129 | extern struct mpc_config_intsrc mp_irqs[MAX_IRQ_SOURCES]; | 149 | extern struct mp_config_intsrc mp_irqs[MAX_IRQ_SOURCES]; |
| 130 | 150 | ||
| 131 | /* non-0 if default (table-less) MP configuration */ | 151 | /* non-0 if default (table-less) MP configuration */ |
| 132 | extern int mpc_default_type; | 152 | extern int mpc_default_type; |
| @@ -137,8 +157,21 @@ extern int sis_apic_bug; | |||
| 137 | /* 1 if "noapic" boot option passed */ | 157 | /* 1 if "noapic" boot option passed */ |
| 138 | extern int skip_ioapic_setup; | 158 | extern int skip_ioapic_setup; |
| 139 | 159 | ||
| 160 | /* 1 if "noapic" boot option passed */ | ||
| 161 | extern int noioapicquirk; | ||
| 162 | |||
| 163 | /* -1 if "noapic" boot option passed */ | ||
| 164 | extern int noioapicreroute; | ||
| 165 | |||
| 166 | /* 1 if the timer IRQ uses the '8259A Virtual Wire' mode */ | ||
| 167 | extern int timer_through_8259; | ||
| 168 | |||
| 140 | static inline void disable_ioapic_setup(void) | 169 | static inline void disable_ioapic_setup(void) |
| 141 | { | 170 | { |
| 171 | #ifdef CONFIG_PCI | ||
| 172 | noioapicquirk = 1; | ||
| 173 | noioapicreroute = -1; | ||
| 174 | #endif | ||
| 142 | skip_ioapic_setup = 1; | 175 | skip_ioapic_setup = 1; |
| 143 | } | 176 | } |
| 144 | 177 | ||
| @@ -162,6 +195,8 @@ extern void ioapic_init_mappings(void); | |||
| 162 | 195 | ||
| 163 | #else /* !CONFIG_X86_IO_APIC */ | 196 | #else /* !CONFIG_X86_IO_APIC */ |
| 164 | #define io_apic_assign_pci_irqs 0 | 197 | #define io_apic_assign_pci_irqs 0 |
| 198 | static const int timer_through_8259 = 0; | ||
| 199 | static inline void ioapic_init_mappings(void) { } | ||
| 165 | #endif | 200 | #endif |
| 166 | 201 | ||
| 167 | #endif | 202 | #endif |
