From: "Omkar Anand Kulkarni" <omkar.kulkarni@arm.com>
To: devel@edk2.groups.io
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>,
Sami Mujawar <sami.mujawar@arm.com>
Subject: [edk2-platforms][PATCH v3 0/5] Add support to generate HEST ACPI table
Date: Tue, 24 Aug 2021 11:03:58 +0530 [thread overview]
Message-ID: <20210824053403.24103-1-omkar.kulkarni@arm.com> (raw)
Changes since v2:
- Addressed the comments given by Sami.
- Added Readme file with all cover letter information.
- Rebased to the latest upstream code.
Hardware Error Source Table (HEST)[1] and Software Delegated Exception Interface
(SDEI)[2] ACPI tables are used to acomplish firmware first error handling.This
patch series introduces a framework to build and install the HEST ACPI table
dynamically.
The following figure illustrates the possible usage of the dyanamic
generation of HEST ACPI table.
NS | S
+--------------------------------------+--------------------------------------+
| | |
|+-------------------------------------+---------------------+ |
|| +---------------------+--------------------+| |
|| | | || |
|| +-----------+ |+------------------+ | +-----------------+|| +-------------+|
|| |HestTable | || HestErrorSource | | | HestErrorSource ||| | DMC-620 ||
|| | DXE | || DXE | | | StandaloneMM ||| |Standalone MM||
|| +-----------+ |+------------------+ | +-----------------+|| +-------------+|
|| |GHESv2 | || |
|| +---------------------+--------------------+| |
|| +--------------------+ | | |
|| |PlatformErrorHandler| | | |
|| | DXE | | | |
|| +--------------------+ | | |
||FF FWK | | |
|+-------------------------------------+---------------------+ |
| | |
+--------------------------------------+--------------------------------------+
|
Figure: Firmware First Error Handling approach.
All the hardware error sources are added to HEST table as GHESv2[3] error source
descriptors. The framework comprises of following DXE and MM drivers:
- HestTableDxe:
Builds HEST table header and allows appending error source descriptors to the
HEST table. Also provides protocol interface to install the built HEST table.
- HestErrorSourceDxe & HestErrorSourceStandaloneMM:
These two drivers together retrieve all possible error source descriptors of
type GHESv2 from the MM drivers implementing HEST Error Source Descriptor
protocol. Once all the descriptors are collected HestErrorSourceDxe appends
it to HEST table using HestTableDxe driver.
Link to github branch with the patches in this series -
https://github.com/omkkul01/edk2/tree/ras_firware_first_edk2-platforms_v3
Omkar Anand Kulkarni (5):
MdeModulePkg: Allow dynamic generation of HEST ACPI table
ArmPlatformPkg: add definition for MM_HEST_ERROR_SOURCE_DESC_PROTOCOL
ArmPlatformPkg: retreive error source descriptors from MM
EmbeddedPkg: Add helpers for HEST table generation
ArmPlatformPkg: Add Readme file
ArmPlatformPkg/ArmPlatformPkg.dec | 10 +
MdeModulePkg/MdeModulePkg.dec | 3 +
.../HestMmErrorSources/HestErrorSourceDxe.inf | 45 +++
.../HestErrorSourceStandaloneMm.inf | 51 +++
.../Universal/Apei/HestDxe/HestDxe.inf | 49 +++
.../HestMmErrorSourceCommon.h | 37 ++
.../Include/Protocol/HestErrorSourceInfo.h | 64 ++++
EmbeddedPkg/Include/Library/AcpiLib.h | 20 ++
MdeModulePkg/Include/Protocol/HestTable.h | 71 ++++
MdePkg/Include/Protocol/MmCommunication.h | 2 +
.../HestMmErrorSources/HestErrorSourceDxe.c | 309 +++++++++++++++++
.../HestErrorSourceStandaloneMm.c | 312 +++++++++++++++++
MdeModulePkg/Universal/Apei/HestDxe/HestDxe.c | 318 ++++++++++++++++++
.../Drivers/HestMmErrorSources/Readme.md | 66 ++++
14 files changed, 1357 insertions(+)
create mode 100644 ArmPlatformPkg/Drivers/HestMmErrorSources/HestErrorSourceDxe.inf
create mode 100644 ArmPlatformPkg/Drivers/HestMmErrorSources/HestErrorSourceStandaloneMm.inf
create mode 100644 MdeModulePkg/Universal/Apei/HestDxe/HestDxe.inf
create mode 100644 ArmPlatformPkg/Drivers/HestMmErrorSources/HestMmErrorSourceCommon.h
create mode 100644 ArmPlatformPkg/Include/Protocol/HestErrorSourceInfo.h
create mode 100644 MdeModulePkg/Include/Protocol/HestTable.h
create mode 100644 ArmPlatformPkg/Drivers/HestMmErrorSources/HestErrorSourceDxe.c
create mode 100644 ArmPlatformPkg/Drivers/HestMmErrorSources/HestErrorSourceStandaloneMm.c
create mode 100644 MdeModulePkg/Universal/Apei/HestDxe/HestDxe.c
create mode 100644 ArmPlatformPkg/Drivers/HestMmErrorSources/Readme.md
--
2.17.1
next reply other threads:[~2021-08-24 5:34 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-24 5:33 Omkar Anand Kulkarni [this message]
2021-08-24 5:33 ` [edk2-platforms][PATCH v3 1/5] MdeModulePkg: Allow dynamic generation of HEST ACPI table Omkar Anand Kulkarni
2021-10-04 17:46 ` Sami Mujawar
2024-04-09 4:57 ` [edk2-devel] " Dhaval Sharma
2021-08-24 5:34 ` [edk2-platforms][PATCH v3 2/5] ArmPlatformPkg: add definition for MM_HEST_ERROR_SOURCE_DESC_PROTOCOL Omkar Anand Kulkarni
2021-10-04 17:47 ` Sami Mujawar
2021-08-24 5:34 ` [edk2-platforms][PATCH v3 3/5] ArmPlatformPkg: retreive error source descriptors from MM Omkar Anand Kulkarni
2021-10-04 17:47 ` Sami Mujawar
2021-08-24 5:34 ` [edk2-platforms][PATCH v3 4/5] EmbeddedPkg: Add helpers for HEST table generation Omkar Anand Kulkarni
2021-10-04 17:47 ` Sami Mujawar
2021-08-24 5:34 ` [edk2-platforms][PATCH v3 5/5] ArmPlatformPkg: Add Readme file Omkar Anand Kulkarni
2021-10-04 17:47 ` Sami Mujawar
2021-10-04 17:46 ` [edk2-platforms][PATCH v3 0/5] Add support to generate HEST ACPI table Sami Mujawar
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210824053403.24103-1-omkar.kulkarni@arm.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox