public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
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] Platform/Sgi: Add platform support for firmware first error handling
Date: Tue, 24 Aug 2021 11:30:22 +0530	[thread overview]
Message-ID: <20210824060027.27246-1-omkar.kulkarni@arm.com> (raw)

Changes since v2:
- Rebased to the latest upstream code.

This patch series introduces platform support for RAS using Firmware First
error handling. Firmware first error handling on ARM Neoverse reference design
platforms is achieved using HEST[1] and SDEI[2] ACPI tables.

For doing so the Platform Error handler DXE driver is introduced. This driver
is integral part of the firmware first error handling framework in EDK2. SDEI
being the notification mechanism used to communicate the platform errors to
OSPM, it builds and installs the SDEI ACPI table. Also installs the HEST table
which is already created as part of firmware first framework in EDK2.

This series does provide a reference implementation to leverage the firmware
first framework by implementing a platform MM driver for Dynamic Memory
Controller DMC[3] that has RAS feature enabled. This driver mainly handles
following:
- Implements the Hest Error Source Descriptor protocol introduced as part of
  firmware first framework in EDK2. Publishes the 1-bit ECC DRAM error sources
  as GHESv2[4] type error source descriptors.
- For any 1-bit CE that occurs on DRAM it reads DMC error record registers and
  populates a error status block (CPER)[5] of Memory Type error[6].

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] : DMC620 Dynamic Memory Controller, revision r1p0
[4] : ACPI Reference Specification 6.3, Table 18-393 GHESv2 Structure
[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

This patch series is dependent on the edk2 patch series
https://edk2.groups.io/g/devel/message/79741

Link to github branch with the patches in this series -
https://github.com/omkkul01/edk2-platforms/tree/ras_firware_first_edk2-platforms_v3

Omkar Anand Kulkarni (5):
  Platform/ARM: Add DMC-620 ECC error handling driver
  Platform/Sgi: dmc-620 firmware-first error handling
  Platform/Sgi: define memory region for GHES error status block
  Platform/Sgi: Define values for ACPI table header
  Platform/Sgi: Add platform error handling driver

 Platform/ARM/Drivers/Dmc620Mm/Dmc620Mm.dec    |  30 ++
 Platform/ARM/SgiPkg/SgiPlatform.dec           |   1 +
 Platform/ARM/SgiPkg/SgiPlatform.dsc.inc       |  38 ++
 Platform/ARM/SgiPkg/SgiPlatformMm.dsc.inc     |  30 ++
 Platform/ARM/SgiPkg/PlatformStandaloneMm.fdf  |   6 +
 Platform/ARM/SgiPkg/SgiPlatform.fdf           |  13 +
 Platform/ARM/Drivers/Dmc620Mm/Dmc620Mm.inf    |  61 +++
 .../PlatformErrorHandlerDxe.inf               |  51 +++
 .../Library/PlatformLib/PlatformLib.inf       |   6 +
 Platform/ARM/Drivers/Dmc620Mm/Dmc620Mm.h      | 174 +++++++++
 Platform/ARM/Drivers/Dmc620Mm/Dmc620Mm.c      | 362 ++++++++++++++++++
 .../Dmc620Mm/Dmc620MmErrorSourceInfo.c        | 194 ++++++++++
 .../PlatformErrorHandlerDxe.c                 | 171 +++++++++
 .../Library/PlatformLib/PlatformLibMem.c      |  13 +-
 14 files changed, 1148 insertions(+), 2 deletions(-)
 create mode 100644 Platform/ARM/Drivers/Dmc620Mm/Dmc620Mm.dec
 create mode 100644 Platform/ARM/Drivers/Dmc620Mm/Dmc620Mm.inf
 create mode 100644 Platform/ARM/SgiPkg/Drivers/PlatformErrorHandlerDxe/PlatformErrorHandlerDxe.inf
 create mode 100644 Platform/ARM/Drivers/Dmc620Mm/Dmc620Mm.h
 create mode 100644 Platform/ARM/Drivers/Dmc620Mm/Dmc620Mm.c
 create mode 100644 Platform/ARM/Drivers/Dmc620Mm/Dmc620MmErrorSourceInfo.c
 create mode 100644 Platform/ARM/SgiPkg/Drivers/PlatformErrorHandlerDxe/PlatformErrorHandlerDxe.c

-- 
2.17.1


             reply	other threads:[~2021-08-24  6:00 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-24  6:00 Omkar Anand Kulkarni [this message]
2021-08-24  6:00 ` [edk2-platforms][PATCH v3 1/5] Platform/ARM: Add DMC-620 ECC error handling driver Omkar Anand Kulkarni
2021-09-27 17:30   ` Sami Mujawar
2021-08-24  6:00 ` [edk2-platforms][PATCH v3 2/5] Platform/Sgi: dmc-620 firmware-first error handling Omkar Anand Kulkarni
2021-10-04 12:45   ` Sami Mujawar
2021-08-24  6:00 ` [edk2-platforms][PATCH v3 3/5] Platform/Sgi: define memory region for GHES error status block Omkar Anand Kulkarni
2021-10-04 18:23   ` Sami Mujawar
2021-08-24  6:00 ` [edk2-platforms][PATCH v3 4/5] Platform/Sgi: Define values for ACPI table header Omkar Anand Kulkarni
2021-10-04 12:46   ` Sami Mujawar
2021-08-24  6:00 ` [edk2-platforms][PATCH v3 5/5] Platform/Sgi: Add platform error handling driver Omkar Anand Kulkarni
2021-10-04 12:46   ` 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=20210824060027.27246-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