<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Tianocore/edk2.git/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Iort, branch trunk</title>
<subtitle>EDK II (mirror)</subtitle>
<id>https://git.radix-linux.su/Tianocore/edk2.git/atom?h=trunk</id>
<link rel='self' href='https://git.radix-linux.su/Tianocore/edk2.git/atom?h=trunk'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/'/>
<updated>2024-06-04T03:43:08+00:00</updated>
<entry>
<title>Renormalized end-of-lines from master@27b044605cd5f6b33a3d231576003850b3fe305b</title>
<updated>2024-06-04T03:43:08+00:00</updated>
<author>
<name>kx</name>
<email>kx@radix.pro</email>
</author>
<published>2024-06-04T03:43:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=7e2ccccace24636f29ddc210b94606abd4c7e42b'/>
<id>urn:sha1:7e2ccccace24636f29ddc210b94606abd4c7e42b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ShellPkg: Acpiview: IORT parser update for IORT Rev E.d spec</title>
<updated>2022-07-29T19:22:15+00:00</updated>
<author>
<name>Sami Mujawar</name>
<email>sami.mujawar@arm.com</email>
</author>
<published>2022-07-14T16:50:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=cd67efa1b2e807bbea8516a1ab7a20c278176696'/>
<id>urn:sha1:cd67efa1b2e807bbea8516a1ab7a20c278176696</id>
<content type='text'>
Bugzilla: 3458 - Add support IORT Rev E.d specification updates
          (https://bugzilla.tianocore.org/show_bug.cgi?id=3458)

The IO Remapping Table, Platform Design Document, Revision E.d,
Feb 2022 (https://developer.arm.com/documentation/den0049/)
introduces the following updates, collectively including the
updates and errata fixes to Rev E, Rev E.a, Rev E.b, Rev E.c:
 - increments the IORT table revision to 5.
 - updates the node definition to add an 'Identifier' field.
 - adds definition of node type 6 - Reserved Memory Range node.
 - adds definition for Memory Range Descriptors.
 - adds flag to indicate PRI support for root complexes.
 - adds flag to indicate if the root complex supports forwarding
   of PASID information on translated transactions to the SMMU.
 - adds flag to indicate if the root complex supports PASID.
 - adds flags to define access privilege and attributes for the
   memory ranges.

Therefore, update the IORT parser to:
  - parse the Identifier field.
  - parse Reserved Memory Range node.
  - parse Memory Range Descriptors.
  - add validations to check that the physical range base
    and size of the Memory Range Descriptor is 64KB aligned.
  - add validation to check that the IORT Table Revision is
    not 4 as IORT Rev E.c is deprecated.
  - add validation to check that the IORT RMR node revision
    is not 2 as it breaks backward compatibility and was
    deprecated as part of IORT Rev E.c.
  - skip parsing of IORT Rev E, Rev E.a, Rev E.b, Rev E.c as
    some fields were deprecated in these revisions.

Signed-off-by: Sami Mujawar &lt;sami.mujawar@arm.com&gt;
Reviewed-by: Zhichao Gao &lt;zhichao.gao@intel.com&gt;
Reviewed-by: Pierre Gondois &lt;pierre.gondois@arm.com&gt;
</content>
</entry>
<entry>
<title>ShellPkg: Acpiview: Abbreviate field names to preserve alignment</title>
<updated>2022-07-29T19:22:15+00:00</updated>
<author>
<name>Sami Mujawar</name>
<email>sami.mujawar@arm.com</email>
</author>
<published>2022-07-14T16:50:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=8a210b9ac03dc092dd65542bd676f82cec4fa374'/>
<id>urn:sha1:8a210b9ac03dc092dd65542bd676f82cec4fa374</id>
<content type='text'>
Some field names in the IORT table parser were longer than the
OUTPUT_FIELD_COLUMN_WIDTH plus indentation, resulting in loss of
the output print alignment. Therefore, abbreviate the field names.

Signed-off-by: Sami Mujawar &lt;sami.mujawar@arm.com&gt;
Reviewed-by: Zhichao Gao &lt;zhichao.gao@intel.com&gt;
Reviewed-by: Pierre Gondois &lt;pierre.gondois@arm.com&gt;
</content>
</entry>
<entry>
<title>ShellPkg: Apply uncrustify changes</title>
<updated>2021-12-07T17:24:28+00:00</updated>
<author>
<name>Michael Kubacki</name>
<email>michael.kubacki@microsoft.com</email>
</author>
<published>2021-12-05T22:54:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=47d20b54f9a65b08aa602a1866c1b59a69088dfc'/>
<id>urn:sha1:47d20b54f9a65b08aa602a1866c1b59a69088dfc</id>
<content type='text'>
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737

Apply uncrustify changes to .c/.h files in the ShellPkg package

Cc: Andrew Fish &lt;afish@apple.com&gt;
Cc: Leif Lindholm &lt;leif@nuviainc.com&gt;
Cc: Michael D Kinney &lt;michael.d.kinney@intel.com&gt;
Signed-off-by: Michael Kubacki &lt;michael.kubacki@microsoft.com&gt;
Reviewed-by: Ray Ni &lt;ray.ni@intel.com&gt;
</content>
</entry>
<entry>
<title>ShellPkg/AcpiView: Refactor configuration</title>
<updated>2020-06-30T01:39:50+00:00</updated>
<author>
<name>Tomas Pilar</name>
<email>Tomas.Pilar@arm.com</email>
</author>
<published>2020-06-19T11:59:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=e18ac66d84e68387dbbe4fd8761b8f3a889534a9'/>
<id>urn:sha1:e18ac66d84e68387dbbe4fd8761b8f3a889534a9</id>
<content type='text'>
A new file and header (AcpiViewConfig.[ch]) is created
that houses the user configuration. This declutters the
core code and improves modularity of the design.

The module level symbols for verbosity, table selection, and
highlighting are refactored into the new file.

Cc: Ray Ni &lt;ray.ni@intel.com&gt;
Cc: Zhichao Gao &lt;zhichao.gao@intel.com&gt;
Reviewed-by: Zhichao Gao &lt;zhichao.gao@intel.com&gt;
Signed-off-by: Tomas Pilar &lt;tomas.pilar@arm.com&gt;
</content>
</entry>
<entry>
<title>ShellPkg: acpiview: Prevent infinite loop if structure length is 0</title>
<updated>2020-02-20T09:27:00+00:00</updated>
<author>
<name>Krzysztof Koch</name>
<email>krzysztof.koch@arm.com</email>
</author>
<published>2020-02-19T10:23:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=b85048261aa5dc0b8fd98ddc4431d8c2a6389b25'/>
<id>urn:sha1:b85048261aa5dc0b8fd98ddc4431d8c2a6389b25</id>
<content type='text'>
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2534

Extend validation of ACPI structure lengths which are read from the
ACPI table being parsed. Additionally check if the structure 'Length'
field value is positive. If not, stop parsing the faulting table.

Some ACPI tables define internal structures of variable size. The
'Length' field inside the substructure is used to update a pointer used
for table traversal. If the byte-length of the structure is equal to 0,
acpiview can enter an infinite loop. This condition can occur if, for
example, the zero-allocated ACPI table buffer is not fully populated.
This is typically a bug on the ACPI table writer side.

In short, this method helps acpiview recover gracefully from a
zero-valued ACPI structure length.

Signed-off-by: Krzysztof Koch &lt;krzysztof.koch@arm.com&gt;
Reviewed-by: Sami Mujawar &lt;sami.mujawar@arm.com&gt;
Reviewed-by: Zhichao Gao &lt;zhichao.gao@intel.com&gt;
</content>
</entry>
<entry>
<title>ShellPkg: acpiview: IORT: Validate global pointers before use</title>
<updated>2020-02-11T02:12:45+00:00</updated>
<author>
<name>Krzysztof Koch</name>
<email>krzysztof.koch@arm.com</email>
</author>
<published>2020-01-20T11:13:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=ea26838a525541cb05dcad66980cb76247a6d614'/>
<id>urn:sha1:ea26838a525541cb05dcad66980cb76247a6d614</id>
<content type='text'>
Check if global (in the scope of the IORT parser) pointers have been
successfully updated before they are used for further table parsing.

Signed-off-by: Krzysztof Koch &lt;krzysztof.koch@arm.com&gt;
</content>
</entry>
<entry>
<title>ShellPkg: acpiview: IORT Spec Rev D updates</title>
<updated>2019-12-05T06:12:36+00:00</updated>
<author>
<name>Sami Mujawar</name>
<email>sami.mujawar@arm.com</email>
</author>
<published>2019-11-25T09:18:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=965dbf97abec6b999b2dddb75ef746deed354019'/>
<id>urn:sha1:965dbf97abec6b999b2dddb75ef746deed354019</id>
<content type='text'>
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 &lt;ray.ni@intel.com&gt;
Cc: Zhichao Gao &lt;zhichao.gao@intel.com&gt;
Reviewed-by: Zhichao Gao &lt;zhichao.gao@intel.com&gt;
Signed-off-by: Sami Mujawar &lt;sami.mujawar@arm.com&gt;
</content>
</entry>
<entry>
<title>ShellPkg/UefiShellAcpiViewCommandLib: Remove the variable "Index"</title>
<updated>2019-08-15T03:14:49+00:00</updated>
<author>
<name>Shenglei Zhang</name>
<email>shenglei.zhang@intel.com</email>
</author>
<published>2019-08-14T03:04:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=c0996b76c1b0230f33e46ffa0b30fce680a03b8b'/>
<id>urn:sha1:c0996b76c1b0230f33e46ffa0b30fce680a03b8b</id>
<content type='text'>
In IortParser.c ,the variable Index is set but not used in
function DumpIortNodeNamedComponent. This will cause build failure
when building ShellPkg with GCC.

Cc: Jaben Carsey &lt;jaben.carsey@intel.com&gt;
Cc: Ray Ni &lt;ray.ni@intel.com&gt;
Cc: Zhichao Gao &lt;zhichao.gao@intel.com&gt;
Signed-off-by: Shenglei Zhang &lt;shenglei.zhang@intel.com&gt;
Reviewed-by: Zhichao Gao &lt;zhichao.gao@intel.com&gt;
Reviewed-by: Jaben Carsey &lt;jaben.carsey@intel.com&gt;
</content>
</entry>
<entry>
<title>ShellPkg: acpiview: IORT: Prevent buffer overruns</title>
<updated>2019-08-12T17:13:49+00:00</updated>
<author>
<name>Krzysztof Koch</name>
<email>krzysztof.koch@arm.com</email>
</author>
<published>2019-08-01T23:44:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/Tianocore/edk2.git/commit/?id=62cefaf44e1cc14376e547e955a846ba456caa93'/>
<id>urn:sha1:62cefaf44e1cc14376e547e955a846ba456caa93</id>
<content type='text'>
Modify the IORT table parsing logic to prevent reading past the buffer
lengths provided.

Change DumpIortNodeIdMappings() function's signature and implementation
to simplify buffer overrun prevention. Update all calls to this
function accordingly.

Modify the parser for each type of IORT node such that the offset from
the start of the node's buffer is tracked as the parsing function is
executed. Again, this change helps prevent buffer overruns.

Test that the IORT node buffer fits in the table buffer before the
node's buffer contents are dumped.

References:
- IO Remapping Table (Issue D), Platform Design Document, March 2018

Signed-off-by: Krzysztof Koch &lt;krzysztof.koch@arm.com&gt;
Reviewed-by: Alexei Fedorov &lt;Alexei.Fedorov@arm.com&gt;
Reviewed-by: Zhichao Gao &lt;zhichao.gao@inte.com&gt;
Reviewed-by: Sami Mujawar &lt;sami.mujawar@arm.com&gt;
</content>
</entry>
</feed>
