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