ACK: [PATCH] acpi: update MADT GIC Distributor Structure and related tests

ivanhu ivan.hu at canonical.com
Thu Jul 23 02:50:24 UTC 2015



On 2015年07月21日 14:15, Alex Hung wrote:
> Signed-off-by: Alex Hung <alex.hung at canonical.com>
> ---
>   src/acpi/acpidump/acpidump.c | 3 ++-
>   src/acpi/madt/madt.c         | 5 +++--
>   src/lib/include/fwts_acpi.h  | 3 ++-
>   3 files changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/src/acpi/acpidump/acpidump.c b/src/acpi/acpidump/acpidump.c
> index 25c795b..9ff28cb 100644
> --- a/src/acpi/acpidump/acpidump.c
> +++ b/src/acpi/acpidump/acpidump.c
> @@ -978,7 +978,8 @@ static void acpidump_madt(fwts_framework *fw, const fwts_acpi_table_info *table)
>   					FIELD_UINT("  GIC ID", 		fwts_acpi_madt_gicd, gic_id),
>   					FIELD_UINT("  Phys. Base. Addr",fwts_acpi_madt_gicd, physical_base_address),
>   					FIELD_UINT("  Sys Vector Base",	fwts_acpi_madt_gicd, system_vector_base),
> -					FIELD_UINT("  Reserved", 	fwts_acpi_madt_gicd, reserved2),
> +					FIELD_UINT("  GIC Version",	fwts_acpi_madt_gicd, gic_version),
> +					FIELD_UINTS("  Reserved", 	fwts_acpi_madt_gicd, reserved2),
>   				};
>   				__acpi_dump_table_fields(fw, data, fields_madt_gicd, offset);
>   				skip = sizeof(fwts_acpi_madt_gicd);
> diff --git a/src/acpi/madt/madt.c b/src/acpi/madt/madt.c
> index d32581d..8afceb6 100644
> --- a/src/acpi/madt/madt.c
> +++ b/src/acpi/madt/madt.c
> @@ -239,6 +239,7 @@ static int madt_test1(fwts_framework *fw)
>   			break;
>   		case FWTS_ACPI_MADT_GIC_D_GOC_DISTRIBUTOR: {
>   				fwts_acpi_madt_gicd *gicd = (fwts_acpi_madt_gicd*)data;
> +				uint32_t gicd_reserve2 = gicd->reserved2[0] + (gicd->reserved2[1] << 4) + (gicd->reserved2[2] << 8);
>   
>   				if (gicd->reserved) {
>   					passed = false;
> @@ -247,12 +248,12 @@ static int madt_test1(fwts_framework *fw)
>   						"MADT GIC Distributor Structure reserved field should be zero, "
>   						"instead got 0x%" PRIx32 ".", gicd->reserved);
>   				}
> -				if (gicd->reserved2) {
> +				if (gicd_reserve2) {
>   					passed = false;
>   					fwts_failed(fw, LOG_LEVEL_LOW,
>   						"MADTGICDReserved2NonZero",
>   						"MADT GIC Distributor Structure second reserved field should be zero, "
> -						"instead got 0x%" PRIx32 ".", gicd->reserved2);
> +						"instead got 0x%" PRIx32 ".", gicd_reserve2);
>   				}
>   			}
>   			skip = sizeof(fwts_acpi_madt_gicd);
> diff --git a/src/lib/include/fwts_acpi.h b/src/lib/include/fwts_acpi.h
> index 61f7129..aa7c1a3 100644
> --- a/src/lib/include/fwts_acpi.h
> +++ b/src/lib/include/fwts_acpi.h
> @@ -481,7 +481,8 @@ typedef struct {
>   	uint32_t	gic_id;
>   	uint64_t	physical_base_address;
>   	uint32_t	system_vector_base;
> -	uint32_t	reserved2;
> +	uint8_t		gic_version;
> +	uint8_t		reserved2[3];
>   } __attribute__ ((packed)) fwts_acpi_madt_gicd;
>   
>   /* New in ACPI 5.1, GIC MSI Frame structure, 5.2.12.16 */
Acked-by: Ivan Hu<ivan.hu at canonical.com>



More information about the fwts-devel mailing list