Message ID | 1437459353-25333-1-git-send-email-alex.hung@canonical.com |
---|---|
State | Accepted |
Headers | show |
On 21/07/15 07:15, Alex Hung wrote: > Signed-off-by: Alex Hung <alex.hung@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: Colin Ian King <colin.king@canonical.com>
On 2015年07月21日 14:15, Alex Hung wrote: > Signed-off-by: Alex Hung <alex.hung@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@canonical.com>
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 */
Signed-off-by: Alex Hung <alex.hung@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(-)