This series replaces the previous series titled "[PATH 0/5] Copy commits from EDK2". They are all destined for the OpenPlatformsPkg repo [1]
The first 5 patches are the same and are straight ports from EDK2:
[PATCH 01/15] ArmPlatformPkg/FVP: use 'auto' alignment and FIXED [PATCH 02/15] ArmPlatformPkg: Link separated VarCheckUefiLib NULL [PATCH 03/15] ArmPlatformPkg/FVP: unify support for Foundation and [PATCH 04/15] ArmVExpressPkg/ArmVExpress-FVP-AArch64: run GICv3 in v3 [PATCH 05/15] Platforms/ARM: TC2: copy from EDK2
The following patches are minor updates to the platform support:
[PATCH 06/15] Platforms/ARM: TC2: update paths for OpenPlatformPkg [PATCH 07/15] Platforms/ARM: TC2: add EDK2_OUT_DIR support [PATCH 08/15] Platforms/ARM: TC2: use Intel BDS [PATCH 09/15] Platforms/ARM: TC2: build Shell from source [PATCH 10/15] Platforms/ARM: Juno: build Shell from source [PATCH 11/15] Platforms/ARM: Juno: Use TTYTERM console [PATCH 12/15] Platforms/ARM: make PL111 build time optional [PATCH 13/15] Platforms/ARM: FVP: use TTYTERM console [PATCH 14/15] Platforms/ARM: FVP: Add optional GICv3 with v2 Legacy [PATCH 15/15] Platforms/ARM: FVP: build Shell from source
Unless I hear any objections by the end of the week, I'll commit these patches to the OpenPlatformPkg repo. If I get the OK from Leif and Ard, I'll commit them sooner.
Once they're in, I'll resubmit/ping on the patches to remove the platforms from EDK2. I'll also update uefi-tools to account for the changes.
From: Ard Biesheuvel ard.biesheuvel@linaro.org
This commit is a direct copy of the changes from this commit applied to Tianocore EDK2 [1]:
commit 16d11eed2933e2ef3d611cba2453b9d6484a83e4 Author: Ard Biesheuvel ard.biesheuvel@linaro.org Date: Mon Aug 10 07:55:10 2015 +0000
ArmPlatformPkg/FVP: use 'auto' alignment and FIXED placement for XIP modules
Now that GenFw correctly propagates the minimum alignment of the ELF input sections to the PE/COFF binary, we can simply select 'auto' alignment in the FDF Rule section instead of tweaking it by hand.
Also add the FIXED FFS attribute to the module types that may execute in place. This enables a newly added optimization in GenFfs that strips redundant padding, preventing excessive waste of FV space if the section alignment is considerable (i.e., 2 KB or 4 KB)
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel ard.biesheuvel@linaro.org Reviewed-by: Leif Lindholm leif.lindholm@linaro.org Tested-by: Leif Lindholm leif.lindholm@linaro.org
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18196 6f19259b-4bc3-4df7-8a09-765794883524
[1] http://sourceforge.net/p/tianocore/edk2/ci/16d11eed2933e2ef3d611cba2453b9d64...
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org --- Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf index 05cd173..63bd09a 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf +++ b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf @@ -345,20 +345,20 @@ READ_LOCK_STATUS = TRUE ############################################################################
[Rule.Common.SEC] - FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED { - TE TE Align = 4K $(INF_OUTPUT)/$(MODULE_NAME).efi + FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED FIXED { + TE TE Align = Auto $(INF_OUTPUT)/$(MODULE_NAME).efi }
[Rule.Common.PEI_CORE] - FILE PEI_CORE = $(NAMED_GUID) { - TE TE Align = 8 $(INF_OUTPUT)/$(MODULE_NAME).efi + FILE PEI_CORE = $(NAMED_GUID) FIXED { + TE TE Align = Auto $(INF_OUTPUT)/$(MODULE_NAME).efi UI STRING ="$(MODULE_NAME)" Optional }
[Rule.Common.PEIM] - FILE PEIM = $(NAMED_GUID) { + FILE PEIM = $(NAMED_GUID) FIXED { PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex - TE TE Align = 8 $(INF_OUTPUT)/$(MODULE_NAME).efi + TE TE Align = Auto $(INF_OUTPUT)/$(MODULE_NAME).efi UI STRING="$(MODULE_NAME)" Optional }
From: Star Zeng star.zeng@intel.com
This commit is a direct copy of the changes from this commit applied to Tianocore EDK2 [1]:
commit e820fe36c4867667a267ab4df41dff682b35c2d0 Author: Star Zeng star.zeng@intel.com Date: Tue Aug 25 03:03:52 2015 +0000
ArmPlatformPkg: Link separated VarCheckUefiLib NULL class library instance
Cc: Leif Lindholm leif.lindholm@linaro.org Cc: Ard Biesheuvel ard.biesheuvel@linaro.org Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng star.zeng@intel.com Reviewed-by: Ard Biesheuvel ard.biesheuvel@linaro.org
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18291 6f19259b-4bc3-4df7-8a09-765794883524
The Juno part of this change had already been committed, so I only applied the FVP and A15 RTSM portions.
[1] http://sourceforge.net/p/tianocore/edk2/ci/e820fe36c4867667a267ab4df41dff682...
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org --- Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc | 5 ++++- Platforms/ARM/VExpress/ArmVExpress-RTSM-A15_MPCore.dsc | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc index c566d4d..1b4114d 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc +++ b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc @@ -270,7 +270,10 @@ MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf !endif MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf - MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf { + <LibraryClasses> + NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf + } MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf diff --git a/Platforms/ARM/VExpress/ArmVExpress-RTSM-A15_MPCore.dsc b/Platforms/ARM/VExpress/ArmVExpress-RTSM-A15_MPCore.dsc index b0a4268..c85493b 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-RTSM-A15_MPCore.dsc +++ b/Platforms/ARM/VExpress/ArmVExpress-RTSM-A15_MPCore.dsc @@ -241,7 +241,10 @@ MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf - MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf { + <LibraryClasses> + NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf + } MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
From: Ard Biesheuvel ard.biesheuvel@linaro.org
This commit is a direct copy of the changes from this commit applied to Tianocore EDK2 [1]:
commit 0ad3e6d4a6578e8714e7735d1b9d0b51e6999fcc Author: Ard Biesheuvel ard.biesheuvel@linaro.org Date: Tue Aug 25 13:11:25 2015 +0000
ArmPlatformPkg/FVP: unify support for Foundation and Base models
Now that the PL180 and PL111 drivers know how to behave when executed on the Foundation model (which does not emulate the hardware), we can remove the ARM_FOUNDATION_FVP ifdefs and produce a single build that runs on both the Foundation model and the Base model.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel ard.biesheuvel@linaro.org Reviewed-by: Leif Lindholm leif.lindholm@linaro.org
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18309 6f19259b-4bc3-4df7-8a09-765794883524
[1] http://sourceforge.net/p/tianocore/edk2/ci/0ad3e6d4a6578e8714e7735d1b9d0b51e...
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org --- Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc | 13 ------------- Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf | 4 ---- 2 files changed, 17 deletions(-)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc index 1b4114d..470b938 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc +++ b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc @@ -45,9 +45,7 @@
ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf NorFlashPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/NorFlashArmVExpressLib/NorFlashArmVExpressLib.inf -!ifndef ARM_FOUNDATION_FVP LcdPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpressLib.inf -!endif
TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
@@ -89,14 +87,9 @@ gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Fixed Virtual Platform" gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ARM-FVP"
-!ifndef ARM_FOUNDATION_FVP # Up to 8 cores on Base models. This works fine if model happens to have less. gArmPlatformTokenSpaceGuid.PcdCoreCount|8 gArmPlatformTokenSpaceGuid.PcdClusterCount|2 -!else - # Up to 4 cores on Foundation models. This works fine if model happens to have less. - gArmPlatformTokenSpaceGuid.PcdCoreCount|4 -!endif
# # NV Storage PCDs. Use base of 0x0C000000 for NOR1 @@ -153,14 +146,12 @@ ## PL031 RealTimeClock gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000
-!ifndef ARM_FOUNDATION_FVP ## PL111 Versatile Express Motherboard controller gArmPlatformTokenSpaceGuid.PcdPL111LcdBase|0x1C1F0000
## PL180 MMC/SD card controller gArmPlatformTokenSpaceGuid.PcdPL180SysMciRegAddress|0x1C010048 gArmPlatformTokenSpaceGuid.PcdPL180MciBaseAddress|0x1C050000 -!endif
# # ARM General Interrupt Controller @@ -302,9 +293,7 @@ ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf !endif ArmPkg/Drivers/TimerDxe/TimerDxe.inf -!ifndef ARM_FOUNDATION_FVP ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf -!endif ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
# SMBIOS Support @@ -316,13 +305,11 @@ # ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
-!ifndef ARM_FOUNDATION_FVP # # Multimedia Card Interface # EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf -!endif
# # Platform Driver diff --git a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf index 63bd09a..e3ff0cc 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf +++ b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf @@ -173,9 +173,7 @@ FvNameGuid = 87940482-fc81-41c3-87e6-399cf85ac8a0 !else INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf !endif -!ifndef ARM_FOUNDATION_FVP INF ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf -!endif INF ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
# @@ -191,13 +189,11 @@ FvNameGuid = 87940482-fc81-41c3-87e6-399cf85ac8a0 INF FatBinPkg/EnhancedFatDxe/Fat.inf INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
-!ifndef ARM_FOUNDATION_FVP # # Multimedia Card Interface # INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf -!endif
# # SMBIOS Support
From: Ard Biesheuvel ard.biesheuvel@linaro.org
commit 660aaec3118b0763ee4fcd83b936bf15ffcf23a9 Author: Ard Biesheuvel ard.biesheuvel@linaro.org Date: Tue Dec 15 13:08:56 2015 +0000
ArmVExpressPkg/ArmVExpress-FVP-AArch64: run GICv3 in v3 mode
After fixing ArmGicEnableDistributor() in a previous patch, there is no longer a reason to run the GICv3 in v2 mode, so remove the PCD override.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel ard.biesheuvel@linaro.org Reviewed-by: Leif Lindholm leif.lindholm@linaro.org
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19275 6f19259b-4bc3-4df7-8a09-765794883524
[1] http://sourceforge.net/p/tianocore/edk2/ci/660aaec3118b0763ee4fcd83b936bf15f...
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org --- Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc | 6 ------ 1 file changed, 6 deletions(-)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc index 470b938..b14aeb0 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc +++ b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc @@ -77,12 +77,6 @@ # It could be set FALSE to save size. gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
- # Force the UEFI GIC driver to use GICv2 legacy mode. To use - # GICv3 without GICv2 legacy in UEFI, the ARM Trusted Firmware needs - # to configure the Non-Secure interrupts in the GIC Redistributors - # which is not supported at the moment. - gArmTokenSpaceGuid.PcdArmGicV3WithV2Legacy|TRUE - [PcdsFixedAtBuild.common] gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Fixed Virtual Platform" gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ARM-FVP"
This is a straight copy of the TC2 dsc & fdf files from EDK2 at this commit:
f447734 2016-01-26 MdeModulePkg:Make the logic in ConfigRouting.c clear and safe [Dandan Bi]
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org --- Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc | 285 +++++++++++++++++++++ Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf | 323 ++++++++++++++++++++++++ 2 files changed, 608 insertions(+)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc new file mode 100644 index 0000000..a711f56 --- /dev/null +++ b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc @@ -0,0 +1,285 @@ +# +# Copyright (c) 2012-2015, ARM Limited. All rights reserved. +# Copyright (c) 2015, Intel Corporation. All rights reserved.<BR> +# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +# + +################################################################################ +# +# Defines Section - statements that will be processed to create a Makefile. +# +################################################################################ +[Defines] + PLATFORM_NAME = ArmVExpressPkg-CTA15-A7 + PLATFORM_GUID = 0b511920-978d-4b34-acc0-3d9f8e6f9d81 + PLATFORM_VERSION = 0.1 + DSC_SPECIFICATION = 0x00010005 + OUTPUT_DIRECTORY = Build/ArmVExpress-CTA15-A7 + SUPPORTED_ARCHITECTURES = ARM + BUILD_TARGETS = DEBUG|RELEASE + SKUID_IDENTIFIER = DEFAULT + FLASH_DEFINITION = ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf + + DEFINE EDK2_SKIP_PEICORE = 1 + DEFINE ARM_BIGLITTLE_TC2 = 1 # We build for the TC2 hardware by default + +!include ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc + +[LibraryClasses.common] + ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf + ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/ArmVExpressLib.inf + + ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf + NorFlashPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/NorFlashArmVExpressLib/NorFlashArmVExpressLib.inf + + #DebugAgentTimerLib|ArmPlatformPkg/ArmVExpressPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.inf + + # ARM General Interrupt Driver in Secure and Non-secure + ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf + + LcdPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpressLib.inf + + TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf + ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf + +[BuildOptions] +!ifdef ARM_BIGLITTLE_TC2 + *_*_ARM_ARCHCC_FLAGS = -DARM_BIGLITTLE_TC2=1 + *_*_ARM_PP_FLAGS = -DARM_BIGLITTLE_TC2=1 +!endif + + RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15-A7 + + GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15-A7 + + XCODE:*_*_ARM_PLATFORM_FLAGS = -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA15-A7 + +################################################################################ +# +# Pcd Section - list of all EDK II PCD Entries defined by this Platform +# +################################################################################ + +[PcdsFeatureFlag.common] + gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|TRUE + gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|TRUE + + ## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe. + # It could be set FALSE to save size. + gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE + +[PcdsFixedAtBuild.common] + gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Versatile Express" + gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ArmVExpress-CTA15-A7" + + gArmPlatformTokenSpaceGuid.PcdCoreCount|5 + + # + # NV Storage PCDs. Use base of 0x0C000000 for NOR1 + # + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x0FFC0000 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x00010000 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x0FFD0000 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x00010000 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x0FFE0000 + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x00010000 + + gArmTokenSpaceGuid.PcdVFPEnabled|1 + + # Stacks for MPCores in Secure World + # SRAM (CS1) is only available between 0x14000000 and 0x14001000 on the model + # ZBT SRAM is available between 0x2E000000 and 0x2E010000 on the model +!ifdef ARM_BIGLITTLE_TC2 + gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0x17000000 +!else + gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0x2E000000 +!endif + gArmPlatformTokenSpaceGuid.PcdCPUCoreSecPrimaryStackSize|0x8000 + gArmPlatformTokenSpaceGuid.PcdCPUCoreSecSecondaryStackSize|0x1000 + # Share Monitor stacks with Secure World + gArmPlatformTokenSpaceGuid.PcdCPUCoreSecMonStackSize|0 + + # System Memory (1GB) - An additional 1GB will be added if UEFI is running on a 2GB Test Chip + gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000 + gArmTokenSpaceGuid.PcdSystemMemorySize|0x40000000 + +!ifdef ARM_BIGLITTLE_TC2 + # TC2 Dual-Cluster profile + gArmPlatformTokenSpaceGuid.PcdClusterCount|2 + + # Core Ids and Gic values + # A15_0 = 0x000, GicCoreId = 0 + # A15_1 = 0x001, GicCoreId = 1 + # A7_0 = 0x100, GicCoreId = 2 + # A7_1 = 0x101, GicCoreId = 3 + # A7_2 = 0x102, GicCoreId = 4 + gArmTokenSpaceGuid.PcdArmPrimaryCore|0x100 +!endif + + # + # ARM PrimeCell + # + + ## SP805 Watchdog - Motherboard Watchdog + gArmPlatformTokenSpaceGuid.PcdSP805WatchdogBase|0x1C0F0000 + + ## PL011 - Serial Terminal + gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x1C090000 + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|38400 + + ## PL031 RealTimeClock + gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000 + +!ifdef ARM_BIGLITTLE_TC2 + ## PL111 Lcd & HdLcd + gArmPlatformTokenSpaceGuid.PcdPL111LcdBase|0x1C1F0000 + gArmPlatformTokenSpaceGuid.PcdArmHdLcdBase|0x2B000000 + gArmVExpressTokenSpaceGuid.PcdHdLcdVideoModeOscId|5 +!endif + + # + # PL180 MMC/SD card controller + # + gArmPlatformTokenSpaceGuid.PcdPL180SysMciRegAddress|0x1C010048 + gArmPlatformTokenSpaceGuid.PcdPL180MciBaseAddress|0x1C050000 + + + # + # ARM General Interrupt Controller + # + gArmTokenSpaceGuid.PcdGicDistributorBase|0x2C001000 + gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x2C002000 + + # ISP1761 USB OTG Controller + gEmbeddedTokenSpaceGuid.PcdIsp1761BaseAddress|0x1B000000 + + # Ethernet (SMSC LAN9118) + gEmbeddedTokenSpaceGuid.PcdLan9118DxeBaseAddress|0x1A000000 + + # + # Define the device path to the FDT for the platform + # + gEmbeddedTokenSpaceGuid.PcdFdtDevicePaths|L"VenHw(E7223039-5836-41E1-B542-D7EC736C5E59)/ca15a7" + + # + # ARM OS Loader + # + gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"Linux from NorFlash" + gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"Fv(73DCB643-3862-4904-9076-A94AF1890243)/LinuxLoader.efi" + gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|L"VenHw(E7223039-5836-41E1-B542-D7EC736C5E59)/kernel -c "console=ttyAMA0,38400 earlyprintk debug verbose"" + + # Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut) + # PL111 - CLCD + #gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi();VenHw(407B4008-BF5B-11DF-9547-CF16E0D72085)" + # HDLCD + gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi();VenHw(CE660500-824D-11E0-AC72-0002A5D5C51B)" + gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi()" + + # + # ARM Architectural Timer Frequency + # +!ifdef ARM_BIGLITTLE_TC2 + gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|24000000 +!else + gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|10000000 +!endif + +################################################################################ +# +# Components Section - list of all EDK II Modules needed by this Platform +# +################################################################################ +[Components.common] + # + # PEI Phase modules + # + ArmPlatformPkg/PrePi/PeiMPCore.inf { + <LibraryClasses> + ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf + ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA15-A7/ArmVExpressLib.inf + } + + # + # DXE + # + MdeModulePkg/Core/Dxe/DxeMain.inf { + <LibraryClasses> + PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf + NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf + } + + # + # Architectural Protocols + # + ArmPkg/Drivers/CpuDxe/CpuDxe.inf + MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf + MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf + MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf + MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf { + <LibraryClasses> + NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf + } + MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf + MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf + EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf + EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf + EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf + + MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf + MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf + MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf + MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf + MdeModulePkg/Universal/SerialDxe/SerialDxe.inf + + MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf + + ArmPkg/Drivers/ArmGic/ArmGicDxe.inf + ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf + #ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf + ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf + ArmPkg/Drivers/TimerDxe/TimerDxe.inf + ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf + + # + # Platform + # + ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf + + # + # Filesystems + # +!ifndef ARM_BIGLITTLE_TC2 + ArmPkg/Filesystem/SemihostFs/SemihostFs.inf +!endif + + # + # Multimedia Card Interface + # + EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf + ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf + + # SMSC LAN 9118 + EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118Dxe.inf + + # + # FAT filesystem + GPT/MBR partitioning + # + MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf + MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf + MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf + + MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf + + # + # Bds + # + MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf + ArmPlatformPkg/Bds/Bds.inf diff --git a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf new file mode 100644 index 0000000..5f4f5aa --- /dev/null +++ b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf @@ -0,0 +1,323 @@ +# +# Copyright (c) 2012-2015, ARM Limited. All rights reserved. +# Copyright (c) 2015, Intel Corporation. All rights reserved.<BR> +# +# This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# + +################################################################################ +# +# FD Section +# The [FD] Section is made up of the definition statements and a +# description of what goes into the Flash Device Image. Each FD section +# defines one flash "device" image. A flash device image may be one of +# the following: Removable media bootable image (like a boot floppy +# image,) an Option ROM image (that would be "flashed" into an add-in +# card,) a System "Flash" image (that would be burned into a system's +# flash) or an Update ("Capsule") image that will be used to update and +# existing system flash. +# +################################################################################ + +[FD.ARM_VEXPRESS_CTA15A7_EFI] +BaseAddress = 0xB0000000|gArmTokenSpaceGuid.PcdFdBaseAddress # The base address of the Firmware in remapped DRAM. +Size = 0x000C8000|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device +ErasePolarity = 1 +BlockSize = 0x00001000 +NumBlocks = 0xC8 + +0x00000000|0x000C8000 +gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize +FV = FVMAIN_COMPACT + +################################################################################ +# +# FV Section +# +# [FV] section is used to define what components or modules are placed within a flash +# device file. This section also defines order the components and modules are positioned +# within the image. The [FV] section consists of define statements, set statements and +# module statements. +# +################################################################################ +[FV.FvMain] +BlockSize = 0x40 +NumBlocks = 0 # This FV gets compressed so make it just big enough +FvAlignment = 8 # FV alignment and FV attributes setting. +ERASE_POLARITY = 1 +MEMORY_MAPPED = TRUE +STICKY_WRITE = TRUE +LOCK_CAP = TRUE +LOCK_STATUS = TRUE +WRITE_DISABLED_CAP = TRUE +WRITE_ENABLED_CAP = TRUE +WRITE_STATUS = TRUE +WRITE_LOCK_CAP = TRUE +WRITE_LOCK_STATUS = TRUE +READ_DISABLED_CAP = TRUE +READ_ENABLED_CAP = TRUE +READ_STATUS = TRUE +READ_LOCK_CAP = TRUE +READ_LOCK_STATUS = TRUE +FvNameGuid = 73dcb643-3862-4904-9076-a94af1890243 + + INF MdeModulePkg/Core/Dxe/DxeMain.inf + + # + # PI DXE Drivers producing Architectural Protocols (EFI Services) + # + INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf + INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf + INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf + INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf + INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf + INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf + INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf + INF EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf + INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf + INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf + + INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf + + # + # Multiple Console IO support + # + INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf + INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf + INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf + INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf + INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf + + INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf + INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf + INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf + #INF ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf + INF ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/HdLcdGraphicsOutputDxe.inf + INF ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf + + # + # Platform + # + INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf + + # + # Multimedia Card Interface + # + INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf + INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf + + # + # Filesystems + # +!ifndef $(ARM_BIGLITTLE_TC2) + INF ArmPkg/Filesystem/SemihostFs/SemihostFs.inf +!endif + + # + # FAT filesystem + GPT/MBR partitioning + # + INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf + INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf + INF FatBinPkg/EnhancedFatDxe/Fat.inf + INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf + + # Versatile Express FileSystem + INF ArmPlatformPkg/FileSystem/BootMonFs/BootMonFs.inf + + # + # USB support + # + INF EmbeddedPkg/Drivers/Isp1761UsbDxe/Isp1761UsbDxe.inf + + # + # Android Fastboot + # + INF EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.inf + INF EmbeddedPkg/Drivers/AndroidFastbootTransportUsbDxe/FastbootTransportUsbDxe.inf + INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressFastBootDxe/ArmVExpressFastBootDxe.inf + + # ACPI Support + INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf + + # + # Networking stack + # + INF MdeModulePkg/Universal/Network/DpcDxe/DpcDxe.inf + INF MdeModulePkg/Universal/Network/ArpDxe/ArpDxe.inf + INF MdeModulePkg/Universal/Network/Dhcp4Dxe/Dhcp4Dxe.inf + INF MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Dxe.inf + INF MdeModulePkg/Universal/Network/MnpDxe/MnpDxe.inf + INF MdeModulePkg/Universal/Network/VlanConfigDxe/VlanConfigDxe.inf + INF MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Dxe.inf + INF MdeModulePkg/Universal/Network/Tcp4Dxe/Tcp4Dxe.inf + INF MdeModulePkg/Universal/Network/Udp4Dxe/Udp4Dxe.inf + INF MdeModulePkg/Universal/Network/UefiPxeBcDxe/UefiPxeBcDxe.inf + INF MdeModulePkg/Universal/Network/IScsiDxe/IScsiDxe.inf + INF EmbeddedPkg/Drivers/Lan9118Dxe/Lan9118Dxe.inf + + # + # UEFI application + # + INF ShellBinPkg/UefiShell/UefiShell.inf + + # + # Bds + # + INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf + INF ArmPlatformPkg/Bds/Bds.inf + + # Legacy Linux Loader + INF ArmPkg/Application/LinuxLoader/LinuxLoader.inf + + # FV Filesystem + INF MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemDxe.inf + + # + # FDT installation + # + # The UEFI driver is at the end of the list of the driver to be dispatched + # after the device drivers (eg: Ethernet) to ensure we have support for them. + INF EmbeddedPkg/Drivers/FdtPlatformDxe/FdtPlatformDxe.inf + + # Example to add a Device Tree to the Firmware Volume + #FILE FREEFORM = PCD(gArmVExpressTokenSpaceGuid.PcdFdtVExpressHwA15x2A7x3) { + # SECTION RAW = ArmPlatformPkg/ArmVExpressPkg/Fdts/vexpress-v2p-ca15_a7.dtb + #} + +[FV.FVMAIN_COMPACT] +FvBaseAddress = 0xB0000000 +FvForceRebase = TRUE +FvAlignment = 8 +ERASE_POLARITY = 1 +MEMORY_MAPPED = TRUE +STICKY_WRITE = TRUE +LOCK_CAP = TRUE +LOCK_STATUS = TRUE +WRITE_DISABLED_CAP = TRUE +WRITE_ENABLED_CAP = TRUE +WRITE_STATUS = TRUE +WRITE_LOCK_CAP = TRUE +WRITE_LOCK_STATUS = TRUE +READ_DISABLED_CAP = TRUE +READ_ENABLED_CAP = TRUE +READ_STATUS = TRUE +READ_LOCK_CAP = TRUE +READ_LOCK_STATUS = TRUE + + INF ArmPlatformPkg/PrePi/PeiMPCore.inf + + FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 { + SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE { + SECTION FV_IMAGE = FVMAIN + } + } + + +################################################################################ +# +# Rules are use with the [FV] section's module INF type to define +# how an FFS file is created for a given INF file. The following Rule are the default +# rules for the different module type. User can add the customized rules to define the +# content of the FFS file. +# +################################################################################ + + +############################################################################ +# Example of a DXE_DRIVER FFS file with a Checksum encapsulation section # +############################################################################ +# +#[Rule.Common.DXE_DRIVER] +# FILE DRIVER = $(NAMED_GUID) { +# DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex +# COMPRESS PI_STD { +# GUIDED { +# PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi +# UI STRING="$(MODULE_NAME)" Optional +# VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) +# } +# } +# } +# +############################################################################ + +[Rule.Common.SEC] + FILE SEC = $(NAMED_GUID) RELOCS_STRIPPED { + TE TE Align = 32 $(INF_OUTPUT)/$(MODULE_NAME).efi + } + +[Rule.Common.PEI_CORE] + FILE PEI_CORE = $(NAMED_GUID) { + TE TE $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING ="$(MODULE_NAME)" Optional + } + +[Rule.Common.PEIM] + FILE PEIM = $(NAMED_GUID) { + PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex + TE TE $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING="$(MODULE_NAME)" Optional + } + +[Rule.Common.PEIM.TIANOCOMPRESSED] + FILE PEIM = $(NAMED_GUID) DEBUG_MYTOOLS_IA32 { + PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex + GUIDED A31280AD-481E-41B6-95E8-127F4C984779 PROCESSING_REQUIRED = TRUE { + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING="$(MODULE_NAME)" Optional + } + } + +[Rule.Common.DXE_CORE] + FILE DXE_CORE = $(NAMED_GUID) { + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING="$(MODULE_NAME)" Optional + } + +[Rule.Common.UEFI_DRIVER] + FILE DRIVER = $(NAMED_GUID) { + DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING="$(MODULE_NAME)" Optional + } + +[Rule.Common.DXE_DRIVER] + FILE DRIVER = $(NAMED_GUID) { + DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING="$(MODULE_NAME)" Optional + } + +[Rule.Common.DXE_RUNTIME_DRIVER] + FILE DRIVER = $(NAMED_GUID) { + DXE_DEPEX DXE_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi + UI STRING="$(MODULE_NAME)" Optional + } + +[Rule.Common.UEFI_APPLICATION] + FILE APPLICATION = $(NAMED_GUID) { + UI STRING ="$(MODULE_NAME)" Optional + PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi + } + +[Rule.Common.UEFI_DRIVER.BINARY] + FILE DRIVER = $(NAMED_GUID) { + DXE_DEPEX DXE_DEPEX Optional |.depex + PE32 PE32 |.efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + } + +[Rule.Common.UEFI_APPLICATION.BINARY] + FILE APPLICATION = $(NAMED_GUID) { + PE32 PE32 |.efi + UI STRING="$(MODULE_NAME)" Optional + VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) + }
Use the .fdf and .dsc.inc files from OpenPlatformPkg.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org --- Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc index a711f56..286fd07 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc +++ b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc @@ -26,12 +26,12 @@ SUPPORTED_ARCHITECTURES = ARM BUILD_TARGETS = DEBUG|RELEASE SKUID_IDENTIFIER = DEFAULT - FLASH_DEFINITION = ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA15-A7.fdf + FLASH_DEFINITION = OpenPlatformPkg/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf
DEFINE EDK2_SKIP_PEICORE = 1 DEFINE ARM_BIGLITTLE_TC2 = 1 # We build for the TC2 hardware by default
-!include ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc +!include OpenPlatformPkg/Platforms/ARM/VExpress/ArmVExpress.dsc.inc
[LibraryClasses.common] ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
Defining EDK2_OUT_DIR at build time allows the builder to specify the output directory used.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org --- Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc index 286fd07..12336a8 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc +++ b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc @@ -22,7 +22,11 @@ PLATFORM_GUID = 0b511920-978d-4b34-acc0-3d9f8e6f9d81 PLATFORM_VERSION = 0.1 DSC_SPECIFICATION = 0x00010005 +!ifdef $(EDK2_OUT_DIR) + OUTPUT_DIRECTORY = $(EDK2_OUT_DIR) +!else OUTPUT_DIRECTORY = Build/ArmVExpress-CTA15-A7 +!endif SUPPORTED_ARCHITECTURES = ARM BUILD_TARGETS = DEBUG|RELEASE SKUID_IDENTIFIER = DEFAULT
Add Intel BDS support and remove ARM BDS support.
I had to increase the image size in the process.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org --- Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc | 4 +++- Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc index 12336a8..3cd6bcc 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc +++ b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.dsc @@ -286,4 +286,6 @@ # Bds # MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf - ArmPlatformPkg/Bds/Bds.inf + MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf + MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf + IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf diff --git a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf index 5f4f5aa..466b399 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf +++ b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf @@ -27,12 +27,12 @@
[FD.ARM_VEXPRESS_CTA15A7_EFI] BaseAddress = 0xB0000000|gArmTokenSpaceGuid.PcdFdBaseAddress # The base address of the Firmware in remapped DRAM. -Size = 0x000C8000|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device +Size = 0x000E0000|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device ErasePolarity = 1 BlockSize = 0x00001000 -NumBlocks = 0xC8 +NumBlocks = 0xE0
-0x00000000|0x000C8000 +0x00000000|0x000E0000 gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize FV = FVMAIN_COMPACT
@@ -170,7 +170,16 @@ FvNameGuid = 73dcb643-3862-4904-9076-a94af1890243 # Bds # INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf - INF ArmPlatformPkg/Bds/Bds.inf + INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf + INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf + INF IntelFrameworkModulePkg/Universal/BdsDxe/BdsDxe.inf + + # + # TianoCore logo (splash screen) + # + FILE FREEFORM = PCD(gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdLogoFile) { + SECTION RAW = MdeModulePkg/Logo/Logo.bmp + }
# Legacy Linux Loader INF ArmPkg/Application/LinuxLoader/LinuxLoader.inf
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org --- Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf index 466b399..76c9249 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf +++ b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf @@ -164,7 +164,7 @@ FvNameGuid = 73dcb643-3862-4904-9076-a94af1890243 # # UEFI application # - INF ShellBinPkg/UefiShell/UefiShell.inf + INF ShellPkg/Application/Shell/Shell.inf
# # Bds
On 2 February 2016 at 20:15, Ryan Harkin ryan.harkin@linaro.org wrote:
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org
Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf index 466b399..76c9249 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf +++ b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf @@ -164,7 +164,7 @@ FvNameGuid = 73dcb643-3862-4904-9076-a94af1890243 # # UEFI application #
- INF ShellBinPkg/UefiShell/UefiShell.inf
- INF ShellPkg/Application/Shell/Shell.inf
Should this patch (and the next one) perhaps be reordered against the patch that adds ShellPkg/Application/Shell/Shell.inf to the shared .dsc.inc?
On 3 February 2016 at 08:33, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
On 2 February 2016 at 20:15, Ryan Harkin ryan.harkin@linaro.org wrote:
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org
Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf index 466b399..76c9249 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf +++ b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf @@ -164,7 +164,7 @@ FvNameGuid = 73dcb643-3862-4904-9076-a94af1890243 # # UEFI application #
- INF ShellBinPkg/UefiShell/UefiShell.inf
- INF ShellPkg/Application/Shell/Shell.inf
Should this patch (and the next one) perhaps be reordered against the patch that adds ShellPkg/Application/Shell/Shell.inf to the shared .dsc.inc?
Gah! Yes! I reordered it before posting to keep all the TC2 stuff together, forgetting about the change in the .dsc.inc file.
I guess I should split the .dsc.inc file change out from the FVP patch also?
On 3 February 2016 at 10:11, Ryan Harkin ryan.harkin@linaro.org wrote:
On 3 February 2016 at 08:33, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
On 2 February 2016 at 20:15, Ryan Harkin ryan.harkin@linaro.org wrote:
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org
Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf index 466b399..76c9249 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf +++ b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf @@ -164,7 +164,7 @@ FvNameGuid = 73dcb643-3862-4904-9076-a94af1890243 # # UEFI application #
- INF ShellBinPkg/UefiShell/UefiShell.inf
- INF ShellPkg/Application/Shell/Shell.inf
Should this patch (and the next one) perhaps be reordered against the patch that adds ShellPkg/Application/Shell/Shell.inf to the shared .dsc.inc?
Gah! Yes! I reordered it before posting to keep all the TC2 stuff together, forgetting about the change in the .dsc.inc file.
I guess I should split the .dsc.inc file change out from the FVP patch also?
I wouldn't mind terribly if you fold all 3 patches into one, tbh
On 3 February 2016 at 09:18, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
On 3 February 2016 at 10:11, Ryan Harkin ryan.harkin@linaro.org wrote:
On 3 February 2016 at 08:33, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
On 2 February 2016 at 20:15, Ryan Harkin ryan.harkin@linaro.org wrote:
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org
Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf index 466b399..76c9249 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf +++ b/Platforms/ARM/VExpress/ArmVExpress-CTA15-A7.fdf @@ -164,7 +164,7 @@ FvNameGuid = 73dcb643-3862-4904-9076-a94af1890243 # # UEFI application #
- INF ShellBinPkg/UefiShell/UefiShell.inf
- INF ShellPkg/Application/Shell/Shell.inf
Should this patch (and the next one) perhaps be reordered against the patch that adds ShellPkg/Application/Shell/Shell.inf to the shared .dsc.inc?
Gah! Yes! I reordered it before posting to keep all the TC2 stuff together, forgetting about the change in the .dsc.inc file.
I guess I should split the .dsc.inc file change out from the FVP patch also?
I wouldn't mind terribly if you fold all 3 patches into one, tbh
Fair point; I guess they are all part of one 'thing' and shortens the series too. I've just done that locally and re-pushed my branch:
https://git.linaro.org/landing-teams/working/arm/OpenPlatformPkg.git https://git.linaro.org/landing-teams/working/arm/OpenPlatformPkg.git/commitd...
Rather than use a pre-built Shell binary, build the Shell from source.
This allows the developer to debug and fix bugs in Shell, as well as test the latest source code.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org --- Platforms/ARM/Juno/ArmJuno.fdf | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/Platforms/ARM/Juno/ArmJuno.fdf b/Platforms/ARM/Juno/ArmJuno.fdf index 7c226b4..0e7274f 100644 --- a/Platforms/ARM/Juno/ArmJuno.fdf +++ b/Platforms/ARM/Juno/ArmJuno.fdf @@ -189,7 +189,8 @@ FvNameGuid = B73FE497-B92E-416e-8326-45AD0D270092 # # UEFI applications # - INF ShellBinPkg/UefiShell/UefiShell.inf + INF ShellPkg/Application/Shell/Shell.inf +
# # Juno platform driver
The TTYTERM console type allows Linux terminals to send the correct control codes for function keys, backspace, etc.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org --- Platforms/ARM/Juno/ArmJuno.dsc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Platforms/ARM/Juno/ArmJuno.dsc b/Platforms/ARM/Juno/ArmJuno.dsc index d015b35..9f1cbc2 100644 --- a/Platforms/ARM/Juno/ArmJuno.dsc +++ b/Platforms/ARM/Juno/ArmJuno.dsc @@ -159,8 +159,8 @@ gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|L"console=ttyAMA0,115200 earlycon=pl011,0x7ff80000 root=/dev/sda1 rootwait verbose debug"
# Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut) - gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenPcAnsi();VenHw(CE660500-824D-11E0-AC72-0002A5D5C51B)" - gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenPcAnsi()" + gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenMsg(7D916D80-5BB1-458C-A48F-E25FDD51EF94)" + gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenMsg(7D916D80-5BB1-458C-A48F-E25FDD51EF94)"
# # ARM Architectural Timer Frequency
It defaults to off, so you have to specify -D EDK2_ENABLE_PL111=1 to enable it.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org --- Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc | 10 ++++++++++ Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf | 2 ++ Platforms/ARM/VExpress/ArmVExpress.dsc.inc | 2 ++ 3 files changed, 14 insertions(+)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc index b14aeb0..ab60609 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc +++ b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc @@ -45,7 +45,9 @@
ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf NorFlashPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/NorFlashArmVExpressLib/NorFlashArmVExpressLib.inf +!ifdef EDK2_ENABLE_PL111 LcdPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpressLib.inf +!endif
TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
@@ -140,8 +142,10 @@ ## PL031 RealTimeClock gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000
+!ifdef EDK2_ENABLE_PL111 ## PL111 Versatile Express Motherboard controller gArmPlatformTokenSpaceGuid.PcdPL111LcdBase|0x1C1F0000 +!endif
## PL180 MMC/SD card controller gArmPlatformTokenSpaceGuid.PcdPL180SysMciRegAddress|0x1C010048 @@ -167,7 +171,11 @@ gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|L"console=ttyAMA0 earlycon=pl011,0x1c090000 debug user_debug=31 loglevel=9"
# Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut) +!ifdef EDK2_ENABLE_PL111 gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi();VenHw(407B4008-BF5B-11DF-9547-CF16E0D72085)" +!else + gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi();" +!endif gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi()"
# @@ -287,7 +295,9 @@ ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf !endif ArmPkg/Drivers/TimerDxe/TimerDxe.inf +!ifdef EDK2_ENABLE_PL111 ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf +!endif ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
# SMBIOS Support diff --git a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf index e3ff0cc..5309c3e 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf +++ b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf @@ -173,7 +173,9 @@ FvNameGuid = 87940482-fc81-41c3-87e6-399cf85ac8a0 !else INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf !endif +!ifdef EDK2_ENABLE_PL111 INF ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf +!endif INF ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
# diff --git a/Platforms/ARM/VExpress/ArmVExpress.dsc.inc b/Platforms/ARM/VExpress/ArmVExpress.dsc.inc index 86bad01..e6d30f1 100644 --- a/Platforms/ARM/VExpress/ArmVExpress.dsc.inc +++ b/Platforms/ARM/VExpress/ArmVExpress.dsc.inc @@ -85,8 +85,10 @@ ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf NorFlashPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/NorFlashArmVExpressLib/NorFlashArmVExpressLib.inf EfiResetSystemLib|ArmPlatformPkg/ArmVExpressPkg/Library/ResetSystemLib/ResetSystemLib.inf +!ifdef EDK2_ENABLE_PL111 # ARM PL111 Lcd Driver LcdPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpressLib.inf +!endif # ARM PL031 RTC Driver RealTimeClockLib|ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf # ARM PL354 SMC Driver
Use the TTYTERM console type by default so that we understand control codes sent by Linux terminals.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org --- Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc index ab60609..b2a1f64 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc +++ b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc @@ -137,7 +137,7 @@
## PL011 - Serial Terminal gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x1c090000 - gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|38400 + gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|115200
## PL031 RealTimeClock gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000 @@ -172,11 +172,11 @@
# Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut) !ifdef EDK2_ENABLE_PL111 - gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi();VenHw(407B4008-BF5B-11DF-9547-CF16E0D72085)" + gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenMsg(7D916D80-5BB1-458C-A48F-E25FDD51EF94);VenHw(407B4008-BF5B-11DF-9547-CF16E0D72085)" !else - gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi();" + gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenMsg(7D916D80-5BB1-458C-A48F-E25FDD51EF94)" !endif - gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi()" + gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenMsg(7D916D80-5BB1-458C-A48F-E25FDD51EF94)"
# # ARM Architectural Timer Frequency
GICv3 with v2 legacy support was removed, but this patch adds it back in conditionally.
The default continues to use GICv3 natively unless specifically requested at build time by defining "ARM_FVP_GICV3_WITH_V2_LEGACY".
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org --- Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc index b2a1f64..9832f02 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc +++ b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.dsc @@ -79,6 +79,10 @@ # It could be set FALSE to save size. gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
+!ifdef ARM_FVP_GICV3_WITH_V2_LEGACY + gArmTokenSpaceGuid.PcdArmGicV3WithV2Legacy|TRUE +!endif + [PcdsFixedAtBuild.common] gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Fixed Virtual Platform" gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ARM-FVP"
Rather than use a pre-built Shell binary, build the Shell from source.
This allows the developer to debug and fix bugs in Shell, as well as test the latest source code.
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ryan Harkin ryan.harkin@linaro.org --- Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf | 2 +- Platforms/ARM/VExpress/ArmVExpress.dsc.inc | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf index 5309c3e..2bdb635 100644 --- a/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf +++ b/Platforms/ARM/VExpress/ArmVExpress-FVP-AArch64.fdf @@ -216,7 +216,7 @@ FvNameGuid = 87940482-fc81-41c3-87e6-399cf85ac8a0 # # UEFI application (Shell Embedded Boot Loader) # - INF ShellBinPkg/UefiShell/UefiShell.inf + INF ShellPkg/Application/Shell/Shell.inf
# # Bds diff --git a/Platforms/ARM/VExpress/ArmVExpress.dsc.inc b/Platforms/ARM/VExpress/ArmVExpress.dsc.inc index e6d30f1..61912ef 100644 --- a/Platforms/ARM/VExpress/ArmVExpress.dsc.inc +++ b/Platforms/ARM/VExpress/ArmVExpress.dsc.inc @@ -485,3 +485,22 @@
# Legacy Linux Loader ArmPkg/Application/LinuxLoader/LinuxLoader.inf + + # + # UEFI application (Shell Embedded Boot Loader) + # + ShellPkg/Application/Shell/Shell.inf { + <LibraryClasses> + ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf + NULL|ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.inf + NULL|ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellLevel3CommandsLib/UefiShellLevel3CommandsLib.inf + NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf + NULL|ShellPkg/Library/UefiShellTftpCommandLib/UefiShellTftpCommandLib.inf + HandleParsingLib|ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.inf + PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf + BcfgCommandLib|ShellPkg/Library/UefiShellBcfgCommandLib/UefiShellBcfgCommandLib.inf + }
On 2 February 2016 at 20:15, Ryan Harkin ryan.harkin@linaro.org wrote:
This series replaces the previous series titled "[PATH 0/5] Copy commits from EDK2". They are all destined for the OpenPlatformsPkg repo [1]
The first 5 patches are the same and are straight ports from EDK2:
[PATCH 01/15] ArmPlatformPkg/FVP: use 'auto' alignment and FIXED [PATCH 02/15] ArmPlatformPkg: Link separated VarCheckUefiLib NULL [PATCH 03/15] ArmPlatformPkg/FVP: unify support for Foundation and [PATCH 04/15] ArmVExpressPkg/ArmVExpress-FVP-AArch64: run GICv3 in v3 [PATCH 05/15] Platforms/ARM: TC2: copy from EDK2
The following patches are minor updates to the platform support:
[PATCH 06/15] Platforms/ARM: TC2: update paths for OpenPlatformPkg [PATCH 07/15] Platforms/ARM: TC2: add EDK2_OUT_DIR support [PATCH 08/15] Platforms/ARM: TC2: use Intel BDS [PATCH 09/15] Platforms/ARM: TC2: build Shell from source [PATCH 10/15] Platforms/ARM: Juno: build Shell from source [PATCH 11/15] Platforms/ARM: Juno: Use TTYTERM console [PATCH 12/15] Platforms/ARM: make PL111 build time optional [PATCH 13/15] Platforms/ARM: FVP: use TTYTERM console [PATCH 14/15] Platforms/ARM: FVP: Add optional GICv3 with v2 Legacy [PATCH 15/15] Platforms/ARM: FVP: build Shell from source
Unless I hear any objections by the end of the week, I'll commit these patches to the OpenPlatformPkg repo. If I get the OK from Leif and Ard, I'll commit them sooner.
It is ultimately Leif who owns OpenPlatformPkg, not me, but I'm happy to share my opinion, of course.
Once they're in, I'll resubmit/ping on the patches to remove the platforms from EDK2. I'll also update uefi-tools to account for the changes.
On 3 February 2016 at 08:26, Ard Biesheuvel ard.biesheuvel@linaro.org wrote:
On 2 February 2016 at 20:15, Ryan Harkin ryan.harkin@linaro.org wrote:
This series replaces the previous series titled "[PATH 0/5] Copy commits from EDK2". They are all destined for the OpenPlatformsPkg repo [1]
The first 5 patches are the same and are straight ports from EDK2:
[PATCH 01/15] ArmPlatformPkg/FVP: use 'auto' alignment and FIXED [PATCH 02/15] ArmPlatformPkg: Link separated VarCheckUefiLib NULL [PATCH 03/15] ArmPlatformPkg/FVP: unify support for Foundation and [PATCH 04/15] ArmVExpressPkg/ArmVExpress-FVP-AArch64: run GICv3 in v3 [PATCH 05/15] Platforms/ARM: TC2: copy from EDK2
The following patches are minor updates to the platform support:
[PATCH 06/15] Platforms/ARM: TC2: update paths for OpenPlatformPkg [PATCH 07/15] Platforms/ARM: TC2: add EDK2_OUT_DIR support [PATCH 08/15] Platforms/ARM: TC2: use Intel BDS [PATCH 09/15] Platforms/ARM: TC2: build Shell from source [PATCH 10/15] Platforms/ARM: Juno: build Shell from source [PATCH 11/15] Platforms/ARM: Juno: Use TTYTERM console [PATCH 12/15] Platforms/ARM: make PL111 build time optional [PATCH 13/15] Platforms/ARM: FVP: use TTYTERM console [PATCH 14/15] Platforms/ARM: FVP: Add optional GICv3 with v2 Legacy [PATCH 15/15] Platforms/ARM: FVP: build Shell from source
Unless I hear any objections by the end of the week, I'll commit these patches to the OpenPlatformPkg repo. If I get the OK from Leif and Ard, I'll commit them sooner.
It is ultimately Leif who owns OpenPlatformPkg, not me, but I'm happy to share my opinion, of course.
Sure, but I value your opinion on this stuff more than my own :)
Once they're in, I'll resubmit/ping on the patches to remove the platforms from EDK2. I'll also update uefi-tools to account for the changes.
On 2 February 2016 at 19:15, Ryan Harkin ryan.harkin@linaro.org wrote:
This series replaces the previous series titled "[PATH 0/5] Copy commits from EDK2". They are all destined for the OpenPlatformsPkg repo [1]
The first 5 patches are the same and are straight ports from EDK2:
[PATCH 01/15] ArmPlatformPkg/FVP: use 'auto' alignment and FIXED [PATCH 02/15] ArmPlatformPkg: Link separated VarCheckUefiLib NULL [PATCH 03/15] ArmPlatformPkg/FVP: unify support for Foundation and [PATCH 04/15] ArmVExpressPkg/ArmVExpress-FVP-AArch64: run GICv3 in v3 [PATCH 05/15] Platforms/ARM: TC2: copy from EDK2
The following patches are minor updates to the platform support:
[PATCH 06/15] Platforms/ARM: TC2: update paths for OpenPlatformPkg [PATCH 07/15] Platforms/ARM: TC2: add EDK2_OUT_DIR support [PATCH 08/15] Platforms/ARM: TC2: use Intel BDS [PATCH 09/15] Platforms/ARM: TC2: build Shell from source [PATCH 10/15] Platforms/ARM: Juno: build Shell from source [PATCH 11/15] Platforms/ARM: Juno: Use TTYTERM console [PATCH 12/15] Platforms/ARM: make PL111 build time optional [PATCH 13/15] Platforms/ARM: FVP: use TTYTERM console [PATCH 14/15] Platforms/ARM: FVP: Add optional GICv3 with v2 Legacy [PATCH 15/15] Platforms/ARM: FVP: build Shell from source
Unless I hear any objections by the end of the week, I'll commit these patches to the OpenPlatformPkg repo. If I get the OK from Leif and Ard, I'll commit them sooner.
Once they're in, I'll resubmit/ping on the patches to remove the platforms from EDK2. I'll also update uefi-tools to account for the changes.
Thanks, Ryan.
After some discussion on IRC, I have pushed what was 1-14 in this series, modified (by Ryan) to address Ard's feedback.
/ Leif