StandaloneMmPkg: Describe the declaration and definition files.
[mirror_edk2.git] / StandaloneMmPkg / StandaloneMmPkg.dsc
1 ## @file
2 # Standalone MM Platform.
3 #
4 # Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
5 # Copyright (c) 2016 - 2018, ARM Limited. All rights reserved.<BR>
6 #
7 # This program and the accompanying materials
8 # are licensed and made available under the terms and conditions of the BSD License
9 # which accompanies this distribution. The full text of the license may be found at
10 # http://opensource.org/licenses/bsd-license.php
11 #
12 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14 #
15 ##
16
17 ################################################################################
18 #
19 # Defines Section - statements that will be processed to create a Makefile.
20 #
21 ################################################################################
22 [Defines]
23 PLATFORM_NAME = StandaloneMm
24 PLATFORM_GUID = 9A4BBA60-B4F9-47C7-9258-3BD77CAE9322
25 PLATFORM_VERSION = 1.0
26 DSC_SPECIFICATION = 0x00010011
27 OUTPUT_DIRECTORY = Build/StandaloneMm
28 SUPPORTED_ARCHITECTURES = IA32|X64|AARCH64
29 BUILD_TARGETS = DEBUG|RELEASE
30 SKUID_IDENTIFIER = DEFAULT
31
32 # LzmaF86
33 DEFINE COMPRESSION_TOOL_GUID = D42AE6BD-1352-4bfb-909A-CA72A6EAE889
34
35 ################################################################################
36 #
37 # Library Class section - list of all Library Classes needed by this Platform.
38 #
39 ################################################################################
40 [LibraryClasses]
41 #
42 # Basic
43 #
44 BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
45 BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
46 DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
47 DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
48 FvLib|StandaloneMmPkg/Library/FvLib/FvLib.inf
49 HobLib|StandaloneMmPkg/Library/StandaloneMmCoreHobLib/StandaloneMmCoreHobLib.inf
50 IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
51 MemLib|StandaloneMmPkg/Library/StandaloneMmMemLib/StandaloneMmMemLib.inf
52 MemoryAllocationLib|StandaloneMmPkg/Library/StandaloneMmCoreMemoryAllocationLib/StandaloneMmCoreMemoryAllocationLib.inf
53 PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
54 PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
55 PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
56 ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf
57
58 #
59 # Entry point
60 #
61 StandaloneMmDriverEntryPoint|StandaloneMmPkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoint.inf
62
63 [LibraryClasses.AARCH64]
64 ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
65 ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuStandaloneMmCoreLib.inf
66 ArmSvcLib|ArmPkg/Library/ArmSvcLib/ArmSvcLib.inf
67 CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
68 PeCoffExtraActionLib|ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf
69 PL011UartLib|ArmPlatformPkg/Library/PL011UartLib/PL011UartLib.inf
70 # ARM PL011 UART Driver
71 SerialPortLib|ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
72
73 StandaloneMmCoreEntryPoint|StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf
74
75 ################################################################################
76 #
77 # Pcd Section - list of all EDK II PCD Entries defined by this Platform
78 #
79 ################################################################################
80 [PcdsFeatureFlag]
81 gStandaloneMmPkgTokenSpaceGuid.PcdStandaloneMmEnable|TRUE
82
83 [PcdsFixedAtBuild]
84 gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x800000CF
85 gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xff
86 gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x0f
87
88 [PcdsFixedAtBuild.AARCH64]
89 ## PL011 - Serial Terminal
90 gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x1c0b0000
91 gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200
92
93 ###################################################################################################
94 #
95 # Components Section - list of the modules and components that will be processed by compilation
96 # tools and the EDK II tools to generate PE32/PE32+/Coff image files.
97 #
98 # Note: The EDK II DSC file is not used to specify how compiled binary images get placed
99 # into firmware volume images. This section is just a list of modules to compile from
100 # source into UEFI-compliant binaries.
101 # It is the FDF file that contains information on combining binary files into firmware
102 # volume images, whose concept is beyond UEFI and is described in PI specification.
103 # Binary modules do not need to be listed in this section, as they should be
104 # specified in the FDF file. For example: Shell binary (Shell_Full.efi), FAT binary (Fat.efi),
105 # Logo (Logo.bmp), and etc.
106 # There may also be modules listed in this section that are not required in the FDF file,
107 # When a module listed here is excluded from FDF file, then UEFI-compliant binary will be
108 # generated for it, but the binary will not be put into any firmware volume.
109 #
110 ###################################################################################################
111 [Components.common]
112 #
113 # MM Core
114 #
115 StandaloneMmPkg/Core/StandaloneMmCore.inf
116
117 [Components.AARCH64]
118 StandaloneMmPkg/Drivers/StandaloneMmCpu/AArch64/StandaloneMmCpu.inf
119
120 ###################################################################################################
121 #
122 # BuildOptions Section - Define the module specific tool chain flags that should be used as
123 # the default flags for a module. These flags are appended to any
124 # standard flags that are defined by the build process. They can be
125 # applied for any modules or only those modules with the specific
126 # module style (EDK or EDKII) specified in [Components] section.
127 #
128 ###################################################################################################
129 [BuildOptions.AARCH64]
130 GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000 -march=armv8-a+nofp