<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0cm;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;
        mso-ligatures:none;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-GB" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Hi Rohit,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Please send an updated series with the issues fixed.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Sami Mujawar<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:12.0pt;color:black">From:
</span></b><span lang="EN-US" style="font-size:12.0pt;color:black">Rohit Mathew <Rohit.Mathew@arm.com><br>
<b>Date: </b>Monday, 22 May 2023 at 14:08<br>
<b>To: </b>Sami Mujawar <Sami.Mujawar@arm.com>, "devel@edk2.groups.io" <devel@edk2.groups.io><br>
<b>Cc: </b>Michael D Kinney <michael.d.kinney@intel.com>, Liming Gao <gaoliming@byosoft.com.cn>, Thomas Abraham <thomas.abraham@arm.com>, James Morse <James.Morse@arm.com>, nd <nd@arm.com><br>
<b>Subject: </b>RE: [PATCH V2 1/3] MdePkg/IndustryStandard: add definitions for MPAM ACPI specification<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
<p class="MsoNormal"><span lang="EN-US">Hi Sami,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Thank you for the review. Please find my comments inline.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Regards,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Rohit<o:p></o:p></span></p>
<div style="border:none;border-left:solid blue 1.5pt;padding:0cm 0cm 0cm 4.0pt">
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> Sami Mujawar <Sami.Mujawar@arm.com>
<br>
<b>Sent:</b> Monday, May 22, 2023 1:17 PM<br>
<b>To:</b> Rohit Mathew <Rohit.Mathew@arm.com>; devel@edk2.groups.io<br>
<b>Cc:</b> Michael D Kinney <michael.d.kinney@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>; Thomas Abraham <thomas.abraham@arm.com>; James Morse <James.Morse@arm.com>; nd <nd@arm.com><br>
<b>Subject:</b> Re: [PATCH V2 1/3] MdePkg/IndustryStandard: add definitions for MPAM ACPI specification<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p><span lang="EN-US">Hi Rohit,<o:p></o:p></span></p>
<p><span lang="EN-US">Please find my response inline marked [SAMI].<o:p></o:p></span></p>
<p><span lang="EN-US">Regards,<o:p></o:p></span></p>
<p><span lang="EN-US">Sami Mujawar<o:p></o:p></span></p>
<div>
<p class="MsoNormal"><span lang="EN-US">On 18/05/2023 04:06 pm, Rohit Mathew wrote:<o:p></o:p></span></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre><span lang="EN-US">From: Rohit Mathew <a href="mailto:rohit.mathew@arm.com"><rohit.mathew@arm.com></a><o:p></o:p></span></pre>
<pre><span lang="EN-US"><o:p> </o:p></span></pre>
<pre><span lang="EN-US">add definitions, macros and types for elements associated with MPAM<o:p></o:p></span></pre>
<pre><span lang="EN-US">ACPI 2.0 specification.<o:p></o:p></span></pre>
<pre><span lang="EN-US"><o:p> </o:p></span></pre>
<pre><span lang="EN-US">Signed-off-by: Rohit Mathew <a href="mailto:rohit.mathew@arm.com"><rohit.mathew@arm.com></a><o:p></o:p></span></pre>
<pre><span lang="EN-US">---<o:p></o:p></span></pre>
<pre><span lang="EN-US"> MdePkg/Include/IndustryStandard/Acpi65.h |   7 +-<o:p></o:p></span></pre>
<pre><span lang="EN-US"> MdePkg/Include/IndustryStandard/Mpam.h   | 258 ++++++++++++++++++++<o:p></o:p></span></pre>
<pre><span lang="EN-US"> 2 files changed, 264 insertions(+), 1 deletion(-)<o:p></o:p></span></pre>
<pre><span lang="EN-US"><o:p> </o:p></span></pre>
<pre><span lang="EN-US">diff --git a/MdePkg/Include/IndustryStandard/Acpi65.h b/MdePkg/Include/IndustryStandard/Acpi65.h<o:p></o:p></span></pre>
<pre><span lang="EN-US">index 1e41ae9a27..8a1d3d125a 100644<o:p></o:p></span></pre>
<pre><span lang="EN-US">--- a/MdePkg/Include/IndustryStandard/Acpi65.h<o:p></o:p></span></pre>
<pre><span lang="EN-US">+++ b/MdePkg/Include/IndustryStandard/Acpi65.h<o:p></o:p></span></pre>
<pre><span lang="EN-US">@@ -2,7 +2,7 @@<o:p></o:p></span></pre>
<pre><span lang="EN-US">   ACPI 6.5 definitions from the ACPI Specification Revision 6.5 Aug, 2022.<o:p></o:p></span></pre>
<pre><span lang="EN-US"> <o:p></o:p></span></pre>
<pre><span lang="EN-US">   Copyright (c) 2017 - 2022, Intel Corporation. All rights reserved.<BR><o:p></o:p></span></pre>
<pre><span lang="EN-US">-  Copyright (c) 2019 - 2021, ARM Ltd. All rights reserved.<BR><o:p></o:p></span></pre>
<pre><span lang="EN-US">+  Copyright (c) 2019 - 2023, ARM Ltd. All rights reserved.<BR><o:p></o:p></span></pre>
<pre><span lang="EN-US">   Copyright (c) 2023, Loongson Technology Corporation Limited. All rights reserved.<BR><o:p></o:p></span></pre>
<pre><span lang="EN-US"> <o:p></o:p></span></pre>
<pre><span lang="EN-US">   SPDX-License-Identifier: BSD-2-Clause-Patent<o:p></o:p></span></pre>
<pre><span lang="EN-US">@@ -3251,6 +3251,11 @@ typedef struct {<o:p></o:p></span></pre>
<pre><span lang="EN-US"> ///<o:p></o:p></span></pre>
<pre><span lang="EN-US"> #define EFI_ACPI_6_5_XEN_PROJECT_TABLE_SIGNATURE  SIGNATURE_32('X', 'E', 'N', 'V')<o:p></o:p></span></pre>
<pre><span lang="EN-US"> <o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// "MPAM" Memory System Resource Partitioning and Monitoring Table<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MEMORY_SYSTEM_RESOURCE_PARTITIONING_AND_MONITORING_TABLE_SIGNATURE  SIGNATURE_32('M', 'P', 'A', 'M')<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US"> #pragma pack()<o:p></o:p></span></pre>
<pre><span lang="EN-US"> <o:p></o:p></span></pre>
<pre><span lang="EN-US"> #endif<o:p></o:p></span></pre>
<pre><span lang="EN-US">diff --git a/MdePkg/Include/IndustryStandard/Mpam.h b/MdePkg/Include/IndustryStandard/Mpam.h<o:p></o:p></span></pre>
<pre><span lang="EN-US">new file mode 100644<o:p></o:p></span></pre>
<pre><span lang="EN-US">index 0000000000..5d4c466abb<o:p></o:p></span></pre>
<pre><span lang="EN-US">--- /dev/null<o:p></o:p></span></pre>
<pre><span lang="EN-US">+++ b/MdePkg/Include/IndustryStandard/Mpam.h<o:p></o:p></span></pre>
<pre><span lang="EN-US">@@ -0,0 +1,258 @@<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/** @file<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  ACPI for Memory System Resource Partitioning and Monitoring 2.0 (MPAM) as<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  specified in ARM spec DEN0065<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  Copyright (c) 2023, Arm Limited. All rights reserved.<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  SPDX-License-Identifier: BSD-2-Clause-Patent<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  @par Specification Reference:<o:p></o:p></span></pre>
<pre><span lang="EN-US">+   - [1] ACPI for Memory System Resource Partitioning and Monitoring 2.0<o:p></o:p></span></pre>
<pre><span lang="EN-US">+     (<a href="https://developer.arm.com/documentation/den0065/latest">https://developer.arm.com/documentation/den0065/latest</a>)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  @par Glossary:<o:p></o:p></span></pre>
<pre><span lang="EN-US">+    - MPAM - Memory System Resource Partitioning And Monitoring<o:p></o:p></span></pre>
<pre><span lang="EN-US">+    - MSC  - Memory System Component<o:p></o:p></span></pre>
<pre><span lang="EN-US">+    - PCC  - Platform Communication Channel<o:p></o:p></span></pre>
<pre><span lang="EN-US">+    - RIS  - Resource Instance Selection<o:p></o:p></span></pre>
<pre><span lang="EN-US">+    - SMMU - Arm System Memory Management Unit<o:p></o:p></span></pre>
<pre><span lang="EN-US">+ **/<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#ifndef MPAM_H_<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define MPAM_H_<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#include <IndustryStandard/Acpi.h><o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM Revision<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MEMORY_SYSTEM_RESOURCE_PARTITIONING_AND_MONITORING_TABLE_REVISION  (0x01)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM Interrupt mode<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERRUPT_LEVEL_TRIGGERED  (0x0)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERRUPT_EDGE_TRIGGERED   (0x1)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM Interrupt type<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERRUPT_WIRED  (0x0)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM Interrupt affinity type<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERRUPT_PROCESSOR_AFFINITY            (0x0)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERRUPT_PROCESSOR_CONTAINER_AFFINITY  (0x1)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM MSC affinity valid<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERRUPT_AFFINITY_NOT_VALID  (0x0)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERRUPT_AFFINITY_VALID      (0x1)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM Interrupt flag - bit positions<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERRUPT_MODE_SHIFT            (0)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERRUPT_TYPE_SHIFT            (1)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERRUPT_AFFINITY_TYPE_SHIFT   (3)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERRUPT_AFFINITY_VALID_SHIFT  (4)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERRUPT_RESERVED_SHIFT        (5)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM Interrupt flag - bit masks<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERRUPT_MODE_MASK            (0x1)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERRUPT_TYPE_MASK            (0x3)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERRUPT_AFFINITY_TYPE_MASK   (0x8)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERRUPT_AFFINITY_VALID_MASK  (0x10)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERRUPT_RESERVED_MASK        (0xFFFFFFE0)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM_MEMORY_LOCATOR_RESERVED_MASK should be used along with an 8 byte object<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// starting at the base of the locator field.<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_MEM_LOCATOR_RESERVED_FIELD_MASK   (0x00FFFFFFFFFFFFFFULL)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_MEM_LOCATOR_RESERVED_FIELD_SHIFT  (0)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM_MEMORY_LOCATOR_LEVEL_MASK should be used along with an 8 byte object<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///  starting at the base of the locator field.<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_MEM_LOCATOR_LEVEL_FIELD_MASK   (0xFF00000000000000ULL)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_MEM_LOCATOR_LEVEL_FIELD_SHIFT  (56)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
</blockquote>
<p class="MsoNormal"><span lang="EN-US">[SAMI] Can you point me to the section in the spec where I can find this information, please? Are these definitions for
</span><span lang="EN-US" style="font-family:"Arial",sans-serif">Memory-side cache locator descriptor by any chance?<br>
</span><span lang="EN-US">[Rohit] These are from mem cache locator field, like you pointed (Section 2.3.3.4 – table 16). I’ll rename these to EFI_ACPI_MPAM_MEM_CACHE_* if the masks and shifts look fine.<o:p></o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre><span lang="EN-US"><o:p> </o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM Location types<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// as described in document [1], table 11<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_LOCATION_PROCESSOR_CACHE  (0x0)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_LOCATION_MEMORY           (0x1)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_LOCATION_SMMU             (0x2)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_LOCATION_MEMORY_CACHE     (0x3)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_LOCATION_ACPI_DEVICE      (0x4)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_LOCATION_INTERCONNECT     (0x5)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_LOCATION_UNKNOWN          (0xFF)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM Interface types<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERFACE_MMIO  (0x0)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_INTERFACE_PCC   (0x1)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM Link types<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_LINK_TYPE_NUMA  (0x0)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#define EFI_ACPI_MPAM_LINK_TYPE_PROC  (0x0A)<o:p></o:p></span></pre>
</blockquote>
<p><span lang="EN-US">[SAMI] Is the EFI_ACPI_MPAM_LINK_TYPE_PROC values and EFI_ACPI_MPAM_INTERFACE_PCC value swapped by any chance? Or I am looking at a completely wrong spec.
<o:p></o:p></span></p>
<p><span lang="EN-US">Can you point me to the correct spec, please?<o:p></o:p></span></p>
<p><span lang="EN-US">[/SAMI]<o:p></o:p></span></p>
<p><span lang="EN-US">[Rohit] Ah! That indeed got swapped around. Let me fix this in the next revision. Do you want me to send out a new revision for this patch alone (or I can hold until the series is reviewed).
<br>
PS: We are both looking at the spec spec revision.<o:p></o:p></span></p>
<p><span lang="EN-US">[/Rohit]<o:p></o:p></span></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<pre><span lang="EN-US"><o:p> </o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#pragma pack(1)<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM MSC generic locator descriptor<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// as described in document [1], table 12<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+typedef struct {<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT64    Descriptor1;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    Descriptor2;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+} EFI_ACPI_MPAM_GENERIC_LOCATOR;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM processor cache locator descriptor<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// as described in document [1], table 13<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+typedef struct {<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT64    CacheReference;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    Reserved;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+} EFI_ACPI_MPAM_CACHE_LOCATOR;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM memory locator descriptor<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// as described in document [1], table 14<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+typedef struct {<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT64    ProximityDomain;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    Reserved;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+} EFI_ACPI_MPAM_MEMORY_LOCATOR;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM SMMU locator descriptor<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// as described in document [1], table 15<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+typedef struct {<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT64    SmmuInterface;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    Reserved;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+} EFI_ACPI_MPAM_SMMU_LOCATOR;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM memory-side cache locator descriptor<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// as described in Document [1], table 16<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+typedef struct {<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT8     Reserved[7];<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT8     Level;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    Reference;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+} EFI_ACPI_MPAM_MEMORY_CACHE_LOCATOR;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM ACPI device locator descriptor<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// as described in document [1], table 17<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+typedef struct {<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT64    AcpiHardwareId;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    AcpiUniqueId;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+} EFI_ACPI_MPAM_ACPI_LOCATOR;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM interconnect locator descriptor<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// as described in document [1], table 18<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+typedef struct {<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT64    InterconnectDescTblOff;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    Reserved;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+} EFI_ACPI_MPAM_INTERCONNECT_LOCATOR;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM interconnect descriptor<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// as described in document [1], table 19<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+typedef struct {<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    SourceId;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    DestinationId;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT8     LinkType;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT8     Reserved[3];<o:p></o:p></span></pre>
<pre><span lang="EN-US">+} EFI_ACPI_MPAM_INTERCONNECT_DESCRIPTOR;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM interconnect descriptor table<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// as described in document [1], table 20<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+typedef struct {<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT8     Signature[16];<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    NumDescriptors;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+} EFI_ACPI_MPAM_INTERCONNECT_DESCRIPTOR_TABLE;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM resource locator<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+typedef union {<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  EFI_ACPI_MPAM_CACHE_LOCATOR           CacheLocator;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  EFI_ACPI_MPAM_MEMORY_LOCATOR          MemoryLocator;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  EFI_ACPI_MPAM_SMMU_LOCATOR            SmmuLocator;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  EFI_ACPI_MPAM_MEMORY_CACHE_LOCATOR    MemCacheLocator;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  EFI_ACPI_MPAM_ACPI_LOCATOR            AcpiLocator;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  EFI_ACPI_MPAM_INTERCONNECT_LOCATOR    InterconnectIfcLocator;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  EFI_ACPI_MPAM_GENERIC_LOCATOR         GenericLocator;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+} EFI_ACPI_MPAM_LOCATOR;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM MSC node body<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// as described document [1], table 4<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+typedef struct {<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT16    Length;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT8     InterfaceType;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT8     Reserved;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    Identifier;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT64    BaseAddress;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    MmioSize;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    OverflowInterrupt;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    OverflowInterruptFlags;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    Reserved1;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    OverflowInterruptAffinity;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    ErrorInterrupt;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    ErrorInterruptFlags;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    Reserved2;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    ErrorInterruptAffinity;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    MaxNrdyUsec;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT64    HardwareIdLinkedDevice;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    InstanceIdLinkedDevice;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    NumResources;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+} EFI_ACPI_MPAM_MSC_NODE;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM MSC resource<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// as described in document [1], table 9<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+typedef struct {<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32                   Identifier;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT8                    RisIndex;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT16                   Reserved1;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT8                    LocatorType;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  EFI_ACPI_MPAM_LOCATOR    Locator;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32                   NumFunctionalDependencies;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+} EFI_ACPI_MPAM_MSC_RESOURCE;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// MPAM Function dependency descriptor<o:p></o:p></span></pre>
<pre><span lang="EN-US">+/// as described in document [1], table 10<o:p></o:p></span></pre>
<pre><span lang="EN-US">+///<o:p></o:p></span></pre>
<pre><span lang="EN-US">+typedef struct {<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    Producer;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+  UINT32    Reserved;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+} EFI_ACPI_MPAM_FUNCTIONAL_DEPENDENCY_DESCRIPTOR;<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#pragma pack()<o:p></o:p></span></pre>
<pre><span lang="EN-US">+<o:p></o:p></span></pre>
<pre><span lang="EN-US">+#endif<o:p></o:p></span></pre>
</blockquote>
</div>
</div>
</body>
</html>


<div width="1" style="color:white;clear:both">_._,_._,_</div>
<hr>


Groups.io Links:<p>


  
    You receive all messages sent to this group.
  
  


<p>
<a target="_blank" href="https://edk2.groups.io/g/devel/message/105124">View/Reply Online (#105124)</a> |


  

|

  <a target="_blank" href="https://groups.io/mt/98993032/1813853">Mute This Topic</a>

| <a href="https://edk2.groups.io/g/devel/post">New Topic</a><br>




<a href="https://edk2.groups.io/g/devel/editsub/1813853">Your Subscription</a> |
<a href="mailto:devel+owner@edk2.groups.io">Contact Group Owner</a> |

<a href="https://edk2.groups.io/g/devel/unsub">Unsubscribe</a>

 [edk2-devel-archive@redhat.com]<br>
<div width="1" style="color:white;clear:both">_._,_._,_</div>