From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=104.47.2.59; helo=eur01-db5-obe.outbound.protection.outlook.com; envelope-from=supreeth.venkatesh@arm.com; receiver=edk2-devel@lists.01.org Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0059.outbound.protection.outlook.com [104.47.2.59]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id DF844203BEA36 for ; Fri, 4 May 2018 16:15:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector1-arm-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=HZ9CZ347l10T3Ksc4CL4ao3af/eyVoKtO8+LuEl5res=; b=g+jAf+3h1MOl282uiPpAeptSjAq8M3RB4gwElvA3lRXCp5j+SlIsDcGHL+7SLKKcoxMkhi1lblVC1PsTou0F0drNbQrEI94EpZ+fAJygUFp2I54LAfyKI9XvPea/qzH0+kMMhC9SaayURPfeTptze2498Z1WOG2gPVk/Of0fI4Q= Received: from AM4PR0802MB2306.eurprd08.prod.outlook.com (10.172.218.15) by AM4PR0802MB2196.eurprd08.prod.outlook.com (10.172.217.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.735.16; Fri, 4 May 2018 23:15:57 +0000 Received: from AM4PR0802MB2306.eurprd08.prod.outlook.com ([fe80::e117:6f62:6a9b:6be4]) by AM4PR0802MB2306.eurprd08.prod.outlook.com ([fe80::e117:6f62:6a9b:6be4%8]) with mapi id 15.20.0735.016; Fri, 4 May 2018 23:15:55 +0000 From: Supreeth Venkatesh To: "Yao, Jiewen" , "edk2-devel@lists.01.org" CC: "Kinney, Michael D" , "Gao, Liming" , Achin Gupta , "leif.lindholm@linaro.org" , "ard.biesheuvel@linaro.org" Thread-Topic: [PATCH v1 00/18] *** Standalone Management Mode Core Interface for AARCH64 Platforms *** Thread-Index: AQHTzbWIxtw5Sw8OZ06n3q3JX+Z5raP2YsOAgCZ87CA= Date: Fri, 4 May 2018 23:15:54 +0000 Message-ID: References: <20180406144223.10931-1-supreeth.venkatesh@arm.com> <74D8A39837DF1E4DA445A8C0B3885C503AB4CAE1@shsmsx102.ccr.corp.intel.com> In-Reply-To: <74D8A39837DF1E4DA445A8C0B3885C503AB4CAE1@shsmsx102.ccr.corp.intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=Supreeth.Venkatesh@arm.com; x-originating-ip: [217.140.111.135] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; AM4PR0802MB2196; 7:pa50jqsvI9u88mGFXg98uebO9jssLv68QS52PDOxrePsnGHn/pYVFgEoZg9weeuudYVXp0V1KQsCTnH6VDfE+Cf6Qd8KWHUmfC0+104zkpj8gZYqb5rcYY2AvmrthOD7UHfT4fACj9LO3GyOg3HBtKTSDwoD+GqzJZjC0iSOhgaDKrZlQX6Ebz54BCJBFgeg709cyvXfYnpAj5APpN132cB1BQmJIcdF0c9dPWzc6IrpKXNtT29nbcS5W4AVHq9o x-ms-exchange-antispam-srfa-diagnostics: SOS;SOR; x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:AM4PR0802MB2196; x-ms-traffictypediagnostic: AM4PR0802MB2196: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(180628864354917)(166708455590820)(162533806227266)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(10201501046)(93006095)(93001095)(3002001)(6055026)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123562045)(20161123558120)(6072148)(201708071742011); SRVR:AM4PR0802MB2196; BCL:0; PCL:0; RULEID:; SRVR:AM4PR0802MB2196; x-forefront-prvs: 06628F7CA4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(346002)(39380400002)(396003)(376002)(366004)(13464003)(199004)(189003)(57704003)(40434004)(105586002)(446003)(8936002)(106356001)(4326008)(11346002)(476003)(186003)(486006)(966005)(72206003)(5660300001)(6116002)(478600001)(114624004)(305945005)(7736002)(3846002)(25786009)(81156014)(81166006)(8676002)(66066001)(14454004)(97736004)(345774005)(110136005)(54906003)(316002)(5250100002)(3280700002)(99286004)(6246003)(86362001)(3660700001)(53946003)(74316002)(6306002)(9686003)(55016002)(6436002)(229853002)(2501003)(102836004)(2906002)(6506007)(68736007)(59450400001)(53546011)(33656002)(26005)(2900100001)(76176011)(7696005)(53936002)(5890100001)(579004)(559001)(19627235001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM4PR0802MB2196; H:AM4PR0802MB2306.eurprd08.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: tRDOkRrxsDFy23SMsDEjlf9UP2fUWSR3qBzpBcwt6FRno9xyvZtPQxGkGSvkJNvS/FpSUOk6U32jHoQNR9ZVptim8JJ8rT6pd+e7+qWa4DTAbAe9CPdrNmExhDi7ldpqUDSR8IvqSUXTKsqDiQpoqYJSLZbZVjrOQtB39E09gQPO0//tDFWYBVEy5o6M+meI spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: f40d57fa-0183-4e2f-edc3-08d5b214fca2 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: f40d57fa-0183-4e2f-edc3-08d5b214fca2 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2018 23:15:54.9013 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR0802MB2196 Subject: Re: [PATCH v1 00/18] *** Standalone Management Mode Core Interface for AARCH64 Platforms *** X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 May 2018 23:16:00 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable My response inline. -----Original Message----- From: Yao, Jiewen Sent: Sunday, April 8, 2018 1:02 AM To: Supreeth Venkatesh ; edk2-devel@lists.01.or= g Cc: Kinney, Michael D ; Gao, Liming ; Achin Gupta ; leif.lindholm@linaro.org; a= rd.biesheuvel@linaro.org Subject: RE: [PATCH v1 00/18] *** Standalone Management Mode Core Interface= for AARCH64 Platforms *** Thank you for this great work. Comment below: 1) I don't have comment for ArmPkg update (0001~0005, 0015) - I expect Arm = expert will help on that. :-) 2) BaseTool (0016), reviewed-by: Jiewen.yao@intel.com 3) StandaloneMmPkg 3.1) 0007 - I think we need add ExHeader check and alignment enforcement fo= r FfsFileHeader. FfsFileHeader =3D (EFI_FFS_FILE_HEADER *) ((UINT8 *) FwVolHeader + FwVo= lHeader->HeaderLength); You may refer to https://github.com/tianocore/edk2/blob/master/SignedCapsul= ePkg/Library/EdkiiSystemCapsuleLib/EdkiiSystemCapsuleLib.c GetFfsByName() if (FvHeader->ExtHeaderOffset !=3D 0) { FvExtHeader =3D (EFI_FIRMWARE_VOLUME_EXT_HEADER *)((UINT8 *)FvHeader = + FvHeader->ExtHeaderOffset); FfsHeader =3D (EFI_FFS_FILE_HEADER *)((UINT8 *)FvExtHeader + FvExtHea= der->ExtHeaderSize); } else { FfsHeader =3D (EFI_FFS_FILE_HEADER *)((UINT8 *)FvHeader + FvHeader->H= eaderLength); } FfsHeader =3D (EFI_FFS_FILE_HEADER *)((UINTN)FvHeader + ALIGN_VALUE((UI= NTN)FfsHeader - (UINTN)FvHeader, 8)); [Supreeth] Ok. Done. Thanks. Please see version 2. 3.2) 0008 - I think we need rename MmCopyMemToSmram to MmCopyMemToMmram, an= d MmCopyMemFromSmram to MmCopyMemFromMmram. Also if this MemLib is only for MM_STANDALONE, we should name it Standalone= MmMemLib. [Supreeth] Ok. Done. Thanks. Please see version 2. 3.3) 0009 - If this MemoryAllocationLib is only for MM_CORE_STANDALONE, we = should name it StandaloneMmCoreMemoryAllocationLib. Also do we need StandaloneMmMemoryAllocationLib (non-Core version) for MmDr= iver ? (You may find that my POC zip has both StandaloneSmmCoreMemoryAllocationLib= and StandaloneSmmMemoryAllocationLib.) [Supreeth] Renaming Done. In Arm Reference code, there is no sample MM driv= er which uses this. Hence it can be added whenever a sample MM driver which uses this library w= ill be up-streamed. 3.4) 0010 - If this HobLib is only for MM_STANDALONE, we should name it Sta= ndaloneMmHobLib. [Supreeth] Ok. Done. Thanks. Please see version 2. 3.5) 0014 - I do not believe we should add FDF file here. StandaloneMmPkg s= hould only provide the component. (such as MdeModulePkg). The FDF file shou= ld be in a real project. [Supreeth] Ok. Thanks. I have moved into edk2-platforms where it belongs ri= ghtfully. Please see version 2. 3.6) 0017/0018 - they are only for unit test. I do not think we should chec= k in them. Please discard them when you check in the series. [Supreeth] Ok. Thanks. I will not be sending these patches with version 2. 3.x) 0006/0011/0012/0013, they are good so far. We may do some enhancement = to move common logic out of Arm directory. But that can be done later, when= we add X86 content there. reviewed-by: Jiewen.yao@intel.com [Supreeth] Thanks. Thank you Yao Jiewen > -----Original Message----- > From: Supreeth Venkatesh [mailto:supreeth.venkatesh@arm.com] > Sent: Friday, April 6, 2018 10:42 PM > To: edk2-devel@lists.01.org > Cc: Kinney, Michael D ; Gao, Liming > ; Yao, Jiewen ; > achin.gupta@arm.com; leif.lindholm@linaro.org; > ard.biesheuvel@linaro.org; Supreeth Venkatesh > > Subject: [PATCH v1 00/18] *** Standalone Management Mode Core > Interface for AARCH64 Platforms *** > > *** > PI Specification v1.5 "Volume 4: Management Mode Core Interface" > introduces the concept of MM Standalone Mode. Initialization of this > mode can be done during the SEC phase (Section 1.5.2). > On ARMv8-A systems, ARM Trusted Firmware is responsible for launching > the normal world firmware e.g. UEFI. > > The Standalone MM environment is instantiated in Secure EL0 as a > separate firmware volume. It executes as BL32 Image under control of > ARM TF which is instantiated in EL3. Both components execute in the > AArch64 execution state. > This patchset will build upon the StandaloneSmmPkg module originally > contributed by Intel. > > This package can be used in conjunction with ARM Trusted Firmware to > recreate a simple MM secure environment that demonstrates > communication between two UEFI images where one is executing in the > normal world and the other is executing in the secure world. > > The normal world image includes: > MM Communication DXE runtime driver that implements the protocol for > communication with the MM environment in the secure world. > > The secure world image includes: > The MM Standalone framework. > > This patchset includes the proposed organization/structure. > In order to be able to review the changes more effectively, the > changes are present here: > https://github.com/supven01/edk2.git (Branch: master) > > Steps to build MM Standalone images > In user preferred "work" directory, execute the following shell > commands > > git clone https://github.com/tianocore/edk2.git > git checkout master > > git clone https://github.com/tianocore/edk2-platforms.git > git checkout master > > mkdir arm-tf > cd arm-tf > git clone https://github.com/ARM-software/arm-trusted-firmware.git . > git checkout master > cd .. > > git clone https://git.linaro.org/uefi/uefi-tools.git . > git checkout master > > The following will build the MM Standalone image which runs in secure wor= ld. > ./uefi-tools/edk2-build.sh -b DEBUG fvp_mm_standalone > > The follwing will build the normal world UEFI image, ARM Trusted > Firmware and a Firmware Image Package (FIP) that includes both the UEFI i= mages. > ./uefi-tools/edk2-build.sh -a ./arm-tf -b DEBUG fvp_mm_normal > > Boot Loader Stage 1 (BL1) binary and combined arm-tf/uefi firmware > image package (fip) binary will be generated at: > > Build Output > Build/ArmVExpress-FVP-AArch64-MM-Normal/DEBUG_GCC5/FV/bl1.bin > Build/ArmVExpress-FVP-AArch64-MM-Normal/DEBUG_GCC5/FV/fip.bin > > Steps to run MM Standalone image > 1. Download the ARMv8 Architecture FVP from > > https://silver.arm.com/download/download.tm?pv=3D3744408&p=3D1424570 > For more information, please refer > > https://developer.arm.com/products/system-design/fixed-virtual-platfor > ms 2. Install FVP into preferred "work" directory. > 3. Create a shell script "run_mm.sh" in the same folder where > "FVP_Base_AEMv8A-AEMv8A" is present. > Sample Shell script below: > ./FVP_Base_AEMv8A-AEMv8A > -C cache_state_modelled=3D0 > -C bp.secure_memory=3D1 > -C bp.tzc_400.diagnostics=3D1 > -C bp.pl011_uart0.untimed_fifos=3D0 > -C cluster1.NUM_CORES=3D4 > -C cluster0.NUM_CORES=3D4 > -C bp.pl011_uart0.out_file=3Duart0.output > -C bp.pl011_uart1.out_file=3Duart1.output > -C bp.pl011_uart2.out_file=3Duart2.output > -C bp.pl011_uart3.out_file=3Duart3.output > -C bp.secureflashloader.fname=3D"" > -C bp.flashloader0.fname=3D"" > -S -R > 4. ./run_mm.sh > 5. Output can be seen on FVP console. > 6. The normal world will boot to the UEFI shell. > > Sample Output > > MM Standalone Output (FVP UART2) > SPM Version: Major=3D0x0, Minor=3D0x1 > NumSpMemRegions - 0x6 > SpMemBase - 0xFF200000 > SpMemLimit - 0x100000000 > SpImageBase - 0xFF200000 > SpStackBase - 0xFF610000 > SpHeapBase - 0xFF620000 > SpNsCommBufBase - 0xFF600000 > SpSharedBufBase - 0xFF500000 > SpImageSize - 0x300000 > SpPcpuStackSize - 0x2000 > SpHeapSize - 0x9E0000 > SpNsCommBufSize - 0x10000 > SpPcpuSharedBufSize - 0x20000 > NumCpus - 0x8 > CpuInfo - 0xFF500680 > Mpidr - 0x80000000 > LinearId - 0x0 > Flags - 0x1 > Mpidr - 0x80000001 > LinearId - 0x1 > Flags - 0x0 > Mpidr - 0x80000002 > LinearId - 0x2 > Flags - 0x0 > Mpidr - 0x80000003 > LinearId - 0x3 > Flags - 0x0 > Mpidr - 0x80000100 > LinearId - 0x4 > Flags - 0x0 > Mpidr - 0x80000101 > LinearId - 0x5 > Flags - 0x0 > Mpidr - 0x80000102 > LinearId - 0x6 > Flags - 0x0 > Mpidr - 0x80000103 > LinearId - 0x7 > Flags - 0x0 > Found Standalone MM PE data - 0xFF201000 Found Standalone MM PE data - > 0xFF201000 Standalone MM Core PE-COFF SectionHeaderOffset - 0xF60, > NumberOfSections > - 3 > UpdateMmFoundationPeCoffPermissions: Section 0 of image at 0xFF201000 > has > 0x60000020 permissions > UpdateMmFoundationPeCoffPermissions: Section 0 of image at 0xFF201000 > has .et name > UpdateMmFoundationPeCoffPermissions: Section 0 of image at 0xFF201000 > has > 0xFF202000 address > UpdateMmFoundationPeCoffPermissions: Section 0 of image at 0xFF201000 > has > 0x1000 data > UpdateMmFoundationPeCoffPermissions: Ignoring section 0 of image at > 0xFF201000 with 0x60000020 permissions > UpdateMmFoundationPeCoffPermissions: Section 1 of image at 0xFF201000 > has > 0xC0000040 permissions > UpdateMmFoundationPeCoffPermissions: Section 1 of image at 0xFF201000 > has .aa name > UpdateMmFoundationPeCoffPermissions: Section 1 of image at 0xFF201000 > has > 0xFF217000 address > UpdateMmFoundationPeCoffPermissions: Section 1 of image at 0xFF201000 > has > 0x16000 data > UpdateMmFoundationPeCoffPermissions: Mapping section 1 of image at > 0xFF201000 with RW-XN permissions > UpdateMmFoundationPeCoffPermissions: Section 2 of image at 0xFF201000 > has > 0x42000040 permissions > UpdateMmFoundationPeCoffPermissions: Section 2 of image at 0xFF201000 > has .eo name > UpdateMmFoundationPeCoffPermissions: Section 2 of image at 0xFF201000 > has > 0xFF218000 address > UpdateMmFoundationPeCoffPermissions: Section 2 of image at 0xFF201000 > has > 0x17000 data > UpdateMmFoundationPeCoffPermissions: Mapping section 2 of image at > 0xFF201000 with RO-XN permissions > StandaloneMmCoreMemoryAllocationLibConstructor - 0xFF620000 > MmramRangeCount - 0x6 > MmramRanges[0]: 0x00000000FF200000 - 0x0000000000300000 > MmramRanges[1]: 0x00000000FF500000 - 0x0000000000100000 > MmramRanges[2]: 0x00000000FF600000 - 0x0000000000010000 > MmramRanges[3]: 0x00000000FF610000 - 0x0000000000010000 > MmramRanges[4]: 0x00000000FF620000 - 0x00000000000002C8 > MmramRanges[5]: 0x00000000FF6202C8 - 0x00000000009DFD38 > MmInitializeMemoryServices MmAddMemoryRegion 0 : 0x00000000FF200000 - > 0x0000000000300000 MmAddMemoryRegion 1 : 0x00000000FF500000 - > 0x0000000000100000 MmAddMemoryRegion 2 : 0x00000000FF600000 - > 0x0000000000010000 MmAddMemoryRegion 3 : 0x00000000FF610000 - > 0x0000000000010000 MmAddMemoryRegion 4 : 0x00000000FF620000 - > 0x00000000000002C8 MmAddMemoryRegion 5 : 0x00000000FF6202C8 - > 0x00000000009DFD38 mMmMemLibInternalMaximumSupportAddress =3D > 0xFFFFFFFFF MmMain - 0xFF620000 MmramRangeCount - 0x6 > MmramRanges[0]: 0x00000000FF200000 - 0x300000 > MmramRanges[1]: 0x00000000FF500000 - 0x100000 > MmramRanges[2]: 0x00000000FF600000 - 0x10000 > MmramRanges[3]: 0x00000000FF610000 - 0x10000 > MmramRanges[4]: 0x00000000FF620000 - 0x2C8 > MmramRanges[5]: 0x00000000FF6202C8 - 0x9DFD38 mMmramRangeCount - 0x6 > mMmramRanges - 0xFFFFEE10 BFV address - 0xFF200000 > BFV size - 0x300000 > MmInstallConfigurationTable For HobList HobSize - 0x2C8 MmHobStart - > 0xFFFFE810 MmRegisterProtocolNotify - MmConfigurationMmProtocol Mm > Dispatch StandaloneBfvAddress - 0xFF200000 MmCoreFfsFindMmDriver - > 0xFF200000 FvIsBeingProcesssed - 0xFF200000 Check MmFileTypes - 0xA > Check MmFileTypes - 0xE Find PE data - 0xFF219024 MmAddToDriverList - > 58F7A62B-6280-42A7-BC38-10535A64A92C > (0xFF219024) > MmDispatcher > Drain the Scheduled Queue > Search DriverList for items to place on Scheduled Queue > DriverEntry (Discovered) - 58F7A62B-6280-42A7-BC38-10535A64A92C > Evaluate MM DEPEX for FFS(58F7A62B-6280-42A7-BC38-10535A64A92C) > TRUE > END > RESULT =3D TRUE > Drain the Scheduled Queue > DriverEntry (Scheduled) - 58F7A62B-6280-42A7-BC38-10535A64A92C > MmLoadImage - 58F7A62B-6280-42A7-BC38-10535A64A92C > UpdatePeCoffPermissions: Mapping section 0 of image at 0xFFFE7000 with > RO-XN permissions and size 0x7000 > UpdatePeCoffPermissions: Mapping section 0 of image at 0xFFFE7000 with > RO-X permissions and size 0x7000 > UpdatePeCoffPermissions: Mapping section 1 of image at 0xFFFEE000 with > RW-XN permissions and size 0x1000 > UpdatePeCoffPermissions: Mapping section 2 of image at 0xFFFEF000 with > RO-XN permissions and size 0x1000 add-symbol-file > /home/supven01/work/mm_upstream/Build/StandaloneMmPkg/DEBUG_GCC5 > /AARCH64/StandaloneMmPkg/Drivers/CpuMm/Arm/PiMmStandloneArmTfCpu > Driver/DEBUG/PiMmStandloneArmTfCpuDriver.dll 0xFFFE7000 Loading MM > driver at 0x000FFFE6000 EntryPoint=3D0x000FFFE7000 > PiMmStandloneArmTfCpuDriver.efi StartImage - 0xFFFE7000 (Standalone > Mode) > MmInstallProtocolInterface: 26EEB3DE-B689-492E-80F0-BE8BD7DA4BA7 > FFFEE008 > MmConfigurationMmNotify(26EEB3DE-B689-492E-80F0-BE8BD7DA4BA7) - > FFFEE008 > MM Core registered MM Entry Point address FF2041C0 > MmInstallProtocolInterface: EB346B97-975F-4A9F-8B22-F8E92BB3D569 > FFFEE018 > Sharing Cpu Driver EP *0xFF217280 =3D 0xFFFE798C > mNsCommBuffer.PhysicalStart - 0xFF600000 mNsCommBuffer.PhysicalSize - > 0x10000 > mNsCommBuffer: 0x00000000FF600000 - 0x10000 > mMpInformationHobData: 0x0000000000000008 - 0x8 > mMpInformationHobData[0x80000000]: 0, 0, 0 > mMpInformationHobData[0x80000001]: 0, 1, 1 > mMpInformationHobData[0x80000002]: 0, 2, 2 > mMpInformationHobData[0x80000003]: 0, 3, 3 > mMpInformationHobData[0x80000100]: 1, 0, 0 > mMpInformationHobData[0x80000101]: 1, 1, 1 > mMpInformationHobData[0x80000102]: 1, 2, 2 > mMpInformationHobData[0x80000103]: 1, 3, 3 MmiHandlerRegister - GUID > B65694CC-09E3-4C3B-B5CD-05F44D3CDBFF - Status 0 MmiHandlerRegister - > GUID 7081E22F-CAC6-4053-9468-675782CF88E5 - Status 0 > MmiHandlerRegister - GUID 60FF8964-E906-41D0-AFED-F241E974E08E - > Status > 0 > MmiHandlerRegister - GUID 02CE967A-DD7E-4FFC-9EE7-810CF0470880 - > Status 0 MmiHandlerRegister - GUID > 2A571201-4966-47F6-8B86-F31E41F32F10 - Status > 0 > MmiHandlerRegister - GUID 27ABF055-B1B8-4C26-8048-748F37BAA2DF - > Status 0 MmiHandlerRegister - GUID > 7CE88FB3-4BD7-4679-87A8-A8D8DEE50D2B - Status 0 MmMain Done! > Shared Cpu Driver EP 0xFFFE798C > > ARM TF (FVP UART0) > NOTICE: Booting Trusted Firmware > NOTICE: BL1: v1.4(debug):v1.4-96-gae48aad7-dirty > NOTICE: BL1: Built : 16:14:26, Nov 1 2017 > INFO: BL1: RAM 0x4036000 - 0x403c000 > INFO: BL1: Loading BL2 > INFO: Loading image id=3D1 at address 0x4027000 > INFO: Image id=3D1 loaded: 0x4027000 - 0x402c2a8 > NOTICE: BL1: Booting BL2 > INFO: Entry point address =3D 0x4027000 > INFO: SPSR =3D 0x3c5 > NOTICE: BL2: v1.4(debug):v1.4-96-gae48aad7-dirty > NOTICE: BL2: Built : 16:14:26, Nov 1 2017 > INFO: BL2: Doing platform setup > INFO: Configuring TrustZone Controller > INFO: BL2: Loading image id 3 > INFO: Loading image id=3D3 at address 0xff000000 > INFO: Image id=3D3 loaded: 0xff000000 - 0xff00c230 > INFO: BL2: Loading image id 4 > INFO: Loading image id=3D4 at address 0xff200000 > INFO: Image id=3D4 loaded: 0xff200000 - 0xff480000 > INFO: BL2: Loading image id 5 > INFO: Loading image id=3D5 at address 0x88000000 > INFO: Image id=3D5 loaded: 0x88000000 - 0x88280000 > NOTICE: BL1: Booting BL31 > INFO: Entry point address =3D 0xff000000 > INFO: SPSR =3D 0x3cd > NOTICE: BL31: v1.4(debug):v1.4-96-gae48aad7-dirty > NOTICE: BL31: Built : 16:14:26, Nov 1 2017 > INFO: GICv3 with legacy support detected. ARM GICV3 driver initialized= in > EL3 > INFO: BL31: Initializing runtime services > INFO: BL31: Initializing BL32 > NOTICE: Received SPM_MEMORY_ATTRIBUTES_SET SMC > NOTICE: Start address : 0xff217000 > NOTICE: Number of pages: 1 (4096 bytes) > NOTICE: Attributes : 0x7 > NOTICE: (Equivalent TF attributes: 0x22) > NOTICE: Received SPM_MEMORY_ATTRIBUTES_SET SMC > NOTICE: Start address : 0xff217000 > NOTICE: Number of pages: 1 (4096 bytes) > NOTICE: Attributes : 0x5 > NOTICE: (Equivalent TF attributes: 0x2a) > NOTICE: Received SPM_MEMORY_ATTRIBUTES_SET SMC > NOTICE: Start address : 0xff218000 > NOTICE: Number of pages: 1 (4096 bytes) > NOTICE: Attributes : 0x7 > NOTICE: (Equivalent TF attributes: 0x22) > NOTICE: Received SPM_MEMORY_ATTRIBUTES_SET SMC > NOTICE: Start address : 0xfffe7000 > NOTICE: Number of pages: 7 (28672 bytes) > NOTICE: Attributes : 0x7 > NOTICE: (Equivalent TF attributes: 0x22) > NOTICE: Received SPM_MEMORY_ATTRIBUTES_SET SMC > NOTICE: Start address : 0xfffe7000 > NOTICE: Number of pages: 7 (28672 bytes) > NOTICE: Attributes : 0x3 > NOTICE: (Equivalent TF attributes: 0x2) > NOTICE: Received SPM_MEMORY_ATTRIBUTES_SET SMC > NOTICE: Start address : 0xfffef000 > NOTICE: Number of pages: 1 (4096 bytes) > NOTICE: Attributes : 0x7 > NOTICE: (Equivalent TF attributes: 0x22) > INFO: BL31: Preparing for EL3 exit to normal world > INFO: Entry point address =3D 0x88000000 > INFO: SPSR =3D 0x3c9 > UEFI firmware (version built at 16:14:14 on Nov 1 2017) > *** > > Supreeth Venkatesh (18): > ArmPkg: Add PCDs needed for MM communication driver. > ArmPkg/Drivers: Add EFI_MM_COMMUNICATION_PROTOCOL DXE driver. > ArmPkg/Include: Add MM interface SVC return codes. > ArmPkg/ArmMmuLib: Add MMU Library suitable for use in S-EL0. > ArmPkg/ArmMmuLib: Add MMU library inf file suitable for use in S-EL0. > StandaloneMmPkg: Add an AArch64 specific entry point library. > StandaloneMmPkg/FvLib: Add a common FV Library for management mode. > StandaloneMmPkg/MemLib: AARCH64 Specific instance of memory check > library. > StandaloneMmPkg/MemoryAllocationLib: Add MM memory allocation library. > StandaloneMmPkg/HobLib: Add AARCH64 Specific HOB Library for > management mode. > StandaloneMmPkg: MM driver entry point library. > StandaloneMmPkg/CpuMm: Add CPU driver suitable for ARM Platforms. > StandaloneMmPkg/Core: Implementation of Standalone MM Core Module. > StandaloneMmPkg: Describe the declaration, definition and fdf files. > ArmPkg: Extra action to update permissions for S-ELO MM Image. > BaseTools/AutoGen: Update header file for MM modules. > StandaloneMmPkg: Add application to test MM communication protocol. > StandaloneMmPkg: Add handler to handle event received from Normal > World. > > ArmPkg/ArmPkg.dec | 3 + > .../Drivers/MmCommunicationDxe/MmCommunication.c | 339 +++++++ > .../Drivers/MmCommunicationDxe/MmCommunication.inf | 50 + > ArmPkg/Include/IndustryStandard/ArmMmSvc.h | 9 +- > ArmPkg/Library/ArmMmuLib/AArch64/ArmMmuSecLib.c | 146 +++ > ArmPkg/Library/ArmMmuLib/ArmMmuSecLib.inf | 37 + > .../DebugPeCoffExtraActionLib.c | 185 +++- > .../DebugPeCoffExtraActionLib.inf | 7 + > BaseTools/Source/Python/AutoGen/GenC.py | 16 +- > .../Application/MmCommTestApp/MmCommTest.c | 81 ++ > .../Application/MmCommTestApp/MmCommTest.h | 37 + > .../Application/MmCommTestApp/MmCommTest.inf | 57 ++ > StandaloneMmPkg/Core/Dependency.c | 389 +++++++ > StandaloneMmPkg/Core/Dispatcher.c | 1071 > ++++++++++++++++++++ > StandaloneMmPkg/Core/FwVol.c | 104 ++ > StandaloneMmPkg/Core/Handle.c | 533 > ++++++++++ > StandaloneMmPkg/Core/InstallConfigurationTable.c | 178 ++++ > StandaloneMmPkg/Core/Locate.c | 496 +++++++++ > StandaloneMmPkg/Core/Mmi.c | 337 ++++++ > StandaloneMmPkg/Core/Notify.c | 203 ++++ > StandaloneMmPkg/Core/Page.c | 384 +++++++ > StandaloneMmPkg/Core/Pool.c | 287 ++++++ > StandaloneMmPkg/Core/StandaloneMmCore.c | 747 > ++++++++++++++ > StandaloneMmPkg/Core/StandaloneMmCore.h | 903 > +++++++++++++++++ > StandaloneMmPkg/Core/StandaloneMmCore.inf | 82 ++ > StandaloneMmPkg/Core/StandaloneMmCorePrivateData.h | 66 ++ > StandaloneMmPkg/Drivers/CpuMm/Arm/Entry.S | 33 + > StandaloneMmPkg/Drivers/CpuMm/Arm/EventHandle.c | 231 +++++ > StandaloneMmPkg/Drivers/CpuMm/Arm/Init.c | 229 +++++ > .../CpuMm/Arm/PiMmStandloneArmTfCpuDriver.h | 89 ++ > .../CpuMm/Arm/PiMmStandloneArmTfCpuDriver.inf | 60 ++ > StandaloneMmPkg/Drivers/CpuMm/Arm/StateSave.c | 51 + > StandaloneMmPkg/Include/Guid/MmCoreData.h | 132 +++ > StandaloneMmPkg/Include/Guid/MmFvDispatch.h | 38 + > StandaloneMmPkg/Include/Guid/MmramMemoryReserve.h | 62 ++ > StandaloneMmPkg/Include/Guid/MpInformation.h | 41 + > .../Library/Arm/StandaloneMmCoreEntryPoint.h | 232 +++++ > StandaloneMmPkg/Include/Library/FvLib.h | 109 ++ > StandaloneMmPkg/Include/Library/MemLib.h | 140 +++ > .../Include/Library/MmCoreStandaloneEntryPoint.h | 101 ++ > .../Include/Library/MmDriverStandaloneEntryPoint.h | 148 +++ > StandaloneMmPkg/Include/StandaloneMm.h | 36 + > StandaloneMmPkg/Library/FvLib/FvLib.c | 366 +++++++ > StandaloneMmPkg/Library/FvLib/FvLib.inf | 57 ++ > StandaloneMmPkg/Library/HobLib/Arm/HobLib.c | 697 > +++++++++++++ > StandaloneMmPkg/Library/HobLib/HobLib.inf | 45 + > StandaloneMmPkg/Library/MemLib/Arm/MemLib.c | 276 +++++ > StandaloneMmPkg/Library/MemLib/MemLib.inf | 47 + > .../MemoryAllocationLib/MemoryAllocationLib.c | 907 > +++++++++++++++++ > .../MemoryAllocationLib/MemoryAllocationLib.inf | 49 + > .../MemoryAllocationLib/MemoryAllocationServices.h | 38 + > .../StandaloneMmCoreEntryPoint/Arm/CreateHobList.c | 200 ++++ > .../Arm/SetPermissions.c | 278 +++++ > .../Arm/StandaloneMmCoreEntryPoint.c | 264 +++++ > .../StandaloneMmCoreEntryPoint.inf | 53 + > .../StandaloneMmDriverEntryPoint.c | 102 ++ > .../StandaloneMmDriverEntryPoint.inf | 41 + > StandaloneMmPkg/StandaloneMmPkg.dec | 49 + > StandaloneMmPkg/StandaloneMmPkg.dsc | 132 +++ > StandaloneMmPkg/StandaloneMmPkg.fdf | 184 ++++ > StandaloneMmPkg =3D> StandaloneMmPkg~HEAD | 0 > 61 files changed, 12244 insertions(+), 20 deletions(-) create mode > 100644 ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.c > create mode 100644 > ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf > create mode 100644 ArmPkg/Library/ArmMmuLib/AArch64/ArmMmuSecLib.c > create mode 100644 ArmPkg/Library/ArmMmuLib/ArmMmuSecLib.inf > create mode 100644 > StandaloneMmPkg/Application/MmCommTestApp/MmCommTest.c > create mode 100644 > StandaloneMmPkg/Application/MmCommTestApp/MmCommTest.h > create mode 100644 > StandaloneMmPkg/Application/MmCommTestApp/MmCommTest.inf > create mode 100644 StandaloneMmPkg/Core/Dependency.c create mode > 100644 StandaloneMmPkg/Core/Dispatcher.c create mode 100644 > StandaloneMmPkg/Core/FwVol.c create mode 100644 > StandaloneMmPkg/Core/Handle.c create mode 100644 > StandaloneMmPkg/Core/InstallConfigurationTable.c > create mode 100644 StandaloneMmPkg/Core/Locate.c create mode 100644 > StandaloneMmPkg/Core/Mmi.c create mode 100644 > StandaloneMmPkg/Core/Notify.c create mode 100644 > StandaloneMmPkg/Core/Page.c create mode 100644 > StandaloneMmPkg/Core/Pool.c create mode 100644 > StandaloneMmPkg/Core/StandaloneMmCore.c > create mode 100644 StandaloneMmPkg/Core/StandaloneMmCore.h > create mode 100644 StandaloneMmPkg/Core/StandaloneMmCore.inf > create mode 100644 > StandaloneMmPkg/Core/StandaloneMmCorePrivateData.h > create mode 100644 StandaloneMmPkg/Drivers/CpuMm/Arm/Entry.S > create mode 100644 StandaloneMmPkg/Drivers/CpuMm/Arm/EventHandle.c > create mode 100644 StandaloneMmPkg/Drivers/CpuMm/Arm/Init.c > create mode 100644 > StandaloneMmPkg/Drivers/CpuMm/Arm/PiMmStandloneArmTfCpuDriver.h > create mode 100644 > StandaloneMmPkg/Drivers/CpuMm/Arm/PiMmStandloneArmTfCpuDriver.inf > create mode 100644 StandaloneMmPkg/Drivers/CpuMm/Arm/StateSave.c > create mode 100644 StandaloneMmPkg/Include/Guid/MmCoreData.h > create mode 100644 StandaloneMmPkg/Include/Guid/MmFvDispatch.h > create mode 100644 > StandaloneMmPkg/Include/Guid/MmramMemoryReserve.h > create mode 100644 StandaloneMmPkg/Include/Guid/MpInformation.h > create mode 100644 > StandaloneMmPkg/Include/Library/Arm/StandaloneMmCoreEntryPoint.h > create mode 100644 StandaloneMmPkg/Include/Library/FvLib.h > create mode 100644 StandaloneMmPkg/Include/Library/MemLib.h > create mode 100644 > StandaloneMmPkg/Include/Library/MmCoreStandaloneEntryPoint.h > create mode 100644 > StandaloneMmPkg/Include/Library/MmDriverStandaloneEntryPoint.h > create mode 100644 StandaloneMmPkg/Include/StandaloneMm.h > create mode 100644 StandaloneMmPkg/Library/FvLib/FvLib.c > create mode 100644 StandaloneMmPkg/Library/FvLib/FvLib.inf > create mode 100644 StandaloneMmPkg/Library/HobLib/Arm/HobLib.c > create mode 100644 StandaloneMmPkg/Library/HobLib/HobLib.inf > create mode 100644 StandaloneMmPkg/Library/MemLib/Arm/MemLib.c > create mode 100644 StandaloneMmPkg/Library/MemLib/MemLib.inf > create mode 100644 > StandaloneMmPkg/Library/MemoryAllocationLib/MemoryAllocationLib.c > create mode 100644 > StandaloneMmPkg/Library/MemoryAllocationLib/MemoryAllocationLib.inf > create mode 100644 > StandaloneMmPkg/Library/MemoryAllocationLib/MemoryAllocationServices.h > create mode 100644 > StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/CreateHobList.c > create mode 100644 > StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/SetPermissions. > c > create mode 100644 > StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/Arm/StandaloneMm > CoreEntryPoint.c > create mode 100644 > StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreE > ntryPoint.inf > create mode 100644 > StandaloneMmPkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriv > erEntryPoint.c > create mode 100644 > StandaloneMmPkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriv > erEntryPoint.inf > create mode 100644 StandaloneMmPkg/StandaloneMmPkg.dec > create mode 100644 StandaloneMmPkg/StandaloneMmPkg.dsc > create mode 100644 StandaloneMmPkg/StandaloneMmPkg.fdf > rename StandaloneMmPkg =3D> StandaloneMmPkg~HEAD (100%) > > -- > 2.16.2 IMPORTANT NOTICE: The contents of this email and any attachments are confid= ential and may also be privileged. If you are not the intended recipient, p= lease notify the sender immediately and do not disclose the contents to any= other person, use it for any purpose, or store or copy the information in = any medium. Thank you.