## @file\r
# Standalone MM Platform.\r
#\r
-# Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
-# Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.<BR>\r
+# Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2016 - 2021, Arm Limited. All rights reserved.<BR>\r
+# Copyright (C) Microsoft Corporation<BR>\r
#\r
-# This program and the accompanying materials\r
-# are licensed and made available under the terms and conditions of the BSD License\r
-# which accompanies this distribution. The full text of the license may be found at\r
-# http://opensource.org/licenses/bsd-license.php\r
-#\r
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+# SPDX-License-Identifier: BSD-2-Clause-Patent\r
#\r
##\r
\r
PLATFORM_VERSION = 1.0\r
DSC_SPECIFICATION = 0x00010011\r
OUTPUT_DIRECTORY = Build/StandaloneMm\r
- SUPPORTED_ARCHITECTURES = IA32|X64|AARCH64\r
+ SUPPORTED_ARCHITECTURES = AARCH64|X64|ARM\r
BUILD_TARGETS = DEBUG|RELEASE\r
SKUID_IDENTIFIER = DEFAULT\r
\r
# Library Class section - list of all Library Classes needed by this Platform.\r
#\r
################################################################################\r
+\r
+!include MdePkg/MdeLibs.dsc.inc\r
+\r
[LibraryClasses]\r
#\r
# Basic\r
#\r
BaseLib|MdePkg/Library/BaseLib/BaseLib.inf\r
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf\r
- DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf\r
+ CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf\r
+ DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf\r
DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf\r
+ ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf\r
FvLib|StandaloneMmPkg/Library/FvLib/FvLib.inf\r
- HobLib|StandaloneMmPkg/Library/StandaloneMmCoreHobLib/StandaloneMmCoreHobLib.inf\r
+ HobLib|StandaloneMmPkg/Library/StandaloneMmHobLib/StandaloneMmHobLib.inf\r
IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf\r
MemLib|StandaloneMmPkg/Library/StandaloneMmMemLib/StandaloneMmMemLib.inf\r
MemoryAllocationLib|StandaloneMmPkg/Library/StandaloneMmCoreMemoryAllocationLib/StandaloneMmCoreMemoryAllocationLib.inf\r
+ MmServicesTableLib|MdePkg/Library/StandaloneMmServicesTableLib/StandaloneMmServicesTableLib.inf\r
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf\r
+ PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf\r
PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf\r
PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf\r
ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf\r
+ StandaloneMmCoreEntryPoint|StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf\r
+ StandaloneMmDriverEntryPoint|MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf\r
+ VariableMmDependency|StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf\r
\r
- #\r
- # Entry point\r
- #\r
- StandaloneMmDriverEntryPoint|StandaloneMmPkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf\r
-\r
-[LibraryClasses.AARCH64]\r
+[LibraryClasses.AARCH64, LibraryClasses.ARM]\r
ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf\r
StandaloneMmMmuLib|ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf\r
ArmSvcLib|ArmPkg/Library/ArmSvcLib/ArmSvcLib.inf\r
CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf\r
PeCoffExtraActionLib|StandaloneMmPkg/Library/StandaloneMmPeCoffExtraActionLib/StandaloneMmPeCoffExtraActionLib.inf\r
- PL011UartLib|ArmPlatformPkg/Library/PL011UartLib/PL011UartLib.inf\r
- PL011UartClockLib|ArmPlatformPkg/Library/PL011UartClockLib/PL011UartClockLib.inf\r
- # ARM PL011 UART Driver\r
- SerialPortLib|ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf\r
\r
- StandaloneMmCoreEntryPoint|StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf\r
+ NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf\r
+ NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf\r
+\r
+[LibraryClasses.common.MM_CORE_STANDALONE]\r
+ HobLib|StandaloneMmPkg/Library/StandaloneMmCoreHobLib/StandaloneMmCoreHobLib.inf\r
+\r
+[LibraryClasses.common.MM_STANDALONE]\r
+ MemoryAllocationLib|StandaloneMmPkg/Library/StandaloneMmMemoryAllocationLib/StandaloneMmMemoryAllocationLib.inf\r
\r
################################################################################\r
#\r
# Pcd Section - list of all EDK II PCD Entries defined by this Platform\r
#\r
################################################################################\r
-[PcdsFeatureFlag]\r
- gStandaloneMmPkgTokenSpaceGuid.PcdStandaloneMmEnable|TRUE\r
-\r
[PcdsFixedAtBuild]\r
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x800000CF\r
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xff\r
gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x0f\r
\r
-[PcdsFixedAtBuild.AARCH64]\r
- ## PL011 - Serial Terminal\r
- gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x1c0b0000\r
- gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200\r
-\r
###################################################################################################\r
#\r
# Components Section - list of the modules and components that will be processed by compilation\r
# MM Core\r
#\r
StandaloneMmPkg/Core/StandaloneMmCore.inf\r
+ StandaloneMmPkg/Library/FvLib/FvLib.inf\r
+ StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf\r
+ StandaloneMmPkg/Library/StandaloneMmCoreHobLib/StandaloneMmCoreHobLib.inf\r
+ StandaloneMmPkg/Library/StandaloneMmCoreMemoryAllocationLib/StandaloneMmCoreMemoryAllocationLib.inf\r
+ StandaloneMmPkg/Library/StandaloneMmHobLib/StandaloneMmHobLib.inf\r
+ StandaloneMmPkg/Library/StandaloneMmMemLib/StandaloneMmMemLib.inf\r
+ StandaloneMmPkg/Library/StandaloneMmMemoryAllocationLib/StandaloneMmMemoryAllocationLib.inf\r
+ StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.inf\r
\r
-[Components.AARCH64]\r
- StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.inf\r
+[Components.AARCH64, Components.ARM]\r
+ StandaloneMmPkg/Drivers/StandaloneMmCpu/StandaloneMmCpu.inf\r
+ StandaloneMmPkg/Library/StandaloneMmPeCoffExtraActionLib/StandaloneMmPeCoffExtraActionLib.inf\r
\r
###################################################################################################\r
#\r
[BuildOptions.AARCH64]\r
GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 -march=armv8-a+nofp -mstrict-align\r
GCC:*_*_*_CC_FLAGS = -mstrict-align\r
+\r
+[BuildOptions.ARM]\r
+GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 -march=armv7-a\r
+GCC:*_*_*_CC_FLAGS = -fno-stack-protector\r
+\r
+[BuildOptions.X64]\r
+ MSFT:*_*_*_DLINK_FLAGS = /ALIGN:4096\r
+ GCC:*_GCC*_*_DLINK_FLAGS = -z common-page-size=0x1000\r