2016-06-20 17:33 GMT+02:00 Leif Lindholm leif.lindholm@linaro.org:
On Fri, Apr 29, 2016 at 07:25:52PM +0200, Marcin Wojtas wrote:
From: Yehuda Yitschak yehuday@marvell.com
This patch add initial support for Armada70x0 platform. It includes Armada.dsc.inc and uses Armada70x0.fdf files, which are created with the aim of support for new boards. Code currently supports:
- GICv2
 - ARM architected timer
 - ARM watchdog timer
 - UART port
 Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Yehuda Yitschak yehuday@marvell.com Signed-off-by: Jan Dabros jsd@semihalf.com Signed-off-by: Marcin Wojtas mw@semihalf.com
Platforms/Marvell/Armada/Armada.dsc.inc | 448 ++++++++++++++++++++++++++++++++ Platforms/Marvell/Armada/Armada70x0.dsc | 48 ++++ Platforms/Marvell/Armada/Armada70x0.fdf | 268 +++++++++++++++++++ 3 files changed, 764 insertions(+) create mode 100644 Platforms/Marvell/Armada/Armada.dsc.inc create mode 100644 Platforms/Marvell/Armada/Armada70x0.dsc create mode 100644 Platforms/Marvell/Armada/Armada70x0.fdf
diff --git a/Platforms/Marvell/Armada/Armada.dsc.inc b/Platforms/Marvell/Armada/Armada.dsc.inc new file mode 100644 index 0000000..048647a --- /dev/null +++ b/Platforms/Marvell/Armada/Armada.dsc.inc @@ -0,0 +1,448 @@ +#Copyright (C) 2016 Marvell International Ltd. +# +#Marvell BSD License Option +# +#If you received this File from Marvell, you may opt to use, redistribute and/or +#modify this File under the following licensing terms. +#Redistribution and use in source and binary forms, with or without modification, +#are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# * Neither the name of Marvell nor the names of its contributors may be +# used to endorse or promote products derived from this software without +# specific prior written permission. +# +#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +#ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +#WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +#DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +#ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +#(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +#ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +#(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +#SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +[LibraryClasses.common]
- ArmPlatformLib|OpenPlatformPkg/Platforms/Marvell/Armada/Library/Armada70x0Lib/Armada70x0Lib.inf
 - DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
 - UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
 - DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
 +# Basic utility libraries
- BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
 - SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
 - PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
 - PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
 - PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
 - PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
 - IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
 - UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
 - CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
 - PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf
 - PciCf8Lib|MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib.inf
 +# Basic UEFI services libraries
- UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
 - HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
 - UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
 - DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
 - UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
 - DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
 - UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
 - UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
 - HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
 - UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
 - UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
 - # Assume everything is fixed at build. do not use runtime PCD feature
 - PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
 - # 1/123 faster than Stm or Vstm version
 - #BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
 Can just delete the commented-out version.
Ok, every commented-out entry will be removed.
- BaseMemoryLib|ArmPkg/Library/BaseMemoryLibStm/BaseMemoryLibStm.inf
 - # ARM Architectural Libraries
 - CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
 - DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
 - CpuExceptionHandlerLib|ArmPkg/Library/ArmExceptionLib/ArmExceptionLib.inf
 - ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
 - DmaLib|ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf
 - ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
 - ArmGicArchLib|ArmPkg/Library/ArmGicArchLib/ArmGicArchLib.inf
 - ArmPlatformStackLib|ArmPlatformPkg/Library/ArmPlatformStackLib/ArmPlatformStackLib.inf
 - ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
 - TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
 - # Serial port libraries
 - SerialPortLib|MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
 - PlatformHookLib|MdeModulePkg/Library/BasePlatformHookLibNull/BasePlatformHookLibNull.inf
 - # Reset and Time libraries
 - EfiResetSystemLib|EmbeddedPkg/Library/TemplateResetSystemLib/TemplateResetSystemLib.inf
 - RealTimeClockLib|EmbeddedPkg/Library/TemplateRealTimeClockLib/TemplateRealTimeClockLib.inf
 - # Networking Requirements for ArmPlatformPkg/Bds
 - NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
 - # These libraries are used by the dynamic EFI Shell commands
 - ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
 - FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
 - SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
 - # EBL Related Libraries
 - EblCmdLib|ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.inf
 - EfiFileLib|EmbeddedPkg/Library/EfiFileLib/EfiFileLib.inf
 - EblAddExternalCommandLib|EmbeddedPkg/Library/EblAddExternalCommandLib/EblAddExternalCommandLib.inf
 - EblNetworkLib|EmbeddedPkg/Library/EblNetworkLib/EblNetworkLib.inf
 - #
 - # Uncomment (and comment out the next line) For RealView Debugger. The Standard IO window
 - # in the debugger will show load and unload commands for symbols. You can cut and paste this
 - # into the command window to load symbols. We should be able to use a script to do this, but
 - # the version of RVD I have does not support scripts accessing system memory.
 - #
 - #PeCoffExtraActionLib|ArmPkg/Library/RvdPeCoffExtraActionLib/RvdPeCoffExtraActionLib.inf
 - PeCoffExtraActionLib|ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf
 - #PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
 - DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
 - DebugAgentTimerLib|EmbeddedPkg/Library/DebugAgentTimerLibNull/DebugAgentTimerLibNull.inf
 - # SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf
 The PeCoffExtraActionLib/SemihostLib thing should be parametrised, _but_ it's taken pretty much verbatim from ArmVExpress.dsc.inc, so let's ignore that for now (and fix across all platforms at once in future).
- # BDS Libraries
 - BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf
 - CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
 - GenericBdsLib|IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
 - PlatformBdsLib|ArmPlatformPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
 - CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
 - FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
 +[LibraryClasses.AARCH64]
- ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
 - ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
 - ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf
 +[LibraryClasses.common.SEC]
- ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf
 - DebugAgentLib|ArmPkg/Library/DebugAgentSymbolsBaseLib/DebugAgentSymbolsBaseLib.inf
 - DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLibBase.inf
 - PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
 - ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
 - LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
 - MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
 - HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
 - PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf
 - PlatformPeiLib|ArmPlatformPkg/PlatformPei/PlatformPeiLib.inf
 - ArmGicArchLib|ArmPkg/Library/ArmGicArchSecLib/ArmGicArchSecLib.inf
 +[LibraryClasses.common.SEC, LibraryClasses.common.PEIM]
- MemoryInitPeiLib|ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf
 +[LibraryClasses.common.DXE_CORE]
- HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
 - MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
 - DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
 - ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
 - ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
 - UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
 - DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
 - PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf
 +[LibraryClasses.common.DXE_DRIVER]
- ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
 - DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
 - SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
 - PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
 - MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
 +[LibraryClasses.common.UEFI_APPLICATION]
- UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
 - PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
 - MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
 - HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
 +[LibraryClasses.common.UEFI_DRIVER]
- ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
 - UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
 - ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
 - PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
 - MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
 +[LibraryClasses.common.DXE_RUNTIME_DRIVER]
- HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
 - MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
 - ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
 - CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
 +[LibraryClasses.ARM, LibraryClasses.AARCH64]
- #
 - # It is not possible to prevent the ARM compiler for generic intrinsic functions.
 - # This library provides the instrinsic functions generate by a given compiler.
 - # [LibraryClasses.ARM] and NULL mean link this library into all ARM images.
 - #
 - NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
 - # Add support for GCC stack protector
 - NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
 +[BuildOptions]
- XCODE:*_*_ARM_PLATFORM_FLAGS == -arch armv7
 - GCC:*_*_ARM_PLATFORM_FLAGS == -march=armv7-a
 - RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A8
 Building this port for AArch32 doesn't appear to be a valid thing to do, so perhaps delete this section?
Ok.
+################################################################################ +# +# Pcd Section - list of all EDK II PCD Entries defined by this Platform +# +################################################################################
+[PcdsFeatureFlag.common]
- gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE
 - gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE
 - gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE
 - gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE
 - #
 - # Control what commands are supported from the UI
 - # Turn these on and off to add features or save size
 - #
 - gEmbeddedTokenSpaceGuid.PcdEmbeddedMacBoot|TRUE
 - gEmbeddedTokenSpaceGuid.PcdEmbeddedDirCmd|TRUE
 - gEmbeddedTokenSpaceGuid.PcdEmbeddedHobCmd|TRUE
 - gEmbeddedTokenSpaceGuid.PcdEmbeddedHwDebugCmd|TRUE
 - gEmbeddedTokenSpaceGuid.PcdEmbeddedPciDebugCmd|TRUE
 - gEmbeddedTokenSpaceGuid.PcdEmbeddedIoEnable|FALSE
 - gEmbeddedTokenSpaceGuid.PcdEmbeddedScriptCmd|FALSE
 - gEmbeddedTokenSpaceGuid.PcdCacheEnable|TRUE
 - # Use the Vector Table location in CpuDxe.
 - # We will not copy the Vector Table at PcdCpuVectorBaseAddress
 - gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
 - gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|TRUE
 - # 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
 - gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
 - # USB support
 - gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
 +[PcdsFixedAtBuild.common]
- gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"Marvell"
 - gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString|L"MARVELL_EFI"
 - gArmPlatformTokenSpaceGuid.PcdCoreCount|4
 - # gArmPlatformTokenSpaceGuid.PcdClusterCount|1
 - ## Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut)
 - gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenPcAnsi()"
 - gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenPcAnsi()"
 - gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"Marvell>> "
 - gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
 - gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
 - gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
 - gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
 - gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
 - gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1
 - gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
 - gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
 - gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|1
 - gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3
 - # Required for Intel BDS
 - gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
 - gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }
 - ## Trustzone enable (to make the transition from EL3 to NS EL2 in ArmPlatformPkg/Sec)
 - gArmTokenSpaceGuid.PcdTrustzoneSupport|TRUE
 Is the port making use of this?
We don't use Sec code, hence this entry will be removed.
- # ARM Generic Interrupt Controller
 - gArmTokenSpaceGuid.PcdGicDistributorBase|0xF0210000
 - gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0xF0220000
 - # ARM Architectural Timer Support
 - gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|25000000
 - gEmbeddedTokenSpaceGuid.PcdMetronomeTickPeriod|1000
 - # ARM SBSA Watchdog
 - gArmTokenSpaceGuid.PcdGenericWatchdogControlBase|0xF0620000
 - gArmTokenSpaceGuid.PcdGenericWatchdogRefreshBase|0xF0600000
 - gArmTokenSpaceGuid.PcdGenericWatchdogEl2IntrNum|34
 - # Serial
 - gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseMmio|TRUE
 - gEfiMdeModulePkgTokenSpaceGuid.PcdSerialUseHardwareFlowControl|FALSE
 - gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0xF0512000
 - gEfiMdeModulePkgTokenSpaceGuid.PcdSerialBaudRate|115200
 - gEfiMdeModulePkgTokenSpaceGuid.PcdSerialClockRate|200000000
 - gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterStride|4
 - # DEBUG_ASSERT_ENABLED 0x01
 - # DEBUG_PRINT_ENABLED 0x02
 - # DEBUG_CODE_ENABLED 0x04
 - # CLEAR_MEMORY_ENABLED 0x08
 - # ASSERT_BREAKPOINT_ENABLED 0x10
 - # ASSERT_DEADLOOP_ENABLED 0x20
 - gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2f
 - # DEBUG_INIT 0x00000001 // Initialization
 - # DEBUG_WARN 0x00000002 // Warnings
 - # DEBUG_LOAD 0x00000004 // Load events
 - # DEBUG_FS 0x00000008 // EFI File system
 - # DEBUG_POOL 0x00000010 // Alloc & Free (pool)
 - # DEBUG_PAGE 0x00000020 // Alloc & Free (page)
 - # DEBUG_INFO 0x00000040 // Informational debug messages
 - # DEBUG_DISPATCH 0x00000080 // PEI/DXE/SMM Dispatchers
 - # DEBUG_VARIABLE 0x00000100 // Variable
 - # DEBUG_BM 0x00000400 // Boot Manager
 - # DEBUG_BLKIO 0x00001000 // BlkIo Driver
 - # DEBUG_NET 0x00004000 // SNP Driver
 - # DEBUG_UNDI 0x00010000 // UNDI Driver
 - # DEBUG_LOADFILE 0x00020000 // LoadFile
 - # DEBUG_EVENT 0x00080000 // Event messages
 - # DEBUG_GCD 0x00100000 // Global Coherency Database changes
 - # DEBUG_CACHE 0x00200000 // Memory range cachability changes
 - # DEBUG_VERBOSE 0x00400000 // Detailed debug messages that may
 - # // significantly impact boot performance
 - # DEBUG_ERROR 0x80000000 // Error
 +!if $(TARGET) == RELEASE
- gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000000
 +!else
- gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000000F
 +!endif
- gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07
 - gEmbeddedTokenSpaceGuid.PcdEmbeddedAutomaticBootCommand|""
 - gEmbeddedTokenSpaceGuid.PcdEmbeddedDefaultTextColor|0x07
 - gEmbeddedTokenSpaceGuid.PcdEmbeddedMemVariableStoreSize|0x10000
 - #
 - # Optional feature to help prevent EFI memory map fragments
 - # Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
 - # Values are in EFI Pages (4K). DXE Core will make sure that
 - # at least this much of each type of memory can be allocated
 - # from a single memory range. This way you only end up with
 - # maximum of two fragements for each type in the memory map
 - # (the memory used, and the free memory that was prereserved
 - # but not used).
 - #
 - gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
 - gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
 - gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
 - gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|50
 - gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|20
 - gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|400
 - gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|20000
 - gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|20
 - gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
 - # We want to use the Shell Libraries but don't want it to initialise
 - # automatically. We initialise the libraries when the command is called by the
 - # Shell.
 - gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
 - # ARM Pcds
 - gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000000000000
 - gArmTokenSpaceGuid.PcdSystemMemoryBase|0
 - gArmTokenSpaceGuid.PcdSystemMemorySize|0x40000000
 - gArmTokenSpaceGuid.PcdArmScr|0x531
 +################################################################################ +# +# Components Section - list of all EDK II Modules needed by this Platform +# +################################################################################ +[Components.common]
- # PEI Phase modules
 - ArmPlatformPkg/PrePi/PeiMPCore.inf
 - # DXE
 - MdeModulePkg/Core/Dxe/DxeMain.inf {
 <LibraryClasses>
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.infNULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf- }
 - # Architectural Protocols DXE
 - ArmPkg/Drivers/CpuDxe/CpuDxe.inf
 - ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
 - ArmPkg/Drivers/TimerDxe/TimerDxe.inf
 - ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.inf
 - MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
 - MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
 - MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
 - MdeModulePkg/Universal/Variable/EmuRuntimeDxe/EmuVariableRuntimeDxe.inf
 - EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
 - EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
 - EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
 - EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
 - # Console packages
 - 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
 - # Simple TextIn/TextOut for UEFI Terminal
 - #EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf
 Why is this left in when commented out?
- # Human interface:
 - MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.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
 - # Application
 - EmbeddedPkg/Ebl/Ebl.inf
 - # Bds - Use Intel BDS
 - MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
 - MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
 - MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
 - IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
 - #ArmPlatformPkg/Bds/Bds.inf
 Why is this left in when commented out?
- # UEFI application (Shell Embedded Boot Loader)
 - ShellPkg/Application/Shell/Shell.inf {
 <LibraryClasses>
ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.infNULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.infNULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.infNULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.infNULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.infNULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.infNULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.infNULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.infNULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.infHandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.infPrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.infBcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf<PcdsFixedAtBuild>
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0xFFgEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSEgEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|8000- }
 diff --git a/Platforms/Marvell/Armada/Armada70x0.dsc b/Platforms/Marvell/Armada/Armada70x0.dsc new file mode 100644 index 0000000..8c7751a --- /dev/null +++ b/Platforms/Marvell/Armada/Armada70x0.dsc @@ -0,0 +1,48 @@ +#Copyright (C) 2016 Marvell International Ltd. +# +#Marvell BSD License Option +# +#If you received this File from Marvell, you may opt to use, redistribute and/or +#modify this File under the following licensing terms. +#Redistribution and use in source and binary forms, with or without modification, +#are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# * Neither the name of Marvell nor the names of its contributors may be +# used to endorse or promote products derived from this software without +# specific prior written permission. +# +#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +#ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +#WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +#DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +#ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +#(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +#LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +#ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +#(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +#SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +################################################################################ +# +# Defines Section - statements that will be processed to create a Makefile. +# +################################################################################ +[Defines]
- PLATFORM_NAME = Armada70x0
 - PLATFORM_GUID = f837e231-cfc7-4f56-9a0f-5b218d746ae3
 - PLATFORM_VERSION = 0.1
 - DSC_SPECIFICATION = 0x00010005
 - OUTPUT_DIRECTORY = Build/$(PLATFORM_NAME)
 - SUPPORTED_ARCHITECTURES = AARCH64
 - BUILD_TARGETS = DEBUG|RELEASE
 - SKUID_IDENTIFIER = DEFAULT
 - FLASH_DEFINITION = OpenPlatformPkg/Platforms/Marvell/Armada/Armada70x0.fdf
 +!include Armada.dsc.inc diff --git a/Platforms/Marvell/Armada/Armada70x0.fdf b/Platforms/Marvell/Armada/Armada70x0.fdf new file mode 100644 index 0000000..5c18b6c --- /dev/null +++ b/Platforms/Marvell/Armada/Armada70x0.fdf @@ -0,0 +1,268 @@ +# +# Copyright (C) Marvell International Ltd. and its affiliates +# +# 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.Armada70x0_EFI] +BaseAddress = 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress # The base address of the Firmware in NOR Flash. +Size = 0x00400000|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device +ErasePolarity = 1
+# This one is tricky, it must be: BlockSize * NumBlocks = Size +BlockSize = 0x00001000 +NumBlocks = 0x400
+################################################################################ +# +# 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|0x000E0000 +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. +# +################################################################################
+# DXE phase firmware volume +[FV.FvMain] +BlockSize = 0x40 +NumBlocks = 0 # This FV gets compressed so make it just big enough +FvAlignment = 8 # 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 = 5eda4200-2c5f-43cb-9da3-0baf74b1b30c
- INF MdeModulePkg/Core/Dxe/DxeMain.inf
 - # PI DXE Drivers producing Architectural Protocols (EFI Services)
 - INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf
 - INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
 - INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf
 - INF ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.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 EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
 - INF EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
 - INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
 - INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.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
 - # Simple TextIn/TextOut for UEFI Terminal
 - #INF EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf
 Left in but commented out?
- # Human interface
 - INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.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
 - # UEFI application (Shell Embedded Boot Loader)
 - INF EmbeddedPkg/Ebl/Ebl.inf
 - # UEFI application (Shell Embedded Boot Loader)
 - INF ShellPkg/Application/Shell/Shell.inf
 - # Bds
 - INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
 - INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
 - INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
 - INF IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
 - #INF ArmPlatformPkg/Bds/Bds.inf
 Left in but commented out?
Regards,
Leif
+# PEI phase firmware volume +[FV.FVMAIN_COMPACT] +FvAlignment = 8 +FvForceRebase = TRUE +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/PeiMPCore.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.ARM.SEC]
- FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED {
 - TE TE Align = 32 $(INF_OUTPUT)/$(MODULE_NAME).efi
 - }
 +# The AArch64 Vector Table requires a 2K alignment that is not supported by the FDF specification. +# It is the reason 4K is used instead of 2K for the module alignment. +[Rule.AARCH64.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 $(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).depexTE TE $(INF_OUTPUT)/$(MODULE_NAME).efiUI 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).efiUI 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.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.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
 - }
 -- 1.8.3.1
Regards, Jan