mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-09-23 09:47:44 +00:00
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>
This commit is contained in:
committed by
wenlingz
parent
85217e362f
commit
f67ac09141
@@ -203,7 +203,7 @@ void *get_acpi_tbl(const char *signature);
|
||||
|
||||
struct ioapic_info;
|
||||
uint16_t parse_madt(uint32_t lapic_id_array[MAX_PCPU_NUM]);
|
||||
uint16_t parse_madt_ioapic(struct ioapic_info *ioapic_id_array);
|
||||
uint8_t parse_madt_ioapic(struct ioapic_info *ioapic_id_array);
|
||||
|
||||
#ifdef CONFIG_ACPI_PARSE_ENABLED
|
||||
int32_t acpi_fixup(void);
|
||||
|
Reference in New Issue
Block a user