ACK: [PATCH 1/4] acpi: acpidump: correctly dump out MCFG configuration
Alex Hung
alex.hung at canonical.com
Thu Oct 25 02:43:10 UTC 2012
On 10/21/2012 03:53 AM, Colin King wrote:
> 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;
>
>
Acked-by: Alex Hung <alex.hung at canonical.com>
More information about the fwts-devel
mailing list