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