Home | History | Annotate | Download | only in ArmVExpressPkg
      1 #
      2 #  Copyright (c) 2012-2015, ARM Limited. All rights reserved.
      3 #  Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
      4 #
      5 #  This program and the accompanying materials
      6 #  are licensed and made available under the terms and conditions of the BSD License
      7 #  which accompanies this distribution.  The full text of the license may be found at
      8 #  http://opensource.org/licenses/bsd-license.php
      9 #
     10 #  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     11 #  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     12 #
     13 #
     14 
     15 ################################################################################
     16 #
     17 # Defines Section - statements that will be processed to create a Makefile.
     18 #
     19 ################################################################################
     20 [Defines]
     21   PLATFORM_NAME                  = ArmVExpressPkg-CTA15-A7
     22   PLATFORM_GUID                  = 0b511920-978d-4b34-acc0-3d9f8e6f9d81
     23   PLATFORM_VERSION               = 0.1
     24   DSC_SPECIFICATION              = 0x00010005
     25   OUTPUT_DIRECTORY               = Build/ArmVExpress-CTA15-A7
     26   SUPPORTED_ARCHITECTURES        = ARM
     27   BUILD_TARGETS                  = DEBUG|RELEASE
     28   SKUID_IDENTIFIER               = DEFAULT
     29   FLASH_DEFINITION               = ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf
     30 
     31   DEFINE EDK2_SKIP_PEICORE = 1
     32   DEFINE ARM_BIGLITTLE_TC2 = 1 # We build for the TC2 hardware by default
     33 
     34 !include ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc
     35 
     36 [LibraryClasses.common]
     37   ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
     38   ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/ArmVExpressLib.inf
     39 
     40   ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf
     41   NorFlashPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/NorFlashArmVExpressLib/NorFlashArmVExpressLib.inf
     42 
     43   #DebugAgentTimerLib|ArmPlatformPkg/ArmVExpressPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.inf
     44 
     45   # ARM General Interrupt Driver in Secure and Non-secure
     46   ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
     47 
     48   LcdPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpressLib.inf
     49 
     50   TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
     51   ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
     52 
     53 [BuildOptions]
     54 !ifdef ARM_BIGLITTLE_TC2
     55   *_*_ARM_ARCHCC_FLAGS  = -DARM_BIGLITTLE_TC2=1
     56   *_*_ARM_PP_FLAGS  = -DARM_BIGLITTLE_TC2=1
     57 !endif
     58 
     59   RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15-A7
     60 
     61   GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15-A7
     62 
     63   XCODE:*_*_ARM_PLATFORM_FLAGS = -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15-A7
     64 
     65 ################################################################################
     66 #
     67 # Pcd Section - list of all EDK II PCD Entries defined by this Platform
     68 #
     69 ################################################################################
     70 
     71 [PcdsFeatureFlag.common]
     72   gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|TRUE
     73   gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|TRUE
     74 
     75   ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe.
     76   #  It could be set FALSE to save size.
     77   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
     78 
     79 [PcdsFixedAtBuild.common]
     80   gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Versatile Express"
     81   gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ArmVExpress-CTA15-A7"
     82 
     83   gArmPlatformTokenSpaceGuid.PcdCoreCount|5
     84 
     85   #
     86   # NV Storage PCDs. Use base of 0x0C000000 for NOR1
     87   #
     88   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x0FFC0000
     89   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x00010000
     90   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x0FFD0000
     91   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x00010000
     92   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x0FFE0000
     93   gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x00010000
     94 
     95   gArmTokenSpaceGuid.PcdVFPEnabled|1
     96 
     97   # Stacks for MPCores in Secure World
     98   # SRAM (CS1) is only available between 0x14000000 and 0x14001000 on the model
     99   # ZBT SRAM is available between 0x2E000000 and 0x2E010000 on the model
    100 !ifdef ARM_BIGLITTLE_TC2
    101   gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0x17000000
    102 !else
    103   gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0x2E000000
    104 !endif
    105   gArmPlatformTokenSpaceGuid.PcdCPUCoreSecPrimaryStackSize|0x8000
    106   gArmPlatformTokenSpaceGuid.PcdCPUCoreSecSecondaryStackSize|0x1000
    107   # Share Monitor stacks with Secure World
    108   gArmPlatformTokenSpaceGuid.PcdCPUCoreSecMonStackSize|0
    109 
    110   # System Memory (1GB) - An additional 1GB will be added if UEFI is running on a 2GB Test Chip
    111   gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
    112   gArmTokenSpaceGuid.PcdSystemMemorySize|0x40000000
    113 
    114 !ifdef ARM_BIGLITTLE_TC2
    115   # TC2 Dual-Cluster profile
    116   gArmPlatformTokenSpaceGuid.PcdClusterCount|2
    117 
    118   # Core Ids and Gic values
    119   # A15_0 = 0x000, GicCoreId = 0
    120   # A15_1 = 0x001, GicCoreId = 1
    121   #  A7_0 = 0x100, GicCoreId = 2
    122   #  A7_1 = 0x101, GicCoreId = 3
    123   #  A7_2 = 0x102, GicCoreId = 4
    124   gArmTokenSpaceGuid.PcdArmPrimaryCore|0x100
    125 !endif
    126 
    127   #
    128   # ARM PrimeCell
    129   #
    130 
    131   ## SP805 Watchdog - Motherboard Watchdog
    132   gArmPlatformTokenSpaceGuid.PcdSP805WatchdogBase|0x1C0F0000
    133 
    134   ## PL011 - Serial Terminal
    135   gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x1C090000
    136   gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|38400
    137 
    138   ## PL031 RealTimeClock
    139   gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000
    140 
    141 !ifdef ARM_BIGLITTLE_TC2
    142   ## PL111 Lcd & HdLcd
    143   gArmPlatformTokenSpaceGuid.PcdPL111LcdBase|0x1C1F0000
    144   gArmPlatformTokenSpaceGuid.PcdArmHdLcdBase|0x2B000000
    145   gArmVExpressTokenSpaceGuid.PcdHdLcdVideoModeOscId|5
    146 !endif
    147 
    148   #
    149   # PL180 MMC/SD card controller
    150   #
    151   gArmPlatformTokenSpaceGuid.PcdPL180SysMciRegAddress|0x1C010048
    152   gArmPlatformTokenSpaceGuid.PcdPL180MciBaseAddress|0x1C050000
    153 
    154 
    155   #
    156   # ARM General Interrupt Controller
    157   #
    158   gArmTokenSpaceGuid.PcdGicDistributorBase|0x2C001000
    159   gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x2C002000
    160 
    161   # ISP1761 USB OTG Controller
    162   gEmbeddedTokenSpaceGuid.PcdIsp1761BaseAddress|0x1B000000
    163 
    164   # Ethernet (SMSC LAN9118)
    165   gEmbeddedTokenSpaceGuid.PcdLan9118DxeBaseAddress|0x1A000000
    166 
    167   #
    168   # Define the device path to the FDT for the platform
    169   #
    170   gEmbeddedTokenSpaceGuid.PcdFdtDevicePaths|L"VenHw(E7223039-5836-41E1-B542-D7EC736C5E59)/ca15a7"
    171 
    172   #
    173   # ARM OS Loader
    174   #
    175   gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"Linux from NorFlash"
    176   gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"Fv(73DCB643-3862-4904-9076-A94AF1890243)/LinuxLoader.efi"
    177   gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|L"VenHw(E7223039-5836-41E1-B542-D7EC736C5E59)/kernel -c \"console=ttyAMA0,38400 earlyprintk debug verbose\""
    178 
    179   # Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut)
    180   # PL111 - CLCD
    181   #gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi();VenHw(407B4008-BF5B-11DF-9547-CF16E0D72085)"
    182   # HDLCD
    183   gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi();VenHw(CE660500-824D-11E0-AC72-0002A5D5C51B)"
    184   gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi()"
    185 
    186   #
    187   # ARM Architectural Timer Frequency
    188   #
    189 !ifdef ARM_BIGLITTLE_TC2
    190   gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|24000000
    191 !else
    192   gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|10000000
    193 !endif
    194 
    195 ################################################################################
    196 #
    197 # Components Section - list of all EDK II Modules needed by this Platform
    198 #
    199 ################################################################################
    200 [Components.common]
    201   #
    202   # PEI Phase modules
    203   #
    204   ArmPlatformPkg/PrePi/PeiMPCore.inf {
    205     <LibraryClasses>
    206       ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
    207       ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/ArmVExpressLib.inf
    208   }
    209 
    210   #
    211   # DXE
    212   #
    213   MdeModulePkg/Core/Dxe/DxeMain.inf {
    214     <LibraryClasses>
    215       PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
    216       NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
    217   }
    218 
    219   #
    220   # Architectural Protocols
    221   #
    222   ArmPkg/Drivers/CpuDxe/CpuDxe.inf
    223   MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
    224   MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
    225   MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
    226   MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
    227     <LibraryClasses>
    228       NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
    229   }
    230   MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
    231   MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
    232   EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
    233   EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
    234   EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
    235 
    236   MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
    237   MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
    238   MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
    239   MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
    240   MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
    241 
    242   MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
    243 
    244   ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
    245   ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
    246   #ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf
    247   ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf
    248   ArmPkg/Drivers/TimerDxe/TimerDxe.inf
    249   ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
    250 
    251   #
    252   # Platform
    253   #
    254   ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf
    255 
    256   #
    257   # Filesystems
    258   #
    259 !ifndef ARM_BIGLITTLE_TC2
    260   ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
    261 !endif
    262 
    263   #
    264   # Multimedia Card Interface
    265   #
    266   EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
    267   ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
    268 
    269   # SMSC LAN 9118
    270   EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118Dxe.inf
    271 
    272   #
    273   # FAT filesystem + GPT/MBR partitioning
    274   #
    275   MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
    276   MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
    277   MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
    278 
    279   MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
    280 
    281   #
    282   # Bds
    283   #
    284   MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
    285   ArmPlatformPkg/Bds/Bds.inf
    286