[PATCH 1/4] acpi: acpidump: correctly dump out MCFG configuration
Colin King
colin.king at canonical.com
Sat Oct 20 19:53:58 UTC 2012
From: Colin Ian King <colin.king at canonical.com>
The acpidump MCFG configurarion was not being dumped correctly
and in fact dumping data offset from the wrong place. Fix this
up as well as use up to date MCFG table descriptions.
Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
src/acpi/acpidump/acpidump.c | 20 ++++++++++----------
src/lib/include/fwts_acpi.h | 6 ++----
2 files changed, 12 insertions(+), 14 deletions(-)
diff --git a/src/acpi/acpidump/acpidump.c b/src/acpi/acpidump/acpidump.c
index 5f91457..d6b4333 100644
--- a/src/acpi/acpidump/acpidump.c
+++ b/src/acpi/acpidump/acpidump.c
@@ -970,8 +970,7 @@ static void acpidump_mcfg(fwts_framework *fw, fwts_acpi_table_info *table)
size_t i;
static fwts_acpidump_field fields[] = {
- FIELD_UINT("Base Address", fwts_acpi_table_mcfg, base_address),
- FIELD_UINT("Base Reserved", fwts_acpi_table_mcfg, base_reserved),
+ FIELD_UINT("Reserved", fwts_acpi_table_mcfg, reserved),
FIELD_END
};
@@ -980,16 +979,17 @@ static void acpidump_mcfg(fwts_framework *fw, fwts_acpi_table_info *table)
n = length - sizeof(fwts_acpi_table_mcfg);
fwts_acpi_mcfg_configuration *config = mcfg->configuration;
- for (i=0; i<n/sizeof(fwts_acpi_mcfg_configuration); i++) {
- fwts_acpidump_field fields_config[] = {
- FIELD_UINT(" Base Address", fwts_acpi_table_mcfg, configuration[i].base_address),
- FIELD_UINT(" Base Address", fwts_acpi_table_mcfg, configuration[i].base_address),
- FIELD_UINT(" Base Reserved", fwts_acpi_table_mcfg, configuration[i].base_reserved),
- FIELD_UINT(" PCI Seg Grp Num", fwts_acpi_table_mcfg, configuration[i].pci_segment_group_number),
- FIELD_UINT(" Start Bus Num", fwts_acpi_table_mcfg, configuration[i].start_bus_number),
- FIELD_UINT(" End Bus Num", fwts_acpi_table_mcfg, configuration[i].end_bus_number),
+ for (i = 0; i < n / sizeof(fwts_acpi_mcfg_configuration); i++) {
+ static fwts_acpidump_field fields_config[] = {
+ FIELD_UINT(" Base Address", fwts_acpi_mcfg_configuration, base_address),
+ FIELD_UINT(" PCI Seg Grp Num", fwts_acpi_mcfg_configuration, pci_segment_group_number),
+ FIELD_UINT(" Start Bus Num", fwts_acpi_mcfg_configuration, start_bus_number),
+ FIELD_UINT(" End Bus Num", fwts_acpi_mcfg_configuration, end_bus_number),
+ FIELD_UINT(" Reserved", fwts_acpi_mcfg_configuration, reserved),
FIELD_END
};
+
+ fwts_log_nl(fw);
fwts_log_info_verbatum(fw, "Configuration #%zd:", i+1);
acpi_dump_table_fields(fw, (uint8_t*)config, fields_config, 0, length);
config++;
diff --git a/src/lib/include/fwts_acpi.h b/src/lib/include/fwts_acpi.h
index e99d0a7..25bb609 100644
--- a/src/lib/include/fwts_acpi.h
+++ b/src/lib/include/fwts_acpi.h
@@ -220,8 +220,7 @@ typedef struct {
} __attribute__ ((packed)) fwts_acpi_table_fadt;
typedef struct {
- uint32_t base_address;
- uint32_t base_reserved;
+ uint64_t base_address;
uint16_t pci_segment_group_number;
uint8_t start_bus_number;
uint8_t end_bus_number;
@@ -230,8 +229,7 @@ typedef struct {
typedef struct {
fwts_acpi_table_header header;
- uint32_t base_address;
- uint32_t base_reserved;
+ uint64_t reserved;
fwts_acpi_mcfg_configuration configuration[0];
} __attribute__ ((packed)) fwts_acpi_table_mcfg;
--
1.7.10.4
More information about the fwts-devel
mailing list