From: omkar.kulkarni@arm.com
To: devel@edk2.groups.io
Cc: Ard Biesheuvel <ard.biesheuvel@arm.com>,
Leif Lindholm <leif@nuviainc.com>,
Sami Mujawar <sami.mujawar@arm.com>,
Jiewen Yao <jiewen.yao@intel.com>
Subject: [PATCH 0/3] ArmPlatformPkg: Introduce dynamic generation of HEST table
Date: Fri, 30 Oct 2020 14:06:08 +0530 [thread overview]
Message-ID: <20201030083611.8196-1-omkar.kulkarni@arm.com> (raw)
This patch series adds support for dynamic creation of the HEST ACPI
table with the error source descritors reterived from various other
error handling drivers, including those implemented in StandaloneMM.
The first patch adds a HEST table generation driver and introduces HEST
table protocol. The driver enables dynamic creation of HEST ACPI table.
The driver implements HEST table protocol serives to append error source
descriptors to the table and install the fully populated HEST table.
This enables other drivers to append and publish error source descriptor
information to HEST table. The append protocol service when called for
the first time creates HEST table and populates it with HEST header
information. So on subsequent calls made to append service only error
source descriptor information be appended at the end of HEST table.
After all the hardware error source descriptors are added to the HEST
table, install protocol service is used to publish the HEST table to
OSPM.
The second patch introduces a protocol definition to Get HEST error
source descriptors from StandaloneMM. The protocol should be implemented
by MM drivers that publish it's error sources as error source
descriptors via HEST ACPI table.
The third patch is combination of Hest Error Source DXE and its
Standalone MM counterpart. These are responsible to collect all RAS
error sources that are implemented as MM drivers. DXE driver
communicates with Standalone MM driver using MM Communicate 2 protocol.
First call into the Standalone MM is returned with the size of MM
Communicate buffer required to hold all error source descriptor
information. The DXE driver then allocates MM Communicate buffer buffer
required to hold Error Source descriptor information like count of error
source descriptors, total length of error source descriptors and
the descriptor information itself and calls agian into Standalone MM.
The MM counterpart of this driver is implemented as a gateway driver
and DXE driver communicates only with it to get information on the error
source descriptors supported by drivers in MM. Standalone MM driver
locates all handles implementing Get Error Source Descriptor protocol.
Loops over the handles and calls into respective MM driver.
Omkar Anand Kulkarni (3):
ArmPlatformPkg: Allow dynamic generation of HEST ACPI table
ArmPlatformPkg: add definition for MM_HEST_ERROR_SOURCE_DESC_PROTOCOL
ArmPlatformPkg: retreive error source descriptors from MM
ArmPlatformPkg/ArmPlatformPkg.dec | 12 +
.../Drivers/Apei/HestDxe/HestDxe.inf | 45 +++
.../HestMmErrorSources/HestErrorSourceDxe.inf | 41 +++
.../HestErrorSourceStandaloneMm.inf | 51 +++
.../HestMmErrorSourceCommon.h | 33 ++
.../Include/Protocol/HestErrorSourceInfo.h | 64 ++++
ArmPlatformPkg/Include/Protocol/HestTable.h | 66 ++++
ArmPlatformPkg/Drivers/Apei/HestDxe/HestDxe.c | 320 ++++++++++++++++++
.../HestMmErrorSources/HestErrorSourceDxe.c | 257 ++++++++++++++
.../HestErrorSourceStandaloneMm.c | 282 +++++++++++++++
10 files changed, 1171 insertions(+)
create mode 100644 ArmPlatformPkg/Drivers/Apei/HestDxe/HestDxe.inf
create mode 100644 ArmPlatformPkg/Drivers/HestMmErrorSources/HestErrorSourceDxe.inf
create mode 100644 ArmPlatformPkg/Drivers/HestMmErrorSources/HestErrorSourceStandaloneMm.inf
create mode 100644 ArmPlatformPkg/Drivers/HestMmErrorSources/HestMmErrorSourceCommon.h
create mode 100644 ArmPlatformPkg/Include/Protocol/HestErrorSourceInfo.h
create mode 100644 ArmPlatformPkg/Include/Protocol/HestTable.h
create mode 100644 ArmPlatformPkg/Drivers/Apei/HestDxe/HestDxe.c
create mode 100644 ArmPlatformPkg/Drivers/HestMmErrorSources/HestErrorSourceDxe.c
create mode 100644 ArmPlatformPkg/Drivers/HestMmErrorSources/HestErrorSourceStandaloneMm.c
--
2.17.1
next reply other threads:[~2020-10-30 8:36 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-30 8:36 omkar.kulkarni [this message]
2020-10-30 8:36 ` [PATCH 1/3] ArmPlatformPkg: Allow dynamic generation of HEST ACPI table Omkar Anand Kulkarni
2020-10-30 8:36 ` [PATCH 2/3] ArmPlatformPkg: add definition for MM_HEST_ERROR_SOURCE_DESC_PROTOCOL Omkar Anand Kulkarni
2020-10-30 8:36 ` [PATCH 3/3] ArmPlatformPkg: retreive error source descriptors from MM Omkar Anand Kulkarni
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=20201030083611.8196-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