Home | History | Annotate | Download | only in EmbeddedPkg
      1 #/** @file
      2 # Embedded Package
      3 #
      4 #
      5 # Copyright (c) 2007 - 2015, Intel Corporation. All rights reserved.<BR>
      6 # Copyright (c) 2012-2015, ARM Ltd. All rights reserved.<BR>
      7 # Copyright (c) 2016, Linaro Ltd. All rights reserved.<BR>
      8 #
      9 #    This program and the accompanying materials
     10 #    are licensed and made available under the terms and conditions of the BSD License
     11 #    which accompanies this distribution. The full text of the license may be found at
     12 #    http://opensource.org/licenses/bsd-license.php
     13 #
     14 #    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     15 #    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     16 #
     17 #**/
     18 
     19 ################################################################################
     20 #
     21 # Defines Section - statements that will be processed to create a Makefile.
     22 #
     23 ################################################################################
     24 [Defines]
     25   PLATFORM_NAME                  = Embedded
     26   PLATFORM_GUID                  = 8DBB580B-CF89-4D57-95C6-DFE96C44686E
     27   PLATFORM_VERSION               = 0.1
     28   DSC_SPECIFICATION              = 0x00010005
     29   OUTPUT_DIRECTORY               = Build/Embedded
     30   SUPPORTED_ARCHITECTURES        = IA32|X64|IPF|ARM|AARCH64
     31   BUILD_TARGETS                  = DEBUG|RELEASE
     32   SKUID_IDENTIFIER               = DEFAULT
     33   FLASH_DEFINITION               = EmbeddedPkg/EmbeddedPkg.fdf
     34 
     35 
     36 ################################################################################
     37 #
     38 # SKU Identification section - list of all SKU IDs supported by this
     39 #                              Platform.
     40 #
     41 ################################################################################
     42 [SkuIds]
     43   0|DEFAULT              # The entry: 0|DEFAULT is reserved and always required.
     44 
     45 ################################################################################
     46 #
     47 # Library Class section - list of all Library Classes needed by this Platform.
     48 #
     49 ################################################################################
     50 [LibraryClasses.common]
     51 #  DebugLib|MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf
     52   DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
     53 
     54 
     55   BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
     56   BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
     57   PciLib|MdePkg/Library/BasePciLibCf8/BasePciLibCf8.inf
     58   PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
     59   PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
     60   UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
     61   EfiFileLib|EmbeddedPkg/Library/EfiFileLib/EfiFileLib.inf
     62 
     63   ReportStatusCodeLib|MdeModulePkg/Library/PeiDxeDebugLibReportStatusCode/PeiDxeDebugLibReportStatusCode.inf
     64 
     65   PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
     66   PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
     67   PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
     68   CacheMaintenanceLib|MdePkg/Library/BaseCacheMaintenanceLib/BaseCacheMaintenanceLib.inf
     69   PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
     70 
     71   SerialPortLib|MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull.inf
     72   RealTimeClockLib|EmbeddedPkg/Library/TemplateRealTimeClockLib/TemplateRealTimeClockLib.inf
     73   EfiResetSystemLib|EmbeddedPkg/Library/TemplateResetSystemLib/TemplateResetSystemLib.inf
     74   GdbSerialLib|EmbeddedPkg/Library/GdbSerialLib/GdbSerialLib.inf
     75 
     76 
     77  #
     78  # Need to change this for IPF
     79  #
     80   IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
     81 
     82   MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
     83   UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
     84   HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
     85   UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
     86   DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
     87   UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
     88   ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
     89 
     90   DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
     91   UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
     92   UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
     93 
     94   PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
     95   EblCmdLib|EmbeddedPkg/Library/EblCmdLibNull/EblCmdLibNull.inf
     96 
     97   EblNetworkLib|EmbeddedPkg/Library/EblNetworkLib/EblNetworkLib.inf
     98 
     99   AcpiLib|EmbeddedPkg/Library/AcpiLib/AcpiLib.inf
    100   FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
    101 
    102   # Shell libraries
    103   ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
    104   FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
    105   SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
    106 
    107   # Networking Requirements
    108   NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
    109   HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
    110   UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
    111 
    112 [LibraryClasses.common.DXE_DRIVER]
    113   PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
    114   ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
    115 
    116 
    117 [LibraryClasses.common.UEFI_APPLICATION]
    118   PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
    119   ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
    120 
    121 [LibraryClasses.common.UEFI_DRIVER]
    122   PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
    123   ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
    124 
    125 [LibraryClasses.common.SEC]
    126   ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
    127 
    128 [LibraryClasses.ARM, LibraryClasses.AARCH64]
    129   ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
    130   ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
    131   BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf
    132   SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf
    133   NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
    134 
    135   # Add support for GCC stack protector
    136   NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
    137 
    138   ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
    139 
    140 ################################################################################
    141 #
    142 # Pcd Section - list of all PCD Entries defined by this Platform
    143 #
    144 ################################################################################
    145 
    146 [PcdsFeatureFlag.common]
    147   gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|FALSE
    148   gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|FALSE
    149   gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|FALSE
    150   gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|FALSE
    151 
    152   #
    153   # Control what commands are supported from the UI
    154   # Turn these on and off to add features or save size
    155   #
    156   gEmbeddedTokenSpaceGuid.PcdEmbeddedMacBoot|TRUE
    157   gEmbeddedTokenSpaceGuid.PcdEmbeddedDirCmd|TRUE
    158   gEmbeddedTokenSpaceGuid.PcdEmbeddedHobCmd|TRUE
    159   gEmbeddedTokenSpaceGuid.PcdEmbeddedHwDebugCmd|TRUE
    160   gEmbeddedTokenSpaceGuid.PcdEmbeddedIoEnable|FALSE
    161   gEmbeddedTokenSpaceGuid.PcdEmbeddedScriptCmd|FALSE
    162   gEmbeddedTokenSpaceGuid.PcdEmbeddedPciDebugCmd|TRUE
    163 
    164   gEmbeddedTokenSpaceGuid.PcdPrePiProduceMemoryTypeInformationHob|FALSE
    165 
    166 
    167 [PcdsFixedAtBuild.common]
    168   gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
    169   gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
    170   gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
    171   gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
    172   gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x0f
    173   gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000000
    174   gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x06
    175   gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
    176   gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|0
    177   gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
    178   gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xE0000000
    179   gEfiMdePkgTokenSpaceGuid.PcdFSBClock|200000000
    180   gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
    181   gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x80000000
    182   gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xE0000000
    183   gEfiMdePkgTokenSpaceGuid.PcdFSBClock|200000000
    184   gEmbeddedTokenSpaceGuid.PcdEmbeddedAutomaticBootCommand|L""
    185   gEmbeddedTokenSpaceGuid.PcdEmbeddedDefaultTextColor|0x07
    186   gEmbeddedTokenSpaceGuid.PcdEmbeddedMemVariableStoreSize|0x10000
    187 
    188   gEmbeddedTokenSpaceGuid.PcdPrePiStackBase|0
    189   gEmbeddedTokenSpaceGuid.PcdPrePiStackSize|0
    190 
    191 #
    192 # Optinal feature to help prevent EFI memory map fragments
    193 # Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
    194 # Values are in EFI Pages (4K). DXE Core will make sure that
    195 # at least this much of each type of memory can be allocated
    196 # from a single memory range. This way you only end up with
    197 # maximum of two fragements for each type in the memory map
    198 # (the memory used, and the free memory that was prereserved
    199 # but not used).
    200 #
    201   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0
    202   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS|0
    203   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType|0
    204   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData|0
    205   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode|0
    206   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesCode|0
    207   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiBootServicesData|0
    208   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderCode|0
    209   gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiLoaderData|0
    210 
    211 #
    212 # Timer config for this platform
    213 #
    214   gEmbeddedTokenSpaceGuid.PcdTimerBaseAddress|0x3c700000
    215   gEmbeddedTokenSpaceGuid.PcdTimerVector|7
    216   gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000
    217 
    218 [PcdsFixedAtBuild.IPF]
    219   gEfiMdePkgTokenSpaceGuid.PcdIoBlockBaseAddressForIpf|0x0ffffc000000
    220 
    221 #
    222 # This makes it so you can source level debug with NT32. VC++ debugger limitiation!
    223 #
    224 #[BuildOptions]
    225 #  DEBUG_*_IA32_DLINK_FLAGS = /EXPORT:InitializeDriver=$(IMAGE_ENTRY_POINT) /ALIGN:4096 /SUBSYSTEM:CONSOLE
    226 #  RELEASE_*_IA32_DLINK_FLAGS = /ALIGN:4096
    227 #  *_*_IA32_CC_FLAGS = /D EFI_SPECIFICATION_VERSION=0x0002000A /D TIANO_RELEASE_VERSION=0x00080006
    228 
    229 [BuildOptions]
    230   RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu=7-A.security
    231   *_*_*_CC_FLAGS  = -DDISABLE_NEW_DEPRECATED_INTERFACES
    232 
    233 ################################################################################
    234 #
    235 # Components Section - list of all Modules needed by this Platform
    236 #
    237 ################################################################################
    238 [Components.common]
    239   EmbeddedPkg/Library/EblAddExternalCommandLib/EblAddExternalCommandLib.inf
    240   EmbeddedPkg/Library/EblCmdLibNull/EblCmdLibNull.inf
    241   EmbeddedPkg/Library/EfiFileLib/EfiFileLib.inf
    242   EmbeddedPkg/Library/GdbSerialDebugPortLib/GdbSerialDebugPortLib.inf
    243   EmbeddedPkg/Library/GdbSerialLib/GdbSerialLib.inf
    244   EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
    245   EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
    246   EmbeddedPkg/Library/TemplateResetSystemLib/TemplateResetSystemLib.inf
    247   EmbeddedPkg/Library/TemplateRealTimeClockLib/TemplateRealTimeClockLib.inf
    248   EmbeddedPkg/Library/LzmaHobCustomDecompressLib/LzmaHobCustomDecompressLib.inf
    249   EmbeddedPkg/Library/NullDmaLib/NullDmaLib.inf
    250 
    251   EmbeddedPkg/Ebl/Ebl.inf
    252 ####  EmbeddedPkg/EblExternCmd/EblExternCmd.inf
    253   EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
    254   EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
    255   EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
    256   EmbeddedPkg/SimpleTextInOutSerial/SimpleTextInOutSerial.inf
    257   EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf {
    258     <LibraryClasses>
    259       TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
    260   }
    261 
    262   EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
    263 
    264   # FDT installation
    265   EmbeddedPkg/Drivers/FdtPlatformDxe/FdtPlatformDxe.inf {
    266     <LibraryClasses>
    267       # It depends on BdsLib that depends on TimerLib
    268       TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
    269   }
    270 
    271   EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.inf {
    272     <LibraryClasses>
    273       # It depends on BdsLib that depends on TimerLib
    274       TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
    275   }
    276   EmbeddedPkg/Drivers/AndroidFastbootTransportUsbDxe/FastbootTransportUsbDxe.inf
    277   EmbeddedPkg/Drivers/AndroidFastbootTransportTcpDxe/FastbootTransportTcpDxe.inf
    278 
    279   # Drivers
    280   EmbeddedPkg/Drivers/Isp1761UsbDxe/Isp1761UsbDxe.inf
    281   EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118Dxe.inf
    282   EmbeddedPkg/Drivers/SataSiI3132Dxe/SataSiI3132Dxe.inf
    283 
    284   EmbeddedPkg/Library/AcpiLib/AcpiLib.inf
    285   EmbeddedPkg/Library/DebugAgentTimerLibNull/DebugAgentTimerLibNull.inf
    286   EmbeddedPkg/Library/DxeHobPeCoffLib/DxeHobPeCoffLib.inf
    287   EmbeddedPkg/Library/EblNetworkLib/EblNetworkLib.inf
    288   EmbeddedPkg/Library/FdtLib/FdtLib.inf
    289   EmbeddedPkg/Library/GdbDebugAgent/GdbDebugAgent.inf
    290   EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
    291   EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
    292 
    293 [Components.IA32, Components.X64, Components.IPF, Components.ARM]
    294   EmbeddedPkg/GdbStub/GdbStub.inf
    295