• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2#  Copyright (c) 2011-2015, ARM Limited. All rights reserved.
3#  Copyright (c) 2014, Linaro Limited. All rights reserved.
4#  Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
5#
6#  This program and the accompanying materials
7#  are licensed and made available under the terms and conditions of the BSD License
8#  which accompanies this distribution.  The full text of the license may be found at
9#  http://opensource.org/licenses/bsd-license.php
10#
11#  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12#  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13#
14#
15
16################################################################################
17#
18# Defines Section - statements that will be processed to create a Makefile.
19#
20################################################################################
21[Defines]
22  PLATFORM_NAME                  = ArmVirtXen
23  PLATFORM_GUID                  = d1c43be3-3373-4a06-86fb-d1cb3083a207
24  PLATFORM_VERSION               = 0.1
25  DSC_SPECIFICATION              = 0x00010005
26  OUTPUT_DIRECTORY               = Build/ArmVirtXen-$(ARCH)
27  SUPPORTED_ARCHITECTURES        = AARCH64|ARM
28  BUILD_TARGETS                  = DEBUG|RELEASE
29  SKUID_IDENTIFIER               = DEFAULT
30  FLASH_DEFINITION               = ArmVirtPkg/ArmVirtXen.fdf
31
32!include ArmVirtPkg/ArmVirt.dsc.inc
33
34[LibraryClasses]
35  SerialPortLib|OvmfPkg/Library/XenConsoleSerialPortLib/XenConsoleSerialPortLib.inf
36  RealTimeClockLib|ArmVirtPkg/Library/XenRealTimeClockLib/XenRealTimeClockLib.inf
37  XenHypercallLib|OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf
38
39[LibraryClasses.AARCH64]
40  ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
41
42[LibraryClasses.ARM]
43  ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
44
45[LibraryClasses.common]
46  ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
47  ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
48
49  # Virtio Support
50  VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
51  VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
52
53  ArmPlatformLib|ArmVirtPkg/Library/ArmXenRelocatablePlatformLib/ArmXenRelocatablePlatformLib.inf
54  ArmPlatformSysConfigLib|ArmPlatformPkg/Library/ArmPlatformSysConfigLibNull/ArmPlatformSysConfigLibNull.inf
55
56  TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
57
58  CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
59  GenericBdsLib|IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
60  PlatformBdsLib|ArmPlatformPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
61  CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
62
63  BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf
64
65[LibraryClasses.common.UEFI_DRIVER]
66  UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
67
68[BuildOptions]
69  RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 -I$(WORKSPACE)/ArmVirtPkg/Include
70  GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/ArmVirtPkg/Include
71  GCC:*_*_AARCH64_PLATFORM_FLAGS == -I$(WORKSPACE)/ArmVirtPkg/Include
72
73[BuildOptions.ARM.EDKII.SEC, BuildOptions.ARM.EDKII.BASE]
74  # Avoid MOVT/MOVW instruction pairs in code that may end up in the PIE
75  # executable we build for the relocatable PrePi. They are not runtime
76  # relocatable in ELF.
77  *_CLANG35_*_CC_FLAGS = -mno-movt
78
79################################################################################
80#
81# Pcd Section - list of all EDK II PCD Entries defined by this Platform
82#
83################################################################################
84
85[PcdsFixedAtBuild.common]
86  gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"$(FIRMWARE_VER)"
87
88  gArmPlatformTokenSpaceGuid.PcdCoreCount|1
89!if $(ARCH) == AARCH64
90  gArmTokenSpaceGuid.PcdVFPEnabled|1
91!endif
92
93  gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
94
95  # Size of the region used by UEFI in permanent memory (Reserved 64MB)
96  gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
97
98  #
99  # ARM Virtual Architectural Timer
100  #
101  gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|0
102
103  gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
104  gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }
105
106[PcdsPatchableInModule.common]
107  #
108  # This will be overridden in the code
109  #
110  gArmTokenSpaceGuid.PcdSystemMemoryBase|0x0
111  gArmTokenSpaceGuid.PcdSystemMemorySize|0x0
112  gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x0
113
114  gArmTokenSpaceGuid.PcdFdBaseAddress|0x0
115  gArmTokenSpaceGuid.PcdFvBaseAddress|0x0
116
117[PcdsDynamicDefault.common]
118
119  gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum|0x0
120  gArmTokenSpaceGuid.PcdArmArchTimerIntrNum|0x0
121  gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum|0x0
122  gArmTokenSpaceGuid.PcdArmArchTimerHypIntrNum|0x0
123
124  #
125  # ARM General Interrupt Controller
126  #
127  gArmTokenSpaceGuid.PcdGicDistributorBase|0x0
128  gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x0
129  gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x0
130
131  ## PL031 RealTimeClock
132  gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0
133
134  gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3
135
136################################################################################
137#
138# Components Section - list of all EDK II Modules needed by this Platform
139#
140################################################################################
141[Components.common]
142  #
143  # PEI Phase modules
144  #
145  ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf {
146    <LibraryClasses>
147      ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
148      LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
149      PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
150      HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
151      PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf
152      MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
153      SerialPortLib|OvmfPkg/Library/XenConsoleSerialPortLib/XenConsoleSerialPortLib.inf
154  }
155
156  #
157  # DXE
158  #
159  MdeModulePkg/Core/Dxe/DxeMain.inf {
160    <LibraryClasses>
161      NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
162  }
163  MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {
164    <LibraryClasses>
165      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
166  }
167
168  #
169  # Architectural Protocols
170  #
171  ArmPkg/Drivers/CpuDxe/CpuDxe.inf
172  MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
173  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
174  MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
175
176  MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
177
178  MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
179  EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
180  EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
181  EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
182
183  MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
184  MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
185  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
186
187  MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
188
189  ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
190  ArmPkg/Drivers/TimerDxe/TimerDxe.inf {
191    <LibraryClasses>
192      NULL|ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.inf
193  }
194  MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
195
196  #
197  # Platform Driver
198  #
199  ArmVirtPkg/XenioFdtDxe/XenioFdtDxe.inf
200  ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
201
202  #
203  # FAT filesystem + GPT/MBR partitioning
204  #
205  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
206  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
207  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
208  FatPkg/EnhancedFatDxe/Fat.inf
209
210  #
211  # Bds
212  #
213  MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
214  MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
215  MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
216  IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
217
218  OvmfPkg/XenBusDxe/XenBusDxe.inf
219  OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf
220
221  #
222  # ACPI support
223  #
224!if $(ARCH) == AARCH64
225  ArmVirtPkg/XenAcpiPlatformDxe/XenAcpiPlatformDxe.inf
226!endif
227