All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dan Williams <dan.j.williams@intel.com>
To: <alison.schofield@intel.com>,
	Robert Moore <robert.moore@intel.com>,
	"Dan Williams" <dan.j.williams@intel.com>,
	Ira Weiny <ira.weiny@intel.com>,
	Vishal Verma <vishal.l.verma@intel.com>,
	Ben Widawsky <bwidawsk@kernel.org>,
	Dave Jiang <dave.jiang@intel.com>
Cc: Alison Schofield <alison.schofield@intel.com>,
	<linux-cxl@vger.kernel.org>
Subject: RE: [ACPICA PATCH] Add CXL 3.0 structures (CXIMS & RDPAS) to the CEDT table
Date: Fri, 16 Sep 2022 16:35:59 -0700	[thread overview]
Message-ID: <6325085fd0b23_2a6ded29441@dwillia2-xfh.jf.intel.com.notmuch> (raw)
In-Reply-To: <20220916232102.673102-1-alison.schofield@intel.com>

alison.schofield@ wrote:
> From: Alison Schofield <alison.schofield@intel.com>
> 
> Prologue: The CXIMS addition to ACPICA was reverted, so, while I was
> at it, decided to collect both CEDT changes in one patch for ACPICA.
> Please review here, or on ACPICA github:
> https://github.com/acpica/acpica/pull/795
> Thanks,
> Alison
> 
> 
> The CXL 3.0 Specification[1] adds two new structures to
> the CXL Early Discovery Table (CEDT). The CEDT may include
> zero or more entries of these types:
> 
> CXIMS: CXL XOR Interleave Math Structure
>        Enables the host to find a targets position in an
>        Interleave Target List when XOR Math is used.
> 
> RDPAS: RCEC Downstream Post Association Structure
>        Enables the host to locate the Downstream Port(s)
>        that report errors to a given Root Complex Event
>        Collector (RCEC).
> 
> [1]https://www.computeexpresslink.org/spec-landing
> 
> Signed-off-by: Alison Schofield <alison.schofield@intel.com>
> ---
>  source/include/actbl1.h | 34 +++++++++++++++++++++++++++++++++-
>  1 file changed, 33 insertions(+), 1 deletion(-)
> 
> diff --git a/source/include/actbl1.h b/source/include/actbl1.h
> index 3de78b0d8f01..6041e8f4c289 100644
> --- a/source/include/actbl1.h
> +++ b/source/include/actbl1.h
> @@ -525,7 +525,9 @@ enum AcpiCedtType
>  {
>      ACPI_CEDT_TYPE_CHBS                 = 0,
>      ACPI_CEDT_TYPE_CFMWS                = 1,
> -    ACPI_CEDT_TYPE_RESERVED             = 2,
> +    ACPI_CEDT_TYPE_CXIMS                = 2,
> +    ACPI_CEDT_TYPE_RDPAS                = 3,
> +    ACPI_CEDT_TYPE_RESERVED             = 4,
>  };
>  
>  /* Values for version field above */
> @@ -583,6 +585,7 @@ typedef struct acpi_cedt_cfmws_target_element
>  /* Values for Interleave Arithmetic field above */
>  
>  #define ACPI_CEDT_CFMWS_ARITHMETIC_MODULO   (0)
> +#define ACPI_CEDT_CFMWS_ARITHMETIC_XOR      (1)
>  
>  /* Values for Restrictions field above */
>  
> @@ -592,6 +595,35 @@ typedef struct acpi_cedt_cfmws_target_element
>  #define ACPI_CEDT_CFMWS_RESTRICT_PMEM       (1<<3)
>  #define ACPI_CEDT_CFMWS_RESTRICT_FIXED      (1<<4)
>  
> +/* 2: CXL XOR Interleave Math Structure */
> +
> +struct acpi_cedt_cxims {
> +    ACPI_CEDT_HEADER        Header;
> +    UINT16                  Reserved1;
> +    UINT8                   Hbig;
> +    UINT8                   NrXormaps;
> +    UINT64                  XormapList[];

This might be the source of the build trouble. I thought ACPICA builds
in constrained environments with simple compilers that do not support
variable-length arrays.

For example:

typedef struct acpi_table_slit
{
    ACPI_TABLE_HEADER       Header;             /* Common ACPI table header */
    UINT64                  LocalityCount;
    UINT8                   Entry[1];           /* Real size = localities^2 */

} ACPI_TABLE_SLIT;
https://github.com/acpica/acpica/blob/master/source/include/actbl3.h#L234


However, if this is the breakage then I don't understand why:

typedef struct acpi_cedt_cfmws
{
    ACPI_CEDT_HEADER        Header;
    UINT32                  Reserved1;
    UINT64                  BaseHpa;
    UINT64                  WindowSize;
    UINT8                   InterleaveWays;
    UINT8                   InterleaveArithmetic;
    UINT16                  Reserved2;
    UINT32                  Granularity;
    UINT16                  Restrictions;
    UINT16                  QtgId;
    UINT32                  InterleaveTargets[];

} ACPI_CEDT_CFMWS;
https://github.com/acpica/acpica/blob/master/source/include/actbl1.h#L561

Gets by without complaint?

Otherwise that's all I can see as the reason why the first attempt
reported build issues.

Bob, is there a place where someone can reproduce the ACPICA build
environment to check these issues themselves going forward?

      reply	other threads:[~2022-09-16 23:36 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-16 23:21 [ACPICA PATCH] Add CXL 3.0 structures (CXIMS & RDPAS) to the CEDT table alison.schofield
2022-09-16 23:35 ` Dan Williams [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=6325085fd0b23_2a6ded29441@dwillia2-xfh.jf.intel.com.notmuch \
    --to=dan.j.williams@intel.com \
    --cc=alison.schofield@intel.com \
    --cc=bwidawsk@kernel.org \
    --cc=dave.jiang@intel.com \
    --cc=ira.weiny@intel.com \
    --cc=linux-cxl@vger.kernel.org \
    --cc=robert.moore@intel.com \
    --cc=vishal.l.verma@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.