Updated IORT parser to conform to the IO Remapping
Table, Platform Design Document, Revision D, March 2018.

The following structure parsers have been updated:
  1. SMMUv3 - added proximity domain and device Id
              mapping index.
  2. RootComplex - added memory address size limit.
  2. PMCG - added page 1 support.

Cc: Ray Ni <ray...@intel.com>
Cc: Zhichao Gao <zhichao....@intel.com>
Signed-off-by: Sami Mujawar <sami.muja...@arm.com>
---

The changes can be seen at:
https://github.com/samimujawar/edk2/tree/667_acpiview_iort_rev_c_v1

Notes:
    v2:
      - Fixed patch check failure in commit message,                [SAMI]
          changed 'CC' to 'Cc'. No code change.            
    v1:
      - Update parser to support IORT specification Rev D updates   [SAMI]

 ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c | 13 
+++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git 
a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c 
b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c
index 
f1cdb9ac01d848f22ab588d8f824886387c5983d..72289c7680bc3cd5c444481e8d6a719803202a9b
 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort/IortParser.c
@@ -5,7 +5,7 @@
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
   @par Reference(s):
-    - IO Remapping Table, Platform Design Document, Revision C, 15 May 2017
+    - IO Remapping Table, Platform Design Document, Revision D, March 2018
 **/
 
 #include <IndustryStandard/IoRemappingTable.h>
@@ -193,7 +193,9 @@ STATIC CONST ACPI_PARSER IortNodeSmmuV3Parser[] = {
   {L"Event", 4, 44, L"0x%x", NULL, NULL, NULL, NULL},
   {L"PRI", 4, 48, L"0x%x", NULL, NULL, NULL, NULL},
   {L"GERR", 4, 52, L"0x%x", NULL, NULL, NULL, NULL},
-  {L"Sync", 4, 56, L"0x%x", NULL, NULL, NULL, NULL}
+  {L"Sync", 4, 56, L"0x%x", NULL, NULL, NULL, NULL},
+  {L"Proximity domain", 4, 60, L"0x%x", NULL, NULL, NULL, NULL},
+  {L"Device ID mapping index", 4, 64, L"%d", NULL, NULL, NULL, NULL}
 };
 
 /**
@@ -231,7 +233,9 @@ STATIC CONST ACPI_PARSER IortNodeRootComplexParser[] = {
   PARSE_IORT_NODE_HEADER (NULL, NULL),
   {L"Memory access properties", 8, 16, L"0x%lx", NULL, NULL, NULL, NULL},
   {L"ATS Attribute", 4, 24, L"0x%x", NULL, NULL, NULL, NULL},
-  {L"PCI Segment number", 4, 28, L"0x%x", NULL, NULL, NULL, NULL}
+  {L"PCI Segment number", 4, 28, L"0x%x", NULL, NULL, NULL, NULL},
+  {L"Memory access size limit", 1, 32, L"0x%x", NULL, NULL, NULL, NULL},
+  {L"Reserved", 3, 33, L"%x %x %x", Dump3Chars, NULL, NULL, NULL}
 };
 
 /**
@@ -239,9 +243,10 @@ STATIC CONST ACPI_PARSER IortNodeRootComplexParser[] = {
 **/
 STATIC CONST ACPI_PARSER IortNodePmcgParser[] = {
   PARSE_IORT_NODE_HEADER (ValidatePmcgIdMappingCount, NULL),
-  {L"Base Address", 8, 16, L"0x%lx", NULL, NULL, NULL, NULL},
+  {L"Page 0 Base Address", 8, 16, L"0x%lx", NULL, NULL, NULL, NULL},
   {L"Overflow interrupt GSIV", 4, 24, L"0x%x", NULL, NULL, NULL, NULL},
   {L"Node reference", 4, 28, L"0x%x", NULL, NULL, NULL, NULL},
+  {L"Page 1 Base Address", 8, 32, L"0x%lx", NULL, NULL, NULL, NULL}
 };
 
 /**
-- 
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#51221): https://edk2.groups.io/g/devel/message/51221
Mute This Topic: https://groups.io/mt/61916623/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to