Hi Omkar, Please find my response below marked [SAMI] Regards, Sami Mujawar On 10/07/2021 05:18 PM, Omkar Anand Kulkarni wrote: > Add the protocol definition of the MM_HEST_ERROR_SOURCE_DESC_PROTOCOL > protocol. This protocol can be implemented by MM drivers to publish > error source descriptors that have to be populated into HEST table. > > Co-authored-by: Thomas Abraham > Signed-off-by: Omkar Anand Kulkarni > --- > ArmPlatformPkg/ArmPlatformPkg.dec | 1 + > ArmPlatformPkg/Include/Protocol/HestErrorSourceInfo.h | 64 ++++++++++++++++++++ > 2 files changed, 65 insertions(+) > > diff --git a/ArmPlatformPkg/ArmPlatformPkg.dec b/ArmPlatformPkg/ArmPlatformPkg.dec > index e4afe5da8e11..4f062292663b 100644 > --- a/ArmPlatformPkg/ArmPlatformPkg.dec > +++ b/ArmPlatformPkg/ArmPlatformPkg.dec > @@ -131,3 +131,4 @@ > [Protocols.common] > ## Arm Platform HEST table generation protocol > gHestTableProtocolGuid = { 0x705bdcd9, 0x8c47, 0x457e, { 0xad, 0x0d, 0xf7, 0x86, 0xf3, 0x4a, 0x0d, 0x63 } } > + gMmHestErrorSourceDescProtocolGuid = { 0x560bf236, 0xa4a8, 0x4d69, { 0xbc, 0xf6, 0xc2, 0x97, 0x24, 0x10, 0x9d, 0x91 } } > diff --git a/ArmPlatformPkg/Include/Protocol/HestErrorSourceInfo.h b/ArmPlatformPkg/Include/Protocol/HestErrorSourceInfo.h > new file mode 100644 > index 000000000000..95afd4dffe9c > --- /dev/null > +++ b/ArmPlatformPkg/Include/Protocol/HestErrorSourceInfo.h > @@ -0,0 +1,64 @@ > +/** @file > + MM protocol to get the secure error source descriptor information. > + > + MM Drivers must implement this protocol in order to publish secure side > + error source descriptor information to OSPM through the HEST ACPI table. > + > + Copyright (c) 2020 - 2021, ARM Limited. All rights reserved. > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#ifndef MM_HEST_ERROR_SOURCE_DESC_ > +#define MM_HEST_ERROR_SOURCE_DESC_ > + > +#define MM_HEST_ERROR_SOURCE_DESC_PROTOCOL_GUID \ > + { \ > + 0x560bf236, 0xa4a8, 0x4d69, { 0xbc, 0xf6, 0xc2, 0x97, 0x24, 0x10, 0x9d, 0x91 } \ > + } > + > +typedef struct MM_HEST_ERROR_SOURCE_DESC_PROTOCOL_ [SAMI] Not sure if a trailing underscore would be right to use for the name tag. Can MmHestErrorSourceDescProtocol be used as the name tag? Also see https://edk2-docs.gitbook.io/edk-ii-c-coding-standards-specification/5_source_files/56_declarations_and_types#5-6-3-2-structure-declaration-with-forward-reference-or-self-reference > + MM_HEST_ERROR_SOURCE_DESC_PROTOCOL; > + > +/** > + Get HEST Secure Error Source Descriptors. > + > + The MM drivers implementing this protocol must convey the total count and > + total length of the error sources the driver has along with the actual error > + source descriptor(s). > + > + Passing NULL as Buffer parameter shall return EFI_INVALID_PARAMETR with the > + total length and count of the error source descriptor(s) it supports. > + > + @param[in] This MM_HEST_ERROR_SOURCE_DESC_PROTOCOL instance. > + @param[out] Buffer Buffer to be appended with the error > + source descriptors information. > + @param[out] ErrorSourcesLength Total length of all the error source > + descriptors. > + @param[out] ErrorSourceCount Count of total error source descriptors > + supported by the driver. > + > + retval EFI_SUCCESS If the Buffer is valid and is filled with valid > + Error Source descriptor data. > + retval EFI_INVALID_PARAMTER Buffer is NULL. > + retval Other If no error source descriptor information is > + available. > +**/ > +typedef > +EFI_STATUS > +(EFIAPI *MM_HEST_GET_ERROR_SOURCE_DESCRIPTORS) ( > + IN MM_HEST_ERROR_SOURCE_DESC_PROTOCOL *This, > + OUT VOID **Buffer, > + OUT UINTN *ErrorSourcesLength, > + OUT UINTN *ErrorSourcesCount > + ); > + > +// > +// Protocol declaration > +// > +struct MM_HEST_ERROR_SOURCE_DESC_PROTOCOL_ { > + MM_HEST_GET_ERROR_SOURCE_DESCRIPTORS GetHestErrorSourceDescriptors; > +}; > + > +extern EFI_GUID gMmHestErrorSourceDescProtocolGuid; > + > +#endif // MM_HEST_ERROR_SOURCE_DESC_