On 18 January 2016 at 14:55, Laszlo Ersek <ler...@redhat.com> wrote:
> On 01/18/16 15:29, Ryan Harkin wrote:
>> ARM Ltd Platform support is migrating to use OpenPlatformPkg [1].
>>
>> Currently, FVP exists both in EDK2's ArmPlatformPkg and in
>> OpenPlatformPkg [2].  And they are starting to diverge, with
>> OpenPlatformPkg being the most up-to-date with current developments.
>> To prevent this divergence, remove the .dsc and .fdf files from
>> ArmPlatformPkg and leave OpenPlatformPkg as the master.
>>
>> [1] https://git.linaro.org/uefi/OpenPlatformPkg.git
>> [2] 
>> https://git.linaro.org/uefi/OpenPlatformPkg.git/tree/master:/Platforms/ARM/VExpress
>>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>> Signed-off-by: Ryan Harkin <ryan.har...@linaro.org>
>> ---
>>  .../ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc     | 317 ----------------
>>  .../ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf     | 401 
>> ---------------------
>>  2 files changed, 718 deletions(-)
>
> Shouldn't OpenPlatformPkg be merged into edk2 first?
>
> Although, I admit that it's been many months (... hm, apparently a bit
> more than a year) that I built ArmVExpress-FVP-AArch64, so perhaps it's
> not even functional in edk2. Is that the case?
>

It works fine in edk2, it's just duplicated.  I've just found from Ard
that there's a patch in EDK2 missing from OpenPlatformPkg, but that's
under discussion on the [PATCH 0/2] email from this thread.  There are
patched in OpenPlatformPkg that are missing from EDK2, however.

I'm about to refactor all of the ARM Ltd platform support and I've
agreed to do it in OpenPlatformPkg.  I'm not up for maintaining two
copies, that's for sure.

> If it is, then there's nothing to regress with this patch I guess.
>
> Otherwise, if ArmVExpress-FVP-AArch64 does work in edk2 (just lacks
> features / fixes), then this looks like a pretty big functionality
> regression to me. I vaguely recall that Leif mentioned wanting to bring
> OpenPlatformPkg into edk2 -- can that happen first?
>
> Anyway, I've got no horse in this race; it's just that we've been
> stressing "no regressions pls".
>
> Hm... I think I found the relevant message from Leif:
>
> http://thread.gmane.org/gmane.comp.bios.tianocore.devel/17544/focus=552
>
> After skimming the presentation linked therein: I guess nothing has
> changed since last July, and at this point you'd like to avoid
> fragmentation. I do find that convincing.
>
> Thanks
> Laszlo
>
>> diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc 
>> b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc
>> deleted file mode 100644
>> index af46331..0000000
>> --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc
>> +++ /dev/null
>> @@ -1,317 +0,0 @@
>> -#
>> -#  Copyright (c) 2011-2015, ARM Limited. All rights reserved.
>> -#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
>> -#
>> -#  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                  = ArmVExpress-FVP-AArch64
>> -  PLATFORM_GUID                  = 0de70077-9b3b-43bf-ba38-0ea37d77141b
>> -  PLATFORM_VERSION               = 0.1
>> -  DSC_SPECIFICATION              = 0x00010005
>> -  OUTPUT_DIRECTORY               = Build/ArmVExpress-FVP-AArch64
>> -  SUPPORTED_ARCHITECTURES        = AARCH64
>> -  BUILD_TARGETS                  = DEBUG|RELEASE
>> -  SKUID_IDENTIFIER               = DEFAULT
>> -  FLASH_DEFINITION               = 
>> ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf
>> -
>> -!ifndef ARM_FVP_RUN_NORFLASH
>> -  DEFINE EDK2_SKIP_PEICORE=1
>> -!endif
>> -
>> -
>> -!include ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc
>> -
>> -[LibraryClasses.common]
>> -  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
>> -  ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
>> -  
>> ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressLib.inf
>> -
>> -  
>> ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf
>> -  
>> NorFlashPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/NorFlashArmVExpressLib/NorFlashArmVExpressLib.inf
>> -  
>> LcdPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpressLib.inf
>> -
>> -  TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
>> -
>> -  # Virtio Support
>> -  VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
>> -  
>> VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
>> -
>> -[LibraryClasses.common.SEC]
>> -  ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf
>> -  
>> ArmPlatformSecLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/ArmVExpressSecLib.inf
>> -  
>> ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressLibSec.inf
>> -
>> -[LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.UEFI_APPLICATION, 
>> LibraryClasses.common.DXE_RUNTIME_DRIVER, LibraryClasses.common.DXE_DRIVER]
>> -  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
>> -
>> -[BuildOptions]
>> -  GCC:*_*_AARCH64_PLATFORM_FLAGS == 
>> -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include 
>> -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
>> -
>> -
>> -################################################################################
>> -#
>> -# 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|TRUE
>> -
>> -[PcdsFixedAtBuild.common]
>> -  gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Fixed Virtual Platform"
>> -  gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ARM-FVP"
>> -
>> -  # Up to 8 cores on Base models. This works fine if model happens to have 
>> less.
>> -  gArmPlatformTokenSpaceGuid.PcdCoreCount|8
>> -  gArmPlatformTokenSpaceGuid.PcdClusterCount|2
>> -
>> -  #
>> -  # NV Storage PCDs. Use base of 0x0C000000 for NOR1
>> -  #
>> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x0FFC0000
>> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x00010000
>> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x0FFD0000
>> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x00010000
>> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x0FFE0000
>> -  gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x00010000
>> -
>> -  gArmTokenSpaceGuid.PcdVFPEnabled|1
>> -
>> -  # FVP models can have 2 clusters with 4 cpus each
>> -  # Stacks for MPCores in Secure World
>> -  # Trusted SRAM (DRAM on Foundation model)
>> -  gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0x04000000
>> -  gArmPlatformTokenSpaceGuid.PcdCPUCoreSecPrimaryStackSize|0x1000
>> -  gArmPlatformTokenSpaceGuid.PcdCPUCoreSecSecondaryStackSize|0x800
>> -
>> -  # Stacks for MPCores in Normal World
>> -  # Non-Trusted SRAM
>> -  gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x2E000000
>> -  gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
>> -  gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize|0x1000
>> -
>> -  # System Memory (2GB - 16MB of Trusted DRAM at the top of the 32bit 
>> address space)
>> -  gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
>> -  gArmTokenSpaceGuid.PcdSystemMemorySize|0x7F000000
>> -
>> -  # 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 NS EL2 in 
>> ArmPlatformPkg/Sec)
>> -  gArmTokenSpaceGuid.PcdTrustzoneSupport|TRUE
>> -
>> -  #
>> -  # ARM PrimeCell
>> -  #
>> -
>> -  ## SP805 Watchdog - Motherboard Watchdog at 24MHz
>> -  gArmPlatformTokenSpaceGuid.PcdSP805WatchdogBase|0x1C0F0000
>> -  gArmPlatformTokenSpaceGuid.PcdSP805WatchdogClockFrequencyInHz|24000000
>> -
>> -  ## PL011 - Serial Terminal
>> -  gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x1c090000
>> -  gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|38400
>> -
>> -  ## PL031 RealTimeClock
>> -  gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000
>> -
>> -  ## PL111 Versatile Express Motherboard controller
>> -  gArmPlatformTokenSpaceGuid.PcdPL111LcdBase|0x1C1F0000
>> -
>> -  ## PL180 MMC/SD card controller
>> -  gArmPlatformTokenSpaceGuid.PcdPL180SysMciRegAddress|0x1C010048
>> -  gArmPlatformTokenSpaceGuid.PcdPL180MciBaseAddress|0x1C050000
>> -
>> -  #
>> -  # ARM General Interrupt Controller
>> -  #
>> -!ifdef ARM_FVP_LEGACY_GICV2_LOCATION
>> -  gArmTokenSpaceGuid.PcdGicDistributorBase|0x2C001000
>> -  gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x2C002000
>> -!else
>> -  gArmTokenSpaceGuid.PcdGicDistributorBase|0x2f000000
>> -  gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x2f100000
>> -  gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x2C000000
>> -!endif
>> -
>> -  #
>> -  # ARM OS Loader
>> -  #
>> -  gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"Linux from 
>> SemiHosting"
>> -  
>> gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"Fv(87940482-FC81-41C3-87E6-399CF85AC8A0)/LinuxLoader.efi"
>> -  
>> gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|L"VenHw(C5B9C74A-6D72-4719-99AB-C59F199091EB)/Image
>>  -f VenHw(C5B9C74A-6D72-4719-99AB-C59F199091EB)/filesystem.cpio.gz -c 
>> \"console=ttyAMA0 earlycon=pl011,0x1c090000 debug user_debug=31 loglevel=9\""
>> -
>> -  # 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)/VenPcAnsi();VenHw(407B4008-BF5B-11DF-9547-CF16E0D72085)"
>> -  
>> gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi()"
>> -
>> -  #
>> -  # ARM Architectural Timer Frequency
>> -  #
>> -  # Set tick frequency value to 100Mhz
>> -  gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|100000000
>> -
>> -[PcdsDynamicDefault.common]
>> -  #
>> -  # The size of a dynamic PCD of the (VOID*) type can not be increased at 
>> run
>> -  # time from its size at build time. Set the "PcdFdtDevicePaths" PCD to a 
>> 128
>> -  # character "empty" string, to allow to be able to set FDT text device 
>> paths
>> -  # up to 128 characters long.
>> -  #
>> -  gEmbeddedTokenSpaceGuid.PcdFdtDevicePaths|L"                              
>>                                                                              
>>                      "
>> -
>> -################################################################################
>> -#
>> -# Components Section - list of all EDK II Modules needed by this Platform
>> -#
>> -################################################################################
>> -[Components.common]
>> -
>> -  #
>> -  # SEC
>> -  #
>> -  ArmPlatformPkg/Sec/Sec.inf {
>> -    <LibraryClasses>
>> -      # Use the implementation which set the Secure bits
>> -      ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicSecLib.inf
>> -  }
>> -
>> -  #
>> -  # PEI Phase modules
>> -  #
>> -!ifdef EDK2_SKIP_PEICORE
>> -  # UEFI is placed in RAM by bootloader
>> -  ArmPlatformPkg/PrePi/PeiMPCore.inf {
>> -    <LibraryClasses>
>> -      ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
>> -      
>> ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressLib.inf
>> -  }
>> -!else
>> -  # UEFI lives in FLASH and copies itself to RAM
>> -  ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
>> -  MdeModulePkg/Core/Pei/PeiMain.inf
>> -  MdeModulePkg/Universal/PCD/Pei/Pcd.inf  {
>> -    <LibraryClasses>
>> -      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
>> -  }
>> -  ArmPlatformPkg/PlatformPei/PlatformPeim.inf
>> -  ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
>> -  ArmPkg/Drivers/CpuPei/CpuPei.inf
>> -  IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
>> -  Nt32Pkg/BootModePei/BootModePei.inf
>> -  MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
>> -  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
>> -    <LibraryClasses>
>> -      
>> NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
>> -  }
>> -!endif
>> -
>> -  #
>> -  # DXE
>> -  #
>> -  MdeModulePkg/Core/Dxe/DxeMain.inf {
>> -    <LibraryClasses>
>> -      PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
>> -      
>> NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
>> -  }
>> -
>> -  #
>> -  # Architectural Protocols
>> -  #
>> -  ArmPkg/Drivers/CpuDxe/CpuDxe.inf
>> -  MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
>> -!if $(SECURE_BOOT_ENABLE) == TRUE
>> -  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf {
>> -    <LibraryClasses>
>> -      
>> NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf
>> -  }
>> -  
>> SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
>> -!else
>> -  MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
>> -!endif
>> -  MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
>> -  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
>> -    <LibraryClasses>
>> -      NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
>> -  }
>> -  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.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
>> -  MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
>> -
>> -  MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
>> -
>> -  ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
>> -!if $(SECURE_BOOT_ENABLE) == TRUE
>> -  ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashAuthenticatedDxe.inf
>> -!else
>> -  ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
>> -!endif
>> -  ArmPkg/Drivers/TimerDxe/TimerDxe.inf
>> -  ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf
>> -  ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
>> -
>> -  #
>> -  # Semi-hosting filesystem
>> -  #
>> -  ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
>> -
>> -  #
>> -  # Multimedia Card Interface
>> -  #
>> -  EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
>> -  ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
>> -
>> -  #
>> -  # Platform Driver
>> -  #
>> -  ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
>> -  OvmfPkg/VirtioBlkDxe/VirtioBlk.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
>> -!if $(USE_ARM_BDS) == TRUE
>> -  ArmPlatformPkg/Bds/Bds.inf
>> -!else
>> -  MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
>> -  MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
>> -  IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
>> -!endif
>> diff --git a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf 
>> b/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf
>> deleted file mode 100644
>> index 53837d4..0000000
>> --- a/ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf
>> +++ /dev/null
>> @@ -1,401 +0,0 @@
>> -#
>> -#  Copyright (c) 2011 - 2015, ARM Limited. All rights reserved.
>> -#  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
>> -#
>> -#  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.FVP_AARCH64_EFI_SEC]
>> -BaseAddress   = 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress  # The base 
>> address of the Firmware in SecureROM.
>> -Size          = 0x04000000|gArmTokenSpaceGuid.PcdFdSize         # The size 
>> in bytes of the device (64MiB).
>> -ErasePolarity = 1
>> -
>> -# This one is tricky, it must be: BlockSize * NumBlocks = Size
>> -BlockSize     = 0x00001000
>> -NumBlocks     = 0x4000
>> -
>> -################################################################################
>> -#
>> -# 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>
>> -#
>> -################################################################################
>> -
>> -0x00000000|0x00080000
>> -gArmTokenSpaceGuid.PcdSecureFvBaseAddress|gArmTokenSpaceGuid.PcdSecureFvSize
>> -FV = FVMAIN_SEC
>> -
>> -[FD.FVP_AARCH64_EFI]
>> -!ifdef ARM_FVP_RUN_NORFLASH
>> -BaseAddress   = 0x08000000|gArmTokenSpaceGuid.PcdFdBaseAddress  # The base 
>> address of the Firmware in Flash0.
>> -!else
>> -BaseAddress   = 0x88000000|gArmTokenSpaceGuid.PcdFdBaseAddress  # UEFI in 
>> DRAM + 128MB.
>> -!endif
>> -Size          = 0x04000000|gArmTokenSpaceGuid.PcdFdSize         # The size 
>> in bytes of the device (64MiB).
>> -ErasePolarity = 1
>> -
>> -# This one is tricky, it must be: BlockSize * NumBlocks = Size
>> -BlockSize     = 0x00001000
>> -NumBlocks     = 0x4000
>> -
>> -0x00000000|0x00280000
>> -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_SEC]
>> -FvBaseAddress      = 0x0  # Secure ROM
>> -FvForceRebase      = TRUE
>> -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/Sec/Sec.inf
>> -
>> -
>> -[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
>> -FvNameGuid         = 87940482-fc81-41c3-87e6-399cf85ac8a0
>> -
>> -  APRIORI DXE {
>> -    INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
>> -  }
>> -
>> -  INF MdeModulePkg/Core/Dxe/DxeMain.inf
>> -  INF MdeModulePkg/Universal/PCD/Dxe/Pcd.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
>> -!if $(SECURE_BOOT_ENABLE) == TRUE
>> -  INF 
>> SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
>> -!endif
>> -  INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
>> -  INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.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 MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
>> -
>> -  INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
>> -  INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf
>> -!if $(SECURE_BOOT_ENABLE) == TRUE
>> -  INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashAuthenticatedDxe.inf
>> -!else
>> -  INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
>> -!endif
>> -  INF 
>> ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf
>> -  INF ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
>> -
>> -  #
>> -  # Semi-hosting filesystem
>> -  #
>> -  INF ArmPkg/Filesystem/SemihostFs/SemihostFs.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
>> -
>> -  #
>> -  # Multimedia Card Interface
>> -  #
>> -  INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
>> -  INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
>> -
>> -  #
>> -  # Platform Driver
>> -  #
>> -  INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
>> -  INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
>> -
>> -  #
>> -  # UEFI application (Shell Embedded Boot Loader)
>> -  #
>> -  INF ShellBinPkg/UefiShell/UefiShell.inf
>> -
>> -  #
>> -  # Bds
>> -  #
>> -  INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
>> -!if $(USE_ARM_BDS) == TRUE
>> -  INF ArmPlatformPkg/Bds/Bds.inf
>> -!else
>> -  INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
>> -  INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
>> -  INF IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
>> -
>> -  #
>> -  # TianoCore logo (splash screen)
>> -  #
>> -  FILE FREEFORM = 
>> PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) {
>> -   SECTION RAW = MdeModulePkg/Logo/Logo.bmp
>> -  }
>> -!endif
>> -
>> -  # Legacy Linux Loader
>> -  INF ArmPkg/Application/LinuxLoader/LinuxLoader.inf
>> -
>> -  # FV Filesystem
>> -  INF MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemDxe.inf
>> -
>> -  #
>> -  # FDT installation
>> -  #
>> -  # The UEFI driver is at the end of the list of the driver to be dispatched
>> -  # after the device drivers (eg: Ethernet) to ensure we have support for 
>> them.
>> -  INF EmbeddedPkg/Drivers/FdtPlatformDxe/FdtPlatformDxe.inf
>> -
>> -!ifdef $(DTB_DIR)
>> -  #
>> -  # Embed flattened device tree (FDT) images for all known
>> -  # variants of this platform
>> -  #
>> -  FILE RAW = PCD (gArmVExpressTokenSpaceGuid.PcdFdtFvpBaseAEMv8x4GicV2) {
>> -    $(DTB_DIR)/fvp-base-gicv2-psci.dtb
>> -  }
>> -  FILE RAW = PCD 
>> (gArmVExpressTokenSpaceGuid.PcdFdtFvpBaseAEMv8x4GicV2Legacy) {
>> -    $(DTB_DIR)/fvp-base-gicv2legacy-psci.dtb
>> -  }
>> -  FILE RAW = PCD (gArmVExpressTokenSpaceGuid.PcdFdtFvpBaseAEMv8x4GicV3) {
>> -    $(DTB_DIR)/fvp-base-gicv3-psci.dtb
>> -  }
>> -  FILE RAW = PCD (gArmVExpressTokenSpaceGuid.PcdFdtFvpFoundationGicV2) {
>> -    $(DTB_DIR)/fvp-foundation-gicv2-psci.dtb
>> -  }
>> -  FILE RAW = PCD 
>> (gArmVExpressTokenSpaceGuid.PcdFdtFvpFoundationGicV2Legacy) {
>> -    $(DTB_DIR)/fvp-foundation-gicv2legacy-psci.dtb
>> -  }
>> -  FILE RAW = PCD (gArmVExpressTokenSpaceGuid.PcdFdtFvpFoundationGicV3) {
>> -    $(DTB_DIR)/fvp-foundation-gicv3-psci.dtb
>> -  }
>> -!endif
>> -
>> -[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
>> -
>> -!if $(EDK2_SKIP_PEICORE) == 1
>> -  INF ArmPlatformPkg/PrePi/PeiMPCore.inf
>> -!else
>> -  INF ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
>> -  INF MdeModulePkg/Core/Pei/PeiMain.inf
>> -  INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
>> -  INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
>> -  INF ArmPkg/Drivers/CpuPei/CpuPei.inf
>> -  INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
>> -  INF IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
>> -  INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
>> -  INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
>> -!endif
>> -
>> -  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 FIXED {
>> -    TE  TE Align = Auto                 $(INF_OUTPUT)/$(MODULE_NAME).efi
>> -  }
>> -
>> -[Rule.Common.PEI_CORE]
>> -  FILE PEI_CORE = $(NAMED_GUID) FIXED {
>> -    TE     TE Align = Auto              $(INF_OUTPUT)/$(MODULE_NAME).efi
>> -    UI     STRING ="$(MODULE_NAME)" Optional
>> -  }
>> -
>> -[Rule.Common.PEIM]
>> -  FILE PEIM = $(NAMED_GUID) FIXED {
>> -     PEI_DEPEX PEI_DEPEX Optional       $(INF_OUTPUT)/$(MODULE_NAME).depex
>> -     TE       TE Align = Auto           $(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)
>> -  }
>>
>
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to