Hi Omkar, I will pick this up for review this week.
Regards, Sami Mujawar On 26/07/2021, 15:52, "Omkar Kulkarni" <omkar.kulka...@arm.com> wrote: Gentle reminder to review this patch series. Regards, Omkar > Changes since v1: > - Helper added for HEST ACPI table generation. > - 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. > > - PlatformErrorHandlerDxe: > Builds and installs SDEI ACPI table. This driver does not initialize(load) > until HestErrorSourceDxe driver has finished appending all possible GHESv2 > error source descriptors to the HEST table. Once that is complete using the > HestTableDxe driver it installs the HEST table. > > This patch series provides reference implementation for DMC-620 Dynamic > Memory > Controller[4] that has RAS feature enabled. This is platform code > implemented as Standalone MM driver in edk2-platforms. > > References: > [1] : ACPI 6.3, Table 18-382, Hardware Error Source Table > [2] : SDEI Platform Design Document, revision b, 10 Appendix C, ACPI table > definitions for SDEI > [3] : ACPI Reference Specification 6.3, Table 18-393 GHESv2 Structure > [4] : DMC620 Dynamic Memory Controller, revision r1p0 > [5] : UEFI Reference Specification 2.8, Appendix N - Common Platform Error > Record > [6] : UEFI Reference Specification 2.8, Section N.2.5 Memory Error Section > > Link to github branch with the patches in this series - > https://github.com/omkkul01/edk2/tree/ras_firmware_first_edk2 > > Omkar Anand Kulkarni (4): > 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: Add helpers for HEST table generation > > ArmPlatformPkg/ArmPlatformPkg.dec | 12 + > .../Drivers/Apei/HestDxe/HestDxe.inf | 49 +++ > .../HestMmErrorSources/HestErrorSourceDxe.inf | 44 +++ > .../HestErrorSourceStandaloneMm.inf | 51 +++ > .../HestMmErrorSourceCommon.h | 37 ++ > ArmPlatformPkg/Include/HestAcpiHeader.h | 49 +++ > .../Include/Protocol/HestErrorSourceInfo.h | 64 ++++ > ArmPlatformPkg/Include/Protocol/HestTable.h | 71 ++++ > ArmPlatformPkg/Drivers/Apei/HestDxe/HestDxe.c | 354 > ++++++++++++++++++ > .../HestMmErrorSources/HestErrorSourceDxe.c | 308 +++++++++++++++ > .../HestErrorSourceStandaloneMm.c | 312 +++++++++++++++ > 11 files changed, 1351 insertions(+) > create mode 100644 ArmPlatformPkg/Drivers/Apei/HestDxe/HestDxe.inf > create mode 100644 > ArmPlatformPkg/Drivers/HestMmErrorSources/HestErrorSourceDxe.inf > create mode 100644 > ArmPlatformPkg/Drivers/HestMmErrorSources/HestErrorSourceStandalone > Mm.inf > create mode 100644 > ArmPlatformPkg/Drivers/HestMmErrorSources/HestMmErrorSourceCommo > n.h > create mode 100644 ArmPlatformPkg/Include/HestAcpiHeader.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/HestErrorSourceStandalone > Mm.c > > -- > 2.17.1 > > > > -=-=-=-=-=-= > Groups.io Links: You receive all messages sent to this group. > View/Reply Online (#77667): https://edk2.groups.io/g/devel/message/77667 > Mute This Topic: https://groups.io/mt/84115237/4857533 > Group Owner: devel+ow...@edk2.groups.io > Unsubscribe: https://edk2.groups.io/g/devel/unsub > [omkar.kulka...@arm.com] > -=-=-=-=-=-= > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#78206): https://edk2.groups.io/g/devel/message/78206 Mute This Topic: https://groups.io/mt/84115237/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-