Skip to content

Commit

Permalink
ACPICA: IORT: Add PMCG node supprt
Browse files Browse the repository at this point in the history
PMCG nodes were added by IORT revision C, with the unfortunate oversight
that it only defined a single base address, and thus was incapable of
properly describing PMCG implementations with PMCG_CFGR.RELOC_CTRS = 1,
where the counters are in a separate page from the control registers.

Revision D corrects this by clarifying the existing field as the page 0
base address and adding a second field to describe the page 1 address
when implemented. With the spec now fit for purpose, let's support it.

Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
  • Loading branch information
Robin Murphy authored and Rafael J. Wysocki committed Jun 6, 2018
1 parent d87be04 commit a53eaef
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion include/acpi/actbl2.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,8 @@ enum acpi_iort_node_type {
ACPI_IORT_NODE_NAMED_COMPONENT = 0x01,
ACPI_IORT_NODE_PCI_ROOT_COMPLEX = 0x02,
ACPI_IORT_NODE_SMMU = 0x03,
ACPI_IORT_NODE_SMMU_V3 = 0x04
ACPI_IORT_NODE_SMMU_V3 = 0x04,
ACPI_IORT_NODE_PMCG = 0x05
};

struct acpi_iort_id_mapping {
Expand Down Expand Up @@ -232,6 +233,13 @@ struct acpi_iort_smmu_v3 {
#define ACPI_IORT_SMMU_V3_HTTU_OVERRIDE (3<<1)
#define ACPI_IORT_SMMU_V3_PXM_VALID (1<<3)

struct acpi_iort_pmcg {
u64 page0_base_address;
u32 overflow_gsiv;
u32 node_reference;
u64 page1_base_address;
};

/*******************************************************************************
*
* IVRS - I/O Virtualization Reporting Structure
Expand Down

0 comments on commit a53eaef

Please sign in to comment.