[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 29/29] ArmVirtualizationPkg: add platform description for Xen guests
On 3 February 2015 at 12:14, Laszlo Ersek <lersek@xxxxxxxxxx> wrote: > On 01/26/15 20:03, Ard Biesheuvel wrote: >> This adds the .dsc and .fdf descriptions to build a UEFI image that >> is bootable by a Xen guest on 64-bit ARM (AArch64) >> >> Contributed-under: TianoCore Contribution Agreement 1.0 >> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@xxxxxxxxxx> >> --- >> ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationXen.dsc | 279 >> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ >> ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationXen.fdf | 337 >> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ >> 2 files changed, 616 insertions(+) >> >> diff --git a/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationXen.dsc >> b/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationXen.dsc >> new file mode 100644 >> index 000000000000..bcc9742c6828 >> --- /dev/null >> +++ b/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationXen.dsc >> @@ -0,0 +1,279 @@ >> +# >> +# Copyright (c) 2011-2013, ARM Limited. All rights reserved. >> +# Copyright (c) 2014, Linaro Limited. All rights reserved. >> +# >> +# 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] >> + PLATFORM_NAME = ArmVirtualizationQemu > > Wut? :) > Y I spotted that one myself in the mean time >> + PLATFORM_GUID = 37d7e986-f7e9-45c2-8067-e371421a626c > > PLATFORM_GUID shoud be updated as well. > OK > I won't check the rest of the patch now; you got several notes from > Julien. Please eyeball this patch for any leftovers from the QEMU files. > You can add my > > Acked-by: Laszlo Ersek <lersek@xxxxxxxxxx> > > then. > Yes. I am removing all the virtio references and ARM bds bits. > Also, I think I finished reviewing the series. (Some patches I didn't > comment on; I didn't want to review those.) > Many thanks for taking so much time to review this. I really appreciate it a lot! I intend to send out v3 before heading off to Hong Kong for Linaro Connect, so probably tomorrow by the end of the day. Cheers, Ard. >> + PLATFORM_VERSION = 0.1 >> + DSC_SPECIFICATION = 0x00010005 >> + OUTPUT_DIRECTORY = Build/ArmVirtualizationXen-$(ARCH) >> + SUPPORTED_ARCHITECTURES = AARCH64 >> + BUILD_TARGETS = DEBUG|RELEASE >> + SKUID_IDENTIFIER = DEFAULT >> + FLASH_DEFINITION = >> ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationXen.fdf >> + >> +!include ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualization.dsc.inc >> + >> +[LibraryClasses] >> + >> SerialPortLib|OvmfPkg/Library/XenConsoleSerialPortLib/XenConsoleSerialPortLib.inf >> + >> RealTimeClockLib|OvmfPkg/Library/XenRealTimeClockLib/XenRealTimeClockLib.inf >> + XenHypercallLib|OvmfPkg/Library/XenHypercallLib/XenHypercallLibArm.inf >> + >> XenIoMmioLib|ArmPlatformPkg/ArmVirtualizationPkg/Library/XenIoMmioLib/XenIoMmioLib.inf >> + >> +[LibraryClasses.AARCH64] >> + ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf >> + ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf >> + >> +[LibraryClasses.ARM] >> + ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf >> + ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf >> + >> +[LibraryClasses.common] >> + # Virtio Support >> + VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf >> + >> VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf >> + >> + >> ArmPlatformLib|ArmPlatformPkg/ArmVirtualizationPkg/Library/ArmXenRelocatablePlatformLib/ArmXenRelocatablePlatformLib.inf >> + >> ArmPlatformSysConfigLib|ArmPlatformPkg/Library/ArmPlatformSysConfigLibNull/ArmPlatformSysConfigLibNull.inf >> + >> + TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf >> + >> +!ifdef INTEL_BDS >> + CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf >> + >> GenericBdsLib|IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf >> + >> PlatformBdsLib|ArmPlatformPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf >> + >> CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf >> +!endif >> + >> +[LibraryClasses.common.UEFI_DRIVER] >> + UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf >> + >> +[LibraryClasses.AARCH64.SEC] >> + ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf >> + >> +[LibraryClasses.ARM.SEC] >> + ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf >> + >> +[BuildOptions] >> + RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 >> -I$(WORKSPACE)/ArmPlatformPkg/ArmVirtualizationPkg/Include >> + GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 >> -I$(WORKSPACE)/ArmPlatformPkg/ArmVirtualizationPkg/Include >> + GCC:*_*_AARCH64_PLATFORM_FLAGS == >> -I$(WORKSPACE)/ArmPlatformPkg/ArmVirtualizationPkg/Include >> + >> +################################################################################ >> +# >> +# Pcd Section - list of all EDK II PCD Entries defined by this Platform >> +# >> +################################################################################ >> + >> +[PcdsFeatureFlag.common] >> + ## If TRUE, Graphics Output Protocol will be installed on virtual handle >> created by ConsplitterDxe. >> + # It could be set FALSE to save size. >> + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|FALSE >> + >> +[PcdsFixedAtBuild.common] >> + gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000004F >> + >> + gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"XEN-UEFI" >> + gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"$(FIRMWARE_VER)" >> + >> + gArmPlatformTokenSpaceGuid.PcdCoreCount|1 >> +!if $(ARCH) == AARCH64 >> + gArmTokenSpaceGuid.PcdVFPEnabled|1 >> +!endif >> + >> + gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x4007c000 >> + gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000 >> + >> + # Size of the region used by UEFI in permanent memory (Reserved 64MB) >> + gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000 >> + >> + # >> + # ARM Pcds >> + # >> + gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000040000000 >> + >> + ## Trustzone enable (to make the transition from EL3 to EL2 in >> ArmPlatformPkg/Sec) >> + gArmTokenSpaceGuid.PcdTrustzoneSupport|FALSE >> + >> + # >> + # ARM PrimeCell >> + # >> + >> + ## PL011 - Serial Terminal >> + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|38400 >> + >> + # >> + # ARM OS Loader >> + # >> + gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"Linux (EFI stub) >> on virtio31:hd0:part0" >> + >> gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"VenHw(837DCA9E-E874-4D82-B29A-23FE0E23D1E2,003E000A00000000)/HD(1,MBR,0x00000000,0x3F,0x19FC0)/Image" >> + gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|"root=/dev/vda2 >> console=ttyAMA0 earlycon uefi_debug" >> + gArmPlatformTokenSpaceGuid.PcdDefaultBootType|0 >> + >> + # Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut) >> + >> gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenVt100()" >> + >> gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenVt100()" >> + gArmPlatformTokenSpaceGuid.PcdPlatformBootTimeOut|3 >> + >> + # >> + # ARM Virtual Architectural Timer >> + # >> + gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|100000000 >> + >> + # >> + # NV Storage PCDs. Use base of 0x04000000 for NOR1 >> + # >> + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x04000000 >> + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x00040000 >> + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x04040000 >> + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x00040000 >> + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x04080000 >> + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x00040000 >> + >> +!ifdef INTEL_BDS >> + gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE >> +!endif >> + >> +[PcdsPatchableInModule.common] >> + # >> + # This will be overridden in the code >> + # >> + gArmTokenSpaceGuid.PcdSystemMemoryBase|0x0 >> + gArmTokenSpaceGuid.PcdSystemMemorySize|0x0 >> + gArmVirtualizationTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x0 >> + >> + 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.PcdGicInterruptInterfaceBase|0x0 >> + >> + ## PL031 RealTimeClock >> + gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0 >> + >> + gArmVirtualizationTokenSpaceGuid.PcdFwCfgSelectorAddress|0x0 >> + gArmVirtualizationTokenSpaceGuid.PcdFwCfgDataAddress|0x0 >> + >> + gArmVirtualizationTokenSpaceGuid.PcdArmPsciMethod|0 >> + >> +################################################################################ >> +# >> +# Components Section - list of all EDK II Modules needed by this Platform >> +# >> +################################################################################ >> +[Components.common] >> + # >> + # PEI Phase modules >> + # >> + ArmPlatformPkg/PrePi/PeiUniCoreRelocatable.inf { >> + <LibraryClasses> >> + >> ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf >> + >> LzmaDecompressLib|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf >> + PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf >> + HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf >> + >> PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf >> + >> MemoryInitPeiLib|ArmPlatformPkg/ArmVirtualizationPkg/Library/ArmVirtualizationMemoryInitPeiLib/ArmVirtualizationMemoryInitPeiLib.inf >> + ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibPrePi.inf >> + >> MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf >> + >> ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.inf >> + >> SerialPortLib|OvmfPkg/Library/XenConsoleSerialPortLib/XenConsoleSerialPortLib.inf >> + >> DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf >> + } >> + >> + # >> + # DXE >> + # >> + MdeModulePkg/Core/Dxe/DxeMain.inf { >> + <LibraryClasses> >> + >> NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf >> + } >> + MdeModulePkg/Universal/PCD/Dxe/Pcd.inf >> + >> + # >> + # 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 >> + EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf >> + EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf >> + EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf >> + >> + MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf >> + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf >> + MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf >> + MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf >> + EmbeddedPkg/SerialDxe/SerialDxe.inf >> + >> + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf >> + >> + ArmPkg/Drivers/ArmGic/ArmGicDxe.inf >> + ArmPkg/Drivers/TimerDxe/TimerDxe.inf >> + MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf >> + >> + # >> + # Platform Driver >> + # >> + ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.inf >> + OvmfPkg/VirtioBlkDxe/VirtioBlk.inf >> + OvmfPkg/VirtioScsiDxe/VirtioScsi.inf >> + OvmfPkg/VirtioNetDxe/VirtioNet.inf >> + >> + # >> + # FAT filesystem + GPT/MBR partitioning >> + # >> + MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf >> + MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf >> + MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf >> + >> + # >> + # Bds >> + # >> + MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf >> +!ifdef INTEL_BDS >> + MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf >> + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf >> + IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf >> +!else >> + ArmPlatformPkg/Bds/Bds.inf >> +!endif >> + >> + # >> + # SCSI Bus and Disk Driver >> + # >> + MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf >> + MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf >> + >> + OvmfPkg/XenBusDxe/XenBusDxe.inf >> + OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf >> diff --git a/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationXen.fdf >> b/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationXen.fdf >> new file mode 100644 >> index 000000000000..4676a7b2b29f >> --- /dev/null >> +++ b/ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationXen.fdf >> @@ -0,0 +1,337 @@ >> +# >> +# Copyright (c) 2011, 2013, ARM Limited. All rights reserved. >> +# Copyright (c) 2014, Linaro Limited. All rights reserved. >> +# >> +# 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. >> +# >> + >> +################################################################################ >> +# >> +# FD Section >> +# The [FD] Section is made up of the definition statements and a >> +# description of what goes into the Flash Device Image. Each FD section >> +# defines one flash "device" image. A flash device image may be one of >> +# the following: Removable media bootable image (like a boot floppy >> +# image,) an Option ROM image (that would be "flashed" into an add-in >> +# card,) a System "Flash" image (that would be burned into a system's >> +# flash) or an Update ("Capsule") image that will be used to update and >> +# existing system flash. >> +# >> +################################################################################ >> + >> +[FD.XEN_EFI] >> +BaseAddress = 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress >> +Size = 0x00200000|gArmTokenSpaceGuid.PcdFdSize >> +ErasePolarity = 1 >> + >> +# This one is tricky, it must be: BlockSize * NumBlocks = Size >> +BlockSize = 0x00001000 >> +NumBlocks = 0x200 >> + >> +################################################################################ >> +# >> +# Following are lists of FD Region layout which correspond to the locations >> of different >> +# images within the flash device. >> +# >> +# Regions must be defined in ascending order and may not overlap. >> +# >> +# A Layout Region start with a eight digit hex offset (leading "0x" >> required) followed by >> +# the pipe "|" character, followed by the size of the region, also in hex >> with the leading >> +# "0x" characters. Like: >> +# Offset|Size >> +# PcdOffsetCName|PcdSizeCName >> +# RegionType <FV, DATA, or FILE> >> +# >> +################################################################################ >> + >> +# >> +# Implement the Linux kernel header layout so that the Xen loader will >> identify >> +# it as something bootable, and execute it with a FDT pointer in x0. This >> area >> +# will be reused to store a copy of the FDT so round it up to 8 KB. >> +# >> +0x00000000|0x00002000 >> +DATA = { >> + 0x01, 0x00, 0x00, 0x10, # code0: adr x1, . >> + 0xff, 0x07, 0x00, 0x14, # code1: b 0x2000 >> + 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, # text_offset: 512 KB >> + 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, # image_size: 2 MB >> + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # flags >> + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res2 >> + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res3 >> + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, # res4 >> + 0x41, 0x52, 0x4d, 0x64, # magic: "ARM\x64" >> + 0x00, 0x00, 0x00, 0x00 # res5 >> +} >> + >> +0x00002000|0x001fe000 >> +gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize >> +FV = FVMAIN_COMPACT >> + >> + >> +################################################################################ >> +# >> +# FV Section >> +# >> +# [FV] section is used to define what components or modules are placed >> within a flash >> +# device file. This section also defines order the components and modules >> are positioned >> +# within the image. The [FV] section consists of define statements, set >> statements and >> +# module statements. >> +# >> +################################################################################ >> + >> +[FV.FvMain] >> +BlockSize = 0x40 >> +NumBlocks = 0 # This FV gets compressed so make it just >> big enough >> +FvAlignment = 16 # FV alignment and FV attributes setting. >> +ERASE_POLARITY = 1 >> +MEMORY_MAPPED = TRUE >> +STICKY_WRITE = TRUE >> +LOCK_CAP = TRUE >> +LOCK_STATUS = TRUE >> +WRITE_DISABLED_CAP = TRUE >> +WRITE_ENABLED_CAP = TRUE >> +WRITE_STATUS = TRUE >> +WRITE_LOCK_CAP = TRUE >> +WRITE_LOCK_STATUS = TRUE >> +READ_DISABLED_CAP = TRUE >> +READ_ENABLED_CAP = TRUE >> +READ_STATUS = TRUE >> +READ_LOCK_CAP = TRUE >> +READ_LOCK_STATUS = TRUE >> + >> + APRIORI DXE { >> + INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf >> + INF ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.inf >> + } >> + INF MdeModulePkg/Core/Dxe/DxeMain.inf >> + INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf >> + INF ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.inf >> + >> + # >> + # PI DXE Drivers producing Architectural Protocols (EFI Services) >> + # >> + INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf >> + INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf >> + INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf >> + INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf >> + >> + INF >> MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf >> + >> + INF >> MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf >> + INF EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf >> + INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf >> + INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf >> + INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf >> + >> + # >> + # Multiple Console IO support >> + # >> + INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf >> + INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf >> + INF >> MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf >> + INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf >> + INF EmbeddedPkg/SerialDxe/SerialDxe.inf >> + >> + INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf >> + INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf >> + INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf >> + >> + # >> + # FAT filesystem + GPT/MBR partitioning >> + # >> + INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf >> + INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf >> + INF FatBinPkg/EnhancedFatDxe/Fat.inf >> + INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf >> + >> + # >> + # Platform Driver >> + # >> + INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf >> + INF OvmfPkg/VirtioNetDxe/VirtioNet.inf >> + INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf >> + >> + # >> + # UEFI application (Shell Embedded Boot Loader) >> + # >> + INF ShellBinPkg/UefiShell/UefiShell.inf >> + >> + # >> + # Bds >> + # >> + INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf >> +!ifdef INTEL_BDS >> + INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf >> + INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf >> + INF IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf >> +!else >> + INF ArmPlatformPkg/Bds/Bds.inf >> +!endif >> + >> + # >> + # Networking stack >> + # >> + INF MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf >> + INF MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf >> + INF MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf >> + INF MdeModulePkg/Universal/Network/Ip4ConfigDxe/Ip4ConfigDxe.inf >> + INF MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf >> + INF MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf >> + INF MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf >> + INF MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf >> + INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf >> + INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf >> + INF MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf >> + INF MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf >> + >> + # >> + # SCSI Bus and Disk Driver >> + # >> + INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf >> + INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf >> + >> + INF OvmfPkg/XenBusDxe/XenBusDxe.inf >> + INF OvmfPkg/XenPvBlkDxe/XenPvBlkDxe.inf >> + >> +[FV.FVMAIN_COMPACT] >> +FvAlignment = 16 >> +ERASE_POLARITY = 1 >> +MEMORY_MAPPED = TRUE >> +STICKY_WRITE = TRUE >> +LOCK_CAP = TRUE >> +LOCK_STATUS = TRUE >> +WRITE_DISABLED_CAP = TRUE >> +WRITE_ENABLED_CAP = TRUE >> +WRITE_STATUS = TRUE >> +WRITE_LOCK_CAP = TRUE >> +WRITE_LOCK_STATUS = TRUE >> +READ_DISABLED_CAP = TRUE >> +READ_ENABLED_CAP = TRUE >> +READ_STATUS = TRUE >> +READ_LOCK_CAP = TRUE >> +READ_LOCK_STATUS = TRUE >> + >> + INF ArmPlatformPkg/PrePi/PeiUniCoreRelocatable.inf >> + >> + FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { >> + SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED >> = TRUE { >> + SECTION FV_IMAGE = FVMAIN >> + } >> + } >> + >> + >> +################################################################################ >> +# >> +# Rules are use with the [FV] section's module INF type to define >> +# how an FFS file is created for a given INF file. The following Rule are >> the default >> +# rules for the different module type. User can add the customized rules to >> define the >> +# content of the FFS file. >> +# >> +################################################################################ >> + >> + >> +############################################################################ >> +# Example of a DXE_DRIVER FFS file with a Checksum encapsulation section # >> +############################################################################ >> +# >> +#[Rule.Common.DXE_DRIVER] >> +# FILE DRIVER = $(NAMED_GUID) { >> +# DXE_DEPEX DXE_DEPEX Optional >> $(INF_OUTPUT)/$(MODULE_NAME).depex >> +# COMPRESS PI_STD { >> +# GUIDED { >> +# PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi >> +# UI STRING="$(MODULE_NAME)" Optional >> +# VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) >> +# } >> +# } >> +# } >> +# >> +############################################################################ >> + >> +[Rule.Common.SEC] >> + FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED { >> + TE TE Align = 4K $(INF_OUTPUT)/$(MODULE_NAME).efi >> + } >> + >> +[Rule.Common.PEI_CORE] >> + FILE PEI_CORE = $(NAMED_GUID) { >> + TE TE Align = 8 $(INF_OUTPUT)/$(MODULE_NAME).efi >> + UI STRING ="$(MODULE_NAME)" Optional >> + } >> + >> +[Rule.Common.PEIM] >> + FILE PEIM = $(NAMED_GUID) { >> + PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex >> + TE TE Align = 8 $(INF_OUTPUT)/$(MODULE_NAME).efi >> + UI STRING="$(MODULE_NAME)" Optional >> + } >> + >> +[Rule.Common.PEIM.TIANOCOMPRESSED] >> + FILE PEIM = $(NAMED_GUID) DEBUG_MYTOOLS_IA32 { >> + PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex >> + GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE { >> + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi >> + UI STRING="$(MODULE_NAME)" Optional >> + } >> + } >> + >> +[Rule.Common.DXE_CORE] >> + FILE DXE_CORE = $(NAMED_GUID) { >> + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi >> + UI STRING="$(MODULE_NAME)" Optional >> + } >> + >> +[Rule.Common.UEFI_DRIVER] >> + FILE DRIVER = $(NAMED_GUID) { >> + DXE_DEPEX DXE_DEPEX Optional >> $(INF_OUTPUT)/$(MODULE_NAME).depex >> + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi >> + UI STRING="$(MODULE_NAME)" Optional >> + } >> + >> +[Rule.Common.DXE_DRIVER] >> + FILE DRIVER = $(NAMED_GUID) { >> + DXE_DEPEX DXE_DEPEX Optional >> $(INF_OUTPUT)/$(MODULE_NAME).depex >> + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi >> + UI STRING="$(MODULE_NAME)" Optional >> + } >> + >> +[Rule.Common.DXE_RUNTIME_DRIVER] >> + FILE DRIVER = $(NAMED_GUID) { >> + DXE_DEPEX DXE_DEPEX Optional >> $(INF_OUTPUT)/$(MODULE_NAME).depex >> + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi >> + UI STRING="$(MODULE_NAME)" Optional >> + } >> + >> +[Rule.Common.UEFI_APPLICATION] >> + FILE APPLICATION = $(NAMED_GUID) { >> + UI STRING ="$(MODULE_NAME)" Optional >> + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi >> + } >> + >> +[Rule.Common.UEFI_DRIVER.BINARY] >> + FILE DRIVER = $(NAMED_GUID) { >> + DXE_DEPEX DXE_DEPEX Optional |.depex >> + PE32 PE32 |.efi >> + UI STRING="$(MODULE_NAME)" Optional >> + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) >> + } >> + >> +[Rule.Common.UEFI_APPLICATION.BINARY] >> + FILE APPLICATION = $(NAMED_GUID) { >> + PE32 PE32 |.efi >> + UI STRING="$(MODULE_NAME)" Optional >> + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) >> + } >> + >> +[Rule.Common.USER_DEFINED.ACPITABLE] >> + FILE FREEFORM = $(NAMED_GUID) { >> + RAW ACPI |.acpi >> + RAW ASL |.aml >> + UI STRING="$(MODULE_NAME)" Optional >> + } >> > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |