]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.dsc
ArmPlatformPkg: Use LzmaDecompress support from MdeModulePkg
[mirror_edk2.git] / ArmPlatformPkg / ArmVExpressPkg / ArmVExpress-FVP-AArch64.dsc
index 42d793e0fa749dbeadbf224f64be3629a61647d1..76921ad730e63383573a1ff951040b80af8a69c9 100644 (file)
@@ -1,5 +1,5 @@
 #\r
-#  Copyright (c) 2011-2013, ARM Limited. All rights reserved.\r
+#  Copyright (c) 2011-2015, ARM Limited. All rights reserved.\r
 #\r
 #  This program and the accompanying materials\r
 #  are licensed and made available under the terms and conditions of the BSD License\r
   SKUID_IDENTIFIER               = DEFAULT\r
   FLASH_DEFINITION               = ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-FVP-AArch64.fdf\r
 \r
+!ifndef ARM_FVP_RUN_NORFLASH\r
+  DEFINE EDK2_SKIP_PEICORE=1\r
+!endif\r
+\r
+\r
 !include ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc\r
 \r
 [LibraryClasses.common]\r
 \r
   TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf\r
 \r
+  # Virtio Support\r
+  VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf\r
+  VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf\r
+\r
 [LibraryClasses.common.SEC]\r
   ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf\r
   ArmPlatformSecLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/ArmVExpressSecLib.inf\r
   ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressLibSec.inf\r
 \r
+[LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.UEFI_APPLICATION, LibraryClasses.common.DXE_RUNTIME_DRIVER, LibraryClasses.common.DXE_DRIVER]\r
+  PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf\r
+\r
 [BuildOptions]\r
   GCC:*_*_AARCH64_PLATFORM_FLAGS == -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM\r
 \r
   #  It could be set FALSE to save size.\r
   gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE\r
 \r
-  ## FVP platforms support hardware power control\r
-  # Disabled for now as we have a version mismatch.\r
-  gArmTokenSpaceGuid.PcdArmPsciSupport|FALSE\r
+  # Force the UEFI GIC driver to use GICv2 legacy mode. To use\r
+  # GICv3 without GICv2 legacy in UEFI, the ARM Trusted Firmware needs\r
+  # to configure the Non-Secure interrupts in the GIC Redistributors\r
+  # which is not supported at the moment.\r
+  gArmTokenSpaceGuid.PcdArmGicV3WithV2Legacy|TRUE\r
+  #\r
+  # FDT installation : enable the development specific features\r
+  #\r
+  gEmbeddedTokenSpaceGuid.PcdOverridePlatformFdt|TRUE\r
 \r
 [PcdsFixedAtBuild.common]\r
   gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Fixed Virtual Platform"\r
   gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ARM-FVP"\r
 \r
+!ifndef ARM_FOUNDATION_FVP\r
   # Up to 8 cores on Base models. This works fine if model happens to have less.\r
   gArmPlatformTokenSpaceGuid.PcdCoreCount|8\r
+  gArmPlatformTokenSpaceGuid.PcdClusterCount|2\r
+!else\r
+  # Up to 4 cores on Foundation models. This works fine if model happens to have less.\r
+  gArmPlatformTokenSpaceGuid.PcdCoreCount|4\r
+!endif\r
 \r
   #\r
   # NV Storage PCDs. Use base of 0x0C000000 for NOR1\r
   # Non-Trusted SRAM\r
   gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x2E000000\r
   gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000\r
-  gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize|0x800\r
+  gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize|0x1000\r
 \r
-  # System Memory (2GB)\r
+  # System Memory (2GB - 16MB of Trusted DRAM at the top of the 32bit address space)\r
   gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000\r
-  gArmTokenSpaceGuid.PcdSystemMemorySize|0x80000000\r
+  gArmTokenSpaceGuid.PcdSystemMemorySize|0x7F000000\r
 \r
   # Size of the region used by UEFI in permanent memory (Reserved 64MB)\r
   gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000\r
   gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x2C002000\r
 !else\r
   gArmTokenSpaceGuid.PcdGicDistributorBase|0x2f000000\r
+  gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x2f100000\r
   gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x2C000000\r
 !endif\r
 \r
   #\r
   # ARM OS Loader\r
   #\r
-  # Versatile Express machine type (ARM VERSATILE EXPRESS = 2272) required for ARM Linux:\r
   gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"Linux from SemiHosting"\r
   gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"VenHw(C5B9C74A-6D72-4719-99AB-C59F199091EB)/Image"\r
   gArmPlatformTokenSpaceGuid.PcdDefaultBootInitrdPath|L"VenHw(C5B9C74A-6D72-4719-99AB-C59F199091EB)/filesystem.cpio.gz"\r
-  gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|"console=ttyAMA0 earlyprintk=pl011,0x1c090000 debug user_debug=31 loglevel=9"\r
-  gArmPlatformTokenSpaceGuid.PcdDefaultBootType|2\r
-  gArmPlatformTokenSpaceGuid.PcdFdtDevicePath|L"VenHw(C5B9C74A-6D72-4719-99AB-C59F199091EB)/fdt.dtb"\r
+  gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|L"console=ttyAMA0 earlycon=pl011,0x1c090000 debug user_debug=31 loglevel=9"\r
+  # Use EFI Stub\r
+  gArmPlatformTokenSpaceGuid.PcdDefaultBootType|0\r
 \r
   # Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut)\r
   gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi();VenHw(407B4008-BF5B-11DF-9547-CF16E0D72085)"\r
   gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi()"\r
 \r
   #\r
-  # ARM Architectual Timer Frequency\r
+  # ARM Architectural Timer Frequency\r
   #\r
-  # Set tick frequency value to 120Mhz\r
-  gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|120000000\r
+  # Set tick frequency value to 100Mhz\r
+  gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|100000000\r
+\r
+[PcdsDynamicDefault.common]\r
+  #\r
+  # The size of a dynamic PCD of the (VOID*) type can not be increased at run\r
+  # time from its size at build time. Set the "PcdFdtDevicePaths" PCD to a 128\r
+  # character "empty" string, to allow to be able to set FDT text device paths\r
+  # up to 128 characters long.\r
+  #\r
+  gEmbeddedTokenSpaceGuid.PcdFdtDevicePaths|L"                                                                                                                                "\r
 \r
 ################################################################################\r
 #\r
   #\r
   # PEI Phase modules\r
   #\r
+!ifdef EDK2_SKIP_PEICORE\r
+  # UEFI is placed in RAM by bootloader\r
+  ArmPlatformPkg/PrePi/PeiMPCore.inf {\r
+    <LibraryClasses>\r
+      ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf\r
+      ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressLib.inf\r
+      ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.inf\r
+  }\r
+!else\r
+  # UEFI lives in FLASH and copies itself to RAM\r
   ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf {\r
     <LibraryClasses>\r
       ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Pei/PeiArmPlatformGlobalVariableLib.inf\r
   MdeModulePkg/Universal/Variable/Pei/VariablePei.inf\r
   MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {\r
     <LibraryClasses>\r
-      NULL|IntelFrameworkModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf\r
+      NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf\r
   }\r
+!endif\r
 \r
   #\r
   # DXE\r
   ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf\r
 !endif\r
 \r
+  #\r
+  # Platform Driver\r
+  #\r
+  ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf\r
+  OvmfPkg/VirtioBlkDxe/VirtioBlk.inf\r
+\r
   #\r
   # FAT filesystem + GPT/MBR partitioning\r
   #\r