Home | History | Annotate | Download | only in Juno
      1 #
      2 #  Copyright (c) 2013-2015, ARM Limited. All rights reserved.
      3 #
      4 #  This program and the accompanying materials
      5 #  are licensed and made available under the terms and conditions of the BSD License
      6 #  which accompanies this distribution.  The full text of the license may be found at
      7 #  http://opensource.org/licenses/bsd-license.php
      8 #
      9 #  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     10 #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     11 #
     12 
     13 ################################################################################
     14 #
     15 # Defines Section - statements that will be processed to create a Makefile.
     16 #
     17 ################################################################################
     18 [Defines]
     19   PLATFORM_NAME                  = ArmJuno
     20   PLATFORM_GUID                  = ca0722fd-7d3d-45ea-948c-d62b2199807d
     21   PLATFORM_VERSION               = 0.1
     22   DSC_SPECIFICATION              = 0x00010005
     23 !ifdef EDK2_OUT_DIR
     24   OUTPUT_DIRECTORY               = $(EDK2_OUT_DIR)
     25 !else
     26   OUTPUT_DIRECTORY               = Build/ArmJuno
     27 !endif
     28   SUPPORTED_ARCHITECTURES        = AARCH64|ARM
     29   BUILD_TARGETS                  = DEBUG|RELEASE
     30   SKUID_IDENTIFIER               = DEFAULT
     31   FLASH_DEFINITION               = OpenPlatformPkg/Platforms/ARM/Juno/ArmJuno.fdf
     32 
     33 # On RTSM, most peripherals are VExpress Motherboard peripherals
     34 !include OpenPlatformPkg/Platforms/ARM/VExpress/ArmVExpress.dsc.inc
     35 
     36 [LibraryClasses.common]
     37   ArmPlatformLib|ArmPlatformPkg/ArmJunoPkg/Library/ArmJunoLib/ArmJunoLib.inf
     38   ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
     39 
     40   ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf
     41   NorFlashPlatformLib|ArmPlatformPkg/ArmJunoPkg/Library/NorFlashJunoLib/NorFlashJunoLib.inf
     42   EfiResetSystemLib|ArmPkg/Library/ArmPsciResetSystemLib/ArmPsciResetSystemLib.inf
     43 
     44   TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
     45   CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
     46   GenericBdsLib|IntelFrameworkModulePkg/Library/GenericBdsLib/GenericBdsLib.inf
     47   PlatformBdsLib|ArmPlatformPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf
     48   CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
     49 
     50   # USB Requirements
     51   UefiUsbLib|MdePkg/Library/UefiUsbLib/UefiUsbLib.inf
     52 
     53 [LibraryClasses.ARM]
     54   ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
     55 
     56 [LibraryClasses.AARCH64]
     57   ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
     58 
     59 [LibraryClasses.common.SEC]
     60   PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
     61   ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
     62   LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
     63   MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
     64   HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
     65   PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf
     66   PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
     67   PlatformPeiLib|ArmPlatformPkg/PlatformPei/PlatformPeiLib.inf
     68 
     69 [LibraryClasses.common.SEC, LibraryClasses.common.PEIM]
     70   MemoryInitPeiLib|ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf
     71 
     72 [LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.UEFI_APPLICATION, LibraryClasses.common.DXE_RUNTIME_DRIVER, LibraryClasses.common.DXE_DRIVER]
     73   PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
     74 
     75 [BuildOptions]
     76   *_*_*_PLATFORM_FLAGS == -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmJunoPkg/Include
     77 
     78 ################################################################################
     79 #
     80 # Pcd Section - list of all EDK II PCD Entries defined by this Platform
     81 #
     82 ################################################################################
     83 
     84 [PcdsFeatureFlag.common]
     85   gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|TRUE
     86 
     87   ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe.
     88   #  It could be set FALSE to save size.
     89   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
     90 
     91   gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
     92 
     93 [PcdsFixedAtBuild.common]
     94   gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Juno"
     95   gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ArmJuno"
     96 
     97   #
     98   # NV Storage PCDs. Use base of 0x08000000 for NOR0
     99   #
    100   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x0BFC0000
    101   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x00010000
    102   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x0BFD0000
    103   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x00010000
    104   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x0BFE0000
    105   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x00010000
    106 
    107   # System Memory (2GB - 16MB of Trusted DRAM at the top of the 32bit address space)
    108   gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
    109   gArmTokenSpaceGuid.PcdSystemMemorySize|0x7F000000
    110 
    111   # Juno Dual-Cluster profile
    112   gArmPlatformTokenSpaceGuid.PcdCoreCount|6
    113   gArmPlatformTokenSpaceGuid.PcdClusterCount|2
    114 
    115   gArmTokenSpaceGuid.PcdVFPEnabled|1
    116 
    117   #
    118   # ARM PrimeCell
    119   #
    120 
    121   ## PL011 - Serial Terminal
    122   gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x7FF80000
    123   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200
    124   gArmPlatformTokenSpaceGuid.PL011UartInteger|4
    125   gArmPlatformTokenSpaceGuid.PL011UartFractional|0
    126 
    127   ## PL031 RealTimeClock
    128   gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000
    129 
    130   # LAN9118 Ethernet Driver
    131   gEmbeddedTokenSpaceGuid.PcdLan9118DxeBaseAddress|0x18000000
    132   gEmbeddedTokenSpaceGuid.PcdLan9118DefaultMacAddress|0x1215161822242628
    133 
    134   #
    135   # ARM General Interrupt Controller
    136   #
    137   gArmTokenSpaceGuid.PcdGicDistributorBase|0x2C010000
    138   gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x2C02F000
    139 
    140   #
    141   # PLDA PCI Root Complex
    142   #
    143   gArmPlatformTokenSpaceGuid.PcdPciBusMax|255
    144   gArmPlatformTokenSpaceGuid.PcdPciIoBase|0x5f800000
    145   gArmPlatformTokenSpaceGuid.PcdPciIoSize|0x00800000
    146   gArmPlatformTokenSpaceGuid.PcdPciMmio32Base|0x50000000
    147   gArmPlatformTokenSpaceGuid.PcdPciMmio32Size|0x08000000
    148   gArmPlatformTokenSpaceGuid.PcdPciMmio64Base|0x4000000000
    149   gArmPlatformTokenSpaceGuid.PcdPciMmio64Size|0x100000000
    150 
    151   # List of Device Paths that support BootMonFs
    152   gArmPlatformTokenSpaceGuid.PcdBootMonFsSupportedDevicePaths|L"VenHw(E7223039-5836-41E1-B542-D7EC736C5E59)"
    153 
    154   #
    155   # ARM OS Loader
    156   #
    157   gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"Linux from NOR Flash"
    158   gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"VenHw(E7223039-5836-41E1-B542-D7EC736C5E59)/Image"
    159   gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|L"console=ttyAMA0,115200 earlycon=pl011,0x7ff80000 root=/dev/sda1 rootwait verbose debug"
    160 
    161   # Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut)
    162   gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenPcAnsi();VenHw(CE660500-824D-11E0-AC72-0002A5D5C51B)"
    163   gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenPcAnsi()"
    164 
    165   #
    166   # ARM Architectural Timer Frequency
    167   #
    168   gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|50000000
    169   gEmbeddedTokenSpaceGuid.PcdMetronomeTickPeriod|1000
    170 
    171   gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
    172   gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdShellFile|{ 0x83, 0xA5, 0x04, 0x7C, 0x3E, 0x9E, 0x1C, 0x4F, 0xAD, 0x65, 0xE0, 0x52, 0x68, 0xD0, 0xB4, 0xD1 }
    173 
    174 [PcdsPatchableInModule]
    175   # Console Resolution (Full HD)
    176   gEfiMdeModulePkgTokenSpaceGuid.PcdVideoHorizontalResolution|1920
    177   gEfiMdeModulePkgTokenSpaceGuid.PcdVideoVerticalResolution|1080
    178 
    179 [PcdsDynamicDefault.common]
    180   #
    181   # The size of a dynamic PCD of the (VOID*) type can not be increased at run
    182   # time from its size at build time. Set the "PcdFdtDevicePaths" PCD to a 128
    183   # character "empty" string, to allow to be able to set FDT text device paths
    184   # up to 128 characters long.
    185   #
    186   gEmbeddedTokenSpaceGuid.PcdFdtDevicePaths|L"                                                                                                                                "
    187 
    188   # Not all Juno platforms support PCI. This dynamic PCD disables or enable
    189   # PCI support.
    190   gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|TRUE
    191 
    192 ################################################################################
    193 #
    194 # Components Section - list of all EDK II Modules needed by this Platform
    195 #
    196 ################################################################################
    197 [Components.common]
    198   #
    199   # PEI Phase modules
    200   #
    201   ArmPlatformPkg/PrePi/PeiMPCore.inf
    202 
    203   #
    204   # DXE
    205   #
    206   MdeModulePkg/Core/Dxe/DxeMain.inf {
    207     <LibraryClasses>
    208       PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
    209       NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
    210   }
    211 
    212   #
    213   # Architectural Protocols
    214   #
    215   ArmPkg/Drivers/CpuDxe/CpuDxe.inf
    216   MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
    217   MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
    218   MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
    219   MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
    220   EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
    221   EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
    222   EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
    223 
    224   MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
    225   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
    226   MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
    227   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
    228   MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
    229 
    230   MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
    231     <LibraryClasses>
    232       NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
    233   }
    234   MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
    235 
    236   #
    237   # ACPI Support
    238   #
    239   MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
    240   OpenPlatformPkg/Platforms/ARM/Juno/AcpiTables/AcpiTables.inf
    241 
    242   MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
    243 
    244   ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
    245   ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
    246   ArmPkg/Drivers/TimerDxe/TimerDxe.inf
    247   ArmPkg/Drivers/GenericWatchdogDxe/GenericWatchdogDxe.inf
    248 
    249   #
    250   # Semi-hosting filesystem
    251   #
    252   ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
    253 
    254   #
    255   # FAT filesystem + GPT/MBR partitioning
    256   #
    257   MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
    258   MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
    259   MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
    260 
    261   # Required by PCI
    262   UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf
    263 
    264   #
    265   # PCI Support
    266   #
    267   MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
    268   ArmPlatformPkg/ArmJunoPkg/Drivers/PciHostBridgeDxe/PciHostBridgeDxe.inf
    269 
    270   #
    271   # SATA Controller
    272   #
    273   MdeModulePkg/Bus/Ata/AtaBusDxe/AtaBusDxe.inf
    274   EmbeddedPkg/Drivers/SataSiI3132Dxe/SataSiI3132Dxe.inf
    275 
    276   #
    277   # Networking stack
    278   #
    279   EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118Dxe.inf
    280 
    281   #
    282   # Usb Support
    283   #
    284   MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf
    285   MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf
    286   MdeModulePkg/Bus/Usb/UsbKbDxe/UsbKbDxe.inf
    287   MdeModulePkg/Bus/Usb/UsbMouseDxe/UsbMouseDxe.inf
    288   MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf
    289 
    290   #
    291   # Juno platform driver
    292   #
    293   ArmPlatformPkg/ArmJunoPkg/Drivers/ArmJunoDxe/ArmJunoDxe.inf
    294 
    295   #
    296   # Bds
    297   #
    298   MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
    299   MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
    300   MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
    301   IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf
    302