From 4d0b18480d7d0a85bef0d1adcf4837549118473e Mon Sep 17 00:00:00 2001 From: Naresh Solanki Date: Fri, 25 Aug 2023 12:58:11 +0200 Subject: [PATCH] acpi/acpi.c: Accomodate 64bit MMCONF base in MCFG table Allow the use of 64bit MMCONF base in MCFG table. Previously only 32 bits were utilized for MMCONF base, while the remaining 32bits were reserved & held value of zero as evident from MCFG table disassembly. This commit entails updating the 'base_address' field in the 'mmconfig' structure to 64 bits and removing the 'base_reserved' field. TEST=Confirmed the functionality of the 64bit MMCONF base in the MCFG table disassembly below Signature : "MCFG" Table Length : 0000003C Revision : 01 Checksum : BD Oem ID : "COREv4" Oem Table ID : "COREBOOT" Oem Revision : 00000000 Asl Compiler ID : "CORE" Asl Compiler Revision : 20230628 Reserved : 0000000000000000 Base Address : 0000001010000000 Segment Group Number : 0000 Start Bus Number : 00 End Bus Number : FF Reserved : 00000000 Signed-off-by: Naresh Solanki Change-Id: I2f4bc727c3239bf941e1a09bc277ed66ae6b0185 Reviewed-on: https://review.coreboot.org/c/coreboot/+/77539 Reviewed-by: Tim Wawrzynczak Tested-by: build bot (Jenkins) --- src/acpi/acpi.c | 3 +-- src/include/acpi/acpi.h | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/acpi/acpi.c b/src/acpi/acpi.c index e30b7d32cd..e357f6a87d 100644 --- a/src/acpi/acpi.c +++ b/src/acpi/acpi.c @@ -117,12 +117,11 @@ static enum cb_err acpi_fill_header(acpi_header_t *header, const char name[4], return CB_SUCCESS; } -static int acpi_create_mcfg_mmconfig(acpi_mcfg_mmconfig_t *mmconfig, u32 base, +static int acpi_create_mcfg_mmconfig(acpi_mcfg_mmconfig_t *mmconfig, u64 base, u16 seg_nr, u8 start, u8 end) { memset(mmconfig, 0, sizeof(*mmconfig)); mmconfig->base_address = base; - mmconfig->base_reserved = 0; mmconfig->pci_segment_group_number = seg_nr; mmconfig->start_bus_number = start; mmconfig->end_bus_number = end; diff --git a/src/include/acpi/acpi.h b/src/include/acpi/acpi.h index 33bd735c57..3a7c99c5a0 100644 --- a/src/include/acpi/acpi.h +++ b/src/include/acpi/acpi.h @@ -217,8 +217,7 @@ typedef struct acpi_tpm2 { } __packed acpi_tpm2_t; typedef struct acpi_mcfg_mmconfig { - u32 base_address; - u32 base_reserved; + u64 base_address; u16 pci_segment_group_number; u8 start_bus_number; u8 end_bus_number;