#\r
-# Copyright (c) 2011, ARM Limited. All rights reserved.\r
+# Copyright (c) 2011-2014, 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
PLATFORM_GUID = eb2bd5ff-2379-4a06-9c12-db905cdee9ea \r
PLATFORM_VERSION = 0.1\r
DSC_SPECIFICATION = 0x00010005\r
-!ifdef $(EDK2_ARMVE_STANDALONE)\r
- OUTPUT_DIRECTORY = Build/ArmVExpress-CTA9x4-Standalone\r
-!else\r
- OUTPUT_DIRECTORY = Build/ArmVExpress-CTA9x4\r
-!endif\r
SUPPORTED_ARCHITECTURES = ARM\r
BUILD_TARGETS = DEBUG|RELEASE\r
SKUID_IDENTIFIER = DEFAULT\r
FLASH_DEFINITION = ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.fdf\r
\r
+ # Reflashing the NOR Flash is a slow process. To ease the development on ARM Versatile Express Cortex-A9x4,\r
+ # the UEFI firmware can be built to be started from DRAM (instead of NOR Flash).\r
+ # The engineer only needs to copy the new binary in DRAM with the hardware debugger and execute from there.\r
+!ifndef EDK2_ARMVE_STANDALONE\r
+ DEFINE EDK2_ARMVE_STANDALONE=1\r
+!endif\r
+!if $(EDK2_ARMVE_STANDALONE) == 1\r
+ OUTPUT_DIRECTORY = Build/ArmVExpress-CTA9x4-Standalone\r
+!else\r
+ OUTPUT_DIRECTORY = Build/ArmVExpress-CTA9x4\r
+!endif\r
+\r
!include ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc\r
\r
[LibraryClasses.common]\r
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf\r
ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA9Lib/ArmCortexA9Lib.inf\r
ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLib.inf\r
- ArmTrustZoneLib|ArmPkg/Library/ArmTrustZoneLib/ArmTrustZoneLib.inf\r
+ ArmTrustZoneLib|ArmPlatformPkg/Drivers/ArmTrustZone/ArmTrustZone.inf\r
\r
# ARM PL310 L2 Cache Driver\r
L2X0CacheLib|ArmPlatformPkg/Drivers/PL310L2Cache/PL310L2CacheSec.inf\r
\r
[LibraryClasses.common.SEC]\r
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf\r
- ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressSecLib.inf\r
+ ArmPlatformSecLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibCTA9x4/ArmVExpressSecLib.inf\r
+ ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLibSec.inf\r
\r
# Uncomment to turn on GDB stub in SEC. \r
#DebugAgentLib|EmbeddedPkg/Library/GdbDebugAgent/GdbDebugAgent.inf\r
- \r
- # ARM PL390 General Interrupt Driver in Secure and Non-secure\r
- ArmGicSecLib|ArmPkg/Drivers/PL390Gic/PL390GicSecLib.inf\r
- ArmGicLib|ArmPkg/Drivers/PL390Gic/PL390GicLib.inf\r
\r
[BuildOptions]\r
RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A9 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4\r
\r
- GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a9 -mfpu=neon -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4\r
+ GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a9 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4\r
\r
- XCODE:*_*_ARM_PLATFORM_FLAGS == -march=armv7-a -mfpu=neon -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4\r
+ XCODE:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a9 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4\r
\r
################################################################################\r
#\r
################################################################################\r
\r
[PcdsFeatureFlag.common]\r
-!ifdef $(EDK2_ARMVE_STANDALONE)\r
+!if $(EDK2_ARMVE_STANDALONE) == 1\r
gArmPlatformTokenSpaceGuid.PcdStandalone|TRUE\r
!else\r
gArmPlatformTokenSpaceGuid.PcdStandalone|FALSE\r
gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|TRUE\r
!endif\r
\r
-!ifdef $(EDK2_SKIP_PEICORE)\r
+!ifdef EDK2_SKIP_PEICORE\r
gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|TRUE\r
gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|TRUE\r
!endif\r
gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Versatile Express" \r
gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ArmVExpress"\r
\r
+ gArmPlatformTokenSpaceGuid.PcdCoreCount|4\r
+\r
#\r
# NV Storage PCDs. Use base of 0x43FC0000 for NOR0 or 0x47FC0000 for NOR1 on Versatile Express\r
#\r
gArmPlatformTokenSpaceGuid.PcdPL180MciBaseAddress|0x10005000\r
\r
#\r
- # ARM PL390 General Interrupt Controller\r
+ # ARM General Interrupt Controller\r
#\r
gArmTokenSpaceGuid.PcdGicDistributorBase|0x1e001000\r
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x1e000100\r
gArmTokenSpaceGuid.PcdArmMachineType|2272\r
gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"NorFlash"\r
gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"VenHw(1F15DA3C-37FF-4070-B471-BB4AF12A724A)/MemoryMapped(0x0,0x46000000,0x46400000)"\r
- gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|""\r
gArmPlatformTokenSpaceGuid.PcdDefaultBootType|1\r
\r
# Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut)\r
#\r
gArmTokenSpaceGuid.PcdL2x0ControllerBase|0x1E00A000\r
\r
+ # ISP1761 USB OTG Controller\r
+ gEmbeddedTokenSpaceGuid.PcdIsp1761BaseAddress|0x4f000000\r
+
+ # LAN9118 Ethernet Driver PCDs\r
+ gEmbeddedTokenSpaceGuid.PcdLan9118DxeBaseAddress|0x4E000000\r
+\r
################################################################################\r
#\r
# Components Section - list of all EDK II Modules needed by this Platform\r
#\r
# SEC\r
#\r
- ArmPlatformPkg/Sec/Sec.inf\r
+ ArmPlatformPkg/Sec/Sec.inf {\r
+ <LibraryClasses>\r
+ # Use the implementation which set the Secure bits\r
+ ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicSecLib.inf\r
+ }\r
\r
#\r
# PEI Phase modules\r
#\r
-!ifdef $(EDK2_SKIP_PEICORE)\r
+!ifdef EDK2_SKIP_PEICORE\r
ArmPlatformPkg/PrePi/PeiMPCore.inf {\r
<LibraryClasses>\r
- ArmGicSecLib|ArmPkg/Drivers/PL390Gic/PL390GicLib.inf\r
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf\r
ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLib.inf\r
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.inf\r
!else\r
ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf {\r
<LibraryClasses>\r
- ArmGicSecLib|ArmPkg/Drivers/PL390Gic/PL390GicLib.inf\r
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Pei/PeiArmPlatformGlobalVariableLib.inf\r
}\r
MdeModulePkg/Core/Pei/PeiMain.inf\r
\r
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf\r
\r
- ArmPkg/Drivers/PL390Gic/PL390GicDxe.inf\r
+ ArmPkg/Drivers/ArmGic/ArmGicDxe.inf\r
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf\r
ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf\r
ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf\r
ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf\r
\r
#\r
- # Semi-hosting filesystem\r
+ # Platform\r
+ #\r
+ ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf\r
+\r
+ #\r
+ # Filesystems\r
#\r
ArmPkg/Filesystem/SemihostFs/SemihostFs.inf\r
\r
#\r
EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf\r
ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf\r
- \r
+\r
+ # SMSC LAN 9118\r
+ EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118Dxe.inf\r
+\r
#\r
# FAT filesystem + GPT/MBR partitioning\r
#\r
MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
- FatPkg/EnhancedFatDxe/Fat.inf\r
MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
\r
- #\r
- # Application\r
- # \r
- EmbeddedPkg/Ebl/Ebl.inf\r
-\r
#\r
# Bds\r
#\r