zephyr/drivers/interrupt_controller
Zide Chen 87b65c5ac2 interrupt_controller: program local APIC LDR register for xAPIC
If IO APIC is in logical destination mode, local APICs compare their
logical APIC ID defined in LDR (Logical Destination Register) with
the destination code sent with the interrupt to determine whether or not
to accept the incoming interrupt.

This patch programs LDR in xAPIC mode to support IO APIC logical mode.

The local APIC ID from local APIC ID register can't be used as the
'logical APIC ID' because LAPIC ID may not be consecutive numbers hence
it makes it impossible for LDR to encode 8 IDs within 8 bits.

This patch chooses 0 for BSP, and for APs, cpu_number which is the index
to x86_cpuboot[], which ultimately assigned in z_smp_init[].

Signed-off-by: Zide Chen <zide.chen@intel.com>
2020-02-19 10:25:10 -08:00
..
CMakeLists.txt interrupt_controller: gic: Support multiple GIC versions 2019-12-19 11:05:27 -05:00
intc_arcv2_irq_unit.c drivers/interrupt_controller: Adopt file naming as other drivers 2019-12-18 21:49:46 +01:00
intc_cavs.c drivers/interrupt_controller: Adopt file naming as other drivers 2019-12-18 21:49:46 +01:00
intc_cavs.h drivers/interrupt_controller: Adopt file naming as other drivers 2019-12-18 21:49:46 +01:00
intc_dw.c interrupt_controller: dw: fix base address not defined in config 2020-02-18 15:31:19 -06:00
intc_dw.h intel_s1000: various fixes for build errors 2020-01-31 14:51:37 -05:00
intc_exti_stm32.c drivers: interrupt_controller: stm32: Missing break statement 2020-02-12 10:01:11 -06:00
intc_gic.c interrupt_controller: gic: Support multiple GIC versions 2019-12-19 11:05:27 -05:00
intc_ioapic_priv.h drivers/interrupt_controller: Adopt file naming as other drivers 2019-12-18 21:49:46 +01:00
intc_ioapic.c interrupt_controller: change IO APIC to logical destination mode 2020-02-19 10:25:10 -08:00
intc_loapic_spurious.S drivers/interrupt_controller: Adopt file naming as other drivers 2019-12-18 21:49:46 +01:00
intc_loapic.c interrupt_controller: program local APIC LDR register for xAPIC 2020-02-19 10:25:10 -08:00
intc_plic.c interrupt_controller: plic: use shared symbol for DT_* 2020-01-06 13:28:21 -05:00
intc_rv32m1_intmux.c driver: interrupt_controller: Filter invalid channel for RV32M1 SOC 2020-01-16 07:10:23 -06:00
intc_sam0_eic_priv.h drivers/interrupt_controller: Adopt file naming as other drivers 2019-12-18 21:49:46 +01:00
intc_sam0_eic.c include/drivers: Move 2 specific intc headers into public location 2019-12-18 21:49:46 +01:00
intc_shared_irq.c drivers/interrupt_controller: Adopt file naming as other drivers 2019-12-18 21:49:46 +01:00
intc_swerv_pic.c drivers/interrupt_controller: Adopt file naming as other drivers 2019-12-18 21:49:46 +01:00
intc_system_apic.c drivers/interrupt_controller: Adopt file naming as other drivers 2019-12-18 21:49:46 +01:00
intc_vexriscv_litex.c riscv: use standard MSTATUS 2020-01-06 13:27:45 -05:00
Kconfig drivers: interrupt_controller: Refactor GIC configurations 2019-12-19 11:05:27 -05:00
Kconfig.cavs drivers/interrupt_controller: Renaming s1000 to cavs 2019-12-18 21:49:46 +01:00
Kconfig.dw drivers/interrupt_controller: Split Kconfig for clarity 2019-12-18 21:49:46 +01:00
Kconfig.gic drivers: interrupt_controller: Refactor GIC configurations 2019-12-19 11:05:27 -05:00
Kconfig.loapic drivers/interrupt_controller: Split Kconfig for clarity 2019-12-18 21:49:46 +01:00
Kconfig.multilevel kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.multilevel.aggregator_template license: cleanup: add SPDX Apache-2.0 license identifier 2019-04-07 08:45:22 -04:00
Kconfig.rv32m1 boards: riscv: rv32m1: enable BT related configuration 2019-11-08 15:38:57 +01:00
Kconfig.sam0 kconfig: Replace non-defconfig single-symbol 'if's with 'depends on' 2020-02-12 10:32:34 -06:00
Kconfig.shared_irq kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
Kconfig.stm32 kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00