From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by mx.groups.io with SMTP id smtpd.web12.10669.1604046989300503617 for ; Fri, 30 Oct 2020 01:36:29 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=pass (domain: arm.com, ip: 217.140.110.172, mailfrom: omkar.kulkarni@arm.com) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D411ED6E; Fri, 30 Oct 2020 01:36:28 -0700 (PDT) Received: from usa.arm.com (a076764.blr.arm.com [10.162.16.42]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 373F83F719; Fri, 30 Oct 2020 01:36:26 -0700 (PDT) From: "Omkar Anand Kulkarni" To: devel@edk2.groups.io Cc: Ard Biesheuvel , Leif Lindholm , Sami Mujawar , Jiewen Yao Subject: [PATCH 2/3] ArmPlatformPkg: add definition for MM_HEST_ERROR_SOURCE_DESC_PROTOCOL Date: Fri, 30 Oct 2020 14:06:10 +0530 Message-Id: <20201030083611.8196-3-omkar.kulkarni@arm.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20201030083611.8196-1-omkar.kulkarni@arm.com> References: <20201030083611.8196-1-omkar.kulkarni@arm.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable 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/ArmPlatfo= rmPkg.dec index 23c5b768f677..8fc44c40e813 100644 --- a/ArmPlatformPkg/ArmPlatformPkg.dec +++ b/ArmPlatformPkg/ArmPlatformPkg.dec @@ -114,3 +114,4 @@ [Protocols.common] ## Arm Platform HEST table generation protocol gHestTableProtocolGuid =3D { 0x705bdcd9, 0x8c47, 0x457e, { 0xad, 0x0d,= 0xf7, 0x86, 0xf3, 0x4a, 0x0d, 0x63 } } + gMmHestErrorSourceDescProtocolGuid =3D { 0x560bf236, 0xa4a8, 0x4d69, {= 0xbc, 0xf6, 0xc2, 0x97, 0x24, 0x10, 0x9d, 0x91 } } diff --git a/ArmPlatformPkg/Include/Protocol/HestErrorSourceInfo.h b/ArmP= latformPkg/Include/Protocol/HestErrorSourceInfo.h new file mode 100644 index 000000000000..396a7cc48ee9 --- /dev/null +++ b/ArmPlatformPkg/Include/Protocol/HestErrorSourceInfo.h @@ -0,0 +1,64 @@ +/** @file + Standalone MM protocol to get the HEST secure error source descriptor + information. + + Drivers must implement his protocol in order to pusblih their Hardware + error source descriptor information to OS through the HEST ACPI table. + + Copyright (c) 2020, 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, 0x= 9d, 0x91 } \ + } + +typedef struct MM_HEST_ERROR_SOURCE_DESC_PROTOCOL_ + MM_HEST_ERROR_SOURCE_DESC_PROTOCOL; + +/** + Get HEST Secure Error Source Descriptors. + + The 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 + descriptors. + If the user of this driver calls the protocol by passing NULL as Buffe= r parameter. + Then protocol shall return EFI_INVALID_PARAMETR with the total length = and count of + the error source descriptor it supports. + + @param[in] This Instance of MM_HEST_ERROR_SOURCE_DESC_P= ROTOCOL. + @param[out] Buffer Buffer to be appended with the error so= urce descriptors information. + @param[out] ErrorSourcesLength Total length of all the error source de= scriptors. + @param[out] ErrorSourceCount Count of total error source descriptors= supported by the + driver. + + retval EFI_SUCCESS If the Buffer is valid and is filled wi= th valid Error Source + descriptor data. + retval EFI_INVALID_PARAMTER Buffer is NULL. + retval Other If no error source descriptor informati= on 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_ --=20 2.17.1