Patchwork [1/2] lib: acpi: Add support for the new ACPI 5.0 PCCT

login
register
mail settings
Submitter Colin King
Date Sept. 18, 2012, 1:02 p.m.
Message ID <1347973329-18245-2-git-send-email-colin.king@canonical.com>
Download mbox | patch
Permalink /patch/184709/
State Accepted
Headers show

Comments

Colin King - Sept. 18, 2012, 1:02 p.m.
From: Colin Ian King <colin.king@canonical.com>

ACPI 5.0 now includes the Platform Communications Channel Table
(see section 14). So, add it to the supported tables.

Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 src/lib/include/fwts_acpi.h |   25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)
Alex Hung - Sept. 20, 2012, 6:42 a.m.
On 09/18/2012 09:02 PM, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> ACPI 5.0 now includes the Platform Communications Channel Table
> (see section 14). So, add it to the supported tables.
>
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>   src/lib/include/fwts_acpi.h |   25 +++++++++++++++++++++++++
>   1 file changed, 25 insertions(+)
>
> diff --git a/src/lib/include/fwts_acpi.h b/src/lib/include/fwts_acpi.h
> index 2a90158..e99d0a7 100644
> --- a/src/lib/include/fwts_acpi.h
> +++ b/src/lib/include/fwts_acpi.h
> @@ -664,6 +664,31 @@ typedef struct {
>           uint8_t         platform_cc_id[12];
>   } __attribute__ ((packed)) fwts_acpi_table_rasf;
>
> +/* Section 14.1, Platform Communications Channel Table */
> +typedef struct {
> +	fwts_acpi_table_header	header;	
> +	uint32_t	flags;
> +	uint8_t		reserved[8];
> +} __attribute__ ((packed)) fwts_acpi_table_pcct;
> +
> +typedef struct {
> +	uint8_t		type;
> +	uint8_t		length;
> +} __attribute__ ((packed)) fwts_acpi_table_pcct_subspace_header;
> +
> +typedef struct {
> +	fwts_acpi_table_pcct_subspace_header	header;
> +	uint8_t		reserved[6];
> +	uint64_t	base_address;
> +	uint64_t	length;
> +	fwts_acpi_gas	doorbell_register;
> +	uint64_t	doorbell_preserve;
> +	uint64_t	doorbell_write;
> +	uint32_t	nominal_latency;
> +	uint32_t	max_periodic_access_rate;
> +	uint16_t	min_request_turnaround_time;
> +} __attribute__ ((packed)) fwts_acpi_table_pcct_subspace_type_0;
> +
>   void fwts_acpi_table_get_header(fwts_acpi_table_header *hdr, uint8_t *data);
>
>   #endif
>

Acked-by: Alex Hung <alex.hung@canonical.com>
Keng-Yu Lin - Sept. 20, 2012, 8:29 a.m.
On Tue, Sep 18, 2012 at 9:02 PM, Colin King <colin.king@canonical.com> wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> ACPI 5.0 now includes the Platform Communications Channel Table
> (see section 14). So, add it to the supported tables.
>
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>  src/lib/include/fwts_acpi.h |   25 +++++++++++++++++++++++++
>  1 file changed, 25 insertions(+)
>
> diff --git a/src/lib/include/fwts_acpi.h b/src/lib/include/fwts_acpi.h
> index 2a90158..e99d0a7 100644
> --- a/src/lib/include/fwts_acpi.h
> +++ b/src/lib/include/fwts_acpi.h
> @@ -664,6 +664,31 @@ typedef struct {
>          uint8_t         platform_cc_id[12];
>  } __attribute__ ((packed)) fwts_acpi_table_rasf;
>
> +/* Section 14.1, Platform Communications Channel Table */
> +typedef struct {
> +       fwts_acpi_table_header  header;
> +       uint32_t        flags;
> +       uint8_t         reserved[8];
> +} __attribute__ ((packed)) fwts_acpi_table_pcct;
> +
> +typedef struct {
> +       uint8_t         type;
> +       uint8_t         length;
> +} __attribute__ ((packed)) fwts_acpi_table_pcct_subspace_header;
> +
> +typedef struct {
> +       fwts_acpi_table_pcct_subspace_header    header;
> +       uint8_t         reserved[6];
> +       uint64_t        base_address;
> +       uint64_t        length;
> +       fwts_acpi_gas   doorbell_register;
> +       uint64_t        doorbell_preserve;
> +       uint64_t        doorbell_write;
> +       uint32_t        nominal_latency;
> +       uint32_t        max_periodic_access_rate;
> +       uint16_t        min_request_turnaround_time;
> +} __attribute__ ((packed)) fwts_acpi_table_pcct_subspace_type_0;
> +
>  void fwts_acpi_table_get_header(fwts_acpi_table_header *hdr, uint8_t *data);
>
>  #endif
> --
> 1.7.10.4
>
Acked-by: Keng-Yu Lin <kengyu@canonical.com>

Patch

diff --git a/src/lib/include/fwts_acpi.h b/src/lib/include/fwts_acpi.h
index 2a90158..e99d0a7 100644
--- a/src/lib/include/fwts_acpi.h
+++ b/src/lib/include/fwts_acpi.h
@@ -664,6 +664,31 @@  typedef struct {
         uint8_t         platform_cc_id[12];
 } __attribute__ ((packed)) fwts_acpi_table_rasf;
 
+/* Section 14.1, Platform Communications Channel Table */
+typedef struct {
+	fwts_acpi_table_header	header;	
+	uint32_t	flags;
+	uint8_t		reserved[8];
+} __attribute__ ((packed)) fwts_acpi_table_pcct;
+
+typedef struct {
+	uint8_t		type;
+	uint8_t		length;
+} __attribute__ ((packed)) fwts_acpi_table_pcct_subspace_header;
+
+typedef struct {
+	fwts_acpi_table_pcct_subspace_header	header;
+	uint8_t		reserved[6];
+	uint64_t	base_address;
+	uint64_t	length;
+	fwts_acpi_gas	doorbell_register;
+	uint64_t	doorbell_preserve;
+	uint64_t	doorbell_write;
+	uint32_t	nominal_latency;
+	uint32_t	max_periodic_access_rate;
+	uint16_t	min_request_turnaround_time;
+} __attribute__ ((packed)) fwts_acpi_table_pcct_subspace_type_0;
+
 void fwts_acpi_table_get_header(fwts_acpi_table_header *hdr, uint8_t *data);
 
 #endif