ACK: [PATCH 2/2] acpi: iort: Add PMCG support
Alex Hung
alex.hung at canonical.com
Mon Jun 19 18:28:34 UTC 2017
On 2017-06-19 09:50 AM, Jeffrey Hugo wrote:
> The IORT spec rev C defines type 5 nodes for Performance Monitoring
> Counter Group (PMCG). Add support for these nodes.
>
> Signed-off-by: Jeffrey Hugo <jhugo at codeaurora.org>
> ---
> src/acpi/iort/iort.c | 28 ++++++++++++++++++++++++++++
> src/lib/include/fwts_acpi.h | 11 +++++++++++
> 2 files changed, 39 insertions(+)
>
> diff --git a/src/acpi/iort/iort.c b/src/acpi/iort/iort.c
> index 930eb5f..1cab6cb 100644
> --- a/src/acpi/iort/iort.c
> +++ b/src/acpi/iort/iort.c
> @@ -653,6 +653,31 @@ static void iort_check_smmuv3(
> }
>
> /*
> + * Check IORT Performance Monitoring Counter Group (PMCG)
> + */
> +static void iort_check_pmcg(
> + fwts_framework *fw,
> + uint8_t *data,
> + uint8_t *node_end,
> + bool *passed)
> +{
> + fwts_acpi_table_iort_pmcg_node *node =
> + (fwts_acpi_table_iort_pmcg_node *)data;
> +
> + iort_node_dump(fw, "IORT PMCG node", (fwts_acpi_table_iort_node *)data);
> + fwts_log_info_verbatim(fw, " Base Address: 0x%16.16" PRIx64, node->base_address);
> + fwts_log_info_verbatim(fw, " Overflow interrupt GSIV: 0x%8.8" PRIx32, node->gsiv);
> + fwts_log_info_verbatim(fw, " Node reference: 0x%8.8" PRIx32, node->node_ref);
> +
> + iort_id_mappings_dump(fw, data, node_end);
> +
> + iort_node_check(fw, data, false, false, passed);
> + iort_id_mappings_check(fw, data, node_end, passed);
> +
> + fwts_log_nl(fw);
> +}
> +
> +/*
> * IORT Remapping Table
> * http://infocenter.arm.com/help/topic/com.arm.doc.den0049a/DEN0049A_IO_Remapping_Table.pdf
> */
> @@ -725,6 +750,9 @@ static int iort_test1(fwts_framework *fw)
> case 0x04:
> iort_check_smmuv3(fw, data, node_end, &passed);
> break;
> + case 0x05:
> + iort_check_pmcg(fw, data, node_end, &passed);
> + break;
> default:
> /* reserved */
> passed = false;
> diff --git a/src/lib/include/fwts_acpi.h b/src/lib/include/fwts_acpi.h
> index 8bc1164..b34a1aa 100644
> --- a/src/lib/include/fwts_acpi.h
> +++ b/src/lib/include/fwts_acpi.h
> @@ -1770,6 +1770,17 @@ typedef struct {
> */
> } __attribute__ ((packed)) fwts_acpi_table_iort_smmuv3_node;
>
> +typedef struct {
> + fwts_acpi_table_iort_node iort_node;
> + uint64_t base_address;
> + uint32_t gsiv;
> + uint32_t node_ref;
> + /*
> + followed by array of ids_mappings at some offset
> + fwts_acpi_table_iort_id_mapping identifier_array[0];
> + */
> +} __attribute__ ((packed)) fwts_acpi_table_iort_pmcg_node;
> +
> /*
> * ACPI STAO (Status Override Table)
> * http://wiki.xenproject.org/mediawiki/images/0/02/Status-override-table.pdf
>
Acked-by: Alex Hung <alex.hung at canonical.com>
More information about the fwts-devel
mailing list