public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* Re: [edk2-devel] [PATCH v2 0/4] ArmPlatformPkg: Add support to generate HEST ACPI table
       [not found] <16907A4B86D28C62.24921@groups.io>
@ 2021-07-26 14:51 ` Omkar Anand Kulkarni
  2021-07-27  8:54   ` Sami Mujawar
  0 siblings, 1 reply; 3+ messages in thread
From: Omkar Anand Kulkarni @ 2021-07-26 14:51 UTC (permalink / raw)
  To: devel@edk2.groups.io, Omkar Kulkarni; +Cc: Ard Biesheuvel, Sami Mujawar, nd

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+owner@edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub
> [omkar.kulkarni@arm.com]
> -=-=-=-=-=-=
> 


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [edk2-devel] [PATCH v2 0/4] ArmPlatformPkg: Add support to generate HEST ACPI table
  2021-07-26 14:51 ` [edk2-devel] [PATCH v2 0/4] ArmPlatformPkg: Add support to generate HEST ACPI table Omkar Anand Kulkarni
@ 2021-07-27  8:54   ` Sami Mujawar
  2021-07-27 11:20     ` Omkar Anand Kulkarni
  0 siblings, 1 reply; 3+ messages in thread
From: Sami Mujawar @ 2021-07-27  8:54 UTC (permalink / raw)
  To: Omkar Kulkarni, devel@edk2.groups.io; +Cc: Ard Biesheuvel, nd

Hi Omkar,

I will pick this up for review this week.

Regards,

Sami Mujawar

On 26/07/2021, 15:52, "Omkar Kulkarni" <Omkar.Kulkarni@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+owner@edk2.groups.io
    > Unsubscribe: https://edk2.groups.io/g/devel/unsub
    > [omkar.kulkarni@arm.com]
    > -=-=-=-=-=-=
    >



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [edk2-devel] [PATCH v2 0/4] ArmPlatformPkg: Add support to generate HEST ACPI table
  2021-07-27  8:54   ` Sami Mujawar
@ 2021-07-27 11:20     ` Omkar Anand Kulkarni
  0 siblings, 0 replies; 3+ messages in thread
From: Omkar Anand Kulkarni @ 2021-07-27 11:20 UTC (permalink / raw)
  To: Sami Mujawar, devel@edk2.groups.io; +Cc: Ard Biesheuvel, nd

Thanks Sami.

Regards,
Omkar

> Hi Omkar,
> 
> I will pick this up for review this week.
> 
> Regards,
> 
> Sami Mujawar
> 
> On 26/07/2021, 15:52, "Omkar Kulkarni" <Omkar.Kulkarni@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+owner@edk2.groups.io
>     > Unsubscribe: https://edk2.groups.io/g/devel/unsub
>     > [omkar.kulkarni@arm.com]
>     > -=-=-=-=-=-=
>     >
> 
> 


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-07-27 11:20 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <16907A4B86D28C62.24921@groups.io>
2021-07-26 14:51 ` [edk2-devel] [PATCH v2 0/4] ArmPlatformPkg: Add support to generate HEST ACPI table Omkar Anand Kulkarni
2021-07-27  8:54   ` Sami Mujawar
2021-07-27 11:20     ` Omkar Anand Kulkarni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox