Hi Supreeth, I agree with Jiewen that these should not be a part of this series. Can you push these in a separate series?
cheers, Achin On Fri, Apr 06, 2018 at 03:42:22PM +0100, Supreeth Venkatesh wrote: > This patch adds a simple application that uses the MM > communication protocol to pass a copy of the UEFI system table to > the MM environment in the secure world. > > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Achin Gupta <achin.gu...@arm.com> > Signed-off-by: Supreeth Venkatesh <supreeth.venkat...@arm.com> > --- > .../Application/MmCommTestApp/MmCommTest.c | 81 > ++++++++++++++++++++++ > .../Application/MmCommTestApp/MmCommTest.h | 37 ++++++++++ > .../Application/MmCommTestApp/MmCommTest.inf | 57 +++++++++++++++ > 3 files changed, 175 insertions(+) > create mode 100644 StandaloneMmPkg/Application/MmCommTestApp/MmCommTest.c > create mode 100644 StandaloneMmPkg/Application/MmCommTestApp/MmCommTest.h > create mode 100644 StandaloneMmPkg/Application/MmCommTestApp/MmCommTest.inf > > diff --git a/StandaloneMmPkg/Application/MmCommTestApp/MmCommTest.c > b/StandaloneMmPkg/Application/MmCommTestApp/MmCommTest.c > new file mode 100644 > index 0000000000..efbafdde62 > --- /dev/null > +++ b/StandaloneMmPkg/Application/MmCommTestApp/MmCommTest.c > @@ -0,0 +1,81 @@ > +/** @file > + This sample application demos how to communicate > + with secure partition using MM communication protocol > + > + Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR> > + Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.<BR> > + > + This program and the accompanying materials > + are licensed and made available under the terms and conditions of the BSD > 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 > IMPLIED. > + > +**/ > + > +#include <Uefi.h> > +#include <Library/PcdLib.h> > +#include <Library/UefiLib.h> > +#include <Library/UefiApplicationEntryPoint.h> > +#include <Library/DebugLib.h> > +#include <Library/BaseMemoryLib.h> > +#include <Library/UefiBootServicesTableLib.h> > + > +#include "MmCommTest.h" > + > +#include <Library/ArmSmcLib.h> > + > +#include <Protocol/MmCommunication.h> > + > +EFI_MM_COMMUNICATION_PROTOCOL *mMmCommunication = NULL; > + > +EFI_STATUS > +MmIplNotifyCommTest ( > + VOID > + ) > +{ > + EFI_MM_COMMUNICATE_TEST MmCommTest; > + UINTN Size; > + > + DEBUG ((DEBUG_INFO, "MmIplNotifyCommTest\n")); > + > + CopyGuid (&MmCommTest.HeaderGuid, &gMmCommTestGuid); > + CopyMem (&MmCommTest.Data.EfiSystemTable, gST, sizeof (EFI_SYSTEM_TABLE)); > + MmCommTest.MessageLength = sizeof (EFI_MM_COMMUNICATE_TEST_DATA); > + > + // > + // Generate the MM_COMMUNICATE SMC and return the result > + // > + Size = sizeof (MmCommTest); > + return mMmCommunication->Communicate (NULL, &MmCommTest, &Size); > +} > + > +/** > + The user Entry Point for Application. The user code starts with this > function > + as the real entry point for the application. > + > + @param[in] ImageHandle The firmware allocated handle for the EFI image. > + @param[in] SystemTable A pointer to the EFI System Table. > + > + @retval EFI_SUCCESS The entry point is executed successfully. > + @retval other Some error occurs when executing this entry > point. > + > +**/ > +EFI_STATUS > +EFIAPI > +MmCommTestEntryPoint ( > + IN EFI_HANDLE ImageHandle, > + IN EFI_SYSTEM_TABLE *SystemTable > + ) > +{ > + EFI_STATUS Status; > + > + Status = gBS->LocateProtocol (&gEfiMmCommunicationProtocolGuid, NULL, > (VOID **) &mMmCommunication); > + if (EFI_ERROR (Status)) { > + return Status; > + } > + > + return MmIplNotifyCommTest (); > +} > diff --git a/StandaloneMmPkg/Application/MmCommTestApp/MmCommTest.h > b/StandaloneMmPkg/Application/MmCommTestApp/MmCommTest.h > new file mode 100644 > index 0000000000..8e8305a060 > --- /dev/null > +++ b/StandaloneMmPkg/Application/MmCommTestApp/MmCommTest.h > @@ -0,0 +1,37 @@ > +/** @file > + GUIDs for MM Event. > + > +Copyright (c) 2015, Intel Corporation. All rights reserved.<BR> > +Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.<BR> > + > +This program and the accompanying materials are licensed and made available > under > +the terms and conditions of the BSD License that 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 IMPLIED. > + > +**/ > + > +#ifndef __MM_COMM_TEST_H__ > +#define __MM_COMM_TEST_H__ > + > +#define MM_COMM_TEST_GUID \ > + { 0xa37721e4, 0x8c0b, 0x4bca, { 0xb5, 0xe8, 0xe9, 0x2, 0xa0, 0x25, 0x51, > 0x4e }} > + > +extern EFI_GUID gMmCommTestGuid; > + > +#pragma pack(1) > +typedef struct { > + EFI_SYSTEM_TABLE EfiSystemTable; > +} EFI_MM_COMMUNICATE_TEST_DATA; > + > +typedef struct { > + EFI_GUID HeaderGuid; > + UINTN MessageLength; > + EFI_MM_COMMUNICATE_TEST_DATA Data; > +} EFI_MM_COMMUNICATE_TEST; > +#pragma pack() > + > +#endif > diff --git a/StandaloneMmPkg/Application/MmCommTestApp/MmCommTest.inf > b/StandaloneMmPkg/Application/MmCommTestApp/MmCommTest.inf > new file mode 100644 > index 0000000000..1828cd7e13 > --- /dev/null > +++ b/StandaloneMmPkg/Application/MmCommTestApp/MmCommTest.inf > @@ -0,0 +1,57 @@ > +## @file > +# Sample UEFI Application Reference EDKII Module. > +# > +# This is a sample shell application that will print "UEFI firmware version > Info!" to the > +# UEFI Console. > +# > +# It demos how to communicate with secure partition using MM > +# communication protocol. > +# > +# Copyright (c) 2008 - 2014, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2016 - 2018, ARM Limited. All rights reserved. > +# > +# This program and the accompanying materials > +# are licensed and made available under the terms and conditions of the BSD > 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 > IMPLIED. > +# > +# > +## > + > +[Defines] > + INF_VERSION = 0x0001001A > + BASE_NAME = MmCommTest > + FILE_GUID = 6987936E-ED34-44db-AE97-1FA5E4ED2116 > + MODULE_TYPE = UEFI_APPLICATION > + VERSION_STRING = 1.0 > + ENTRY_POINT = MmCommTestEntryPoint > + > +[Sources] > + MmCommTest.c > + > +[Packages] > + ArmPkg/ArmPkg.dec > + ArmPlatformPkg/ArmPlatformPkg.dec > + MdePkg/MdePkg.dec > + StandaloneMmPkg/StandaloneMmPkg.dec > + > +[LibraryClasses] > + ArmSmcLib > + BaseMemoryLib > + DebugLib > + PrintLib > + UefiApplicationEntryPoint > + UefiBootServicesTableLib > + UefiLib > + > +[FeaturePcd] > + > +[Pcd] > + > +[Guids] > + gMmCommTestGuid > + > +[Protocols] > + gEfiMmCommunicationProtocolGuid > -- > 2.16.2 > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel