public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-devel] [PATCH v1 0/4] Add EINJ table parser.
@ 2024-05-10 12:22 levi.yun
  2024-05-10 12:22 ` [edk2-devel] [PATCH v1 1/4] MdePkg/Include/IndustryStandard: Update SET_ERROR_TYPE_WITH_ADDRESS Error Injection Actions levi.yun
                   ` (6 more replies)
  0 siblings, 7 replies; 8+ messages in thread
From: levi.yun @ 2024-05-10 12:22 UTC (permalink / raw)
  To: devel
  Cc: yeoreum.yun, sami.mujawar, pierre.gondois, zhiguang.liu,
	dandan.bi, gaoliming, zhichao.gao, nd

Add Error Injection Table (EINJ) parser for AcpiView and
add some missing Error Injection Action definitions in each Acpi*
headers.

The changes can be seen at:
    https://github.com/LeviYeoReum/edk2/tree/levi/3075_einj_table_v1


levi.yun (4):
  MdePkg/Include/IndustryStandard: Update SET_ERROR_TYPE_WITH_ADDRESS
    Error Injection Actions
  MdePkg/Include/IndustryStandard: Update GET_EXECUTE_OPERATION_TIMINGS
    Error Injection Actions
  MdePkg/Include/IndustryStandard: Update EINJ information according to
    ACPI 6.5
  ShellPkg/Acpiview: Add EINJ Parser

 ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf |   1 +
 MdePkg/Include/IndustryStandard/Acpi51.h                                     |   1 +
 MdePkg/Include/IndustryStandard/Acpi60.h                                     |   1 +
 MdePkg/Include/IndustryStandard/Acpi61.h                                     |   2 +
 MdePkg/Include/IndustryStandard/Acpi62.h                                     |   2 +
 MdePkg/Include/IndustryStandard/Acpi63.h                                     |   2 +
 MdePkg/Include/IndustryStandard/Acpi64.h                                     |   2 +
 MdePkg/Include/IndustryStandard/Acpi65.h                                     |   6 +-
 ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h                    |  21 ++
 ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Einj/EinjParser.c       | 358 ++++++++++++++++++++
 ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c   |   1 +
 11 files changed, 396 insertions(+), 1 deletion(-)
 create mode 100644 ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Einj/EinjParser.c

--
Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#118814): https://edk2.groups.io/g/devel/message/118814
Mute This Topic: https://groups.io/mt/106019470/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 8+ messages in thread

* [edk2-devel] [PATCH v1 1/4] MdePkg/Include/IndustryStandard: Update SET_ERROR_TYPE_WITH_ADDRESS Error Injection Actions
  2024-05-10 12:22 [edk2-devel] [PATCH v1 0/4] Add EINJ table parser levi.yun
@ 2024-05-10 12:22 ` levi.yun
  2024-05-10 12:22 ` [edk2-devel] [PATCH v1 2/4] MdePkg/Include/IndustryStandard: Update GET_EXECUTE_OPERATION_TIMINGS " levi.yun
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: levi.yun @ 2024-05-10 12:22 UTC (permalink / raw)
  To: devel
  Cc: yeoreum.yun, sami.mujawar, pierre.gondois, zhiguang.liu,
	dandan.bi, gaoliming, zhichao.gao, nd

SET_ERROR_TYPE_WITH_ADDRESS Error Injection Actions was added from
ACPI 5.1 specification.

Update Error Injection Action with the ACPI spec.

Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Pierre Gondois <pierre.gondois@arm.com>
Signed-off-by: levi.yun <yeoreum.yun@arm.com>
---
 MdePkg/Include/IndustryStandard/Acpi51.h | 1 +
 MdePkg/Include/IndustryStandard/Acpi60.h | 1 +
 MdePkg/Include/IndustryStandard/Acpi61.h | 1 +
 MdePkg/Include/IndustryStandard/Acpi62.h | 1 +
 MdePkg/Include/IndustryStandard/Acpi63.h | 1 +
 MdePkg/Include/IndustryStandard/Acpi64.h | 1 +
 MdePkg/Include/IndustryStandard/Acpi65.h | 1 +
 7 files changed, 7 insertions(+)

diff --git a/MdePkg/Include/IndustryStandard/Acpi51.h b/MdePkg/Include/IndustryStandard/Acpi51.h
index 4241b8f198f1d81cc9b9d6d8797e955ed1211a53..cdf95386d27add7e72f4f8e82b0d23671a3e294d 100644
--- a/MdePkg/Include/IndustryStandard/Acpi51.h
+++ b/MdePkg/Include/IndustryStandard/Acpi51.h
@@ -1760,6 +1760,7 @@ typedef struct {
 #define EFI_ACPI_5_1_EINJ_EXECUTE_OPERATION               0x05
 #define EFI_ACPI_5_1_EINJ_CHECK_BUSY_STATUS               0x06
 #define EFI_ACPI_5_1_EINJ_GET_COMMAND_STATUS              0x07
+#define EFI_ACPI_5_1_EINJ_SET_ERROR_TYPE_WITH_ADDRESS     0x08
 #define EFI_ACPI_5_1_EINJ_TRIGGER_ERROR                   0xFF
 
 ///
diff --git a/MdePkg/Include/IndustryStandard/Acpi60.h b/MdePkg/Include/IndustryStandard/Acpi60.h
index 3757d3f82792e812e85a6aef0f9e3e65b96591f8..d545de1ba2be0e30aeb8422dec95358ac364c44b 100644
--- a/MdePkg/Include/IndustryStandard/Acpi60.h
+++ b/MdePkg/Include/IndustryStandard/Acpi60.h
@@ -1947,6 +1947,7 @@ typedef struct {
 #define EFI_ACPI_6_0_EINJ_EXECUTE_OPERATION               0x05
 #define EFI_ACPI_6_0_EINJ_CHECK_BUSY_STATUS               0x06
 #define EFI_ACPI_6_0_EINJ_GET_COMMAND_STATUS              0x07
+#define EFI_ACPI_6_0_EINJ_SET_ERROR_TYPE_WITH_ADDRESS     0x08
 #define EFI_ACPI_6_0_EINJ_TRIGGER_ERROR                   0xFF
 
 ///
diff --git a/MdePkg/Include/IndustryStandard/Acpi61.h b/MdePkg/Include/IndustryStandard/Acpi61.h
index c3facc6e376e715b3e790efa18d9eb75ad0b2ded..94d72410138b8c2512586715ac521da3c5d2209d 100644
--- a/MdePkg/Include/IndustryStandard/Acpi61.h
+++ b/MdePkg/Include/IndustryStandard/Acpi61.h
@@ -1979,6 +1979,7 @@ typedef struct {
 #define EFI_ACPI_6_1_EINJ_EXECUTE_OPERATION               0x05
 #define EFI_ACPI_6_1_EINJ_CHECK_BUSY_STATUS               0x06
 #define EFI_ACPI_6_1_EINJ_GET_COMMAND_STATUS              0x07
+#define EFI_ACPI_6_1_EINJ_SET_ERROR_TYPE_WITH_ADDRESS     0x08
 #define EFI_ACPI_6_1_EINJ_TRIGGER_ERROR                   0xFF
 
 ///
diff --git a/MdePkg/Include/IndustryStandard/Acpi62.h b/MdePkg/Include/IndustryStandard/Acpi62.h
index 4dd3e21c232554cb5b3d322f57f55363e2c98ae1..732e4d16c58df6d79c88f103d048e46d29386913 100644
--- a/MdePkg/Include/IndustryStandard/Acpi62.h
+++ b/MdePkg/Include/IndustryStandard/Acpi62.h
@@ -2292,6 +2292,7 @@ typedef struct {
 #define EFI_ACPI_6_2_EINJ_EXECUTE_OPERATION               0x05
 #define EFI_ACPI_6_2_EINJ_CHECK_BUSY_STATUS               0x06
 #define EFI_ACPI_6_2_EINJ_GET_COMMAND_STATUS              0x07
+#define EFI_ACPI_6_2_EINJ_SET_ERROR_TYPE_WITH_ADDRESS     0x08
 #define EFI_ACPI_6_2_EINJ_TRIGGER_ERROR                   0xFF
 
 ///
diff --git a/MdePkg/Include/IndustryStandard/Acpi63.h b/MdePkg/Include/IndustryStandard/Acpi63.h
index 7582dccf649b2f0b2308c3e9635b5767e86811ba..0cf984a840b9798f018f6a01ac0524e08e981175 100644
--- a/MdePkg/Include/IndustryStandard/Acpi63.h
+++ b/MdePkg/Include/IndustryStandard/Acpi63.h
@@ -2252,6 +2252,7 @@ typedef struct {
 #define EFI_ACPI_6_3_EINJ_EXECUTE_OPERATION               0x05
 #define EFI_ACPI_6_3_EINJ_CHECK_BUSY_STATUS               0x06
 #define EFI_ACPI_6_3_EINJ_GET_COMMAND_STATUS              0x07
+#define EFI_ACPI_6_3_EINJ_SET_ERROR_TYPE_WITH_ADDRESS     0x08
 #define EFI_ACPI_6_3_EINJ_TRIGGER_ERROR                   0xFF
 
 ///
diff --git a/MdePkg/Include/IndustryStandard/Acpi64.h b/MdePkg/Include/IndustryStandard/Acpi64.h
index faf069a0454e8cf97c4e9767b1c10c37754002a3..fd7b718ce47ca0d63e9f0b592622ea00dd1b8891 100644
--- a/MdePkg/Include/IndustryStandard/Acpi64.h
+++ b/MdePkg/Include/IndustryStandard/Acpi64.h
@@ -2335,6 +2335,7 @@ typedef struct {
 #define EFI_ACPI_6_4_EINJ_EXECUTE_OPERATION               0x05
 #define EFI_ACPI_6_4_EINJ_CHECK_BUSY_STATUS               0x06
 #define EFI_ACPI_6_4_EINJ_GET_COMMAND_STATUS              0x07
+#define EFI_ACPI_6_4_EINJ_SET_ERROR_TYPE_WITH_ADDRESS     0x08
 #define EFI_ACPI_6_4_EINJ_TRIGGER_ERROR                   0xFF
 
 ///
diff --git a/MdePkg/Include/IndustryStandard/Acpi65.h b/MdePkg/Include/IndustryStandard/Acpi65.h
index b9616a3e29c26ed20dafca624d08679a60d95d61..6721c42e475d23ee89c2f3373989a26e52d80d90 100644
--- a/MdePkg/Include/IndustryStandard/Acpi65.h
+++ b/MdePkg/Include/IndustryStandard/Acpi65.h
@@ -2432,6 +2432,7 @@ typedef struct {
 #define EFI_ACPI_6_5_EINJ_EXECUTE_OPERATION               0x05
 #define EFI_ACPI_6_5_EINJ_CHECK_BUSY_STATUS               0x06
 #define EFI_ACPI_6_5_EINJ_GET_COMMAND_STATUS              0x07
+#define EFI_ACPI_6_5_EINJ_SET_ERROR_TYPE_WITH_ADDRESS     0x08
 #define EFI_ACPI_6_5_EINJ_TRIGGER_ERROR                   0xFF
 
 ///
--
Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#118815): https://edk2.groups.io/g/devel/message/118815
Mute This Topic: https://groups.io/mt/106019471/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [edk2-devel] [PATCH v1 2/4] MdePkg/Include/IndustryStandard: Update GET_EXECUTE_OPERATION_TIMINGS Error Injection Actions
  2024-05-10 12:22 [edk2-devel] [PATCH v1 0/4] Add EINJ table parser levi.yun
  2024-05-10 12:22 ` [edk2-devel] [PATCH v1 1/4] MdePkg/Include/IndustryStandard: Update SET_ERROR_TYPE_WITH_ADDRESS Error Injection Actions levi.yun
@ 2024-05-10 12:22 ` levi.yun
  2024-05-10 12:22 ` [edk2-devel] [PATCH v1 3/4] MdePkg/Include/IndustryStandard: Update EINJ information according to ACPI 6.5 levi.yun
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: levi.yun @ 2024-05-10 12:22 UTC (permalink / raw)
  To: devel
  Cc: yeoreum.yun, sami.mujawar, pierre.gondois, zhiguang.liu,
	dandan.bi, gaoliming, zhichao.gao, nd


GET_EXECUTE_OPERATION_TIMINGS Error Injection Actions was added from
ACPI 6.1 specification.

Update Error Injection Action with the ACPI spec.

Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Pierre Gondois <pierre.gondois@arm.com>
Signed-off-by: levi.yun <yeoreum.yun@arm.com>
---
 MdePkg/Include/IndustryStandard/Acpi61.h | 1 +
 MdePkg/Include/IndustryStandard/Acpi62.h | 1 +
 MdePkg/Include/IndustryStandard/Acpi63.h | 1 +
 MdePkg/Include/IndustryStandard/Acpi64.h | 1 +
 MdePkg/Include/IndustryStandard/Acpi65.h | 1 +
 5 files changed, 5 insertions(+)

diff --git a/MdePkg/Include/IndustryStandard/Acpi61.h b/MdePkg/Include/IndustryStandard/Acpi61.h
index 94d72410138b8c2512586715ac521da3c5d2209d..5100d8b3b4193bbb9a2fd8cd818438190f2b79f1 100644
--- a/MdePkg/Include/IndustryStandard/Acpi61.h
+++ b/MdePkg/Include/IndustryStandard/Acpi61.h
@@ -1980,6 +1980,7 @@ typedef struct {
 #define EFI_ACPI_6_1_EINJ_CHECK_BUSY_STATUS               0x06
 #define EFI_ACPI_6_1_EINJ_GET_COMMAND_STATUS              0x07
 #define EFI_ACPI_6_1_EINJ_SET_ERROR_TYPE_WITH_ADDRESS     0x08
+#define EFI_ACPI_6_1_EINJ_GET_EXECUTE_OPERATION_TIMINGS   0x09
 #define EFI_ACPI_6_1_EINJ_TRIGGER_ERROR                   0xFF
 
 ///
diff --git a/MdePkg/Include/IndustryStandard/Acpi62.h b/MdePkg/Include/IndustryStandard/Acpi62.h
index 732e4d16c58df6d79c88f103d048e46d29386913..711b88b758ef0af2e8daf8d1d0fd07751fc634ed 100644
--- a/MdePkg/Include/IndustryStandard/Acpi62.h
+++ b/MdePkg/Include/IndustryStandard/Acpi62.h
@@ -2293,6 +2293,7 @@ typedef struct {
 #define EFI_ACPI_6_2_EINJ_CHECK_BUSY_STATUS               0x06
 #define EFI_ACPI_6_2_EINJ_GET_COMMAND_STATUS              0x07
 #define EFI_ACPI_6_2_EINJ_SET_ERROR_TYPE_WITH_ADDRESS     0x08
+#define EFI_ACPI_6_2_EINJ_GET_EXECUTE_OPERATION_TIMINGS   0x09
 #define EFI_ACPI_6_2_EINJ_TRIGGER_ERROR                   0xFF
 
 ///
diff --git a/MdePkg/Include/IndustryStandard/Acpi63.h b/MdePkg/Include/IndustryStandard/Acpi63.h
index 0cf984a840b9798f018f6a01ac0524e08e981175..68798da72576a465ed1950b99e49af696ea25b97 100644
--- a/MdePkg/Include/IndustryStandard/Acpi63.h
+++ b/MdePkg/Include/IndustryStandard/Acpi63.h
@@ -2253,6 +2253,7 @@ typedef struct {
 #define EFI_ACPI_6_3_EINJ_CHECK_BUSY_STATUS               0x06
 #define EFI_ACPI_6_3_EINJ_GET_COMMAND_STATUS              0x07
 #define EFI_ACPI_6_3_EINJ_SET_ERROR_TYPE_WITH_ADDRESS     0x08
+#define EFI_ACPI_6_3_EINJ_GET_EXECUTE_OPERATION_TIMINGS   0x09
 #define EFI_ACPI_6_3_EINJ_TRIGGER_ERROR                   0xFF
 
 ///
diff --git a/MdePkg/Include/IndustryStandard/Acpi64.h b/MdePkg/Include/IndustryStandard/Acpi64.h
index fd7b718ce47ca0d63e9f0b592622ea00dd1b8891..bbe6a3c9eb5c06a00ea1629c4430af4f99e6ed2f 100644
--- a/MdePkg/Include/IndustryStandard/Acpi64.h
+++ b/MdePkg/Include/IndustryStandard/Acpi64.h
@@ -2336,6 +2336,7 @@ typedef struct {
 #define EFI_ACPI_6_4_EINJ_CHECK_BUSY_STATUS               0x06
 #define EFI_ACPI_6_4_EINJ_GET_COMMAND_STATUS              0x07
 #define EFI_ACPI_6_4_EINJ_SET_ERROR_TYPE_WITH_ADDRESS     0x08
+#define EFI_ACPI_6_4_EINJ_GET_EXECUTE_OPERATION_TIMINGS   0x09
 #define EFI_ACPI_6_4_EINJ_TRIGGER_ERROR                   0xFF
 
 ///
diff --git a/MdePkg/Include/IndustryStandard/Acpi65.h b/MdePkg/Include/IndustryStandard/Acpi65.h
index 6721c42e475d23ee89c2f3373989a26e52d80d90..264869e86294a0170bcacde2ffb3f3786bd9aaff 100644
--- a/MdePkg/Include/IndustryStandard/Acpi65.h
+++ b/MdePkg/Include/IndustryStandard/Acpi65.h
@@ -2433,6 +2433,7 @@ typedef struct {
 #define EFI_ACPI_6_5_EINJ_CHECK_BUSY_STATUS               0x06
 #define EFI_ACPI_6_5_EINJ_GET_COMMAND_STATUS              0x07
 #define EFI_ACPI_6_5_EINJ_SET_ERROR_TYPE_WITH_ADDRESS     0x08
+#define EFI_ACPI_6_4_EINJ_GET_EXECUTE_OPERATION_TIMINGS   0x09
 #define EFI_ACPI_6_5_EINJ_TRIGGER_ERROR                   0xFF
 
 ///
--
Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#118816): https://edk2.groups.io/g/devel/message/118816
Mute This Topic: https://groups.io/mt/106019472/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [edk2-devel] [PATCH v1 3/4] MdePkg/Include/IndustryStandard: Update EINJ information according to ACPI 6.5
  2024-05-10 12:22 [edk2-devel] [PATCH v1 0/4] Add EINJ table parser levi.yun
  2024-05-10 12:22 ` [edk2-devel] [PATCH v1 1/4] MdePkg/Include/IndustryStandard: Update SET_ERROR_TYPE_WITH_ADDRESS Error Injection Actions levi.yun
  2024-05-10 12:22 ` [edk2-devel] [PATCH v1 2/4] MdePkg/Include/IndustryStandard: Update GET_EXECUTE_OPERATION_TIMINGS " levi.yun
@ 2024-05-10 12:22 ` levi.yun
  2024-05-10 12:22 ` [edk2-devel] [PATCH v1 4/4] ShellPkg/Acpiview: Add EINJ Parser levi.yun
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: levi.yun @ 2024-05-10 12:22 UTC (permalink / raw)
  To: devel
  Cc: yeoreum.yun, sami.mujawar, pierre.gondois, zhiguang.liu,
	dandan.bi, gaoliming, zhichao.gao, nd

ACPI 6.5 specification updates EINJ revision to 0x02 and
adds new Error Injection Actions
    - EINJV2_SET_ERROR_TYPE
    - EINJV2_GET_ERROR_TYPE

This patches updates EINJ information based on ACPI 6.5 specification.
Also, add missing Error Injection Actions too.

Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Pierre Gondois <pierre.gondois@arm.com>
Signed-off-by: levi.yun <yeoreum.yun@arm.com>
---
 MdePkg/Include/IndustryStandard/Acpi65.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/MdePkg/Include/IndustryStandard/Acpi65.h b/MdePkg/Include/IndustryStandard/Acpi65.h
index 264869e86294a0170bcacde2ffb3f3786bd9aaff..387af78cfee07b162307f217f78dcd16c27971ae 100644
--- a/MdePkg/Include/IndustryStandard/Acpi65.h
+++ b/MdePkg/Include/IndustryStandard/Acpi65.h
@@ -2419,7 +2419,7 @@ typedef struct {
 ///
 /// EINJ Version (as defined in ACPI 6.5 spec.)
 ///
-#define EFI_ACPI_6_5_ERROR_INJECTION_TABLE_REVISION  0x01
+#define EFI_ACPI_6_5_ERROR_INJECTION_TABLE_REVISION  0x02
 
 ///
 /// EINJ Error Injection Actions
@@ -2433,7 +2433,9 @@ typedef struct {
 #define EFI_ACPI_6_5_EINJ_CHECK_BUSY_STATUS               0x06
 #define EFI_ACPI_6_5_EINJ_GET_COMMAND_STATUS              0x07
 #define EFI_ACPI_6_5_EINJ_SET_ERROR_TYPE_WITH_ADDRESS     0x08
-#define EFI_ACPI_6_4_EINJ_GET_EXECUTE_OPERATION_TIMINGS   0x09
+#define EFI_ACPI_6_5_EINJ_GET_EXECUTE_OPERATION_TIMINGS   0x09
+#define EFI_ACPI_6_5_EINJ_EINJV2_SET_ERROR_TYPE           0x10
+#define EFI_ACPI_6_5_EINJ_EINJV2_GET_ERROR_TYPE           0x11
 #define EFI_ACPI_6_5_EINJ_TRIGGER_ERROR                   0xFF
 
 ///
--
Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#118817): https://edk2.groups.io/g/devel/message/118817
Mute This Topic: https://groups.io/mt/106019473/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [edk2-devel] [PATCH v1 4/4] ShellPkg/Acpiview: Add EINJ Parser
  2024-05-10 12:22 [edk2-devel] [PATCH v1 0/4] Add EINJ table parser levi.yun
                   ` (2 preceding siblings ...)
  2024-05-10 12:22 ` [edk2-devel] [PATCH v1 3/4] MdePkg/Include/IndustryStandard: Update EINJ information according to ACPI 6.5 levi.yun
@ 2024-05-10 12:22 ` levi.yun
  2024-05-13  7:41 ` [edk2-devel] [PATCH v1 0/4] Add EINJ table parser PierreGondois
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 8+ messages in thread
From: levi.yun @ 2024-05-10 12:22 UTC (permalink / raw)
  To: devel
  Cc: yeoreum.yun, sami.mujawar, pierre.gondois, zhiguang.liu,
	dandan.bi, gaoliming, zhichao.gao, nd

Add a new parser for the Error Injection Table (EINJ).

The EINJ table provides machinism through which OSPM
can inject hardware errors to the platform without requiring platform
specific OSPM software.

Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Dandan Bi <dandan.bi@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhichao Gao <zhichao.gao@intel.com>
Cc: Sami Mujawar <sami.mujawar@arm.com>
Cc: Pierre Gondois <pierre.gondois@arm.com>
Signed-off-by: levi.yun <yeoreum.yun@arm.com>
---
 ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf |   1 +
 ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h                    |  21 ++
 ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Einj/EinjParser.c       | 358 ++++++++++++++++++++
 ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c   |   1 +
 4 files changed, 381 insertions(+)

diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf
index e62366116cb7d90c9202c6f0fd17b3306efd7800..9c2e2b703d267fb3ed9d631469d907106e7d4278 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf
@@ -33,6 +33,7 @@ [Sources.common]
   Parsers/Bgrt/BgrtParser.c
   Parsers/Dbg2/Dbg2Parser.c
   Parsers/Dsdt/DsdtParser.c
+  Parsers/Einj/EinjParser.c
   Parsers/Erst/ErstParser.c
   Parsers/Facs/FacsParser.c
   Parsers/Fadt/FadtParser.c
diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h
index 6468fe5d8cddf02d67f2d4705369064046c4a9a1..b41f110f6aa18f4f6806c849737f0b540a11152f 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h
@@ -616,6 +616,27 @@ ParseAcpiDsdt (
   IN UINT8    AcpiTableRevision
   );
 
+/**
+  This function parses the EINJ table.
+  When trace is enabled this function parses the EINJ table and
+  traces the ACPI table fields.
+
+  This function also performs validation of the ACPI table fields.
+
+  @param [in] Trace              If TRUE, trace the ACPI fields.
+  @param [in] Ptr                Pointer to the start of the buffer.
+  @param [in] AcpiTableLength    Length of the ACPI table.
+  @param [in] AcpiTableRevision  Revision of the ACPI table.
+**/
+VOID
+EFIAPI
+ParseAcpiEinj (
+  IN BOOLEAN  Trace,
+  IN UINT8    *Ptr,
+  IN UINT32   AcpiTableLength,
+  IN UINT8    AcpiTableRevision
+  );
+
 /**
   This function parses the ACPI ERST table.
   When trace is enabled this function parses the ERST table and
diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Einj/EinjParser.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Einj/EinjParser.c
new file mode 100644
index 0000000000000000000000000000000000000000..508b082f908d76dc46e6ce92d9b4aa6c15998f95
--- /dev/null
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Einj/EinjParser.c
@@ -0,0 +1,358 @@
+/** @file
+  EINJ table parser
+
+  Copyright (c) 2024, Arm Limited.
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+  @par Specification Reference:
+    - ACPI 6.5, Table 18.3.2 ACPI Error Source
+**/
+
+#include <IndustryStandard/Acpi.h>
+#include <Library/UefiLib.h>
+
+#include "AcpiParser.h"
+#include "AcpiTableParser.h"
+#include "AcpiView.h"
+
+STATIC ACPI_DESCRIPTION_HEADER_INFO  mAcpiHdrInfo;
+STATIC UINT32                        *mEinjInjectionHdrSize;
+STATIC UINT32                        *mEinjInjectionEntryCnt;
+
+STATIC CONST CHAR16  *InstNameTable[] = {
+  L"READ_REGISTER",
+  L"READ_REGISTER_VALUE",
+  L"WRITE_REGISTER",
+  L"WRITE_REGISTER_VALUE",
+  L"NOOP",
+};
+
+/**
+  This function validates the flags field in the EINJ injection header.
+
+  @param [in] Ptr     Pointer to the start of the field data.
+  @param [in] Context Pointer to context specific information e.g. this
+                      could be a pointer to the ACPI table header.
+**/
+STATIC
+VOID
+EFIAPI
+ValidateInjectionFlags (
+  IN UINT8  *Ptr,
+  IN VOID   *Context
+  )
+{
+  UINT8  Flags;
+
+  Flags = *(UINT8 *)Ptr;
+
+  if (Flags != 0) {
+    IncrementErrorCount ();
+    Print (L"\nERROR: Injection Flags must be zero...");
+  }
+}
+
+/**
+  An ACPI_PARSER array describing the ACPI EINJ Table.
+**/
+STATIC CONST ACPI_PARSER  EinjParser[] = {
+  PARSE_ACPI_HEADER (&mAcpiHdrInfo),
+  { L"Injection Header Size",       4,  36, L"%d",   NULL, (VOID **)&mEinjInjectionHdrSize,
+    NULL,                           NULL },
+  { L"Injection Flags",             1,  40, L"0x%x", NULL, NULL,                            ValidateInjectionFlags,NULL },
+  { L"Reserved",                    3,  41, NULL,    NULL, NULL,                            NULL,  NULL },
+  { L"Injection Entry Count",       4,  44, L"%d",   NULL, (VOID **)&mEinjInjectionEntryCnt,
+    NULL,                           NULL },
+  /// Injection Action Table.
+  /// ...
+};
+
+/**
+  This function validates the injection action field in
+  the EINJ injection instruction entry.
+
+  @param [in] Ptr     Pointer to the start of the field data.
+  @param [in] Context Pointer to context specific information e.g. this
+                      could be a pointer to the ACPI table header.
+**/
+STATIC
+VOID
+EFIAPI
+ValidateInjectionAction (
+  IN UINT8  *Ptr,
+  IN VOID   *Context
+  )
+{
+  UINT8  InjectionAction;
+  UINT8  MaxInjectionAction;
+
+  InjectionAction = *(UINT8 *)Ptr;
+
+  /**
+   * EFI_ACPI_6_5_EINJ_TRIGGER_ERROR is only used Trigger Action Table
+   * not used in Injection Action Table in EINJ.
+   * Cf ACPI 6.5 Table 18.24 - Error Injection Table
+   * Cf ACPI 6.5 Table 18.36 - Trigger Error Action
+   */
+  if (*mAcpiHdrInfo.Revision < EFI_ACPI_6_5_ERROR_INJECTION_TABLE_REVISION) {
+    MaxInjectionAction = EFI_ACPI_6_5_EINJ_GET_EXECUTE_OPERATION_TIMINGS;
+  } else {
+    MaxInjectionAction = EFI_ACPI_6_5_EINJ_EINJV2_GET_ERROR_TYPE;
+  }
+
+  if ((InjectionAction < EFI_ACPI_6_5_EINJ_BEGIN_INJECTION_OPERATION) ||
+      (InjectionAction > MaxInjectionAction))
+  {
+    IncrementErrorCount ();
+    Print (L"\nERROR: Invalid Injection Action(0x%x)...", InjectionAction);
+  }
+}
+
+/**
+  This function validates the instruction field in
+  the EINJ injection instruction entry.
+
+  @param [in] Ptr     Pointer to the start of the field data.
+  @param [in] Context Pointer to context specific information e.g. this
+                      could be a pointer to the ACPI table header.
+**/
+STATIC
+VOID
+EFIAPI
+ValidateInstruction (
+  IN UINT8  *Ptr,
+  IN VOID   *Context
+  )
+{
+  UINT8  Inst;
+
+  Inst = *Ptr;
+
+  if (*mAcpiHdrInfo.Revision <= EFI_ACPI_6_5_ERROR_INJECTION_TABLE_REVISION) {
+    if (Inst > EFI_ACPI_6_5_EINJ_NOOP) {
+      IncrementErrorCount ();
+      Print (L"\nERROR: Invalid Instruction(0x%x)...", Inst);
+    }
+  }
+}
+
+/**
+  This function validates the register region field in
+  the EINJ injection instruction entry.
+
+  @param [in] Ptr     Pointer to the start of the field data.
+  @param [in] Context Pointer to context specific information e.g. this
+                      could be a pointer to the ACPI table header.
+**/
+STATIC
+VOID
+EFIAPI
+ValidateRegisterRegion (
+  IN UINT8  *Ptr,
+  IN VOID   *Context
+  )
+{
+  EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE  *RegisterRegion;
+
+  RegisterRegion = (EFI_ACPI_6_5_GENERIC_ADDRESS_STRUCTURE *)Ptr;
+
+  if ((RegisterRegion->AddressSpaceId != EFI_ACPI_6_5_SYSTEM_MEMORY) &&
+      (RegisterRegion->AddressSpaceId != EFI_ACPI_6_5_SYSTEM_IO))
+  {
+    IncrementErrorCount ();
+    Print (L"\nERROR: Register Region Must be SYSTEM_MEMORY or SYSTEM_IO...");
+  }
+}
+
+/**
+  Dumps the injection action fields in injection instruction entry.
+
+  @param [in] Format  Optional format string for tracing the data.
+  @param [in] Ptr     Pointer to the start of the buffer.
+**/
+STATIC
+VOID
+EFIAPI
+DumpInjectionInstAction (
+  IN CONST CHAR16  *Format OPTIONAL,
+  IN UINT8         *Ptr
+  )
+{
+  UINT8         InjectionAction;
+  CONST CHAR16  *ActionName;
+
+  InjectionAction = *Ptr;
+
+  switch (InjectionAction) {
+    case EFI_ACPI_6_5_EINJ_BEGIN_INJECTION_OPERATION:
+      ActionName = L"BEGIN_INJECTION_OPERATION";
+      break;
+    case EFI_ACPI_6_5_EINJ_GET_TRIGGER_ERROR_ACTION_TABLE:
+      ActionName = L"GET_TRIGGER_ERROR_ACTION_TABLE";
+      break;
+    case EFI_ACPI_6_5_EINJ_SET_ERROR_TYPE:
+      ActionName = L"SET_ERROR_TYPE";
+      break;
+    case EFI_ACPI_6_5_EINJ_GET_ERROR_TYPE:
+      ActionName = L"GET_ERROR_TYPE";
+      break;
+    case EFI_ACPI_6_5_EINJ_END_OPERATION:
+      ActionName = L"END_OPERATION";
+      break;
+    case EFI_ACPI_6_5_EINJ_EXECUTE_OPERATION:
+      ActionName = L"EXECUTE_OPERATION";
+      break;
+    case EFI_ACPI_6_5_EINJ_CHECK_BUSY_STATUS:
+      ActionName = L"CHECK_BUSY_STATUS";
+      break;
+    case EFI_ACPI_6_5_EINJ_GET_COMMAND_STATUS:
+      ActionName = L"GET_COMMAND_STATUS";
+      break;
+    case EFI_ACPI_6_5_EINJ_SET_ERROR_TYPE_WITH_ADDRESS:
+      ActionName = L"SET_ERROR_TYPE_WITH_ADDRESS";
+      break;
+    case EFI_ACPI_6_5_EINJ_GET_EXECUTE_OPERATION_TIMINGS:
+      ActionName = L"GET_EXECUTE_OPERATION_TIMINGS";
+      break;
+    case EFI_ACPI_6_5_EINJ_EINJV2_SET_ERROR_TYPE:
+      ActionName = L"EINJV2_SET_ERROR_TYPE";
+      break;
+    case EFI_ACPI_6_5_EINJ_EINJV2_GET_ERROR_TYPE:
+      ActionName = L"EINJV2_GET_ERROR_TYPE";
+      break;
+    case EFI_ACPI_6_5_EINJ_TRIGGER_ERROR:
+      ActionName = L"TRIGGER_ERROR";
+      break;
+    default:
+      IncrementErrorCount ();
+      ActionName = L"UNKNOWN";
+  }
+
+  Print (L"%s(0x%x)", ActionName, InjectionAction);
+}
+
+/**
+  Dumps the instruction fields in injection instruction entry.
+
+  @param [in] Format  Optional format string for tracing the data.
+  @param [in] Ptr     Pointer to the start of the buffer.
+**/
+STATIC
+VOID
+EFIAPI
+DumpInstruction (
+  IN CONST CHAR16  *Format OPTIONAL,
+  IN UINT8         *Ptr
+  )
+{
+  UINT8         Inst;
+  CONST CHAR16  *InstName;
+
+  Inst = *Ptr;
+
+  if (Inst < ARRAY_SIZE (InstNameTable)) {
+    InstName = InstNameTable[Inst];
+  } else {
+    IncrementErrorCount ();
+    InstName = L"UNKNOWN";
+  }
+
+  Print (L"%s(0x%x)", InstName, Inst);
+}
+
+/**
+  An ACPI_PARSER array describing the EINJ Injection instruction entry.
+**/
+STATIC CONST ACPI_PARSER  EinjInjectionInstEntryParser[] = {
+  { L"Injection Action", 1,  0,  NULL,    DumpInjectionInstAction, NULL,
+    ValidateInjectionAction, NULL },
+  { L"Instruction",      1,  1,  NULL,    DumpInstruction,         NULL,
+    ValidateInstruction, NULL },
+  { L"Flags",            1,  2,  L"0x%x", NULL,                    NULL,NULL,  NULL },
+  { L"Reserved",         1,  3,  NULL,    NULL,                    NULL,NULL,  NULL },
+  { L"Register Region",  12, 4,  NULL,    DumpGas,                 NULL,
+    ValidateRegisterRegion, NULL },
+  { L"Value",            8,  16, L"0x%x", NULL,                    NULL,NULL,  NULL },
+  { L"Mask",             8,  24, L"0x%x", NULL,                    NULL,NULL,  NULL },
+};
+
+/**
+  This function parses the EINJ table.
+  When trace is enabled this function parses the EINJ table and
+  traces the ACPI table fields.
+
+  This function also performs validation of the ACPI table fields.
+
+  @param [in] Trace              If TRUE, trace the ACPI fields.
+  @param [in] Ptr                Pointer to the start of the buffer.
+  @param [in] AcpiTableLength    Length of the ACPI table.
+  @param [in] AcpiTableRevision  Revision of the ACPI table.
+**/
+VOID
+EFIAPI
+ParseAcpiEinj (
+  IN BOOLEAN  Trace,
+  IN UINT8    *Ptr,
+  IN UINT32   AcpiTableLength,
+  IN UINT8    AcpiTableRevision
+  )
+{
+  UINT32  Offset;
+  UINT8   *InjInstEntryPtr;
+  UINT32  InjInstEntrySize;
+
+  if (!Trace) {
+    return;
+  }
+
+  Offset = ParseAcpi (
+             TRUE,
+             0,
+             "EINJ",
+             Ptr,
+             AcpiTableLength,
+             PARSER_PARAMS (EinjParser)
+             );
+
+  // Validate Error Source Descriptors Count.
+  if ((mEinjInjectionHdrSize == NULL) || (*mEinjInjectionHdrSize != Offset)) {
+    IncrementErrorCount ();
+    Print (L"ERROR: Invalid Injection Header...\n");
+    return;
+  }
+
+  if ((mEinjInjectionEntryCnt == NULL) || (*mEinjInjectionEntryCnt == 0)) {
+    IncrementErrorCount ();
+    Print (L"ERROR: Injection Instruction Entry should be presented...\n");
+    return;
+  }
+
+  InjInstEntrySize = sizeof (EFI_ACPI_6_5_EINJ_INJECTION_INSTRUCTION_ENTRY);
+
+  if ((*mEinjInjectionEntryCnt * InjInstEntrySize) != (AcpiTableLength - Offset)) {
+    IncrementErrorCount ();
+    Print (
+      L"ERROR: Incorrect count for Injection Instruction Entry.\n" \
+      L"       Injection Entry Count= %d.\n" \
+      L"       Present Count= %d.\n",
+      *mEinjInjectionEntryCnt,
+      (AcpiTableLength - Offset) / InjInstEntrySize
+      );
+  }
+
+  while (Offset < AcpiTableLength) {
+    InjInstEntryPtr = Ptr + Offset;
+
+    // Get Injection Instruction Entry.
+    ParseAcpi (
+      TRUE,
+      2,
+      "Injection Instruction Entry",
+      InjInstEntryPtr,
+      AcpiTableLength - Offset,
+      PARSER_PARAMS (EinjInjectionInstEntryParser)
+      );
+
+    Offset += InjInstEntrySize;
+  } // while
+}
diff --git a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c
index 0bdf068fe07614727e690897d9c76a5686be18b5..4a90372d81ff1eb2caeb3a477d058d08ffc1bdbf 100644
--- a/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c
+++ b/ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c
@@ -54,6 +54,7 @@ ACPI_TABLE_PARSER  ParserList[] = {
   { EFI_ACPI_6_2_DEBUG_PORT_2_TABLE_SIGNATURE,                                                           ParseAcpiDbg2 },
   { EFI_ACPI_6_2_DIFFERENTIATED_SYSTEM_DESCRIPTION_TABLE_SIGNATURE,
     ParseAcpiDsdt },
+  { EFI_ACPI_6_5_ERROR_INJECTION_TABLE_SIGNATURE,                                                        ParseAcpiEinj },
   { EFI_ACPI_6_4_ERROR_RECORD_SERIALIZATION_TABLE_SIGNATURE,                                             ParseAcpiErst },
   { EFI_ACPI_6_3_FIRMWARE_ACPI_CONTROL_STRUCTURE_SIGNATURE,                                              ParseAcpiFacs },
   { EFI_ACPI_6_2_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE,                                                 ParseAcpiFadt },
--
Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#118818): https://edk2.groups.io/g/devel/message/118818
Mute This Topic: https://groups.io/mt/106019474/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [edk2-devel] [PATCH v1 0/4] Add EINJ table parser.
  2024-05-10 12:22 [edk2-devel] [PATCH v1 0/4] Add EINJ table parser levi.yun
                   ` (3 preceding siblings ...)
  2024-05-10 12:22 ` [edk2-devel] [PATCH v1 4/4] ShellPkg/Acpiview: Add EINJ Parser levi.yun
@ 2024-05-13  7:41 ` PierreGondois
  2024-05-23  8:52 ` levi.yun
  2024-06-03  6:36 ` levi.yun
  6 siblings, 0 replies; 8+ messages in thread
From: PierreGondois @ 2024-05-13  7:41 UTC (permalink / raw)
  To: levi.yun, devel
  Cc: sami.mujawar, zhiguang.liu, dandan.bi, gaoliming, zhichao.gao, nd

Hello,
For the whole patch-set:
Reviewed-by: Pierre Gondois <pierre.gondois@arm.com>

Thanks,
Pierre

On 5/10/24 14:22, levi.yun wrote:
> Add Error Injection Table (EINJ) parser for AcpiView and
> add some missing Error Injection Action definitions in each Acpi*
> headers.
> 
> The changes can be seen at:
>      https://github.com/LeviYeoReum/edk2/tree/levi/3075_einj_table_v1
> 
> 
> levi.yun (4):
>    MdePkg/Include/IndustryStandard: Update SET_ERROR_TYPE_WITH_ADDRESS
>      Error Injection Actions
>    MdePkg/Include/IndustryStandard: Update GET_EXECUTE_OPERATION_TIMINGS
>      Error Injection Actions
>    MdePkg/Include/IndustryStandard: Update EINJ information according to
>      ACPI 6.5
>    ShellPkg/Acpiview: Add EINJ Parser
> 
>   ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf |   1 +
>   MdePkg/Include/IndustryStandard/Acpi51.h                                     |   1 +
>   MdePkg/Include/IndustryStandard/Acpi60.h                                     |   1 +
>   MdePkg/Include/IndustryStandard/Acpi61.h                                     |   2 +
>   MdePkg/Include/IndustryStandard/Acpi62.h                                     |   2 +
>   MdePkg/Include/IndustryStandard/Acpi63.h                                     |   2 +
>   MdePkg/Include/IndustryStandard/Acpi64.h                                     |   2 +
>   MdePkg/Include/IndustryStandard/Acpi65.h                                     |   6 +-
>   ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h                    |  21 ++
>   ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Einj/EinjParser.c       | 358 ++++++++++++++++++++
>   ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c   |   1 +
>   11 files changed, 396 insertions(+), 1 deletion(-)
>   create mode 100644 ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Einj/EinjParser.c
> 
> --
> Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#118858): https://edk2.groups.io/g/devel/message/118858
Mute This Topic: https://groups.io/mt/106019470/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [edk2-devel] [PATCH v1 0/4] Add EINJ table parser.
  2024-05-10 12:22 [edk2-devel] [PATCH v1 0/4] Add EINJ table parser levi.yun
                   ` (4 preceding siblings ...)
  2024-05-13  7:41 ` [edk2-devel] [PATCH v1 0/4] Add EINJ table parser PierreGondois
@ 2024-05-23  8:52 ` levi.yun
  2024-06-03  6:36 ` levi.yun
  6 siblings, 0 replies; 8+ messages in thread
From: levi.yun @ 2024-05-23  8:52 UTC (permalink / raw)
  To: levi.yun, devel

[-- Attachment #1: Type: text/plain, Size: 401 bytes --]

Gentle ping for this patchset. ;)


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#119136): https://edk2.groups.io/g/devel/message/119136
Mute This Topic: https://groups.io/mt/106019470/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



[-- Attachment #2: Type: text/html, Size: 813 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [edk2-devel] [PATCH v1 0/4] Add EINJ table parser.
  2024-05-10 12:22 [edk2-devel] [PATCH v1 0/4] Add EINJ table parser levi.yun
                   ` (5 preceding siblings ...)
  2024-05-23  8:52 ` levi.yun
@ 2024-06-03  6:36 ` levi.yun
  6 siblings, 0 replies; 8+ messages in thread
From: levi.yun @ 2024-06-03  6:36 UTC (permalink / raw)
  To: devel@edk2.groups.io
  Cc: Sami Mujawar, Pierre Gondois, zhiguang.liu@intel.com,
	dandan.bi@intel.com, gaoliming@byosoft.com.cn,
	zhichao.gao@intel.com, nd

Hi ShellPkg and Acpi Header maintainers.

Would you confirm patcheset EINJ table parser please?

Thanks.

________________________________________
From: levi.yun <yeoreum.yun@arm.com>
Sent: 10 May 2024 13:22
To: devel@edk2.groups.io
Cc: Yeo Reum Yun; Sami Mujawar; Pierre Gondois; zhiguang.liu@intel.com; dandan.bi@intel.com; gaoliming@byosoft.com.cn; zhichao.gao@intel.com; nd
Subject: [PATCH v1 0/4] Add EINJ table parser.

Add Error Injection Table (EINJ) parser for AcpiView and
add some missing Error Injection Action definitions in each Acpi*
headers.

The changes can be seen at:
    https://github.com/LeviYeoReum/edk2/tree/levi/3075_einj_table_v1


levi.yun (4):
  MdePkg/Include/IndustryStandard: Update SET_ERROR_TYPE_WITH_ADDRESS
    Error Injection Actions
  MdePkg/Include/IndustryStandard: Update GET_EXECUTE_OPERATION_TIMINGS
    Error Injection Actions
  MdePkg/Include/IndustryStandard: Update EINJ information according to
    ACPI 6.5
  ShellPkg/Acpiview: Add EINJ Parser

 ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.inf |   1 +
 MdePkg/Include/IndustryStandard/Acpi51.h                                     |   1 +
 MdePkg/Include/IndustryStandard/Acpi60.h                                     |   1 +
 MdePkg/Include/IndustryStandard/Acpi61.h                                     |   2 +
 MdePkg/Include/IndustryStandard/Acpi62.h                                     |   2 +
 MdePkg/Include/IndustryStandard/Acpi63.h                                     |   2 +
 MdePkg/Include/IndustryStandard/Acpi64.h                                     |   2 +
 MdePkg/Include/IndustryStandard/Acpi65.h                                     |   6 +-
 ShellPkg/Library/UefiShellAcpiViewCommandLib/AcpiParser.h                    |  21 ++
 ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Einj/EinjParser.c       | 358 ++++++++++++++++++++
 ShellPkg/Library/UefiShellAcpiViewCommandLib/UefiShellAcpiViewCommandLib.c   |   1 +
 11 files changed, 396 insertions(+), 1 deletion(-)
 create mode 100644 ShellPkg/Library/UefiShellAcpiViewCommandLib/Parsers/Einj/EinjParser.c

--
Guid("CE165669-3EF3-493F-B85D-6190EE5B9759")



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#119422): https://edk2.groups.io/g/devel/message/119422
Mute This Topic: https://groups.io/mt/106019470/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2024-06-03  6:37 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-10 12:22 [edk2-devel] [PATCH v1 0/4] Add EINJ table parser levi.yun
2024-05-10 12:22 ` [edk2-devel] [PATCH v1 1/4] MdePkg/Include/IndustryStandard: Update SET_ERROR_TYPE_WITH_ADDRESS Error Injection Actions levi.yun
2024-05-10 12:22 ` [edk2-devel] [PATCH v1 2/4] MdePkg/Include/IndustryStandard: Update GET_EXECUTE_OPERATION_TIMINGS " levi.yun
2024-05-10 12:22 ` [edk2-devel] [PATCH v1 3/4] MdePkg/Include/IndustryStandard: Update EINJ information according to ACPI 6.5 levi.yun
2024-05-10 12:22 ` [edk2-devel] [PATCH v1 4/4] ShellPkg/Acpiview: Add EINJ Parser levi.yun
2024-05-13  7:41 ` [edk2-devel] [PATCH v1 0/4] Add EINJ table parser PierreGondois
2024-05-23  8:52 ` levi.yun
2024-06-03  6:36 ` levi.yun

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox