* [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