REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3966

This change includes specification update markdown file that describes
the proposed PI Specification v1.7 Errata A in detail and potential
impact to the existing codebase.

Cc: Andrew Fish <af...@apple.com>
Cc: Leif Lindholm <l...@nuviainc.com>
Cc: Michael D Kinney <michael.d.kin...@intel.com>
Cc: Liming Gao <gaolim...@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang....@intel.com>

Signed-off-by: Kun Qin <kuqi...@gmail.com>
---
 CodeFirst/BZ3966-SpecChange.md | 60 ++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/CodeFirst/BZ3966-SpecChange.md b/CodeFirst/BZ3966-SpecChange.md
new file mode 100644
index 000000000000..8a1541bdd577
--- /dev/null
+++ b/CodeFirst/BZ3966-SpecChange.md
@@ -0,0 +1,60 @@
+# Title: Introduction of `EFI_PERIPHERAL_TPM` Peripheral Subclass Definition
+
+## Status: Draft
+
+## Document: UEFI Platform Initialization Specification Version 1.7 Errata A
+
+## License
+
+SPDX-License-Identifier: CC-BY-4.0
+
+## Submitter: [TianoCore Community](https://www.tianocore.org)
+
+## Summary of the change
+
+Add `EFI_PERIPHERAL_TPM` into Peripheral Subclass definition.
+
+## Benefits of the change
+
+Current status code covered various [peripheral subclass 
definitions](https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Pi/PiStatusCode.h).
+
+As Trusted Platform Module (TPM) becomes more available on the modern systems, 
status reports from such peripheral are playing more important roles in 
anaylzing the secruity state and healthiness of a system. However, peripheral 
subclass definitions do not cover TPM as of today.
+
+Standardizing the TPM peripheral subclass definition could facilitate the 
parsing of peripheral reported errors and avoid potential definition collisions 
from implementation based subclass usages.
+
+The request of this change intends to expand definitions of 
`EFI_PERIPHERAL_**` under Periperhal Subclass definitions to cover the TPM 
subclass.
+
+## Impact of the change
+
+Occupy a new macro definitions of subclass under `Defined Subclasses: 
User-Accessible Peripheral Class`.
+
+## Detailed description of the change [normative updates]
+
+### Specification Changes
+
+1. In PI Specification v1.7 Errata A: Vol. 3, Table 3-30: Defined Subclasses: 
User-Accessible Peripheral Class, add one new rows below 
`EFI_PERIPHERAL_DOCKING` definition and adjust the rest of reserved definitions 
accordingly:
+
+    | Subclass | Code Name | Description |
+    | --- | --- | --- |
+    | Trusted Platform Module | EFI_PERIPHERAL_TPM | The peripheral referred 
to is a Trusted Platform Module |
+    | 0x0F–0x7F | Reserved for future use by this specification |  |
+
+1. In PI Specification v1.7 Errata A: Vol. 3, Table 3-84: Defined Subclasses: 
User-Accessible Peripheral Class, add one new rows below 
`EFI_PERIPHERAL_DOCKING` definition and adjust the rest of reserved definitions 
accordingly:
+
+    | Subclass | Code Name |
+    | --- | --- |
+    | Trusted Platform Module | EFI_PERIPHERAL_TPM |
+    | 0x0F–0x7F | Reserved for future use by this specification. |
+
+1. In PI Specification v1.7 Errata A: Vol. 3, Section 6.7.2.1 Subclass 
Definitions: Prototype, add one new definitions below `EFI_PERIPHERAL_DOCKING` 
definition:
+
+    ```c
+    #define EFI_PERIPHERAL_TPM \
+      (EFI_PERIPHERAL | 0x000E0000)
+    ```
+
+### Code Changes
+
+1. Add macro definitions in `MdePkg/Include/Pi/PiStatusCode.h` to match new 
specification.
+1. Replace existing references of 
`gEfiSecurityPkgTokenSpaceGuid.PcdStatusCodeSubClassTpmDevice` from SecurityPkg 
with new definition.
+1. Updated the default value of 
`gEfiSecurityPkgTokenSpaceGuid.PcdStatusCodeSubClassTpmDevice` to 
`(EFI_PERIPHERAL | 0x000E0000)` for consistency and backwards compatibility 
outside of SecurityPkg.
-- 
2.35.1.windows.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#91076): https://edk2.groups.io/g/devel/message/91076
Mute This Topic: https://groups.io/mt/92200212/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to