2015-02-28 21:34:36 +01:00
|
|
|
#
|
2015-05-29 15:50:43 +02:00
|
|
|
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
2015-02-28 21:34:36 +01:00
|
|
|
# Copyright (c) 2014, Linaro Limited. All rights reserved.
|
2016-04-06 09:05:59 +02:00
|
|
|
# Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.<BR>
|
2015-02-28 21:34:36 +01:00
|
|
|
#
|
|
|
|
# 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 Section - statements that will be processed to create a Makefile.
|
|
|
|
#
|
|
|
|
################################################################################
|
|
|
|
[Defines]
|
2015-05-29 15:50:43 +02:00
|
|
|
PLATFORM_NAME = ArmVirtXen
|
2015-02-28 21:34:36 +01:00
|
|
|
PLATFORM_GUID = d1c43be3-3373-4a06-86fb-d1cb3083a207
|
|
|
|
PLATFORM_VERSION = 0.1
|
|
|
|
DSC_SPECIFICATION = 0x00010005
|
2015-05-29 15:50:43 +02:00
|
|
|
OUTPUT_DIRECTORY = Build/ArmVirtXen-$(ARCH)
|
2015-12-17 18:11:33 +01:00
|
|
|
SUPPORTED_ARCHITECTURES = AARCH64|ARM
|
2017-12-06 12:35:15 +01:00
|
|
|
BUILD_TARGETS = DEBUG|RELEASE|NOOPT
|
2015-02-28 21:34:36 +01:00
|
|
|
SKUID_IDENTIFIER = DEFAULT
|
2015-05-29 15:50:43 +02:00
|
|
|
FLASH_DEFINITION = ArmVirtPkg/ArmVirtXen.fdf
|
2015-02-28 21:34:36 +01:00
|
|
|
|
2015-05-29 15:50:43 +02:00
|
|
|
!include ArmVirtPkg/ArmVirt.dsc.inc
|
2015-02-28 21:34:36 +01:00
|
|
|
|
|
|
|
[LibraryClasses]
|
|
|
|
SerialPortLib|OvmfPkg/Library/XenConsoleSerialPortLib/XenConsoleSerialPortLib.inf
|
2015-05-29 15:50:43 +02:00
|
|
|
RealTimeClockLib|ArmVirtPkg/Library/XenRealTimeClockLib/XenRealTimeClockLib.inf
|
2015-03-03 09:13:09 +01:00
|
|
|
XenHypercallLib|OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf
|
2015-02-28 21:34:36 +01:00
|
|
|
|
2016-09-05 12:48:17 +02:00
|
|
|
ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
|
2016-06-16 11:51:10 +02:00
|
|
|
ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
|
|
|
|
|
2015-02-28 21:34:36 +01:00
|
|
|
# Virtio Support
|
|
|
|
VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
|
|
|
|
VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
|
|
|
|
|
2017-11-17 14:58:07 +01:00
|
|
|
ArmVirtMemInfoLib|ArmVirtPkg/Library/XenVirtMemInfoLib/XenVirtMemInfoLib.inf
|
2015-02-28 21:34:36 +01:00
|
|
|
|
|
|
|
TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
|
|
|
|
|
|
|
|
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
2017-11-30 21:28:23 +01:00
|
|
|
UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
|
|
|
|
BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
|
|
|
|
PlatformBootManagerLib|ArmPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
|
2015-02-28 21:34:36 +01:00
|
|
|
CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
|
|
|
|
|
|
|
|
[LibraryClasses.common.UEFI_DRIVER]
|
|
|
|
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
|
|
|
|
ArmVirtPkg ARM: make relocatable PrePi users build with CLANG35
The clang developers have made a backward incompatible change to the
command line arguments, and have replaced '-mllvm -arm-use-movt=0'
with '-mno-movt'. This does not matter for most ARM platforms, and
therefore it has been removed from the default CLANG35/ARM CC flags
in patch 1c63516075b3 ("BaseTools CLANG35: drop problematic use-movt
and save-temps options"), but as it turns out, the relocatable PrePi
implementation used by ArmVirtQemuKernel and ArmVirtXen will fail to
build if it contains MOVT/MOVW pairs, due to the fact that these are
not runtime relocatable under ELF.
Since they are runtime relocatable under PE/COFF, and GenFw does the
right thing when encountering them, selectively controlling their
use is more appropriate than disabling them altogether. Therefore,
this patch adds the -mno-movt argument only for the platforms that
use the relocatable PrePi, and only for the module types that may
be pulled into its build.
In addition, switch to the SEC type version of ArmLib, so that
the relocatable PrePi only depends on BASE and SEC type libraries.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
2016-08-03 10:11:29 +02:00
|
|
|
[BuildOptions.ARM.EDKII.SEC, BuildOptions.ARM.EDKII.BASE]
|
|
|
|
# Avoid MOVT/MOVW instruction pairs in code that may end up in the PIE
|
|
|
|
# executable we build for the relocatable PrePi. They are not runtime
|
|
|
|
# relocatable in ELF.
|
|
|
|
*_CLANG35_*_CC_FLAGS = -mno-movt
|
|
|
|
|
2015-02-28 21:34:36 +01:00
|
|
|
################################################################################
|
|
|
|
#
|
|
|
|
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
|
|
|
|
#
|
|
|
|
################################################################################
|
|
|
|
|
|
|
|
[PcdsFixedAtBuild.common]
|
|
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"$(FIRMWARE_VER)"
|
|
|
|
|
|
|
|
gArmPlatformTokenSpaceGuid.PcdCoreCount|1
|
|
|
|
!if $(ARCH) == AARCH64
|
|
|
|
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
|
|
|
!endif
|
|
|
|
|
|
|
|
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
|
|
|
|
|
|
|
|
# Size of the region used by UEFI in permanent memory (Reserved 64MB)
|
|
|
|
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
|
|
|
|
|
|
|
|
#
|
|
|
|
# ARM Virtual Architectural Timer
|
|
|
|
#
|
|
|
|
gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|0
|
|
|
|
|
|
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
|
2017-11-30 21:28:23 +01:00
|
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
|
2015-02-28 21:34:36 +01:00
|
|
|
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }
|
|
|
|
|
2017-11-30 21:28:23 +01:00
|
|
|
## Default Terminal Type
|
|
|
|
## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
|
|
|
|
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
|
|
|
|
|
|
|
|
# Set terminal type to TtyTerm, the value encoded is EFI_TTY_TERM_GUID
|
|
|
|
gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x80, 0x6d, 0x91, 0x7d, 0xb1, 0x5b, 0x8c, 0x45, 0xa4, 0x8f, 0xe2, 0x5f, 0xdd, 0x51, 0xef, 0x94}
|
|
|
|
|
2015-02-28 21:34:36 +01:00
|
|
|
[PcdsPatchableInModule.common]
|
|
|
|
#
|
|
|
|
# This will be overridden in the code
|
|
|
|
#
|
|
|
|
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x0
|
|
|
|
gArmTokenSpaceGuid.PcdSystemMemorySize|0x0
|
2015-05-29 15:50:43 +02:00
|
|
|
gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x0
|
2015-02-28 21:34:36 +01:00
|
|
|
|
|
|
|
gArmTokenSpaceGuid.PcdFdBaseAddress|0x0
|
|
|
|
gArmTokenSpaceGuid.PcdFvBaseAddress|0x0
|
|
|
|
|
|
|
|
[PcdsDynamicDefault.common]
|
|
|
|
|
|
|
|
gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum|0x0
|
|
|
|
gArmTokenSpaceGuid.PcdArmArchTimerIntrNum|0x0
|
|
|
|
gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum|0x0
|
|
|
|
gArmTokenSpaceGuid.PcdArmArchTimerHypIntrNum|0x0
|
|
|
|
|
|
|
|
#
|
|
|
|
# ARM General Interrupt Controller
|
|
|
|
#
|
|
|
|
gArmTokenSpaceGuid.PcdGicDistributorBase|0x0
|
|
|
|
gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x0
|
|
|
|
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x0
|
|
|
|
|
|
|
|
## PL031 RealTimeClock
|
|
|
|
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0
|
|
|
|
|
2015-05-06 06:44:43 +02:00
|
|
|
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3
|
2015-02-28 21:34:36 +01:00
|
|
|
|
|
|
|
################################################################################
|
|
|
|
#
|
|
|
|
# Components Section - list of all EDK II Modules needed by this Platform
|
|
|
|
#
|
|
|
|
################################################################################
|
|
|
|
[Components.common]
|
|
|
|
#
|
|
|
|
# PEI Phase modules
|
|
|
|
#
|
2015-05-29 15:50:43 +02:00
|
|
|
ArmVirtPkg/PrePi/ArmVirtPrePiUniCoreRelocatable.inf {
|
2015-02-28 21:34:36 +01:00
|
|
|
<LibraryClasses>
|
|
|
|
ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
|
2015-04-08 21:58:50 +02:00
|
|
|
LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
2015-02-28 21:34:36 +01:00
|
|
|
PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
|
|
|
|
HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
|
|
|
|
PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf
|
|
|
|
MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
|
|
|
|
SerialPortLib|OvmfPkg/Library/XenConsoleSerialPortLib/XenConsoleSerialPortLib.inf
|
|
|
|
}
|
|
|
|
|
|
|
|
#
|
|
|
|
# DXE
|
|
|
|
#
|
|
|
|
MdeModulePkg/Core/Dxe/DxeMain.inf {
|
|
|
|
<LibraryClasses>
|
|
|
|
NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
|
|
|
|
}
|
2016-04-06 13:42:28 +02:00
|
|
|
MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {
|
|
|
|
<LibraryClasses>
|
|
|
|
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
|
|
|
}
|
2015-02-28 21:34:36 +01:00
|
|
|
|
|
|
|
#
|
|
|
|
# Architectural Protocols
|
|
|
|
#
|
|
|
|
ArmPkg/Drivers/CpuDxe/CpuDxe.inf
|
|
|
|
MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
|
|
|
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
|
|
|
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
|
|
|
|
|
|
|
MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
|
|
|
|
|
|
|
|
MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
2017-07-03 15:46:18 +02:00
|
|
|
MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
|
2015-02-28 21:34:36 +01:00
|
|
|
EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
|
|
|
|
EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
|
|
|
|
|
|
|
|
MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
|
|
|
|
MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
2015-11-26 09:52:12 +01:00
|
|
|
MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
|
2015-02-28 21:34:36 +01:00
|
|
|
|
|
|
|
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
|
|
|
|
|
|
|
ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
2016-04-08 11:44:56 +02:00
|
|
|
ArmPkg/Drivers/TimerDxe/TimerDxe.inf {
|
|
|
|
<LibraryClasses>
|
|
|
|
NULL|ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.inf
|
|
|
|
}
|
2015-02-28 21:34:36 +01:00
|
|
|
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
|
|
|
|
|
|
|
#
|
|
|
|
# Platform Driver
|
|
|
|
#
|
2016-04-08 11:45:10 +02:00
|
|
|
ArmVirtPkg/XenioFdtDxe/XenioFdtDxe.inf
|
2016-04-08 11:44:50 +02:00
|
|
|
ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
|
2015-02-28 21:34:36 +01:00
|
|
|
|
|
|
|
#
|
2017-09-08 14:41:49 +02:00
|
|
|
# FAT filesystem + GPT/MBR partitioning + UDF filesystem
|
2015-02-28 21:34:36 +01:00
|
|
|
#
|
|
|
|
MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
|
|
|
|
MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
|
|
|
|
MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
2016-04-06 09:05:59 +02:00
|
|
|
FatPkg/EnhancedFatDxe/Fat.inf
|
2017-09-08 14:41:49 +02:00
|
|
|
MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
|
2015-02-28 21:34:36 +01:00
|
|
|
|
|
|
|
#
|
|
|
|
# Bds
|
|
|
|
#
|
|
|
|
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
|
|
|
MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
|
|
|
|
MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
|
2017-11-30 21:28:23 +01:00
|
|
|
MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
|
|
|
|
MdeModulePkg/Application/UiApp/UiApp.inf {
|
|
|
|
<LibraryClasses>
|
|
|
|
NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
|
|
|
|
NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
|
|
|
|
NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
|
|
|
|
}
|
2015-02-28 21:34:36 +01:00
|
|
|
|
|
|
|
OvmfPkg/XenBusDxe/XenBusDxe.inf
|
|
|
|
OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf
|
2016-06-25 09:16:49 +02:00
|
|
|
|
|
|
|
#
|
|
|
|
# ACPI support
|
|
|
|
#
|
2017-03-17 15:46:40 +01:00
|
|
|
ArmVirtPkg/XenPlatformHasAcpiDtDxe/XenPlatformHasAcpiDtDxe.inf
|
2017-05-03 00:38:15 +02:00
|
|
|
!if $(ARCH) == AARCH64
|
2016-06-25 09:16:49 +02:00
|
|
|
ArmVirtPkg/XenAcpiPlatformDxe/XenAcpiPlatformDxe.inf
|
|
|
|
!endif
|