acrn-hypervisor/hypervisor/arch/x86
Sainath Grandhi f3cf93656a hv: Handle holes in GSI i.e. Global System Interrupt for multiple IO-APICs
MADT is used to specify the GSI base for each IO-APIC and the number of
interrupt pins per IO-APIC is programmed into Max. Redir. Entry register of
that IO-APIC.

On platforms with multiple IO-APICs, there can be holes in the GSI space.
For example, on a platform with 2 IO-APICs, the following configuration has
a hole (from 24 to 31) in the GSI space.

IO-APIC 1: GSI base - 0, number of pins - 24
IO-APIC 2: GSI base - 32, number of pins - 8

This patch also adjusts the size for variables used to represent the total
number of IO-APICs on the system from uint16_t to uint8_t as the ACPI MADT
uses only 8-bits to indicate the unique IO-APIC IDs.

Tracked-On: #4151
Signed-off-by: Sainath Grandhi <sainath.grandhi@intel.com>
Acked-by: Eddie Dong <eddie.dong@Intel.com>
2020-04-13 11:39:58 +08:00
..
boot hv: update the hypervisor 64-bit entry address for efi-stub 2020-03-06 08:27:46 +08:00
configs hv: config: enable RDT for apl-up2 by default 2020-04-10 16:11:42 +08:00
guest hv: Introduce Global System Interrupt (GSI) into INTx Remapping 2020-04-13 11:39:58 +08:00
lib hv: refine retpoline speculation barriers 2020-02-26 09:24:54 +08:00
seed HV: init and sanitize acrn multiboot info 2020-02-26 09:24:16 +08:00
cpu_caps.c hv:enable gpu iommu except APL platforms 2020-02-24 11:47:10 +08:00
cpu_state_tbl.c HV: add board specific cpu state table to support Px Cx 2019-07-29 20:25:16 +08:00
cpu.c hv: pci: add some pre-assumption and safety check for PCIe ECAM 2020-03-05 15:42:53 +08:00
e820.c hv: refine confusing e820 table logging layout 2020-02-28 09:34:17 +08:00
gdt.c hv:cleanup header files for arch folder 2019-02-22 13:14:36 +08:00
idt.S HV: Install a NMI handler in acrn IDT 2019-12-13 10:13:09 +08:00
init.c HV: init and sanitize acrn multiboot info 2020-02-26 09:24:16 +08:00
ioapic.c hv: Handle holes in GSI i.e. Global System Interrupt for multiple IO-APICs 2020-04-13 11:39:58 +08:00
irq.c hv: Handle holes in GSI i.e. Global System Interrupt for multiple IO-APICs 2020-04-13 11:39:58 +08:00
Kconfig hv: add multiboot2 tags to load relocatable raw binary 2020-03-06 08:27:46 +08:00
lapic.c HV: clean up redundant macro in lapic.h 2019-12-27 12:27:08 +08:00
mmu.c HV: correct ept page array usage 2020-03-12 14:56:34 +08:00
notify.c hv: fix pcpu_id mask issue in smp_call_function() 2020-01-17 09:20:53 +08:00
page.c HV: update ept address range for pre-launched VM 2020-03-12 14:56:34 +08:00
pagetable.c hv: mmu: minor fix about add_pte 2020-03-09 10:03:01 +08:00
pm.c pm: S5: update the system shutdown logical in ACRN 2019-12-23 15:15:09 +08:00
rdt.c HV: Add MBA support in ACRN 2020-03-04 17:33:50 +08:00
sched.S hv: sched: rename schedule related structs and vars 2019-10-16 10:25:53 +08:00
security.c hv: config: add an option to disable mce on psc workaround 2019-12-03 09:17:04 +08:00
sgx.c hv: sgx: add basic support to init sgx resource for vm 2019-05-29 11:24:13 +08:00
timer.c hv: rename BOOT_CPU_ID to BSP_CPU_ID 2020-02-25 09:08:14 +08:00
trampoline.c hv: refine 'uint64_t' string print format in x86 moudle 2019-11-09 11:42:38 +08:00
vmx.c hv:fix "no prototype for non-static function" 2019-07-09 10:36:03 +08:00
vtd.c hv: change GPU passthru translation mode to TT_PASSTHROUGH 2020-03-20 10:56:36 +08:00
wakeup.S hv: pm: correct the function name 2019-09-11 17:30:24 +08:00