From nobody Fri May 3 15:46:05 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1508949192299232.38007339983767; Wed, 25 Oct 2017 09:33:12 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 0228B2034CF78; Wed, 25 Oct 2017 09:29:26 -0700 (PDT) Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by ml01.01.org (Postfix) with ESMTP id 0B6E52034CF77 for ; Wed, 25 Oct 2017 09:29:23 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 3430280D; Wed, 25 Oct 2017 09:33:09 -0700 (PDT) Received: from u201365.usa.Arm.com (bc-c3-3-14.eu.iaas.arm.com [10.6.43.238]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 1B2923F246; Wed, 25 Oct 2017 09:33:07 -0700 (PDT) X-Original-To: edk2-devel@lists.01.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=217.140.101.70; helo=foss.arm.com; envelope-from=supreeth.venkatesh@arm.com; receiver=edk2-devel@lists.01.org From: Supreeth Venkatesh To: edk2-devel@lists.01.org Date: Wed, 25 Oct 2017 17:32:56 +0100 Message-Id: <20171025163258.47961-2-supreeth.venkatesh@arm.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20171025163258.47961-1-supreeth.venkatesh@arm.com> References: <20171025163258.47961-1-supreeth.venkatesh@arm.com> Subject: [edk2] [PATCH v2 1/3] ArmPkg: Add PCDs needed for MM communication driver. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: leif.lindholm@linaro.org, ard.biesheuvel@linaro.org MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" This patch defines PCDs to describe the base address and size of communication buffer between normal world (uefi) and standalone MM environment in the secure world. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Achin Gupta Signed-off-by: Supreeth Venkatesh --- ArmPkg/ArmPkg.dec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ArmPkg/ArmPkg.dec b/ArmPkg/ArmPkg.dec index f99054a7de..d871ecc654 100644 --- a/ArmPkg/ArmPkg.dec +++ b/ArmPkg/ArmPkg.dec @@ -229,6 +229,9 @@ gArmTokenSpaceGuid.PcdSystemMemoryBase|0|UINT64|0x00000029 gArmTokenSpaceGuid.PcdSystemMemorySize|0|UINT64|0x0000002A =20 + gArmTokenSpaceGuid.PcdMmBufferBase|0|UINT64|0x00000045 + gArmTokenSpaceGuid.PcdMmBufferSize|0|UINT64|0x00000046 + [PcdsFixedAtBuild.common, PcdsDynamic.common] # # ARM Architectural Timer --=20 2.14.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel From nobody Fri May 3 15:46:05 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 1508949195811939.787183225782; Wed, 25 Oct 2017 09:33:15 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 39D6C2034CF7B; Wed, 25 Oct 2017 09:29:29 -0700 (PDT) Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by ml01.01.org (Postfix) with ESMTP id 5A8762034CF7B for ; Wed, 25 Oct 2017 09:29:28 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 69D9180D; Wed, 25 Oct 2017 09:33:13 -0700 (PDT) Received: from u201365.usa.Arm.com (bc-c3-3-14.eu.iaas.arm.com [10.6.43.238]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 06FA63F246; Wed, 25 Oct 2017 09:33:11 -0700 (PDT) X-Original-To: edk2-devel@lists.01.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=217.140.101.70; helo=foss.arm.com; envelope-from=supreeth.venkatesh@arm.com; receiver=edk2-devel@lists.01.org From: Supreeth Venkatesh To: edk2-devel@lists.01.org Date: Wed, 25 Oct 2017 17:32:57 +0100 Message-Id: <20171025163258.47961-3-supreeth.venkatesh@arm.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20171025163258.47961-1-supreeth.venkatesh@arm.com> References: <20171025163258.47961-1-supreeth.venkatesh@arm.com> Subject: [edk2] [PATCH v2 2/3] ArmPkg/Drivers: Add EFI_MM_COMMUNICATION_PROTOCOL DXE driver. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: leif.lindholm@linaro.org, ard.biesheuvel@linaro.org MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" PI v1.5 Specification Volume 4 defines Management Mode Core Interface and defines EFI_MM_COMMUNICATION_PROTOCOL. This protocol provides a means of communicating between drivers outside of MM and MMI handlers inside of MM. This patch implements the EFI_MM_COMMUNICATION_PROTOCOL DXE runtime driver for AARCH64 platforms. It uses SMCs allocated from the standard SMC range defined in http://infocenter.arm.com/help/topic/com.arm.doc.den0060a/DEN0060A_ARM_MM_I= nterface_Specification.pdf to communicate with the standalone MM environment in the secure world. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Achin Gupta Signed-off-by: Supreeth Venkatesh --- .../Drivers/MmCommunicationDxe/MmCommunication.c | 339 +++++++++++++++++= ++++ 1 file changed, 339 insertions(+) create mode 100644 ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.c diff --git a/ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.c b/ArmPkg/D= rivers/MmCommunicationDxe/MmCommunication.c new file mode 100644 index 0000000000..ecf70e666c --- /dev/null +++ b/ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.c @@ -0,0 +1,339 @@ +/** @file + + Copyright (c) 2016-2017, ARM Limited. All rights reserved. + + This program and the accompanying materials + are licensed and made available under the terms and conditions of the BS= D License + which accompanies this distribution. The full text of the license may b= e found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMP= LIED. + +**/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +/** + Communicates with a registered handler. + + This function provides an interface to send and receive messages to the + Standalone MM environment on behalf of UEFI services. This function is = part + of the MM Communication Protocol that may be called in physical mode pri= or to + SetVirtualAddressMap() and in virtual mode after SetVirtualAddressMap(). + + @param[in] This The EFI_MM_COMMUNICATION_PROTOCOL in= stance. + @param[in, out] CommBuffer A pointer to the buffer to convey in= to MMRAM. + @param[in, out] CommSize The size of the data buffer being pa= ssed in.On exit, the size of data + being returned. Zero if the handler = does not wish to reply with any data. + + @retval EFI_SUCCESS The message was successfully posted. + @retval EFI_INVALID_PARAMETER The CommBuffer was NULL. + @retval EFI_BAD_BUFFER_SIZE The buffer is too large for the MM i= mplementation. If this error is + returned, the MessageLength field in= the CommBuffer header or the integer + pointed by CommSize are updated to r= eflect the maximum payload size the + implementation can accommodate. + @retval EFI_ACCESS_DENIED The CommunicateBuffer parameter or C= ommSize parameter, if not omitted, + are in address range that cannot be = accessed by the MM environment +**/ +EFI_STATUS +EFIAPI +MmCommunicationCommunicate ( + IN CONST EFI_MM_COMMUNICATION_PROTOCOL *This, + IN OUT VOID *CommBuffer, + IN OUT UINTN *CommSize OPTIONAL + ); + +// +// Address, Length of the pre-allocated buffer for communication with the = secure +// world. +// +STATIC ARM_MEMORY_REGION_DESCRIPTOR mNsCommBuffMemRegion; + +// Notification event when virtual address map is set. +STATIC EFI_EVENT mSetVirtualAddressMapEvent; + +// +// Handle to install the MM Communication Protocol +// +STATIC EFI_HANDLE mMmCommunicateHandle; + +// +// MM Communication Protocol instance +// +EFI_MM_COMMUNICATION_PROTOCOL mMmCommunication =3D { + MmCommunicationCommunicate +}; + +/** + Communicates with a registered handler. + + This function provides an interface to send and receive messages to the + Standalone MM environment on behalf of UEFI services. This function is = part + of the MM Communication Protocol that may be called in physical mode pri= or to + SetVirtualAddressMap() and in virtual mode after SetVirtualAddressMap(). + + @param[in] This The EFI_MM_COMMUNICATION_PROTOCOL in= stance. + @param[in, out] CommBuffer A pointer to the buffer to convey in= to SMRAM. + @param[in, out] CommSize The size of the data buffer being pa= ssed in.On exit, the size of data + being returned. Zero if the handler = does not wish to reply with any data. + + @retval EFI_SUCCESS The message was successfully posted. + @retval EFI_INVALID_PARAMETER The CommBuffer was NULL. + @retval EFI_BAD_BUFFER_SIZE The buffer is too large for the MM i= mplementation. If this error is + returned, the MessageLength field in= the CommBuffer header or the integer + pointed by CommSize are updated to r= eflect the maximum payload size the + implementation can accommodate. + @retval EFI_ACCESS_DENIED The CommunicateBuffer parameter or C= ommSize parameter, if not omitted, + are in address range that cannot be = accessed by the MM environment +**/ +EFI_STATUS +EFIAPI +MmCommunicationCommunicate ( + IN CONST EFI_MM_COMMUNICATION_PROTOCOL *This, + IN OUT VOID *CommBuffer, + IN OUT UINTN *CommSize + ) +{ + EFI_MM_COMMUNICATE_HEADER *CommunicateHeader; + ARM_SMC_ARGS CommunicateSmcArgs; + EFI_STATUS Status; + UINTN BufferSize; + + CommunicateHeader =3D CommBuffer; + Status =3D EFI_SUCCESS; + BufferSize =3D 0; + + ZeroMem (&CommunicateSmcArgs, sizeof (ARM_SMC_ARGS)); + + // + // Check parameters + // + if (CommBuffer =3D=3D NULL) { + return EFI_INVALID_PARAMETER; + } + + // If the length of the CommBuffer is 0 then return the expected length. + if (CommSize) { + if (*CommSize =3D=3D 0) { + *CommSize =3D mNsCommBuffMemRegion.Length; + return EFI_BAD_BUFFER_SIZE; + } + // + // CommSize must hold HeaderGuid and MessageLength + // + if (*CommSize < sizeof (EFI_MM_COMMUNICATE_HEADER)) { + return EFI_INVALID_PARAMETER; + } + BufferSize =3D *CommSize; + } else { + BufferSize =3D CommunicateHeader->MessageLength + + sizeof (CommunicateHeader->HeaderGuid) + + sizeof (CommunicateHeader->MessageLength); + } + + // + // If the buffer size is 0 or greater than what can be tolerated by the = MM + // environment then return the expected size. + // + if ((BufferSize =3D=3D 0) || + (BufferSize > mNsCommBuffMemRegion.Length)) { + CommunicateHeader->MessageLength =3D mNsCommBuffMemRegion.Length - + sizeof (CommunicateHeader->HeaderGu= id) - + sizeof (CommunicateHeader->MessageL= ength); + return EFI_BAD_BUFFER_SIZE; + } + + // SMC Function ID + CommunicateSmcArgs.Arg0 =3D ARM_SMC_ID_MM_COMMUNICATE_AARCH64; + + // Reserved for Future. Must be Zero. + CommunicateSmcArgs.Arg1 =3D 0; + + if (mNsCommBuffMemRegion.VirtualBase) { + CopyMem ((VOID *)mNsCommBuffMemRegion.VirtualBase, CommBuffer, BufferS= ize); + } + + // For the SMC64 version, this parameter is a 64-bit Physical Address (P= A) + // or Intermediate Physical Address (IPA). + // For the SMC32 version, this parameter is a 32-bit PA or IPA. + CommunicateSmcArgs.Arg2 =3D (UINTN)mNsCommBuffMemRegion.PhysicalBase; + + // comm_size_address is a PA or an IPA that holds the size of the + // communication buffer being passed in. This parameter is optional + // and can be omitted by passing a zero. + // ARM does not recommend using it since this might require the + // implementation to create a separate memory mapping for the parameter. + // ARM recommends storing the buffer size in the buffer itself. + CommunicateSmcArgs.Arg3 =3D 0; + + // Call the Standalone MM environment. + ArmCallSmc (&CommunicateSmcArgs); + + Status =3D CommunicateSmcArgs.Arg0; + switch (Status) { + case ARM_SMC_MM_RET_SUCCESS: + // On exit, the size of data being returned is inferred from + // CommSize or MessageLength + Header. + CopyMem (CommBuffer, (const VOID *)mNsCommBuffMemRegion.VirtualBase, B= ufferSize); + break; + + case ARM_SMC_MM_RET_NOT_SUPPORTED: + case ARM_SMC_MM_RET_INVALID_PARAMS: + Status =3D EFI_INVALID_PARAMETER; + break; + + case ARM_SMC_MM_RET_DENIED: + Status =3D EFI_ACCESS_DENIED; + break; + + case ARM_SMC_MM_RET_NO_MEMORY: + // Unexpected error since the CommSize was checked for zero length + // prior to issuing the SMC + default: + Status =3D EFI_ACCESS_DENIED; + ASSERT (0); + } + + return Status; +} + +/** + Notification callback on SetVirtualAddressMap event. + + This function notifies the MM communication protocol interface on + SetVirtualAddressMap event and converts pointers used in this driver + from physical to virtual address. + + @param Event SetVirtualAddressMap event. + @param Context A context when the SetVirtualAddressMap triggered. + + @retval EFI_SUCCESS The function executed successfully. + @retval Other Some error occurred when executing this function. + +**/ +STATIC +VOID +EFIAPI +NotifySetVirtualAddressMap ( + IN EFI_EVENT Event, + IN VOID *Context + ) +{ + EFI_STATUS Status; + + Status =3D gRT->ConvertPointer (EFI_OPTIONAL_PTR, + (VOID **)&mNsCommBuffMemRegion.VirtualBase + ); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "NotifySetVirtualAddressMap(): Unable to convert = MM runtime pointer. Status:0x%x\n", Status)); + } + +} + +/** + The Entry Point for MM Communication + + This function installs the MM communication protocol interface and finds= out + what type of buffer management will be required prior to invoking the + communication SMC. + + @param ImageHandle The firmware allocated handle for the EFI image. + @param SystemTable A pointer to the EFI System Table. + + @retval EFI_SUCCESS The entry point is executed successfully. + @retval Other Some error occurred when executing this entry poi= nt. + +**/ +EFI_STATUS +EFIAPI +MmCommunicationInitialize ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + EFI_STATUS Status; + + mNsCommBuffMemRegion.PhysicalBase =3D 0; + mNsCommBuffMemRegion.VirtualBase =3D 0; + mNsCommBuffMemRegion.Length =3D 0; + + mNsCommBuffMemRegion.PhysicalBase =3D PcdGet64 (PcdMmBufferBase); + // During boot , Virtual and Physical are same + mNsCommBuffMemRegion.VirtualBase =3D mNsCommBuffMemRegion.PhysicalBase; + mNsCommBuffMemRegion.Length =3D PcdGet64 (PcdMmBufferSize); + + if (mNsCommBuffMemRegion.PhysicalBase =3D=3D 0) { + DEBUG ((DEBUG_ERROR, "MmCommunicateInitialize: Invalid MM Buffer Base = Address.\n")); + return EFI_INVALID_PARAMETER; + } + + if (mNsCommBuffMemRegion.Length =3D=3D 0) { + DEBUG ((DEBUG_ERROR, "MmCommunicateInitialize: Maximum Buffer Size is = zero.\n")); + return EFI_INVALID_PARAMETER; + } + + Status =3D gDS->AddMemorySpace (EfiGcdMemoryTypeSystemMemory, + mNsCommBuffMemRegion.PhysicalBase, + mNsCommBuffMemRegion.Length, + EFI_MEMORY_WB | + EFI_MEMORY_XP | + EFI_MEMORY_RUNTIME); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "MmCommunicateInitialize: Failed to add MM-NS Buf= fer Memory Space\n")); + return EFI_INVALID_PARAMETER; + } + + Status =3D gDS->SetMemorySpaceAttributes(mNsCommBuffMemRegion.PhysicalBa= se, + mNsCommBuffMemRegion.Length, + EFI_MEMORY_WB | EFI_MEMORY_XP); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "MmCommunicateInitialize: Failed to set MM-NS Buf= fer Memory attributes\n")); + return EFI_INVALID_PARAMETER; + } + + Status =3D gBS->AllocatePages (AllocateAddress, + EfiRuntimeServicesData, + EFI_SIZE_TO_PAGES (mNsCommBuffMemRegion.Len= gth), + &mNsCommBuffMemRegion.PhysicalBase); + if (EFI_ERROR (Status)) { + DEBUG ((DEBUG_ERROR, "MmCommunicateInitialize: Failed to allocate MM-N= S Buffer Memory Space\n")); + return EFI_INVALID_PARAMETER; + } + + // Install the communication protocol + Status =3D gBS->InstallProtocolInterface (&mMmCommunicateHandle, + &gEfiMmCommunicationProtocolGuid, + EFI_NATIVE_INTERFACE, + &mMmCommunication); + if (EFI_ERROR(Status)) { + DEBUG ((DEBUG_ERROR, "MmCommunicationInitialize: Failed to install MM = communication protocol\n")); + return EFI_INVALID_PARAMETER; + } + + // Register notification callback when virtual address is associated + // with the physical address. + // Create a Set Virtual Address Map event. + // + Status =3D gBS->CreateEvent (EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE, // Type + TPL_NOTIFY, // Notify= Tpl + NotifySetVirtualAddressMap, // Notify= Function + NULL, // Notify= Context + &mSetVirtualAddressMapEvent // Event + ); + ASSERT_EFI_ERROR (Status); + + return Status; +} --=20 2.14.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel From nobody Fri May 3 15:46:05 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; spf=none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) smtp.mailfrom=edk2-devel-bounces@lists.01.org Return-Path: Received: from ml01.01.org (ml01.01.org [198.145.21.10]) by mx.zohomail.com with SMTPS id 15089491998984.3872527708696225; Wed, 25 Oct 2017 09:33:19 -0700 (PDT) Received: from [127.0.0.1] (localhost [IPv6:::1]) by ml01.01.org (Postfix) with ESMTP id 72D622034CF7E; Wed, 25 Oct 2017 09:29:33 -0700 (PDT) Received: from foss.arm.com (foss.arm.com [217.140.101.70]) by ml01.01.org (Postfix) with ESMTP id 7BC812034CF77 for ; Wed, 25 Oct 2017 09:29:32 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 85CD580D; Wed, 25 Oct 2017 09:33:17 -0700 (PDT) Received: from u201365.usa.Arm.com (bc-c3-3-14.eu.iaas.arm.com [10.6.43.238]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 6CCC33F246; Wed, 25 Oct 2017 09:33:16 -0700 (PDT) X-Original-To: edk2-devel@lists.01.org Received-SPF: none (zoho.com: 198.145.21.10 is neither permitted nor denied by domain of lists.01.org) client-ip=198.145.21.10; envelope-from=edk2-devel-bounces@lists.01.org; helo=ml01.01.org; Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=217.140.101.70; helo=foss.arm.com; envelope-from=supreeth.venkatesh@arm.com; receiver=edk2-devel@lists.01.org From: Supreeth Venkatesh To: edk2-devel@lists.01.org Date: Wed, 25 Oct 2017 17:32:58 +0100 Message-Id: <20171025163258.47961-4-supreeth.venkatesh@arm.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20171025163258.47961-1-supreeth.venkatesh@arm.com> References: <20171025163258.47961-1-supreeth.venkatesh@arm.com> Subject: [edk2] [PATCH v2 3/3] ArmPkg/Drivers: Add ArmMmCommunication Driver information file. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: leif.lindholm@linaro.org, ard.biesheuvel@linaro.org MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Errors-To: edk2-devel-bounces@lists.01.org Sender: "edk2-devel" X-ZohoMail: RSF_4 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" This patch adds the MM Communication driver (.inf) file to define entry point for this driver and other compile related information the driver needs. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Achin Gupta Signed-off-by: Supreeth Venkatesh --- .../Drivers/MmCommunicationDxe/MmCommunication.inf | 50 ++++++++++++++++++= ++++ 1 file changed, 50 insertions(+) create mode 100644 ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf diff --git a/ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf b/ArmPkg= /Drivers/MmCommunicationDxe/MmCommunication.inf new file mode 100644 index 0000000000..d39ee5fdd7 --- /dev/null +++ b/ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf @@ -0,0 +1,50 @@ +#/** @file +# +# DXE MM Communicate driver +# +# Copyright (c) 2016 - 2017, ARM Limited. All rights reserved. +# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the B= SD License +# which accompanies this distribution. The full text of the license may = be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IM= PLIED. +# +#**/ + +[Defines] + INF_VERSION =3D 0x0001001A + BASE_NAME =3D ArmMmCommunication + FILE_GUID =3D 09EE81D3-F15E-43F4-85B4-CB9873DA5D6B + MODULE_TYPE =3D DXE_RUNTIME_DRIVER + VERSION_STRING =3D 1.0 + + ENTRY_POINT =3D MmCommunicationInitialize + +[Sources.Common] + MmCommunication.c + +[Packages] + ArmPkg/ArmPkg.dec + MdePkg/MdePkg.dec + +[LibraryClasses] + ArmLib + ArmSmcLib + BaseMemoryLib + DebugLib + DxeServicesTableLib + HobLib + UefiDriverEntryPoint + +[Protocols] + gEfiMmCommunicationProtocolGuid ## PRODUCES + +[Pcd.common] + gArmTokenSpaceGuid.PcdMmBufferBase + gArmTokenSpaceGuid.PcdMmBufferSize + +[Depex] + TRUE --=20 2.14.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel