ArmPlatformPkg: remove obsolete ARM and AARCH64 platforms
Remove obsolete ARM and AARCH64 platforms so the maintainers can focus on the ones that are still supported, which are: - TC2 (ArmVExpress-CTA15-A7.dsc) - Foundation model and Fast model emulators (ArmVExpress-FVP-AArch64.dsc) - Juno (ArmJunoPkg/ArmJuno.dsc) - Cortex-A15 MPcore RTSM (ArmVExpress-RTSM-A15_MPCore) 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@18110 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
committed by
abiesheuvel
parent
b56750422f
commit
6ed41dadaa
@@ -1,235 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2011-2014, ARM Limited. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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 = ArmRealViewEbPkg
|
|
||||||
PLATFORM_GUID = F4C1AD3E-9D3E-4F61-8791-B3BB1C43D04C
|
|
||||||
PLATFORM_VERSION = 0.1
|
|
||||||
DSC_SPECIFICATION = 0x00010005
|
|
||||||
OUTPUT_DIRECTORY = Build/ArmRealViewEb-RTSM-A8
|
|
||||||
SUPPORTED_ARCHITECTURES = ARM
|
|
||||||
BUILD_TARGETS = DEBUG|RELEASE
|
|
||||||
SKUID_IDENTIFIER = DEFAULT
|
|
||||||
FLASH_DEFINITION = ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb-RTSM-UniCore.fdf
|
|
||||||
|
|
||||||
!include ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb.dsc.inc
|
|
||||||
|
|
||||||
[LibraryClasses.common]
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
|
|
||||||
ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA8Lib/ArmCortexA8Lib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.SEC]
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
|
|
||||||
ArmPlatformSecLib|ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbSecLibRTSM/ArmRealViewEbSecLib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbLibSec.inf
|
|
||||||
|
|
||||||
[BuildOptions]
|
|
||||||
RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A8 -I$(WORKSPACE)/ArmPlatformPkg/ArmRealViewEbPkg/Include/Platform
|
|
||||||
|
|
||||||
GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a8 -I$(WORKSPACE)/ArmPlatformPkg/ArmRealViewEbPkg/Include/Platform
|
|
||||||
|
|
||||||
XCODE:*_*_ARM_PLATFORM_FLAGS == -arch armv7 -I$(WORKSPACE)/ArmPlatformPkg/ArmRealViewEbPkg/Include/Platform
|
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
[PcdsFeatureFlag.common]
|
|
||||||
!ifdef EDK2_SKIP_PEICORE
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|TRUE
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|TRUE
|
|
||||||
!endif
|
|
||||||
|
|
||||||
## 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
|
|
||||||
|
|
||||||
# Install Debugger Exception Handlers.
|
|
||||||
gArmTokenSpaceGuid.PcdDebuggerExceptionSupport|TRUE
|
|
||||||
|
|
||||||
[PcdsFixedAtBuild.common]
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM RealView Emulation Board"
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ArmRealViewEb-A8"
|
|
||||||
|
|
||||||
#
|
|
||||||
# NV Storage PCDs. Use base of 0x43F00000 for NOR0
|
|
||||||
#
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x43F00000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x00020000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x43F20000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x00020000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x43F40000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x00020000
|
|
||||||
|
|
||||||
# Stack for CPU Cores in Secure Mode
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0x4B000000
|
|
||||||
# Stack for CPU Cores in Secure Monitor Mode
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecMonStackBase|0x4A000000
|
|
||||||
# Stack for CPU Cores in Non Secure Mode
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x48000000
|
|
||||||
|
|
||||||
# System Memory (256MB)
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x70000000
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemorySize|0x10000000
|
|
||||||
|
|
||||||
# Size of the region used by UEFI in permanent memory (Reserved 64MB)
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM Pcds
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000040000000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM PrimeCells
|
|
||||||
#
|
|
||||||
|
|
||||||
## SP804 Timer
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedPerformanceCounterFrequencyInHz|1000000
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000 # expressed in 100ns units, 100,000 x 100 ns = 10,000,000 ns = 10 ms
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerPeriodicInterruptNum|36
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerPeriodicBase|0x10011000
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerMetronomeBase|0x10011020
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerPerformanceBase|0x10012020
|
|
||||||
|
|
||||||
## PL031 RealTimeClock
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x10017000
|
|
||||||
|
|
||||||
## PL111 Lcd
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL111LcdBase|0x10020000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM PL011 - Serial Terminal
|
|
||||||
#
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x10009000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM General Interrupt Controller
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdGicDistributorBase|0x10041000
|
|
||||||
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x10040000
|
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Components Section - list of all EDK II Modules needed by this Platform
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
[Components.common]
|
|
||||||
|
|
||||||
#
|
|
||||||
# SEC
|
|
||||||
#
|
|
||||||
ArmPlatformPkg/Sec/Sec.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
# Use the implementation which set the Secure bits
|
|
||||||
ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicSecLib.inf
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# PEI Phase modules
|
|
||||||
#
|
|
||||||
!ifdef EDK2_SKIP_PEICORE
|
|
||||||
ArmPlatformPkg/PrePi/PeiUniCore.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbLib.inf
|
|
||||||
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.inf
|
|
||||||
}
|
|
||||||
!else
|
|
||||||
ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Pei/PeiArmPlatformGlobalVariableLib.inf
|
|
||||||
}
|
|
||||||
MdeModulePkg/Core/Pei/PeiMain.inf
|
|
||||||
MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
|
||||||
}
|
|
||||||
ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
|
||||||
ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
|
||||||
ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
||||||
IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
|
||||||
Nt32Pkg/BootModePei/BootModePei.inf
|
|
||||||
MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
|
||||||
MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
|
||||||
}
|
|
||||||
!endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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/WatchdogTimerDxe/WatchdogTimer.inf
|
|
||||||
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
|
||||||
MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
|
|
||||||
MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
|
|
||||||
EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
|
|
||||||
|
|
||||||
EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
|
|
||||||
EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
|
|
||||||
EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
|
|
||||||
|
|
||||||
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
|
||||||
MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf
|
|
||||||
|
|
||||||
MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
|
|
||||||
MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
|
|
||||||
MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
|
||||||
EmbeddedPkg/SerialDxe/SerialDxe.inf
|
|
||||||
|
|
||||||
ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf
|
|
||||||
|
|
||||||
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Semi-hosting filesystem
|
|
||||||
#
|
|
||||||
ArmPkg/Filesystem/SemihostFs/SemihostFs.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
|
|
||||||
|
|
||||||
#
|
|
||||||
# Bds
|
|
||||||
#
|
|
||||||
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
|
||||||
ArmPlatformPkg/Bds/Bds.inf
|
|
@@ -1,235 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2011-2014, ARM Limited. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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 = ArmRealViewEb-RTSM-A9x2
|
|
||||||
PLATFORM_GUID = f6c2f4a0-2027-11e0-a2a1-0002a5d5c51b
|
|
||||||
PLATFORM_VERSION = 0.1
|
|
||||||
DSC_SPECIFICATION = 0x00010005
|
|
||||||
OUTPUT_DIRECTORY = Build/ArmRealViewEb-RTSM-A9x2
|
|
||||||
SUPPORTED_ARCHITECTURES = ARM
|
|
||||||
BUILD_TARGETS = DEBUG|RELEASE
|
|
||||||
SKUID_IDENTIFIER = DEFAULT
|
|
||||||
FLASH_DEFINITION = ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb-RTSM-MPCore.fdf
|
|
||||||
|
|
||||||
!include ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEb.dsc.inc
|
|
||||||
|
|
||||||
[LibraryClasses.common]
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
|
|
||||||
ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA9Lib/ArmCortexA9Lib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.SEC]
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
|
|
||||||
ArmPlatformSecLib|ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbSecLibRTSM/ArmRealViewEbSecLib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbLibSec.inf
|
|
||||||
|
|
||||||
[BuildOptions]
|
|
||||||
RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A9 -I$(WORKSPACE)/ArmPlatformPkg/ArmRealViewEbPkg/Include/Platform
|
|
||||||
|
|
||||||
GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a9 -I$(WORKSPACE)/ArmPlatformPkg/ArmRealViewEbPkg/Include/Platform
|
|
||||||
|
|
||||||
XCODE:*_*_ARM_PLATFORM_FLAGS == -arch armv7 -I$(WORKSPACE)/ArmPlatformPkg/ArmRealViewEbPkg/Include/Platform
|
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
[PcdsFeatureFlag.common]
|
|
||||||
!ifdef EDK2_SKIP_PEICORE
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|TRUE
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|TRUE
|
|
||||||
!endif
|
|
||||||
|
|
||||||
## 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 RealView Emulation Board"
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ArmRealViewEb-A9x2"
|
|
||||||
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCoreCount|2
|
|
||||||
|
|
||||||
#
|
|
||||||
# NV Storage PCDs. Use base of 0x43F00000 for NOR0
|
|
||||||
#
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x43F00000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x00020000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x43F20000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x00020000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x43F40000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x00020000
|
|
||||||
|
|
||||||
# Stacks for MPCores in Secure World
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0x4B000000
|
|
||||||
# Stacks for MPCores in Monitor Mode
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecMonStackBase|0x4A000000
|
|
||||||
# Stacks for MPCores in Normal World
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x48000000
|
|
||||||
|
|
||||||
# System Memory (256MB)
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x70000000
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemorySize|0x10000000
|
|
||||||
|
|
||||||
# Size of the region used by UEFI in permanent memory (Reserved 64MB)
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM Pcds
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000040000000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM PrimeCells
|
|
||||||
#
|
|
||||||
|
|
||||||
## SP804 Timer
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedPerformanceCounterFrequencyInHz|1000000
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000 # expressed in 100ns units, 100,000 x 100 ns = 10,000,000 ns = 10 ms
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerPeriodicInterruptNum|33
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerPeriodicBase|0x10011000
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerMetronomeBase|0x10011020
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerPerformanceBase|0x10012020
|
|
||||||
|
|
||||||
## PL031 RealTimeClock
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x10017000
|
|
||||||
|
|
||||||
## PL111 Lcd
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL111LcdBase|0x10020000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM PL011 - Serial Terminal
|
|
||||||
#
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x10009000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM General Interrupt Controller
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdGicDistributorBase|0x1F001000
|
|
||||||
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x1F000100
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM L2x0 PCDs
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdL2x0ControllerBase|0x1F002000
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Components Section - list of all EDK II Modules needed by this Platform
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
[Components.common]
|
|
||||||
|
|
||||||
#
|
|
||||||
# SEC
|
|
||||||
#
|
|
||||||
ArmPlatformPkg/Sec/Sec.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
# Use the implementation which set the Secure bits
|
|
||||||
ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicSecLib.inf
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# PEI Phase modules
|
|
||||||
#
|
|
||||||
!ifdef EDK2_SKIP_PEICORE
|
|
||||||
ArmPlatformPkg/PrePi/PeiMPCore.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmRealViewEbPkg/Library/ArmRealViewEbLibRTSM/ArmRealViewEbLib.inf
|
|
||||||
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.inf
|
|
||||||
}
|
|
||||||
!else
|
|
||||||
ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
|
|
||||||
MdeModulePkg/Core/Pei/PeiMain.inf
|
|
||||||
MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
|
||||||
}
|
|
||||||
ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
|
||||||
ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
|
||||||
ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
||||||
IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
|
||||||
Nt32Pkg/BootModePei/BootModePei.inf
|
|
||||||
MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
|
||||||
MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
|
||||||
}
|
|
||||||
!endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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/WatchdogTimerDxe/WatchdogTimer.inf
|
|
||||||
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
|
||||||
MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
|
|
||||||
MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
|
|
||||||
EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
|
|
||||||
|
|
||||||
EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
|
|
||||||
EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
|
|
||||||
EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
|
|
||||||
|
|
||||||
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
|
||||||
MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf
|
|
||||||
|
|
||||||
MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
|
|
||||||
MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
|
|
||||||
MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
|
||||||
EmbeddedPkg/SerialDxe/SerialDxe.inf
|
|
||||||
|
|
||||||
ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf
|
|
||||||
|
|
||||||
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Semi-hosting filesystem
|
|
||||||
#
|
|
||||||
ArmPkg/Filesystem/SemihostFs/SemihostFs.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
|
|
||||||
|
|
||||||
#
|
|
||||||
# Bds
|
|
||||||
#
|
|
||||||
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
|
||||||
ArmPlatformPkg/Bds/Bds.inf
|
|
@@ -1,322 +0,0 @@
|
|||||||
# FLASH layout file for ARM RealView EB.
|
|
||||||
#
|
|
||||||
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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.ArmRealViewEb_EFI]
|
|
||||||
BaseAddress = 0x40000000|gArmTokenSpaceGuid.PcdFdBaseAddress
|
|
||||||
Size = 0x00200000|gArmTokenSpaceGuid.PcdFdSize
|
|
||||||
ErasePolarity = 1
|
|
||||||
BlockSize = 0x00010000
|
|
||||||
NumBlocks = 0x20
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Following are lists of FD Region layout which correspond to the locations of different
|
|
||||||
# images within the flash device.
|
|
||||||
#
|
|
||||||
# Regions must be defined in ascending order and may not overlap.
|
|
||||||
#
|
|
||||||
# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
|
|
||||||
# the pipe "|" character, followed by the size of the region, also in hex with the leading
|
|
||||||
# "0x" characters. Like:
|
|
||||||
# Offset|Size
|
|
||||||
# PcdOffsetCName|PcdSizeCName
|
|
||||||
# RegionType <FV, DATA, or FILE>
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
0x00000000|0x00050000
|
|
||||||
gArmTokenSpaceGuid.PcdSecureFvBaseAddress|gArmTokenSpaceGuid.PcdSecureFvSize
|
|
||||||
FV = FVMAIN_SEC
|
|
||||||
|
|
||||||
0x00050000|0x00150000
|
|
||||||
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_SEC]
|
|
||||||
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/Sec/Sec.inf
|
|
||||||
|
|
||||||
|
|
||||||
[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 = 14801114-da6a-4113-985b-dc876337a15e
|
|
||||||
|
|
||||||
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/WatchdogTimerDxe/WatchdogTimer.inf
|
|
||||||
INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
|
||||||
INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
|
|
||||||
INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
|
|
||||||
INF EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
|
|
||||||
INF EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
|
|
||||||
INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
|
|
||||||
INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
|
|
||||||
|
|
||||||
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.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 EmbeddedPkg/SerialDxe/SerialDxe.inf
|
|
||||||
|
|
||||||
INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf
|
|
||||||
|
|
||||||
INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Semi-hosting filesystem
|
|
||||||
#
|
|
||||||
INF ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Multimedia Card Interface
|
|
||||||
#
|
|
||||||
INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
|
|
||||||
|
|
||||||
# FV Filesystem
|
|
||||||
INF MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
|
|
||||||
#
|
|
||||||
# UEFI application (Shell Embedded Boot Loader)
|
|
||||||
#
|
|
||||||
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.FVMAIN_COMPACT]
|
|
||||||
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
|
|
||||||
|
|
||||||
!if $(EDK2_SKIP_PEICORE) == 1
|
|
||||||
INF ArmPlatformPkg/PrePi/PeiMPCore.inf
|
|
||||||
!else
|
|
||||||
INF ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
|
|
||||||
INF MdeModulePkg/Core/Pei/PeiMain.inf
|
|
||||||
INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
|
||||||
INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
|
||||||
INF ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
||||||
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
|
||||||
INF IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
|
||||||
INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
|
||||||
INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
|
|
||||||
!endif
|
|
||||||
|
|
||||||
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)
|
|
||||||
}
|
|
@@ -1,324 +0,0 @@
|
|||||||
# FLASH layout file for ARM RealView EB.
|
|
||||||
#
|
|
||||||
# Copyright (c) 2009 - 2010, Apple Inc. All rights reserved.<BR>
|
|
||||||
# Copyright (c) 2011 - 2015, ARM Limited. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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.ArmRealViewEb_EFI]
|
|
||||||
BaseAddress = 0x40000000|gArmTokenSpaceGuid.PcdFdBaseAddress
|
|
||||||
Size = 0x00200000|gArmTokenSpaceGuid.PcdFdSize
|
|
||||||
ErasePolarity = 1
|
|
||||||
BlockSize = 0x00010000
|
|
||||||
NumBlocks = 0x20
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Following are lists of FD Region layout which correspond to the locations of different
|
|
||||||
# images within the flash device.
|
|
||||||
#
|
|
||||||
# Regions must be defined in ascending order and may not overlap.
|
|
||||||
#
|
|
||||||
# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
|
|
||||||
# the pipe "|" character, followed by the size of the region, also in hex with the leading
|
|
||||||
# "0x" characters. Like:
|
|
||||||
# Offset|Size
|
|
||||||
# PcdOffsetCName|PcdSizeCName
|
|
||||||
# RegionType <FV, DATA, or FILE>
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
0x00000000|0x00050000
|
|
||||||
gArmTokenSpaceGuid.PcdSecureFvBaseAddress|gArmTokenSpaceGuid.PcdSecureFvSize
|
|
||||||
FV = FVMAIN_SEC
|
|
||||||
|
|
||||||
0x00050000|0x00150000
|
|
||||||
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_SEC]
|
|
||||||
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/Sec/Sec.inf
|
|
||||||
|
|
||||||
|
|
||||||
[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 = 14801114-da6a-4113-985b-dc876337a15e
|
|
||||||
|
|
||||||
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/WatchdogTimerDxe/WatchdogTimer.inf
|
|
||||||
INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
|
||||||
INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
|
|
||||||
INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
|
|
||||||
INF EmbeddedPkg/EmbeddedMonotonicCounter/EmbeddedMonotonicCounter.inf
|
|
||||||
INF EmbeddedPkg/ResetRuntimeDxe/ResetRuntimeDxe.inf
|
|
||||||
INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
|
|
||||||
INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
|
|
||||||
|
|
||||||
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.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 EmbeddedPkg/SerialDxe/SerialDxe.inf
|
|
||||||
|
|
||||||
INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf
|
|
||||||
|
|
||||||
INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Semi-hosting filesystem
|
|
||||||
#
|
|
||||||
INF ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Multimedia Card Interface
|
|
||||||
#
|
|
||||||
INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
|
|
||||||
|
|
||||||
# FV Filesystem
|
|
||||||
INF MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
|
|
||||||
#
|
|
||||||
# UEFI application (Shell Embedded Boot Loader)
|
|
||||||
#
|
|
||||||
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.FVMAIN_COMPACT]
|
|
||||||
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
|
|
||||||
|
|
||||||
!if $(EDK2_SKIP_PEICORE) == 1
|
|
||||||
INF ArmPlatformPkg/PrePi/PeiUniCore.inf
|
|
||||||
!else
|
|
||||||
INF ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
|
|
||||||
INF MdeModulePkg/Core/Pei/PeiMain.inf
|
|
||||||
INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
|
||||||
INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
|
||||||
INF ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
||||||
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
|
||||||
INF IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
|
||||||
INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
|
||||||
INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
|
|
||||||
!endif
|
|
||||||
|
|
||||||
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)
|
|
||||||
}
|
|
@@ -1,342 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
|
||||||
# Copyright (c) 2015, Intel Corporation. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
[LibraryClasses.common]
|
|
||||||
!if $(TARGET) == RELEASE
|
|
||||||
DebugLib|MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull.inf
|
|
||||||
UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
|
|
||||||
!else
|
|
||||||
DebugLib|MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort.inf
|
|
||||||
UncachedMemoryAllocationLib|ArmPkg/Library/UncachedMemoryAllocationLib/UncachedMemoryAllocationLib.inf
|
|
||||||
# UncachedMemoryAllocationLib|ArmPkg/Library/DebugUncachedMemoryAllocationLib/DebugUncachedMemoryAllocationLib.inf
|
|
||||||
!endif
|
|
||||||
DebugPrintErrorLevelLib|MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib.inf
|
|
||||||
|
|
||||||
BaseLib|MdePkg/Library/BaseLib/BaseLib.inf
|
|
||||||
SynchronizationLib|MdePkg/Library/BaseSynchronizationLib/BaseSynchronizationLib.inf
|
|
||||||
PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
|
|
||||||
PrintLib|MdePkg/Library/BasePrintLib/BasePrintLib.inf
|
|
||||||
PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
|
|
||||||
PeCoffLib|MdePkg/Library/BasePeCoffLib/BasePeCoffLib.inf
|
|
||||||
IoLib|MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf
|
|
||||||
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
|
|
||||||
CpuLib|MdePkg/Library/BaseCpuLib/BaseCpuLib.inf
|
|
||||||
|
|
||||||
UefiLib|MdePkg/Library/UefiLib/UefiLib.inf
|
|
||||||
HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
|
|
||||||
UefiRuntimeServicesTableLib|MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib.inf
|
|
||||||
DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
|
||||||
UefiBootServicesTableLib|MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib.inf
|
|
||||||
DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
|
|
||||||
UefiDriverEntryPoint|MdePkg/Library/UefiDriverEntryPoint/UefiDriverEntryPoint.inf
|
|
||||||
UefiApplicationEntryPoint|MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint.inf
|
|
||||||
HiiLib|MdeModulePkg/Library/UefiHiiLib/UefiHiiLib.inf
|
|
||||||
UefiHiiServicesLib|MdeModulePkg/Library/UefiHiiServicesLib/UefiHiiServicesLib.inf
|
|
||||||
|
|
||||||
UefiRuntimeLib|MdePkg/Library/UefiRuntimeLib/UefiRuntimeLib.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Assume everything is fixed at build
|
|
||||||
#
|
|
||||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
|
||||||
|
|
||||||
# 1/123 faster than Stm or Vstm version
|
|
||||||
#BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
|
||||||
BaseMemoryLib|ArmPkg/Library/BaseMemoryLibStm/BaseMemoryLibStm.inf
|
|
||||||
|
|
||||||
# ARM Architectural Libraries
|
|
||||||
CacheMaintenanceLib|ArmPkg/Library/ArmCacheMaintenanceLib/ArmCacheMaintenanceLib.inf
|
|
||||||
DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLib.inf
|
|
||||||
CpuExceptionHandlerLib|MdeModulePkg/Library/CpuExceptionHandlerLibNull/CpuExceptionHandlerLibNull.inf
|
|
||||||
ArmDisassemblerLib|ArmPkg/Library/ArmDisassemblerLib/ArmDisassemblerLib.inf
|
|
||||||
DmaLib|ArmPkg/Library/ArmDmaLib/ArmDmaLib.inf
|
|
||||||
ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicLib.inf
|
|
||||||
ArmGicArchLib|ArmPkg/Library/ArmGicArchLib/ArmGicArchLib.inf
|
|
||||||
ArmSmcLib|ArmPkg/Library/ArmSmcLib/ArmSmcLib.inf
|
|
||||||
ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf
|
|
||||||
|
|
||||||
# RealView Emulation Board Specific Libraries
|
|
||||||
PlatformPeiLib|ArmPlatformPkg/PlatformPei/PlatformPeiLib.inf
|
|
||||||
EfiResetSystemLib|ArmPlatformPkg/ArmRealViewEbPkg/Library/ResetSystemLib/ResetSystemLib.inf
|
|
||||||
RealTimeClockLib|ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf
|
|
||||||
SerialPortLib|ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortLib.inf
|
|
||||||
SerialPortExtLib|ArmPlatformPkg/Library/PL011SerialPortLib/PL011SerialPortExtLib.inf
|
|
||||||
TimerLib|ArmPlatformPkg/Library/SP804TimerLib/SP804TimerLib.inf
|
|
||||||
# ARM PL011 UART Driver
|
|
||||||
PL011UartLib|ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.inf
|
|
||||||
NorFlashPlatformLib|ArmPlatformPkg/ArmRealViewEbPkg/Library/NorFlashArmRealViewEbLib/NorFlashArmRealViewEbLib.inf
|
|
||||||
LcdPlatformLib|ArmPlatformPkg/ArmRealViewEbPkg/Library/PL111LcdArmRealViewEbLib/PL111LcdArmRealViewEbLib.inf
|
|
||||||
ArmPlatformSysConfigLib|ArmPlatformPkg/Library/ArmPlatformSysConfigLibNull/ArmPlatformSysConfigLibNull.inf
|
|
||||||
|
|
||||||
# Networking Requirements for ArmPlatformPkg/Bds
|
|
||||||
NetLib|MdeModulePkg/Library/DxeNetLib/DxeNetLib.inf
|
|
||||||
|
|
||||||
# EBL Related Libraries
|
|
||||||
EblCmdLib|ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.inf
|
|
||||||
EfiFileLib|EmbeddedPkg/Library/EfiFileLib/EfiFileLib.inf
|
|
||||||
EblAddExternalCommandLib|EmbeddedPkg/Library/EblAddExternalCommandLib/EblAddExternalCommandLib.inf
|
|
||||||
EblNetworkLib|EmbeddedPkg/Library/EblNetworkLib/EblNetworkLib.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Uncomment (and comment out the next line) For RealView Debugger. The Standard IO window
|
|
||||||
# in the debugger will show load and unload commands for symbols. You can cut and paste this
|
|
||||||
# into the command window to load symbols. We should be able to use a script to do this, but
|
|
||||||
# the version of RVD I have does not support scripts accessing system memory.
|
|
||||||
#
|
|
||||||
#PeCoffExtraActionLib|ArmPkg/Library/RvdPeCoffExtraActionLib/RvdPeCoffExtraActionLib.inf
|
|
||||||
PeCoffExtraActionLib|ArmPkg/Library/DebugPeCoffExtraActionLib/DebugPeCoffExtraActionLib.inf
|
|
||||||
#PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
|
|
||||||
|
|
||||||
DebugAgentLib|MdeModulePkg/Library/DebugAgentLibNull/DebugAgentLibNull.inf
|
|
||||||
DebugAgentTimerLib|EmbeddedPkg/Library/DebugAgentTimerLibNull/DebugAgentTimerLibNull.inf
|
|
||||||
#DebugAgentTimerLib|ArmPlatformPkg/ArmRealViewEbPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.inf
|
|
||||||
|
|
||||||
SemihostLib|ArmPkg/Library/SemihostLib/SemihostLib.inf
|
|
||||||
|
|
||||||
GdbSerialLib|ArmPlatformPkg/ArmRealViewEbPkg/Library/GdbSerialLib/GdbSerialLib.inf
|
|
||||||
|
|
||||||
# These libraries are used by the dynamic EFI Shell commands
|
|
||||||
ShellLib|ShellPkg/Library/UefiShellLib/UefiShellLib.inf
|
|
||||||
FileHandleLib|MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib.inf
|
|
||||||
SortLib|MdeModulePkg/Library/UefiSortLib/UefiSortLib.inf
|
|
||||||
|
|
||||||
# BDS Libraries
|
|
||||||
BdsLib|ArmPkg/Library/BdsLib/BdsLib.inf
|
|
||||||
FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
|
|
||||||
|
|
||||||
TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
|
|
||||||
AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.SEC]
|
|
||||||
ArmPlatformSecExtraActionLib|ArmPlatformPkg/Library/DebugSecExtraActionLib/DebugSecExtraActionLib.inf
|
|
||||||
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Sec/SecArmPlatformGlobalVariableLib.inf
|
|
||||||
ArmTrustedMonitorLib|ArmPlatformPkg/Library/ArmTrustedMonitorLibNull/ArmTrustedMonitorLibNull.inf
|
|
||||||
|
|
||||||
DebugAgentLib|ArmPkg/Library/DebugAgentSymbolsBaseLib/DebugAgentSymbolsBaseLib.inf
|
|
||||||
DefaultExceptionHandlerLib|ArmPkg/Library/DefaultExceptionHandlerLib/DefaultExceptionHandlerLibBase.inf
|
|
||||||
# Uncomment to turn on GDB stub in SEC.
|
|
||||||
#DebugAgentLib|EmbeddedPkg/Library/GdbDebugAgent/GdbDebugAgent.inf
|
|
||||||
|
|
||||||
!ifdef $(EDK2_SKIP_PEICORE)
|
|
||||||
PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
|
|
||||||
ExtractGuidedSectionLib|EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.inf
|
|
||||||
LzmaDecompressLib|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
|
||||||
MemoryAllocationLib|EmbeddedPkg/Library/PrePiMemoryAllocationLib/PrePiMemoryAllocationLib.inf
|
|
||||||
HobLib|EmbeddedPkg/Library/PrePiHobLib/PrePiHobLib.inf
|
|
||||||
PrePiHobListPointerLib|ArmPlatformPkg/Library/PrePiHobListPointerLib/PrePiHobListPointerLib.inf
|
|
||||||
!endif
|
|
||||||
|
|
||||||
ArmGicArchLib|ArmPkg/Library/ArmGicArchSecLib/ArmGicArchSecLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.SEC, LibraryClasses.common.PEIM]
|
|
||||||
MemoryInitPeiLib|ArmPlatformPkg/MemoryInitPei/MemoryInitPeiLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.PEI_CORE]
|
|
||||||
HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
|
|
||||||
PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
|
|
||||||
MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
|
|
||||||
PeiCoreEntryPoint|MdePkg/Library/PeiCoreEntryPoint/PeiCoreEntryPoint.inf
|
|
||||||
PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
|
|
||||||
ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
|
|
||||||
OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
|
|
||||||
PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
|
|
||||||
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
|
|
||||||
ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
|
|
||||||
|
|
||||||
PeiServicesTablePointerLib|ArmPlatformPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
|
|
||||||
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Pei/PeiArmPlatformGlobalVariableLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.PEIM]
|
|
||||||
HobLib|MdePkg/Library/PeiHobLib/PeiHobLib.inf
|
|
||||||
PeiServicesLib|MdePkg/Library/PeiServicesLib/PeiServicesLib.inf
|
|
||||||
MemoryAllocationLib|MdePkg/Library/PeiMemoryAllocationLib/PeiMemoryAllocationLib.inf
|
|
||||||
PeimEntryPoint|MdePkg/Library/PeimEntryPoint/PeimEntryPoint.inf
|
|
||||||
PerformanceLib|MdeModulePkg/Library/PeiPerformanceLib/PeiPerformanceLib.inf
|
|
||||||
ReportStatusCodeLib|MdeModulePkg/Library/PeiReportStatusCodeLib/PeiReportStatusCodeLib.inf
|
|
||||||
OemHookStatusCodeLib|MdeModulePkg/Library/OemHookStatusCodeLibNull/OemHookStatusCodeLibNull.inf
|
|
||||||
PeCoffGetEntryPointLib|MdePkg/Library/BasePeCoffGetEntryPointLib/BasePeCoffGetEntryPointLib.inf
|
|
||||||
PeiResourcePublicationLib|MdePkg/Library/PeiResourcePublicationLib/PeiResourcePublicationLib.inf
|
|
||||||
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
|
|
||||||
ExtractGuidedSectionLib|MdePkg/Library/PeiExtractGuidedSectionLib/PeiExtractGuidedSectionLib.inf
|
|
||||||
|
|
||||||
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Pei/PeiArmPlatformGlobalVariableLib.inf
|
|
||||||
PeiServicesTablePointerLib|ArmPlatformPkg/Library/PeiServicesTablePointerLib/PeiServicesTablePointerLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.DXE_CORE]
|
|
||||||
HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
|
|
||||||
MemoryAllocationLib|MdeModulePkg/Library/DxeCoreMemoryAllocationLib/DxeCoreMemoryAllocationLib.inf
|
|
||||||
DxeCoreEntryPoint|MdePkg/Library/DxeCoreEntryPoint/DxeCoreEntryPoint.inf
|
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
|
||||||
ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
|
|
||||||
UefiDecompressLib|MdePkg/Library/BaseUefiDecompressLib/BaseUefiDecompressLib.inf
|
|
||||||
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
|
|
||||||
PerformanceLib|MdeModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.DXE_DRIVER]
|
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
|
||||||
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
|
|
||||||
SecurityManagementLib|MdeModulePkg/Library/DxeSecurityManagementLib/DxeSecurityManagementLib.inf
|
|
||||||
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
|
||||||
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
|
||||||
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Dxe/DxeArmPlatformGlobalVariableLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.UEFI_APPLICATION]
|
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
|
||||||
UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
|
|
||||||
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
|
||||||
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.UEFI_DRIVER]
|
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
|
||||||
UefiDecompressLib|IntelFrameworkModulePkg/Library/BaseUefiTianoCustomDecompressLib/BaseUefiTianoCustomDecompressLib.inf
|
|
||||||
ExtractGuidedSectionLib|MdePkg/Library/DxeExtractGuidedSectionLib/DxeExtractGuidedSectionLib.inf
|
|
||||||
PerformanceLib|MdeModulePkg/Library/DxePerformanceLib/DxePerformanceLib.inf
|
|
||||||
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
|
||||||
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.DXE_RUNTIME_DRIVER]
|
|
||||||
HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
|
|
||||||
MemoryAllocationLib|MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib.inf
|
|
||||||
ReportStatusCodeLib|IntelFrameworkModulePkg/Library/DxeReportStatusCodeLibFramework/DxeReportStatusCodeLib.inf
|
|
||||||
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
|
||||||
|
|
||||||
[LibraryClasses.ARM]
|
|
||||||
#
|
|
||||||
# It is not possible to prevent the ARM compiler for generic intrinsic functions.
|
|
||||||
# This library provides the instrinsic functions generate by a given compiler.
|
|
||||||
# [LibraryClasses.ARM] and NULL mean link this library into all ARM images.
|
|
||||||
#
|
|
||||||
NULL|ArmPkg/Library/CompilerIntrinsicsLib/CompilerIntrinsicsLib.inf
|
|
||||||
|
|
||||||
# Add support for GCC stack protector
|
|
||||||
NULL|MdePkg/Library/BaseStackCheckLib/BaseStackCheckLib.inf
|
|
||||||
|
|
||||||
[BuildOptions]
|
|
||||||
RVCT:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
|
||||||
|
|
||||||
GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
|
||||||
|
|
||||||
XCODE:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
|
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
[PcdsFeatureFlag.common]
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdComponentNameDisable|TRUE
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnosticsDisable|TRUE
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdComponentName2Disable|TRUE
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDriverDiagnostics2Disable|TRUE
|
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdCacheEnable|TRUE
|
|
||||||
|
|
||||||
# Use the Vector Table location in CpuDxe. We will not copy the Vector Table at PcdCpuVectorBaseAddress
|
|
||||||
gArmTokenSpaceGuid.PcdRelocateVectorTable|FALSE
|
|
||||||
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
|
|
||||||
|
|
||||||
[PcdsFixedAtBuild.common]
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdMaximumUnicodeStringLength|1000000
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdMaximumAsciiStringLength|1000000
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdMaximumLinkedListLength|1000000
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdSpinLockTimeout|10000000
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDebugClearMemoryValue|0xAF
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdPerformanceLibraryPropertyMask|1
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdPostCodePropertyMask|0
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdUefiLibMaxPrintBufferSize|320
|
|
||||||
|
|
||||||
# DEBUG_ASSERT_ENABLED 0x01
|
|
||||||
# DEBUG_PRINT_ENABLED 0x02
|
|
||||||
# DEBUG_CODE_ENABLED 0x04
|
|
||||||
# CLEAR_MEMORY_ENABLED 0x08
|
|
||||||
# ASSERT_BREAKPOINT_ENABLED 0x10
|
|
||||||
# ASSERT_DEADLOOP_ENABLED 0x20
|
|
||||||
!if $(TARGET) == RELEASE
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x21
|
|
||||||
!else
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPropertyMask|0x2f
|
|
||||||
!endif
|
|
||||||
|
|
||||||
# DEBUG_INIT 0x00000001 // Initialization
|
|
||||||
# DEBUG_WARN 0x00000002 // Warnings
|
|
||||||
# DEBUG_LOAD 0x00000004 // Load events
|
|
||||||
# DEBUG_FS 0x00000008 // EFI File system
|
|
||||||
# DEBUG_POOL 0x00000010 // Alloc & Free's
|
|
||||||
# DEBUG_PAGE 0x00000020 // Alloc & Free's
|
|
||||||
# DEBUG_INFO 0x00000040 // Verbose
|
|
||||||
# DEBUG_DISPATCH 0x00000080 // PEI/DXE Dispatchers
|
|
||||||
# DEBUG_VARIABLE 0x00000100 // Variable
|
|
||||||
# DEBUG_BM 0x00000400 // Boot Manager
|
|
||||||
# DEBUG_BLKIO 0x00001000 // BlkIo Driver
|
|
||||||
# DEBUG_NET 0x00004000 // SNI Driver
|
|
||||||
# DEBUG_UNDI 0x00010000 // UNDI Driver
|
|
||||||
# DEBUG_LOADFILE 0x00020000 // UNDI Driver
|
|
||||||
# DEBUG_EVENT 0x00080000 // Event messages
|
|
||||||
# DEBUG_ERROR 0x80000000 // Error
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdDebugPrintErrorLevel|0x8000000F
|
|
||||||
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|0x07
|
|
||||||
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedAutomaticBootCommand|""
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedDefaultTextColor|0x07
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedMemVariableStoreSize|0x10000
|
|
||||||
|
|
||||||
#
|
|
||||||
# Optional feature to help prevent EFI memory map fragments
|
|
||||||
# Turned on and off via: PcdPrePiProduceMemoryTypeInformationHob
|
|
||||||
# Values are in EFI Pages (4K). DXE Core will make sure that
|
|
||||||
# at least this much of each type of memory can be allocated
|
|
||||||
# from a single memory range. This way you only end up with
|
|
||||||
# maximum of two fragements for each type in the memory map
|
|
||||||
# (the memory used, and the free memory that was prereserved
|
|
||||||
# but not used).
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdCpuVectorBaseAddress|0x00000000
|
|
||||||
|
|
||||||
## PL180 MMC/SD card controller
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL180SysMciRegAddress|0x10000048
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL180MciBaseAddress|0x10005000
|
|
||||||
|
|
||||||
# We want to use the Shell Libraries but don't want it to initialise
|
|
||||||
# automatically. We initialise the libraries when the command is called by the
|
|
||||||
# Shell.
|
|
||||||
gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM OS Loader
|
|
||||||
#
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"SemiHosting"
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"Fv(14801114-DA6A-4113-985B-DC876337A15E)/LinuxLoader.efi"
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|L"VenHw(C5B9C74A-6D72-4719-99AB-C59F199091EB)/zImage-RTSM -a 827 -c \"console=ttyAMA0,38400n8\""
|
|
||||||
|
|
||||||
# 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(407B4008-BF5B-11DF-9547-CF16E0D72085)"
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(115200,8,N,1)/VenPcAnsi()"
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|10
|
|
||||||
|
|
||||||
[Components.common]
|
|
||||||
#
|
|
||||||
# Multimedia Card Interface
|
|
||||||
#
|
|
||||||
EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
|
|
||||||
|
|
||||||
# FV Filesystem
|
|
||||||
MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemDxe.inf
|
|
||||||
|
|
||||||
# Legacy Linux Loader
|
|
||||||
ArmPkg/Application/LinuxLoader/LinuxLoader.inf
|
|
@@ -1,39 +0,0 @@
|
|||||||
#/** @file
|
|
||||||
# Arm RealView EB package.
|
|
||||||
#
|
|
||||||
# Copyright (c) 2009 - 2010, Apple Inc. All rights reserved.<BR>
|
|
||||||
# Copyright (c) 2011 - 2012, Arm Ltd. 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]
|
|
||||||
DEC_SPECIFICATION = 0x00010005
|
|
||||||
PACKAGE_NAME = ArmRealViewEbPkg
|
|
||||||
PACKAGE_GUID = 44577A0D-361A-45B2-B33D-BB9EE60D5A4F
|
|
||||||
PACKAGE_VERSION = 0.1
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Include Section - list of Include Paths that are provided by this package.
|
|
||||||
# Comments are used for Keywords and Module Types.
|
|
||||||
#
|
|
||||||
# Supported Module Types:
|
|
||||||
# BASE SEC PEI_CORE PEIM DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SMM_DRIVER DXE_SAL_DRIVER UEFI_DRIVER UEFI_APPLICATION
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
[Includes.common]
|
|
||||||
Include # Root include for the package
|
|
||||||
|
|
||||||
[Guids.common]
|
|
||||||
gArmRealViewEbPkgTokenSpaceGuid = { 0x44577A0D, 0x361A, 0x45B2, { 0xb3, 0x3d, 0xbb, 0x9e, 0xe6, 0x0d, 0x5a, 0x4f} }
|
|
||||||
|
|
||||||
[PcdsFixedAtBuild.common]
|
|
||||||
gArmRealViewEbPkgTokenSpaceGuid.PcdGdbUartBase|0|UINT32|0x00000001
|
|
@@ -1,16 +0,0 @@
|
|||||||
// returns the base address of the SEC FV in flash on the EB board
|
|
||||||
// change this address for where your platform's SEC FV is located
|
|
||||||
// (or make it more intelligent to search for it)
|
|
||||||
define /r FindFv()
|
|
||||||
{
|
|
||||||
return 0x40000000;
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
include /s 'ZZZZZZ/EfiFuncs.inc'
|
|
||||||
error=continue
|
|
||||||
unload ,all
|
|
||||||
error=abort
|
|
||||||
LoadPeiSec()
|
|
||||||
include C:\loadfiles.inc
|
|
||||||
|
|
@@ -1,463 +0,0 @@
|
|||||||
error=abort
|
|
||||||
|
|
||||||
// NOTE: THIS MAY NEED TO BE ADJUSTED
|
|
||||||
// change to reflect the total amount of ram in your system
|
|
||||||
define /r GetMaxMem()
|
|
||||||
{
|
|
||||||
return 0x10000000; // 256 MB
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /r GetWord(Addr)
|
|
||||||
{
|
|
||||||
unsigned long data;
|
|
||||||
|
|
||||||
if( (Addr & 0x2) == 0 )
|
|
||||||
{
|
|
||||||
data = dword(Addr);
|
|
||||||
data = data & 0xffff;
|
|
||||||
//$printf "getword data is %x\n", data$;
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
data = dword(Addr & 0xfffffffc);
|
|
||||||
//data = data >> 16;
|
|
||||||
data = data / 0x10000;
|
|
||||||
//$printf "getword data is %x (1)\n", data$;
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /r ProcessPE32(imgstart)
|
|
||||||
unsigned long imgstart;
|
|
||||||
{
|
|
||||||
unsigned long filehdrstart;
|
|
||||||
unsigned long debugdirentryrva;
|
|
||||||
unsigned long debugtype;
|
|
||||||
unsigned long debugrva;
|
|
||||||
unsigned long dwarfsig;
|
|
||||||
unsigned long baseofcode;
|
|
||||||
unsigned long baseofdata;
|
|
||||||
unsigned long elfbase;
|
|
||||||
char *elfpath;
|
|
||||||
|
|
||||||
$printf "PE32 image found at %x",imgstart$;
|
|
||||||
|
|
||||||
//$printf "PE file hdr offset %x",dword(imgstart+0x3C)$;
|
|
||||||
|
|
||||||
// offset from dos hdr to PE file hdr
|
|
||||||
filehdrstart = imgstart + dword(imgstart+0x3C);
|
|
||||||
|
|
||||||
// offset to debug dir in PE hdrs
|
|
||||||
//$printf "debug dir is at %x",(filehdrstart+0xA8)$;
|
|
||||||
debugdirentryrva = dword(filehdrstart + 0xA8);
|
|
||||||
if(debugdirentryrva == 0)
|
|
||||||
{
|
|
||||||
$printf "no debug dir for image at %x",imgstart$;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
//$printf "debug dir entry rva is %x",debugdirentryrva$;
|
|
||||||
|
|
||||||
debugtype = dword(imgstart + debugdirentryrva + 0xc);
|
|
||||||
if( (debugtype != 0xdf) && (debugtype != 0x2) )
|
|
||||||
{
|
|
||||||
$printf "debug type is not dwarf for image at %x",imgstart$;
|
|
||||||
$printf "debug type is %x",debugtype$;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
debugrva = dword(imgstart + debugdirentryrva + 0x14);
|
|
||||||
dwarfsig = dword(imgstart + debugrva);
|
|
||||||
if(dwarfsig != 0x66727764)
|
|
||||||
{
|
|
||||||
$printf "dwarf debug signature not found for image at %x",imgstart$;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
elfpath = (char *)(imgstart + debugrva + 0xc);
|
|
||||||
|
|
||||||
baseofcode = imgstart + dword(filehdrstart + 0x28);
|
|
||||||
baseofdata = imgstart + dword(filehdrstart + 0x2c);
|
|
||||||
|
|
||||||
if( (baseofcode < baseofdata) && (baseofcode != 0) )
|
|
||||||
{
|
|
||||||
elfbase = baseofcode;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
elfbase = baseofdata;
|
|
||||||
}
|
|
||||||
|
|
||||||
$printf "found path %s",elfpath$;
|
|
||||||
$fprintf 50, "load /ni /np /a %s &0x%x\n",elfpath,elfbase$;
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /r ProcessTE(imgstart)
|
|
||||||
unsigned long imgstart;
|
|
||||||
{
|
|
||||||
unsigned long strippedsize;
|
|
||||||
unsigned long debugdirentryrva;
|
|
||||||
unsigned long debugtype;
|
|
||||||
unsigned long debugrva;
|
|
||||||
unsigned long dwarfsig;
|
|
||||||
unsigned long elfbase;
|
|
||||||
char *elfpath;
|
|
||||||
|
|
||||||
$printf "TE image found at %x",imgstart$;
|
|
||||||
|
|
||||||
// determine pe header bytes removed to account for in rva references
|
|
||||||
//strippedsize = word(imgstart + 0x6);
|
|
||||||
//strippedsize = (dword(imgstart + 0x4) & 0xffff0000) >> 16;
|
|
||||||
strippedsize = (dword(imgstart + 0x4) & 0xffff0000) / 0x10000;
|
|
||||||
strippedsize = strippedsize - 0x28;
|
|
||||||
|
|
||||||
debugdirentryrva = dword(imgstart + 0x20);
|
|
||||||
if(debugdirentryrva == 0)
|
|
||||||
{
|
|
||||||
$printf "no debug dir for image at %x",imgstart$;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
debugdirentryrva = debugdirentryrva - strippedsize;
|
|
||||||
|
|
||||||
//$printf "debug dir entry rva is %x",debugdirentryrva$;
|
|
||||||
|
|
||||||
debugtype = dword(imgstart + debugdirentryrva + 0xc);
|
|
||||||
if( (debugtype != 0xdf) && (debugtype != 0x2) )
|
|
||||||
{
|
|
||||||
$printf "debug type is not dwarf for image at %x",imgstart$;
|
|
||||||
$printf "debug type is %x",debugtype$;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
debugrva = dword(imgstart + debugdirentryrva + 0x14);
|
|
||||||
debugrva = debugrva - strippedsize;
|
|
||||||
dwarfsig = dword(imgstart + debugrva);
|
|
||||||
if( (dwarfsig != 0x66727764) && (dwarfsig != 0x3031424e) )
|
|
||||||
{
|
|
||||||
$printf "dwarf debug signature not found for image at %x",imgstart$;
|
|
||||||
$printf "found %x", dwarfsig$;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( dwarfsig == 0x66727764 )
|
|
||||||
{
|
|
||||||
elfpath = (char *)(imgstart + debugrva + 0xc);
|
|
||||||
$printf "looking for elf path at 0x%x", elfpath$;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
elfpath = (char *)(imgstart + debugrva + 0x10);
|
|
||||||
$printf "looking for elf path at 0x%x", elfpath$;
|
|
||||||
}
|
|
||||||
|
|
||||||
// elf base is baseofcode (we hope that for TE images it's not baseofdata)
|
|
||||||
elfbase = imgstart + dword(imgstart + 0xc) - strippedsize;
|
|
||||||
|
|
||||||
$printf "found path %s",elfpath$;
|
|
||||||
$fprintf 50, "load /ni /np /a %s &0x%x\n",elfpath,elfbase$;
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /r ProcessFvSection(secstart)
|
|
||||||
unsigned long secstart;
|
|
||||||
{
|
|
||||||
unsigned long sectionsize;
|
|
||||||
unsigned char sectiontype;
|
|
||||||
|
|
||||||
sectionsize = dword(secstart);
|
|
||||||
//sectiontype = (sectionsize & 0xff000000) >> 24;
|
|
||||||
sectiontype = (sectionsize & 0xff000000) / 0x1000000;
|
|
||||||
sectionsize = sectionsize & 0x00ffffff;
|
|
||||||
|
|
||||||
$printf "fv section at %x size %x type %x",secstart,sectionsize,sectiontype$;
|
|
||||||
|
|
||||||
if(sectiontype == 0x10) // PE32
|
|
||||||
{
|
|
||||||
ProcessPE32(secstart+0x4);
|
|
||||||
}
|
|
||||||
else if(sectiontype == 0x12) // TE
|
|
||||||
{
|
|
||||||
ProcessTE(secstart+0x4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /r ProcessFfsFile(ffsfilestart)
|
|
||||||
unsigned long ffsfilestart;
|
|
||||||
{
|
|
||||||
unsigned long ffsfilesize;
|
|
||||||
unsigned long ffsfiletype;
|
|
||||||
unsigned long secoffset;
|
|
||||||
unsigned long secsize;
|
|
||||||
|
|
||||||
//ffsfiletype = byte(ffsfilestart + 0x12);
|
|
||||||
ffsfilesize = dword(ffsfilestart + 0x14);
|
|
||||||
//ffsfiletype = (ffsfilesize & 0xff000000) >> 24;
|
|
||||||
ffsfiletype = (ffsfilesize & 0xff000000) / 0x1000000;
|
|
||||||
ffsfilesize = ffsfilesize & 0x00ffffff;
|
|
||||||
|
|
||||||
if(ffsfiletype == 0xff) return;
|
|
||||||
|
|
||||||
$printf "ffs file at %x size %x type %x",ffsfilestart,ffsfilesize,ffsfiletype$;
|
|
||||||
|
|
||||||
secoffset = ffsfilestart + 0x18;
|
|
||||||
|
|
||||||
// loop through sections in file
|
|
||||||
while(secoffset < (ffsfilestart + ffsfilesize))
|
|
||||||
{
|
|
||||||
// process fv section and increment section offset by size
|
|
||||||
secsize = dword(secoffset) & 0x00ffffff;
|
|
||||||
ProcessFvSection(secoffset);
|
|
||||||
secoffset = secoffset + secsize;
|
|
||||||
|
|
||||||
// align to next 4 byte boundary
|
|
||||||
if( (secoffset & 0x3) != 0 )
|
|
||||||
{
|
|
||||||
secoffset = secoffset + (0x4 - (secoffset & 0x3));
|
|
||||||
}
|
|
||||||
} // end section loop
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /r LoadPeiSec()
|
|
||||||
{
|
|
||||||
unsigned long fvbase;
|
|
||||||
unsigned long fvlen;
|
|
||||||
unsigned long fvsig;
|
|
||||||
unsigned long ffsoffset;
|
|
||||||
unsigned long ffsfilesize;
|
|
||||||
|
|
||||||
fvbase = FindFv();
|
|
||||||
$printf "fvbase %x",fvbase$;
|
|
||||||
|
|
||||||
// get fv signature field
|
|
||||||
fvsig = dword(fvbase + 0x28);
|
|
||||||
if(fvsig != 0x4856465F)
|
|
||||||
{
|
|
||||||
$printf "FV does not have proper signature, exiting"$;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
$printf "FV signature found"$;
|
|
||||||
|
|
||||||
$fopen 50, 'C:\loadfiles.inc'$;
|
|
||||||
|
|
||||||
fvlen = dword(fvbase + 0x20);
|
|
||||||
|
|
||||||
// first ffs file is after fv header, use headerlength field
|
|
||||||
//ffsoffset = (dword(fvbase + 0x30) & 0xffff0000) >> 16;
|
|
||||||
ffsoffset = (dword(fvbase + 0x30) & 0xffff0000) / 0x10000;
|
|
||||||
ffsoffset = fvbase + GetWord(fvbase + 0x30);
|
|
||||||
|
|
||||||
// loop through ffs files
|
|
||||||
while(ffsoffset < (fvbase+fvlen))
|
|
||||||
{
|
|
||||||
// process ffs file and increment by ffs file size field
|
|
||||||
ProcessFfsFile(ffsoffset);
|
|
||||||
ffsfilesize = (dword(ffsoffset + 0x14) & 0x00ffffff);
|
|
||||||
if(ffsfilesize == 0)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
ffsoffset = ffsoffset + ffsfilesize;
|
|
||||||
|
|
||||||
|
|
||||||
// align to next 8 byte boundary
|
|
||||||
if( (ffsoffset & 0x7) != 0 )
|
|
||||||
{
|
|
||||||
ffsoffset = ffsoffset + (0x8 - (ffsoffset & 0x7));
|
|
||||||
}
|
|
||||||
|
|
||||||
} // end fv ffs loop
|
|
||||||
|
|
||||||
$vclose 50$;
|
|
||||||
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /r FindSystemTable(TopOfRam)
|
|
||||||
unsigned long TopOfRam;
|
|
||||||
{
|
|
||||||
unsigned long offset;
|
|
||||||
|
|
||||||
$printf "FindSystemTable"$;
|
|
||||||
$printf "top of mem is %x",TopOfRam$;
|
|
||||||
|
|
||||||
offset = TopOfRam;
|
|
||||||
|
|
||||||
// align to highest 4MB boundary
|
|
||||||
offset = offset & 0xFFC00000;
|
|
||||||
|
|
||||||
// start at top and look on 4MB boundaries for system table ptr structure
|
|
||||||
while(offset > 0)
|
|
||||||
{
|
|
||||||
//$printf "checking %x",offset$;
|
|
||||||
//$printf "value is %x",dword(offset)$;
|
|
||||||
|
|
||||||
// low signature match
|
|
||||||
if(dword(offset) == 0x20494249)
|
|
||||||
{
|
|
||||||
// high signature match
|
|
||||||
if(dword(offset+4) == 0x54535953)
|
|
||||||
{
|
|
||||||
// less than 4GB?
|
|
||||||
if(dword(offset+0x0c) == 0)
|
|
||||||
{
|
|
||||||
// less than top of ram?
|
|
||||||
if(dword(offset+8) < TopOfRam)
|
|
||||||
{
|
|
||||||
return(dword(offset+8));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if(offset < 0x400000) break;
|
|
||||||
offset = offset - 0x400000;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /r ProcessImage(ImageBase)
|
|
||||||
unsigned long ImageBase;
|
|
||||||
{
|
|
||||||
$printf "ProcessImage %x", ImageBase$;
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /r FindDebugInfo(SystemTable)
|
|
||||||
unsigned long SystemTable;
|
|
||||||
{
|
|
||||||
unsigned long CfgTableEntries;
|
|
||||||
unsigned long ConfigTable;
|
|
||||||
unsigned long i;
|
|
||||||
unsigned long offset;
|
|
||||||
unsigned long dbghdr;
|
|
||||||
unsigned long dbgentries;
|
|
||||||
unsigned long dbgptr;
|
|
||||||
unsigned long dbginfo;
|
|
||||||
unsigned long loadedimg;
|
|
||||||
|
|
||||||
$printf "FindDebugInfo"$;
|
|
||||||
|
|
||||||
dbgentries = 0;
|
|
||||||
CfgTableEntries = dword(SystemTable + 0x40);
|
|
||||||
ConfigTable = dword(SystemTable + 0x44);
|
|
||||||
|
|
||||||
$printf "config table is at %x (%d entries)", ConfigTable, CfgTableEntries$;
|
|
||||||
|
|
||||||
// now search for debug info entry with guid 49152E77-1ADA-4764-B7A2-7AFEFED95E8B
|
|
||||||
// 0x49152E77 0x47641ADA 0xFE7AA2B7 0x8B5ED9FE
|
|
||||||
for(i=0; i<CfgTableEntries; i++)
|
|
||||||
{
|
|
||||||
offset = ConfigTable + (i*0x14);
|
|
||||||
if(dword(offset) == 0x49152E77)
|
|
||||||
{
|
|
||||||
if(dword(offset+4) == 0x47641ADA)
|
|
||||||
{
|
|
||||||
if(dword(offset+8) == 0xFE7AA2B7)
|
|
||||||
{
|
|
||||||
if(dword(offset+0xc) == 0x8B5ED9FE)
|
|
||||||
{
|
|
||||||
dbghdr = dword(offset+0x10);
|
|
||||||
dbgentries = dword(dbghdr + 4);
|
|
||||||
dbgptr = dword(dbghdr + 8);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(dbgentries == 0)
|
|
||||||
{
|
|
||||||
$printf "no debug entries found"$;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
$printf "debug table at %x (%d entries)", dbgptr, dbgentries$;
|
|
||||||
|
|
||||||
for(i=0; i<dbgentries; i++)
|
|
||||||
{
|
|
||||||
dbginfo = dword(dbgptr + (i*4));
|
|
||||||
if(dbginfo != 0)
|
|
||||||
{
|
|
||||||
if(dword(dbginfo) == 1) // normal debug info type
|
|
||||||
{
|
|
||||||
loadedimg = dword(dbginfo + 4);
|
|
||||||
ProcessPE32(dword(loadedimg + 0x20));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /r LoadDxe()
|
|
||||||
{
|
|
||||||
unsigned long maxmem;
|
|
||||||
unsigned long systbl;
|
|
||||||
|
|
||||||
$printf "LoadDxe"$;
|
|
||||||
|
|
||||||
$fopen 50, 'C:\loadfiles.inc'$;
|
|
||||||
|
|
||||||
maxmem = GetMaxMem();
|
|
||||||
systbl = FindSystemTable(maxmem);
|
|
||||||
if(systbl != 0)
|
|
||||||
{
|
|
||||||
$printf "found system table at %x",systbl$;
|
|
||||||
FindDebugInfo(systbl);
|
|
||||||
}
|
|
||||||
|
|
||||||
$vclose 50$;
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /r LoadRuntimeDxe()
|
|
||||||
|
|
||||||
{
|
|
||||||
unsigned long maxmem;
|
|
||||||
unsigned long SystemTable;
|
|
||||||
unsigned long CfgTableEntries;
|
|
||||||
unsigned long ConfigTable;
|
|
||||||
unsigned long i;
|
|
||||||
unsigned long offset;
|
|
||||||
unsigned long numentries;
|
|
||||||
unsigned long RuntimeDebugInfo;
|
|
||||||
unsigned long DebugInfoOffset;
|
|
||||||
unsigned long imgbase;
|
|
||||||
|
|
||||||
$printf "LoadRuntimeDxe"$;
|
|
||||||
|
|
||||||
$fopen 50, 'C:\loadfiles.inc'$;
|
|
||||||
|
|
||||||
RuntimeDebugInfo = 0x80000010;
|
|
||||||
|
|
||||||
if(RuntimeDebugInfo != 0)
|
|
||||||
{
|
|
||||||
numentries = dword(RuntimeDebugInfo);
|
|
||||||
|
|
||||||
$printf "runtime debug info is at %x (%d entries)", RuntimeDebugInfo, numentries$;
|
|
||||||
|
|
||||||
DebugInfoOffset = RuntimeDebugInfo + 0x4;
|
|
||||||
for(i=0; i<numentries; i++)
|
|
||||||
{
|
|
||||||
imgbase = dword(DebugInfoOffset);
|
|
||||||
if(imgbase != 0)
|
|
||||||
{
|
|
||||||
$printf "found image at %x",imgbase$;
|
|
||||||
ProcessPE32(imgbase);
|
|
||||||
}
|
|
||||||
DebugInfoOffset = DebugInfoOffset + 0x4;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$vclose 50$;
|
|
||||||
}
|
|
||||||
.
|
|
@@ -1,21 +0,0 @@
|
|||||||
//
|
|
||||||
// Copyright (c) 2008 - 2009, Apple Inc. 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.
|
|
||||||
//
|
|
||||||
error = continue
|
|
||||||
unload
|
|
||||||
error = abort
|
|
||||||
|
|
||||||
setreg @CP15_CONTROL = 0x0005107E
|
|
||||||
setreg @pc=0x80008208
|
|
||||||
setreg @cpsr=0x000000D3
|
|
||||||
dis/D
|
|
||||||
readfile,raw,nowarn "ZZZZZZ/FV/BEAGLEBOARD_EFI.fd"=0x80008000
|
|
||||||
|
|
@@ -1,23 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 - 2009, Apple Inc. 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.
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
IN=`/usr/bin/cygpath -u $1`
|
|
||||||
OUT=`/usr/bin/cygpath -u $2`
|
|
||||||
|
|
||||||
/usr/bin/sed -e "s/\/cygdrive\/\(.\)/load\/a\/ni\/np \"\1:/g" \
|
|
||||||
-e 's:\\:/:g' \
|
|
||||||
-e "s/^/load\/a\/ni\/np \"/g" \
|
|
||||||
-e "s/dll /dll\" \&/g" \
|
|
||||||
$IN | /usr/bin/sort.exe --key=3 --output=$OUT
|
|
||||||
|
|
@@ -1,67 +0,0 @@
|
|||||||
//
|
|
||||||
// Copyright (c) 2008 - 2009, Apple Inc. 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.
|
|
||||||
//
|
|
||||||
|
|
||||||
error = continue
|
|
||||||
unload
|
|
||||||
error = abort
|
|
||||||
|
|
||||||
setreg @CP15_CONTROL = 0x0005107E
|
|
||||||
setreg @cpsr=0x000000D3
|
|
||||||
|
|
||||||
; General clock settings.
|
|
||||||
setmem /32 0x48307270=0x00000080
|
|
||||||
setmem /32 0x48306D40=0x00000003
|
|
||||||
setmem /32 0x48005140=0x03020A50
|
|
||||||
|
|
||||||
;Clock configuration
|
|
||||||
setmem /32 0x48004A40=0x0000030A
|
|
||||||
setmem /32 0x48004C40=0x00000015
|
|
||||||
|
|
||||||
;DPLL3 (Core) settings
|
|
||||||
setmem /32 0x48004D00=0x00370037
|
|
||||||
setmem /32 0x48004D30=0x00000000
|
|
||||||
setmem /32 0x48004D40=0x094C0C00
|
|
||||||
|
|
||||||
;DPLL4 (Peripheral) settings
|
|
||||||
setmem /32 0x48004D00=0x00370037
|
|
||||||
setmem /32 0x48004D30=0x00000000
|
|
||||||
setmem /32 0x48004D44=0x0001B00C
|
|
||||||
setmem /32 0x48004D48=0x00000009
|
|
||||||
|
|
||||||
;DPLL1 (MPU) settings
|
|
||||||
setmem /32 0x48004904=0x00000037
|
|
||||||
setmem /32 0x48004934=0x00000000
|
|
||||||
setmem /32 0x48004940=0x0011F40C
|
|
||||||
setmem /32 0x48004944=0x00000001
|
|
||||||
setmem /32 0x48004948=0x00000000
|
|
||||||
|
|
||||||
;RAM setup.
|
|
||||||
setmem /16 0x6D000010=0x0000
|
|
||||||
setmem /16 0x6D000040=0x0001
|
|
||||||
setmem /16 0x6D000044=0x0100
|
|
||||||
setmem /16 0x6D000048=0x0000
|
|
||||||
setmem /32 0x6D000060=0x0000000A
|
|
||||||
setmem /32 0x6D000070=0x00000081
|
|
||||||
setmem /16 0x6D000040=0x0003
|
|
||||||
setmem /32 0x6D000080=0x02D04011
|
|
||||||
setmem /16 0x6D000084=0x0032
|
|
||||||
setmem /16 0x6D00008C=0x0000
|
|
||||||
setmem /32 0x6D00009C=0xBA9DC4C6
|
|
||||||
setmem /32 0x6D0000A0=0x00012522
|
|
||||||
setmem /32 0x6D0000A4=0x0004E201
|
|
||||||
setmem /16 0x6D000040=0x0003
|
|
||||||
setmem /32 0x6D0000B0=0x02D04011
|
|
||||||
setmem /16 0x6D0000B4=0x0032
|
|
||||||
setmem /16 0x6D0000BC=0x0000
|
|
||||||
setmem /32 0x6D0000C4=0xBA9DC4C6
|
|
||||||
setmem /32 0x6D0000C8=0x00012522
|
|
||||||
setmem /32 0x6D0000D4=0x0004E201
|
|
@@ -1,23 +0,0 @@
|
|||||||
//
|
|
||||||
// Copyright (c) 2008 - 2009, Apple Inc. 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.
|
|
||||||
//
|
|
||||||
|
|
||||||
include 'ZZZZZZ/rvi_symbols_macros.inc'
|
|
||||||
|
|
||||||
macro write_symbols_file("ZZZZZZ/rvi_symbols.tmp", 0x00000000, 0x10000000)
|
|
||||||
|
|
||||||
host "bash -o igncr ZZZZZZ/rvi_convert_symbols.sh ZZZZZZ/rvi_symbols.tmp ZZZZZZ/rvi_symbols.inc"
|
|
||||||
include 'ZZZZZZ/rvi_symbols.inc'
|
|
||||||
load /NI /NP 'ZZZZZZ/rvi_dummy.axf' ;.constdata
|
|
||||||
unload rvi_dummy.axf
|
|
||||||
delfile rvi_dummy.axf
|
|
||||||
|
|
||||||
|
|
@@ -1,194 +0,0 @@
|
|||||||
//
|
|
||||||
// Copyright (c) 2008 - 2009, Apple Inc. 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.
|
|
||||||
//
|
|
||||||
|
|
||||||
define /R int compare_guid(guid1, guid2)
|
|
||||||
unsigned char *guid1;
|
|
||||||
unsigned char *guid2;
|
|
||||||
{
|
|
||||||
return strncmp(guid1, guid2, 16);
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /R unsigned char * find_system_table(mem_start, mem_size)
|
|
||||||
unsigned char *mem_start;
|
|
||||||
unsigned long mem_size;
|
|
||||||
{
|
|
||||||
unsigned char *mem_ptr;
|
|
||||||
|
|
||||||
mem_ptr = mem_start + mem_size;
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
mem_ptr -= 0x400000; // 4 MB
|
|
||||||
|
|
||||||
if (strncmp(mem_ptr, "IBI SYST", 8) == 0)
|
|
||||||
{
|
|
||||||
return *(unsigned long *)(mem_ptr + 8); // EfiSystemTableBase
|
|
||||||
}
|
|
||||||
|
|
||||||
} while (mem_ptr > mem_start);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /R unsigned char * find_debug_info_table_header(system_table)
|
|
||||||
unsigned char *system_table;
|
|
||||||
{
|
|
||||||
unsigned long configuration_table_entries;
|
|
||||||
unsigned char *configuration_table;
|
|
||||||
unsigned long index;
|
|
||||||
unsigned char debug_table_guid[16];
|
|
||||||
|
|
||||||
// Fill in the debug table's guid
|
|
||||||
debug_table_guid[ 0] = 0x77;
|
|
||||||
debug_table_guid[ 1] = 0x2E;
|
|
||||||
debug_table_guid[ 2] = 0x15;
|
|
||||||
debug_table_guid[ 3] = 0x49;
|
|
||||||
debug_table_guid[ 4] = 0xDA;
|
|
||||||
debug_table_guid[ 5] = 0x1A;
|
|
||||||
debug_table_guid[ 6] = 0x64;
|
|
||||||
debug_table_guid[ 7] = 0x47;
|
|
||||||
debug_table_guid[ 8] = 0xB7;
|
|
||||||
debug_table_guid[ 9] = 0xA2;
|
|
||||||
debug_table_guid[10] = 0x7A;
|
|
||||||
debug_table_guid[11] = 0xFE;
|
|
||||||
debug_table_guid[12] = 0xFE;
|
|
||||||
debug_table_guid[13] = 0xD9;
|
|
||||||
debug_table_guid[14] = 0x5E;
|
|
||||||
debug_table_guid[15] = 0x8B;
|
|
||||||
|
|
||||||
configuration_table_entries = *(unsigned long *)(system_table + 64);
|
|
||||||
configuration_table = *(unsigned long *)(system_table + 68);
|
|
||||||
|
|
||||||
for (index = 0; index < configuration_table_entries; index++)
|
|
||||||
{
|
|
||||||
if (compare_guid(configuration_table, debug_table_guid) == 0)
|
|
||||||
{
|
|
||||||
return *(unsigned long *)(configuration_table + 16);
|
|
||||||
}
|
|
||||||
|
|
||||||
configuration_table += 20;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /R int valid_pe_header(header)
|
|
||||||
unsigned char *header;
|
|
||||||
{
|
|
||||||
if ((header[0x00] == 'M') &&
|
|
||||||
(header[0x01] == 'Z') &&
|
|
||||||
(header[0x80] == 'P') &&
|
|
||||||
(header[0x81] == 'E'))
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /R unsigned long pe_headersize(header)
|
|
||||||
unsigned char *header;
|
|
||||||
{
|
|
||||||
unsigned long *size;
|
|
||||||
|
|
||||||
size = header + 0x00AC;
|
|
||||||
|
|
||||||
return *size;
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /R unsigned char *pe_filename(header)
|
|
||||||
unsigned char *header;
|
|
||||||
{
|
|
||||||
unsigned long *debugOffset;
|
|
||||||
unsigned char *stringOffset;
|
|
||||||
|
|
||||||
if (valid_pe_header(header))
|
|
||||||
{
|
|
||||||
debugOffset = header + 0x0128;
|
|
||||||
stringOffset = header + *debugOffset + 0x002C;
|
|
||||||
|
|
||||||
return stringOffset;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /R int char_is_valid(c)
|
|
||||||
unsigned char c;
|
|
||||||
{
|
|
||||||
if (c >= 32 && c < 127)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
||||||
define /R write_symbols_file(filename, mem_start, mem_size)
|
|
||||||
unsigned char *filename;
|
|
||||||
unsigned char *mem_start;
|
|
||||||
unsigned long mem_size;
|
|
||||||
{
|
|
||||||
unsigned char *system_table;
|
|
||||||
unsigned char *debug_info_table_header;
|
|
||||||
unsigned char *debug_info_table;
|
|
||||||
unsigned long debug_info_table_size;
|
|
||||||
unsigned long index;
|
|
||||||
unsigned char *debug_image_info;
|
|
||||||
unsigned char *loaded_image_protocol;
|
|
||||||
unsigned char *image_base;
|
|
||||||
unsigned char *debug_filename;
|
|
||||||
unsigned long header_size;
|
|
||||||
int status;
|
|
||||||
|
|
||||||
system_table = find_system_table(mem_start, mem_size);
|
|
||||||
if (system_table == 0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
status = fopen(88, filename, "w");
|
|
||||||
|
|
||||||
debug_info_table_header = find_debug_info_table_header(system_table);
|
|
||||||
|
|
||||||
debug_info_table = *(unsigned long *)(debug_info_table_header + 8);
|
|
||||||
debug_info_table_size = *(unsigned long *)(debug_info_table_header + 4);
|
|
||||||
|
|
||||||
for (index = 0; index < (debug_info_table_size * 4); index += 4)
|
|
||||||
{
|
|
||||||
debug_image_info = *(unsigned long *)(debug_info_table + index);
|
|
||||||
|
|
||||||
if (debug_image_info == 0)
|
|
||||||
{
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
loaded_image_protocol = *(unsigned long *)(debug_image_info + 4);
|
|
||||||
|
|
||||||
image_base = *(unsigned long *)(loaded_image_protocol + 32);
|
|
||||||
|
|
||||||
debug_filename = pe_filename(image_base);
|
|
||||||
header_size = pe_headersize(image_base);
|
|
||||||
|
|
||||||
$fprintf 88, "%s 0x%08x\n", debug_filename, image_base + header_size$;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
fclose(88);
|
|
||||||
}
|
|
||||||
.
|
|
||||||
|
|
@@ -1,118 +0,0 @@
|
|||||||
//
|
|
||||||
// Copyright (c) 2008 - 2009, Apple Inc. 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.
|
|
||||||
//
|
|
||||||
|
|
||||||
error = continue
|
|
||||||
|
|
||||||
unload
|
|
||||||
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
delfile 1
|
|
||||||
|
|
||||||
error = abort
|
|
@@ -1,417 +0,0 @@
|
|||||||
/*++
|
|
||||||
RealView EB FVB DXE Driver
|
|
||||||
|
|
||||||
Copyright (c) 2010, Apple Inc. 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.
|
|
||||||
|
|
||||||
|
|
||||||
--*/
|
|
||||||
|
|
||||||
#include <PiDxe.h>
|
|
||||||
|
|
||||||
#include <Library/BaseLib.h>
|
|
||||||
#include <Library/DebugLib.h>
|
|
||||||
#include <Library/BaseMemoryLib.h>
|
|
||||||
#include <Library/UefiBootServicesTableLib.h>
|
|
||||||
#include <Library/UefiLib.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
|
|
||||||
#include <Protocol/FirmwareVolumeBlock.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
The GetAttributes() function retrieves the attributes and
|
|
||||||
current settings of the block.
|
|
||||||
|
|
||||||
@param This Indicates the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
|
|
||||||
|
|
||||||
@param Attributes Pointer to EFI_FVB_ATTRIBUTES_2 in which the
|
|
||||||
attributes and current settings are
|
|
||||||
returned. Type EFI_FVB_ATTRIBUTES_2 is defined
|
|
||||||
in EFI_FIRMWARE_VOLUME_HEADER.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The firmware volume attributes were
|
|
||||||
returned.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
FvbGetAttributes (
|
|
||||||
IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,
|
|
||||||
OUT EFI_FVB_ATTRIBUTES_2 *Attributes
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
The SetAttributes() function sets configurable firmware volume
|
|
||||||
attributes and returns the new settings of the firmware volume.
|
|
||||||
|
|
||||||
|
|
||||||
@param This Indicates the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
|
|
||||||
|
|
||||||
@param Attributes On input, Attributes is a pointer to
|
|
||||||
EFI_FVB_ATTRIBUTES_2 that contains the
|
|
||||||
desired firmware volume settings. On
|
|
||||||
successful return, it contains the new
|
|
||||||
settings of the firmware volume. Type
|
|
||||||
EFI_FVB_ATTRIBUTES_2 is defined in
|
|
||||||
EFI_FIRMWARE_VOLUME_HEADER.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The firmware volume attributes were returned.
|
|
||||||
|
|
||||||
@retval EFI_INVALID_PARAMETER The attributes requested are in
|
|
||||||
conflict with the capabilities
|
|
||||||
as declared in the firmware
|
|
||||||
volume header.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
FvbSetAttributes (
|
|
||||||
IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,
|
|
||||||
IN OUT EFI_FVB_ATTRIBUTES_2 *Attributes
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
The GetPhysicalAddress() function retrieves the base address of
|
|
||||||
a memory-mapped firmware volume. This function should be called
|
|
||||||
only for memory-mapped firmware volumes.
|
|
||||||
|
|
||||||
@param This Indicates the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
|
|
||||||
|
|
||||||
@param Address Pointer to a caller-allocated
|
|
||||||
EFI_PHYSICAL_ADDRESS that, on successful
|
|
||||||
return from GetPhysicalAddress(), contains the
|
|
||||||
base address of the firmware volume.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The firmware volume base address was returned.
|
|
||||||
|
|
||||||
@retval EFI_NOT_SUPPORTED The firmware volume is not memory mapped.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
FvbGetPhysicalAddress (
|
|
||||||
IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,
|
|
||||||
OUT EFI_PHYSICAL_ADDRESS *Address
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
The GetBlockSize() function retrieves the size of the requested
|
|
||||||
block. It also returns the number of additional blocks with
|
|
||||||
the identical size. The GetBlockSize() function is used to
|
|
||||||
retrieve the block map (see EFI_FIRMWARE_VOLUME_HEADER).
|
|
||||||
|
|
||||||
|
|
||||||
@param This Indicates the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
|
|
||||||
|
|
||||||
@param Lba Indicates the block for which to return the size.
|
|
||||||
|
|
||||||
@param BlockSize Pointer to a caller-allocated UINTN in which
|
|
||||||
the size of the block is returned.
|
|
||||||
|
|
||||||
@param NumberOfBlocks Pointer to a caller-allocated UINTN in
|
|
||||||
which the number of consecutive blocks,
|
|
||||||
starting with Lba, is returned. All
|
|
||||||
blocks in this range have a size of
|
|
||||||
BlockSize.
|
|
||||||
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The firmware volume base address was returned.
|
|
||||||
|
|
||||||
@retval EFI_INVALID_PARAMETER The requested LBA is out of range.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
FvbGetBlockSize (
|
|
||||||
IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,
|
|
||||||
IN EFI_LBA Lba,
|
|
||||||
OUT UINTN *BlockSize,
|
|
||||||
OUT UINTN *NumberOfBlocks
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Reads the specified number of bytes into a buffer from the specified block.
|
|
||||||
|
|
||||||
The Read() function reads the requested number of bytes from the
|
|
||||||
requested block and stores them in the provided buffer.
|
|
||||||
Implementations should be mindful that the firmware volume
|
|
||||||
might be in the ReadDisabled state. If it is in this state,
|
|
||||||
the Read() function must return the status code
|
|
||||||
EFI_ACCESS_DENIED without modifying the contents of the
|
|
||||||
buffer. The Read() function must also prevent spanning block
|
|
||||||
boundaries. If a read is requested that would span a block
|
|
||||||
boundary, the read must read up to the boundary but not
|
|
||||||
beyond. The output parameter NumBytes must be set to correctly
|
|
||||||
indicate the number of bytes actually read. The caller must be
|
|
||||||
aware that a read may be partially completed.
|
|
||||||
|
|
||||||
@param This Indicates the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
|
|
||||||
|
|
||||||
@param Lba The starting logical block index
|
|
||||||
from which to read.
|
|
||||||
|
|
||||||
@param Offset Offset into the block at which to begin reading.
|
|
||||||
|
|
||||||
@param NumBytes Pointer to a UINTN. At entry, *NumBytes
|
|
||||||
contains the total size of the buffer. At
|
|
||||||
exit, *NumBytes contains the total number of
|
|
||||||
bytes read.
|
|
||||||
|
|
||||||
@param Buffer Pointer to a caller-allocated buffer that will
|
|
||||||
be used to hold the data that is read.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The firmware volume was read successfully,
|
|
||||||
and contents are in Buffer.
|
|
||||||
|
|
||||||
@retval EFI_BAD_BUFFER_SIZE Read attempted across an LBA
|
|
||||||
boundary. On output, NumBytes
|
|
||||||
contains the total number of bytes
|
|
||||||
returned in Buffer.
|
|
||||||
|
|
||||||
@retval EFI_ACCESS_DENIED The firmware volume is in the
|
|
||||||
ReadDisabled state.
|
|
||||||
|
|
||||||
@retval EFI_DEVICE_ERROR The block device is not
|
|
||||||
functioning correctly and could
|
|
||||||
not be read.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
FvbRead (
|
|
||||||
IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,
|
|
||||||
IN EFI_LBA Lba,
|
|
||||||
IN UINTN Offset,
|
|
||||||
IN OUT UINTN *NumBytes,
|
|
||||||
IN OUT UINT8 *Buffer
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Writes the specified number of bytes from the input buffer to the block.
|
|
||||||
|
|
||||||
The Write() function writes the specified number of bytes from
|
|
||||||
the provided buffer to the specified block and offset. If the
|
|
||||||
firmware volume is sticky write, the caller must ensure that
|
|
||||||
all the bits of the specified range to write are in the
|
|
||||||
EFI_FVB_ERASE_POLARITY state before calling the Write()
|
|
||||||
function, or else the result will be unpredictable. This
|
|
||||||
unpredictability arises because, for a sticky-write firmware
|
|
||||||
volume, a write may negate a bit in the EFI_FVB_ERASE_POLARITY
|
|
||||||
state but cannot flip it back again. Before calling the
|
|
||||||
Write() function, it is recommended for the caller to first call
|
|
||||||
the EraseBlocks() function to erase the specified block to
|
|
||||||
write. A block erase cycle will transition bits from the
|
|
||||||
(NOT)EFI_FVB_ERASE_POLARITY state back to the
|
|
||||||
EFI_FVB_ERASE_POLARITY state. Implementations should be
|
|
||||||
mindful that the firmware volume might be in the WriteDisabled
|
|
||||||
state. If it is in this state, the Write() function must
|
|
||||||
return the status code EFI_ACCESS_DENIED without modifying the
|
|
||||||
contents of the firmware volume. The Write() function must
|
|
||||||
also prevent spanning block boundaries. If a write is
|
|
||||||
requested that spans a block boundary, the write must store up
|
|
||||||
to the boundary but not beyond. The output parameter NumBytes
|
|
||||||
must be set to correctly indicate the number of bytes actually
|
|
||||||
written. The caller must be aware that a write may be
|
|
||||||
partially completed. All writes, partial or otherwise, must be
|
|
||||||
fully flushed to the hardware before the Write() service
|
|
||||||
returns.
|
|
||||||
|
|
||||||
@param This Indicates the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL instance.
|
|
||||||
|
|
||||||
@param Lba The starting logical block index to write to.
|
|
||||||
|
|
||||||
@param Offset Offset into the block at which to begin writing.
|
|
||||||
|
|
||||||
@param NumBytes The pointer to a UINTN. At entry, *NumBytes
|
|
||||||
contains the total size of the buffer. At
|
|
||||||
exit, *NumBytes contains the total number of
|
|
||||||
bytes actually written.
|
|
||||||
|
|
||||||
@param Buffer The pointer to a caller-allocated buffer that
|
|
||||||
contains the source for the write.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The firmware volume was written successfully.
|
|
||||||
|
|
||||||
@retval EFI_BAD_BUFFER_SIZE The write was attempted across an
|
|
||||||
LBA boundary. On output, NumBytes
|
|
||||||
contains the total number of bytes
|
|
||||||
actually written.
|
|
||||||
|
|
||||||
@retval EFI_ACCESS_DENIED The firmware volume is in the
|
|
||||||
WriteDisabled state.
|
|
||||||
|
|
||||||
@retval EFI_DEVICE_ERROR The block device is malfunctioning
|
|
||||||
and could not be written.
|
|
||||||
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
FvbWrite (
|
|
||||||
IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,
|
|
||||||
IN EFI_LBA Lba,
|
|
||||||
IN UINTN Offset,
|
|
||||||
IN OUT UINTN *NumBytes,
|
|
||||||
IN UINT8 *Buffer
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Erases and initializes a firmware volume block.
|
|
||||||
|
|
||||||
The EraseBlocks() function erases one or more blocks as denoted
|
|
||||||
by the variable argument list. The entire parameter list of
|
|
||||||
blocks must be verified before erasing any blocks. If a block is
|
|
||||||
requested that does not exist within the associated firmware
|
|
||||||
volume (it has a larger index than the last block of the
|
|
||||||
firmware volume), the EraseBlocks() function must return the
|
|
||||||
status code EFI_INVALID_PARAMETER without modifying the contents
|
|
||||||
of the firmware volume. Implementations should be mindful that
|
|
||||||
the firmware volume might be in the WriteDisabled state. If it
|
|
||||||
is in this state, the EraseBlocks() function must return the
|
|
||||||
status code EFI_ACCESS_DENIED without modifying the contents of
|
|
||||||
the firmware volume. All calls to EraseBlocks() must be fully
|
|
||||||
flushed to the hardware before the EraseBlocks() service
|
|
||||||
returns.
|
|
||||||
|
|
||||||
@param This Indicates the EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL
|
|
||||||
instance.
|
|
||||||
|
|
||||||
@param ... The variable argument list is a list of tuples.
|
|
||||||
Each tuple describes a range of LBAs to erase
|
|
||||||
and consists of the following:
|
|
||||||
- An EFI_LBA that indicates the starting LBA
|
|
||||||
- A UINTN that indicates the number of blocks to
|
|
||||||
erase.
|
|
||||||
|
|
||||||
The list is terminated with an
|
|
||||||
EFI_LBA_LIST_TERMINATOR. For example, the
|
|
||||||
following indicates that two ranges of blocks
|
|
||||||
(5-7 and 10-11) are to be erased: EraseBlocks
|
|
||||||
(This, 5, 3, 10, 2, EFI_LBA_LIST_TERMINATOR);
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The erase request successfully
|
|
||||||
completed.
|
|
||||||
|
|
||||||
@retval EFI_ACCESS_DENIED The firmware volume is in the
|
|
||||||
WriteDisabled state.
|
|
||||||
@retval EFI_DEVICE_ERROR The block device is not functioning
|
|
||||||
correctly and could not be written.
|
|
||||||
The firmware device may have been
|
|
||||||
partially erased.
|
|
||||||
@retval EFI_INVALID_PARAMETER One or more of the LBAs listed
|
|
||||||
in the variable argument list do
|
|
||||||
not exist in the firmware volume.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
FvbEraseBlocks (
|
|
||||||
IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,
|
|
||||||
...
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Making this global saves a few bytes in image size
|
|
||||||
//
|
|
||||||
EFI_HANDLE gFvbHandle = NULL;
|
|
||||||
|
|
||||||
|
|
||||||
///
|
|
||||||
/// The Firmware Volume Block Protocol is the low-level interface
|
|
||||||
/// to a firmware volume. File-level access to a firmware volume
|
|
||||||
/// should not be done using the Firmware Volume Block Protocol.
|
|
||||||
/// Normal access to a firmware volume must use the Firmware
|
|
||||||
/// Volume Protocol. Typically, only the file system driver that
|
|
||||||
/// produces the Firmware Volume Protocol will bind to the
|
|
||||||
/// Firmware Volume Block Protocol.
|
|
||||||
///
|
|
||||||
EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL gFvbProtocol = {
|
|
||||||
FvbGetAttributes,
|
|
||||||
FvbSetAttributes,
|
|
||||||
FvbGetPhysicalAddress,
|
|
||||||
FvbGetBlockSize,
|
|
||||||
FvbRead,
|
|
||||||
FvbWrite,
|
|
||||||
FvbEraseBlocks,
|
|
||||||
///
|
|
||||||
/// The handle of the parent firmware volume.
|
|
||||||
///
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
// NvStorageVariableBase = (EFI_PHYSICAL_ADDRESS) FixedPcdGet32 (PcdFlashNvStorageVariableBase);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Initialize the state information for the CPU Architectural Protocol
|
|
||||||
|
|
||||||
@param ImageHandle of the loaded driver
|
|
||||||
@param SystemTable Pointer to the System Table
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS Protocol registered
|
|
||||||
@retval EFI_OUT_OF_RESOURCES Cannot allocate protocol data structure
|
|
||||||
@retval EFI_DEVICE_ERROR Hardware problems
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
FvbDxeInitialize (
|
|
||||||
IN EFI_HANDLE ImageHandle,
|
|
||||||
IN EFI_SYSTEM_TABLE *SystemTable
|
|
||||||
)
|
|
||||||
{
|
|
||||||
EFI_STATUS Status;
|
|
||||||
|
|
||||||
|
|
||||||
Status = gBS->InstallMultipleProtocolInterfaces (
|
|
||||||
&gFvbHandle,
|
|
||||||
&gEfiFirmwareVolumeBlockProtocolGuid, &gFvbProtocol,
|
|
||||||
NULL
|
|
||||||
);
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
|
||||||
|
|
||||||
// SetVertAddressEvent ()
|
|
||||||
|
|
||||||
// GCD Map NAND as RT
|
|
||||||
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
@@ -1,53 +0,0 @@
|
|||||||
#/** @file
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 - 2010, Apple Inc. 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]
|
|
||||||
INF_VERSION = 0x00010005
|
|
||||||
BASE_NAME = FvbDxe
|
|
||||||
FILE_GUID = 43ECE281-D9E2-4DD0-B304-E6A5689256F4
|
|
||||||
MODULE_TYPE = DXE_RUNTIME_DRIVER
|
|
||||||
VERSION_STRING = 1.0
|
|
||||||
|
|
||||||
ENTRY_POINT = FvbDxeInitialize
|
|
||||||
|
|
||||||
|
|
||||||
[Sources.common]
|
|
||||||
FvbDxe.c
|
|
||||||
|
|
||||||
[Packages]
|
|
||||||
MdePkg/MdePkg.dec
|
|
||||||
MdeModulePkg/MdeModulePkg.dec
|
|
||||||
EmbeddedPkg/EmbeddedPkg.dec
|
|
||||||
ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEbPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
|
||||||
BaseLib
|
|
||||||
UefiLib
|
|
||||||
UefiBootServicesTableLib
|
|
||||||
DebugLib
|
|
||||||
PrintLib
|
|
||||||
UefiDriverEntryPoint
|
|
||||||
IoLib
|
|
||||||
|
|
||||||
[Guids]
|
|
||||||
|
|
||||||
|
|
||||||
[Protocols]
|
|
||||||
gEfiFirmwareVolumeBlockProtocolGuid
|
|
||||||
|
|
||||||
[FixedPcd.common]
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase
|
|
||||||
|
|
||||||
[depex]
|
|
||||||
TRUE
|
|
@@ -1,122 +0,0 @@
|
|||||||
/** @file
|
|
||||||
* Header defining RealView EB constants (Base addresses, sizes, flags)
|
|
||||||
*
|
|
||||||
* Copyright (c) 2011, ARM Limited. All rights reserved.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
**/
|
|
||||||
|
|
||||||
#ifndef __ARM_EB_H__
|
|
||||||
#define __ARM_EB_H__
|
|
||||||
|
|
||||||
/*******************************************
|
|
||||||
// Platform Memory Map
|
|
||||||
*******************************************/
|
|
||||||
|
|
||||||
// Can be NOR, DOC, DRAM, SRAM
|
|
||||||
#define ARM_EB_REMAP_BASE 0x00000000
|
|
||||||
#define ARM_EB_REMAP_SZ 0x04000000
|
|
||||||
|
|
||||||
// Motherboard Peripheral and On-chip peripheral
|
|
||||||
#define ARM_EB_SMB_MB_ON_CHIP_PERIPH_BASE 0x10000000
|
|
||||||
#define ARM_EB_SMB_MB_ON_CHIP_PERIPH_SZ 0x10000000
|
|
||||||
#define ARM_EB_BOARD_PERIPH_BASE 0x10000000
|
|
||||||
//#define ARM_EB_CHIP_PERIPH_BASE 0x10020000
|
|
||||||
|
|
||||||
// SMC
|
|
||||||
#define ARM_EB_SMC_BASE 0x40000000
|
|
||||||
#define ARM_EB_SMC_SZ 0x20000000
|
|
||||||
|
|
||||||
// NOR Flash 1
|
|
||||||
#define ARM_EB_SMB_NOR_BASE 0x40000000
|
|
||||||
#define ARM_EB_SMB_NOR_SZ 0x04000000 /* 64 MB */
|
|
||||||
// DOC Flash
|
|
||||||
#define ARM_EB_SMB_DOC_BASE 0x44000000
|
|
||||||
#define ARM_EB_SMB_DOC_SZ 0x04000000 /* 64 MB */
|
|
||||||
// SRAM
|
|
||||||
#define ARM_EB_SMB_SRAM_BASE 0x48000000
|
|
||||||
#define ARM_EB_SMB_SRAM_SZ 0x02000000 /* 32 MB */
|
|
||||||
// USB, Ethernet, VRAM
|
|
||||||
#define ARM_EB_SMB_PERIPH_BASE 0x4E000000
|
|
||||||
//#define ARM_EB_SMB_PERIPH_VRAM 0x4C000000
|
|
||||||
#define ARM_EB_SMB_PERIPH_SZ 0x02000000 /* 32 MB */
|
|
||||||
|
|
||||||
// Logic Tile
|
|
||||||
#define ARM_EB_LOGIC_TILE_BASE 0xC0000000
|
|
||||||
#define ARM_EB_LOGIC_TILE_SZ 0x40000000
|
|
||||||
|
|
||||||
/*******************************************
|
|
||||||
// Motherboard peripherals
|
|
||||||
*******************************************/
|
|
||||||
|
|
||||||
// Define MotherBoard SYS flags offsets (from ARM_EB_BOARD_PERIPH_BASE)
|
|
||||||
#define ARM_EB_SYS_ID_REG (ARM_EB_BOARD_PERIPH_BASE + 0x00000)
|
|
||||||
#define ARM_EB_SYS_OSC4_REG (ARM_EB_BOARD_PERIPH_BASE + 0x0001C)
|
|
||||||
#define ARM_EB_SYS_LOCK_REG (ARM_EB_BOARD_PERIPH_BASE + 0x00020)
|
|
||||||
#define ARM_EB_SYS_100HZ_REG (ARM_EB_BOARD_PERIPH_BASE + 0x00024)
|
|
||||||
#define ARM_EB_SYS_FLAGS_REG (ARM_EB_BOARD_PERIPH_BASE + 0x00030)
|
|
||||||
#define ARM_EB_SYS_FLAGS_SET_REG (ARM_EB_BOARD_PERIPH_BASE + 0x00030)
|
|
||||||
#define ARM_EB_SYS_FLAGS_CLR_REG (ARM_EB_BOARD_PERIPH_BASE + 0x00034)
|
|
||||||
#define ARM_EB_SYS_FLAGS_NV_REG (ARM_EB_BOARD_PERIPH_BASE + 0x00038)
|
|
||||||
#define ARM_EB_SYS_FLAGS_NV_SET_REG (ARM_EB_BOARD_PERIPH_BASE + 0x00038)
|
|
||||||
#define ARM_EB_SYS_FLAGS_NV_CLR_REG (ARM_EB_BOARD_PERIPH_BASE + 0x0003C)
|
|
||||||
#define ARM_EB_SYS_RESETCTL_REG (ARM_EB_BOARD_PERIPH_BASE + 0x00040)
|
|
||||||
#define ARM_EB_SYS_CLCD_REG (ARM_EB_BOARD_PERIPH_BASE + 0x00050)
|
|
||||||
#define ARM_EB_SYS_PROCID0_REG (ARM_EB_BOARD_PERIPH_BASE + 0x00084)
|
|
||||||
#define ARM_EB_SYS_PROCID1_REG (ARM_EB_BOARD_PERIPH_BASE + 0x00088)
|
|
||||||
|
|
||||||
// SP810 Controller
|
|
||||||
#define SP810_CTRL_BASE (ARM_EB_BOARD_PERIPH_BASE + 0x01000)
|
|
||||||
|
|
||||||
// SYSTRCL Register
|
|
||||||
#define ARM_EB_SYSCTRL 0x10001000
|
|
||||||
|
|
||||||
// Dynamic Memory Controller Base
|
|
||||||
#define ARM_EB_DMC_BASE 0x10018000
|
|
||||||
|
|
||||||
// Static Memory Controller Base
|
|
||||||
#define ARM_EB_SMC_CTRL_BASE 0x10080000
|
|
||||||
|
|
||||||
//Note: Moving the framebuffer into the 0x70000000-0x80000000 region does not seem to work
|
|
||||||
#define PL111_CLCD_VRAM_BASE 0x00100000
|
|
||||||
|
|
||||||
/*// System Configuration Controller register Base addresses
|
|
||||||
//#define ARM_EB_SYS_CFG_CTRL_BASE 0x100E2000
|
|
||||||
#define ARM_EB_SYS_CFGRW0_REG 0x100E2000
|
|
||||||
#define ARM_EB_SYS_CFGRW1_REG 0x100E2004
|
|
||||||
#define ARM_EB_SYS_CFGRW2_REG 0x100E2008
|
|
||||||
|
|
||||||
#define ARM_EB_CFGRW1_REMAP_NOR0 0
|
|
||||||
#define ARM_EB_CFGRW1_REMAP_NOR1 (1 << 28)
|
|
||||||
#define ARM_EB_CFGRW1_REMAP_EXT_AXI (1 << 29)
|
|
||||||
#define ARM_EB_CFGRW1_REMAP_DRAM (1 << 30)
|
|
||||||
|
|
||||||
// PL301 Fast AXI Base Address
|
|
||||||
#define ARM_EB_FAXI_BASE 0x100E9000
|
|
||||||
|
|
||||||
// L2x0 Cache Controller Base Address
|
|
||||||
//#define ARM_EB_L2x0_CTLR_BASE 0x1E00A000*/
|
|
||||||
|
|
||||||
#define ARM_EB_SYS_PROC_ID_MASK (UINT32)(0xFFU << 24)
|
|
||||||
#define ARM_EB_SYS_PROC_ID_CORTEX_A8 (UINT32)(0x0EU << 24)
|
|
||||||
#define ARM_EB_SYS_PROC_ID_CORTEX_A9 (UINT32)(0x0CU << 24)
|
|
||||||
|
|
||||||
/*******************************************
|
|
||||||
// System Configuration Control
|
|
||||||
*******************************************/
|
|
||||||
|
|
||||||
// Sites where the peripheral is fitted
|
|
||||||
#define ARM_EB_UNSUPPORTED ~0
|
|
||||||
|
|
||||||
#define VIRTUAL_SYS_CFG(site,func) (((site) << 24) | (func))
|
|
||||||
|
|
||||||
#define SYS_CFG_RTC VIRTUAL_SYS_CFG(ARM_EB_UNSUPPORTED,1)
|
|
||||||
|
|
||||||
#endif
|
|
@@ -1,484 +0,0 @@
|
|||||||
/*++
|
|
||||||
|
|
||||||
Copyright (c) 2009, Hewlett-Packard Company. All rights reserved.<BR>
|
|
||||||
Portions copyright (c) 2010, Apple Inc. 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.
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
Gic.c
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
Driver implementing the GIC interrupt controller protocol
|
|
||||||
|
|
||||||
--*/
|
|
||||||
|
|
||||||
#include <PiDxe.h>
|
|
||||||
|
|
||||||
#include <Library/BaseLib.h>
|
|
||||||
#include <Library/DebugLib.h>
|
|
||||||
#include <Library/BaseMemoryLib.h>
|
|
||||||
#include <Library/UefiBootServicesTableLib.h>
|
|
||||||
#include <Library/UefiLib.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
#include <Library/IoLib.h>
|
|
||||||
|
|
||||||
#include <Protocol/Cpu.h>
|
|
||||||
#include <Protocol/HardwareInterrupt.h>
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// EB board definitions
|
|
||||||
//
|
|
||||||
#define EB_GIC1_CPU_INTF_BASE 0x10040000
|
|
||||||
#define EB_GIC1_DIST_BASE 0x10041000
|
|
||||||
#define EB_GIC2_CPU_INTF_BASE 0x10050000
|
|
||||||
#define EB_GIC2_DIST_BASE 0x10051000
|
|
||||||
#define EB_GIC3_CPU_INTF_BASE 0x10060000
|
|
||||||
#define EB_GIC3_DIST_BASE 0x10061000
|
|
||||||
#define EB_GIC4_CPU_INTF_BASE 0x10070000
|
|
||||||
#define EB_GIC5_DIST_BASE 0x10071000
|
|
||||||
|
|
||||||
// number of interrupts sources supported by each GIC on the EB
|
|
||||||
#define EB_NUM_GIC_INTERRUPTS 96
|
|
||||||
|
|
||||||
// number of 32-bit registers needed to represent those interrupts as a bit
|
|
||||||
// (used for enable set, enable clear, pending set, pending clear, and active regs)
|
|
||||||
#define EB_NUM_GIC_REG_PER_INT_BITS (EB_NUM_GIC_INTERRUPTS / 32)
|
|
||||||
|
|
||||||
// number of 32-bit registers needed to represent those interrupts as two bits
|
|
||||||
// (used for configuration reg)
|
|
||||||
#define EB_NUM_GIC_REG_PER_INT_CFG (EB_NUM_GIC_INTERRUPTS / 16)
|
|
||||||
|
|
||||||
// number of 32-bit registers needed to represent interrupts as 8-bit priority field
|
|
||||||
// (used for priority regs)
|
|
||||||
#define EB_NUM_GIC_REG_PER_INT_BYTES (EB_NUM_GIC_INTERRUPTS / 4)
|
|
||||||
|
|
||||||
#define GIC_DEFAULT_PRIORITY 0x80
|
|
||||||
|
|
||||||
//
|
|
||||||
// GIC definitions
|
|
||||||
//
|
|
||||||
|
|
||||||
// Distributor
|
|
||||||
#define GIC_ICDDCR 0x000 // Distributor Control Register
|
|
||||||
#define GIC_ICDICTR 0x004 // Interrupt Controller Type Register
|
|
||||||
#define GIC_ICDIIDR 0x008 // Implementer Identification Register
|
|
||||||
|
|
||||||
// each reg base below repeats for EB_NUM_GIC_REG_PER_INT_BITS (see GIC spec)
|
|
||||||
#define GIC_ICDISR 0x080 // Interrupt Security Registers
|
|
||||||
#define GIC_ICDISER 0x100 // Interrupt Set-Enable Registers
|
|
||||||
#define GIC_ICDICER 0x180 // Interrupt Clear-Enable Registers
|
|
||||||
#define GIC_ICDSPR 0x200 // Interrupt Set-Pending Registers
|
|
||||||
#define GIC_ICDCPR 0x280 // Interrupt Clear-Pending Registers
|
|
||||||
#define GIC_ICDABR 0x300 // Active Bit Registers
|
|
||||||
|
|
||||||
// each reg base below repeats for EB_NUM_GIC_REG_PER_INT_BYTES
|
|
||||||
#define GIC_ICDIPR 0x400 // Interrupt Priority Registers
|
|
||||||
|
|
||||||
// each reg base below repeats for EB_NUM_GIC_INTERRUPTS
|
|
||||||
#define GIC_ICDIPTR 0x800 // Interrupt Processor Target Registers
|
|
||||||
#define GIC_ICDICFR 0xC00 // Interrupt Configuration Registers
|
|
||||||
|
|
||||||
// just one of these
|
|
||||||
#define GIC_ICDSGIR 0xF00 // Software Generated Interrupt Register
|
|
||||||
|
|
||||||
|
|
||||||
// Cpu interface
|
|
||||||
#define GIC_ICCICR 0x00 // CPU Interface Controler Register
|
|
||||||
#define GIC_ICCPMR 0x04 // Interrupt Priority Mask Register
|
|
||||||
#define GIC_ICCBPR 0x08 // Binary Point Register
|
|
||||||
#define GIC_ICCIAR 0x0C // Interrupt Acknowledge Register
|
|
||||||
#define GIC_ICCEIOR 0x10 // End Of Interrupt Register
|
|
||||||
#define GIC_ICCRPR 0x14 // Running Priority Register
|
|
||||||
#define GIC_ICCPIR 0x18 // Highest Pending Interrupt Register
|
|
||||||
#define GIC_ICCABPR 0x1C // Aliased Binary Point Register
|
|
||||||
#define GIC_ICCIDR 0xFC // Identification Register
|
|
||||||
|
|
||||||
extern EFI_HARDWARE_INTERRUPT_PROTOCOL gHardwareInterruptProtocol;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Notifications
|
|
||||||
//
|
|
||||||
VOID *CpuProtocolNotificationToken = NULL;
|
|
||||||
EFI_EVENT CpuProtocolNotificationEvent = (EFI_EVENT)NULL;
|
|
||||||
EFI_EVENT EfiExitBootServicesEvent = (EFI_EVENT)NULL;
|
|
||||||
|
|
||||||
|
|
||||||
HARDWARE_INTERRUPT_HANDLER gRegisteredInterruptHandlers[EB_NUM_GIC_INTERRUPTS];
|
|
||||||
|
|
||||||
/**
|
|
||||||
Register Handler for the specified interrupt source.
|
|
||||||
|
|
||||||
@param This Instance pointer for this protocol
|
|
||||||
@param Source Hardware source of the interrupt
|
|
||||||
@param Handler Callback for interrupt. NULL to unregister
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS Source was updated to support Handler.
|
|
||||||
@retval EFI_DEVICE_ERROR Hardware could not be programmed.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
RegisterInterruptSource (
|
|
||||||
IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This,
|
|
||||||
IN HARDWARE_INTERRUPT_SOURCE Source,
|
|
||||||
IN HARDWARE_INTERRUPT_HANDLER Handler
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (Source > EB_NUM_GIC_INTERRUPTS) {
|
|
||||||
ASSERT(FALSE);
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((Handler == NULL) && (gRegisteredInterruptHandlers[Source] == NULL)) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((Handler != NULL) && (gRegisteredInterruptHandlers[Source] != NULL)) {
|
|
||||||
return EFI_ALREADY_STARTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
gRegisteredInterruptHandlers[Source] = Handler;
|
|
||||||
return This->EnableInterruptSource(This, Source);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Enable interrupt source Source.
|
|
||||||
|
|
||||||
@param This Instance pointer for this protocol
|
|
||||||
@param Source Hardware source of the interrupt
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS Source interrupt enabled.
|
|
||||||
@retval EFI_DEVICE_ERROR Hardware could not be programmed.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
EnableInterruptSource (
|
|
||||||
IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This,
|
|
||||||
IN HARDWARE_INTERRUPT_SOURCE Source
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINT32 RegOffset;
|
|
||||||
UINTN RegShift;
|
|
||||||
|
|
||||||
if (Source > EB_NUM_GIC_INTERRUPTS) {
|
|
||||||
ASSERT(FALSE);
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
// calculate enable register offset and bit position
|
|
||||||
RegOffset = Source / 32;
|
|
||||||
RegShift = Source % 32;
|
|
||||||
|
|
||||||
// write set-enable register
|
|
||||||
MmioWrite32 (EB_GIC1_DIST_BASE+GIC_ICDISER+(4*RegOffset), 1 << RegShift);
|
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Disable interrupt source Source.
|
|
||||||
|
|
||||||
@param This Instance pointer for this protocol
|
|
||||||
@param Source Hardware source of the interrupt
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS Source interrupt disabled.
|
|
||||||
@retval EFI_DEVICE_ERROR Hardware could not be programmed.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
DisableInterruptSource (
|
|
||||||
IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This,
|
|
||||||
IN HARDWARE_INTERRUPT_SOURCE Source
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINT32 RegOffset;
|
|
||||||
UINTN RegShift;
|
|
||||||
|
|
||||||
if (Source > EB_NUM_GIC_INTERRUPTS) {
|
|
||||||
ASSERT(FALSE);
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
// calculate enable register offset and bit position
|
|
||||||
RegOffset = Source / 32;
|
|
||||||
RegShift = Source % 32;
|
|
||||||
|
|
||||||
// write set-enable register
|
|
||||||
MmioWrite32 (EB_GIC1_DIST_BASE+GIC_ICDICER+(4*RegOffset), 1 << RegShift);
|
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Return current state of interrupt source Source.
|
|
||||||
|
|
||||||
@param This Instance pointer for this protocol
|
|
||||||
@param Source Hardware source of the interrupt
|
|
||||||
@param InterruptState TRUE: source enabled, FALSE: source disabled.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS InterruptState is valid
|
|
||||||
@retval EFI_DEVICE_ERROR InterruptState is not valid
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
GetInterruptSourceState (
|
|
||||||
IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This,
|
|
||||||
IN HARDWARE_INTERRUPT_SOURCE Source,
|
|
||||||
IN BOOLEAN *InterruptState
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINT32 RegOffset;
|
|
||||||
UINTN RegShift;
|
|
||||||
|
|
||||||
if (Source > EB_NUM_GIC_INTERRUPTS) {
|
|
||||||
ASSERT(FALSE);
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
// calculate enable register offset and bit position
|
|
||||||
RegOffset = Source / 32;
|
|
||||||
RegShift = Source % 32;
|
|
||||||
|
|
||||||
if ((MmioRead32 (EB_GIC1_DIST_BASE+GIC_ICDISER+(4*RegOffset)) & (1<<RegShift)) == 0) {
|
|
||||||
*InterruptState = FALSE;
|
|
||||||
} else {
|
|
||||||
*InterruptState = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Signal to the hardware that the End Of Intrrupt state
|
|
||||||
has been reached.
|
|
||||||
|
|
||||||
@param This Instance pointer for this protocol
|
|
||||||
@param Source Hardware source of the interrupt
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS Source interrupt EOI'ed.
|
|
||||||
@retval EFI_DEVICE_ERROR Hardware could not be programmed.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
EndOfInterrupt (
|
|
||||||
IN EFI_HARDWARE_INTERRUPT_PROTOCOL *This,
|
|
||||||
IN HARDWARE_INTERRUPT_SOURCE Source
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (Source > EB_NUM_GIC_INTERRUPTS) {
|
|
||||||
ASSERT(FALSE);
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
MmioWrite32 (EB_GIC1_CPU_INTF_BASE+GIC_ICCEIOR, Source);
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
EFI_CPU_INTERRUPT_HANDLER that is called when a processor interrupt occurs.
|
|
||||||
|
|
||||||
@param InterruptType Defines the type of interrupt or exception that
|
|
||||||
occurred on the processor.This parameter is processor architecture specific.
|
|
||||||
@param SystemContext A pointer to the processor context when
|
|
||||||
the interrupt occurred on the processor.
|
|
||||||
|
|
||||||
@return None
|
|
||||||
|
|
||||||
**/
|
|
||||||
VOID
|
|
||||||
EFIAPI
|
|
||||||
IrqInterruptHandler (
|
|
||||||
IN EFI_EXCEPTION_TYPE InterruptType,
|
|
||||||
IN EFI_SYSTEM_CONTEXT SystemContext
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINT32 GicInterrupt;
|
|
||||||
HARDWARE_INTERRUPT_HANDLER InterruptHandler;
|
|
||||||
|
|
||||||
GicInterrupt = MmioRead32 (EB_GIC1_CPU_INTF_BASE + GIC_ICCIAR);
|
|
||||||
if (GicInterrupt >= EB_NUM_GIC_INTERRUPTS) {
|
|
||||||
MmioWrite32 (EB_GIC1_CPU_INTF_BASE+GIC_ICCEIOR, GicInterrupt);
|
|
||||||
}
|
|
||||||
|
|
||||||
InterruptHandler = gRegisteredInterruptHandlers[GicInterrupt];
|
|
||||||
if (InterruptHandler != NULL) {
|
|
||||||
// Call the registered interrupt handler.
|
|
||||||
InterruptHandler (GicInterrupt, SystemContext);
|
|
||||||
} else {
|
|
||||||
DEBUG ((EFI_D_ERROR, "Spurious GIC interrupt: %x\n", GicInterrupt));
|
|
||||||
}
|
|
||||||
|
|
||||||
EndOfInterrupt (&gHardwareInterruptProtocol, GicInterrupt);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Making this global saves a few bytes in image size
|
|
||||||
//
|
|
||||||
EFI_HANDLE gHardwareInterruptHandle = NULL;
|
|
||||||
|
|
||||||
//
|
|
||||||
// The protocol instance produced by this driver
|
|
||||||
//
|
|
||||||
EFI_HARDWARE_INTERRUPT_PROTOCOL gHardwareInterruptProtocol = {
|
|
||||||
RegisterInterruptSource,
|
|
||||||
EnableInterruptSource,
|
|
||||||
DisableInterruptSource,
|
|
||||||
GetInterruptSourceState,
|
|
||||||
EndOfInterrupt
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Shutdown our hardware
|
|
||||||
|
|
||||||
DXE Core will disable interrupts and turn off the timer and disable interrupts
|
|
||||||
after all the event handlers have run.
|
|
||||||
|
|
||||||
@param[in] Event The Event that is being processed
|
|
||||||
@param[in] Context Event Context
|
|
||||||
**/
|
|
||||||
VOID
|
|
||||||
EFIAPI
|
|
||||||
ExitBootServicesEvent (
|
|
||||||
IN EFI_EVENT Event,
|
|
||||||
IN VOID *Context
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINTN i;
|
|
||||||
|
|
||||||
for (i = 0; i < EB_NUM_GIC_INTERRUPTS; i++) {
|
|
||||||
DisableInterruptSource (&gHardwareInterruptProtocol, i);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// Notification routines
|
|
||||||
//
|
|
||||||
VOID
|
|
||||||
CpuProtocolInstalledNotification (
|
|
||||||
IN EFI_EVENT Event,
|
|
||||||
IN VOID *Context
|
|
||||||
)
|
|
||||||
{
|
|
||||||
EFI_STATUS Status;
|
|
||||||
EFI_CPU_ARCH_PROTOCOL *Cpu;
|
|
||||||
|
|
||||||
//
|
|
||||||
// Get the cpu protocol that this driver requires.
|
|
||||||
//
|
|
||||||
Status = gBS->LocateProtocol(&gEfiCpuArchProtocolGuid, NULL, (VOID **)&Cpu);
|
|
||||||
ASSERT_EFI_ERROR(Status);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Unregister the default exception handler.
|
|
||||||
//
|
|
||||||
Status = Cpu->RegisterInterruptHandler(Cpu, EXCEPT_ARM_IRQ, NULL);
|
|
||||||
ASSERT_EFI_ERROR(Status);
|
|
||||||
|
|
||||||
//
|
|
||||||
// Register to receive interrupts
|
|
||||||
//
|
|
||||||
Status = Cpu->RegisterInterruptHandler(Cpu, EXCEPT_ARM_IRQ, IrqInterruptHandler);
|
|
||||||
ASSERT_EFI_ERROR(Status);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Initialize the state information for the CPU Architectural Protocol
|
|
||||||
|
|
||||||
@param ImageHandle of the loaded driver
|
|
||||||
@param SystemTable Pointer to the System Table
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS Protocol registered
|
|
||||||
@retval EFI_OUT_OF_RESOURCES Cannot allocate protocol data structure
|
|
||||||
@retval EFI_DEVICE_ERROR Hardware problems
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
InterruptDxeInitialize (
|
|
||||||
IN EFI_HANDLE ImageHandle,
|
|
||||||
IN EFI_SYSTEM_TABLE *SystemTable
|
|
||||||
)
|
|
||||||
{
|
|
||||||
EFI_STATUS Status;
|
|
||||||
UINTN i;
|
|
||||||
UINT32 RegOffset;
|
|
||||||
UINTN RegShift;
|
|
||||||
|
|
||||||
|
|
||||||
// Make sure the Interrupt Controller Protocol is not already installed in the system.
|
|
||||||
ASSERT_PROTOCOL_ALREADY_INSTALLED (NULL, &gHardwareInterruptProtocolGuid);
|
|
||||||
|
|
||||||
for (i = 0; i < EB_NUM_GIC_INTERRUPTS; i++) {
|
|
||||||
DisableInterruptSource (&gHardwareInterruptProtocol, i);
|
|
||||||
|
|
||||||
// Set Priority
|
|
||||||
RegOffset = i / 4;
|
|
||||||
RegShift = (i % 4) * 8;
|
|
||||||
MmioAndThenOr32 (
|
|
||||||
EB_GIC1_DIST_BASE+GIC_ICDIPR+(4*RegOffset),
|
|
||||||
~(0xff << RegShift),
|
|
||||||
GIC_DEFAULT_PRIORITY << RegShift
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
// configure interrupts for cpu 0
|
|
||||||
for (i = 0; i < EB_NUM_GIC_REG_PER_INT_BYTES; i++) {
|
|
||||||
MmioWrite32 (EB_GIC1_DIST_BASE + GIC_ICDIPTR + (i*4), 0x01010101);
|
|
||||||
}
|
|
||||||
|
|
||||||
// set binary point reg to 0x7 (no preemption)
|
|
||||||
MmioWrite32 (EB_GIC1_CPU_INTF_BASE + GIC_ICCBPR, 0x7);
|
|
||||||
|
|
||||||
// set priority mask reg to 0xff to allow all priorities through
|
|
||||||
MmioWrite32 (EB_GIC1_CPU_INTF_BASE + GIC_ICCPMR, 0xff);
|
|
||||||
|
|
||||||
// enable gic cpu interface
|
|
||||||
MmioWrite32 (EB_GIC1_CPU_INTF_BASE + GIC_ICCICR, 0x1);
|
|
||||||
|
|
||||||
// enable gic distributor
|
|
||||||
MmioWrite32 (EB_GIC1_DIST_BASE + GIC_ICCICR, 0x1);
|
|
||||||
|
|
||||||
|
|
||||||
ZeroMem (&gRegisteredInterruptHandlers, sizeof (gRegisteredInterruptHandlers));
|
|
||||||
|
|
||||||
Status = gBS->InstallMultipleProtocolInterfaces (
|
|
||||||
&gHardwareInterruptHandle,
|
|
||||||
&gHardwareInterruptProtocolGuid, &gHardwareInterruptProtocol,
|
|
||||||
NULL
|
|
||||||
);
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
|
||||||
|
|
||||||
// Set up to be notified when the Cpu protocol is installed.
|
|
||||||
Status = gBS->CreateEvent (EVT_NOTIFY_SIGNAL, TPL_CALLBACK, CpuProtocolInstalledNotification, NULL, &CpuProtocolNotificationEvent);
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
|
||||||
|
|
||||||
Status = gBS->RegisterProtocolNotify (&gEfiCpuArchProtocolGuid, CpuProtocolNotificationEvent, (VOID *)&CpuProtocolNotificationToken);
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
|
||||||
|
|
||||||
// Register for an ExitBootServicesEvent
|
|
||||||
Status = gBS->CreateEvent (EVT_SIGNAL_EXIT_BOOT_SERVICES, TPL_NOTIFY, ExitBootServicesEvent, NULL, &EfiExitBootServicesEvent);
|
|
||||||
ASSERT_EFI_ERROR (Status);
|
|
||||||
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
@@ -1,53 +0,0 @@
|
|||||||
#/** @file
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 - 2010, Apple Inc. 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]
|
|
||||||
INF_VERSION = 0x00010005
|
|
||||||
BASE_NAME = GicInterruptDxe
|
|
||||||
FILE_GUID = A7496828-946E-43BF-97D6-AA0272001899
|
|
||||||
MODULE_TYPE = DXE_DRIVER
|
|
||||||
VERSION_STRING = 1.0
|
|
||||||
|
|
||||||
ENTRY_POINT = InterruptDxeInitialize
|
|
||||||
|
|
||||||
|
|
||||||
[Sources.common]
|
|
||||||
InterruptDxe.c
|
|
||||||
|
|
||||||
|
|
||||||
[Packages]
|
|
||||||
MdePkg/MdePkg.dec
|
|
||||||
EmbeddedPkg/EmbeddedPkg.dec
|
|
||||||
ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEbPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
|
||||||
BaseLib
|
|
||||||
UefiLib
|
|
||||||
UefiBootServicesTableLib
|
|
||||||
DebugLib
|
|
||||||
PrintLib
|
|
||||||
UefiDriverEntryPoint
|
|
||||||
IoLib
|
|
||||||
|
|
||||||
[Guids]
|
|
||||||
|
|
||||||
|
|
||||||
[Protocols]
|
|
||||||
gHardwareInterruptProtocolGuid
|
|
||||||
gEfiCpuArchProtocolGuid
|
|
||||||
|
|
||||||
[FixedPcd.common]
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdInterruptBaseAddress
|
|
||||||
|
|
||||||
[depex]
|
|
||||||
TRUE
|
|
@@ -1,146 +0,0 @@
|
|||||||
/** @file
|
|
||||||
*
|
|
||||||
* Copyright (c) 2011-2012, ARM Limited. All rights reserved.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include <Library/IoLib.h>
|
|
||||||
#include <Library/ArmLib.h>
|
|
||||||
#include <Library/ArmPlatformLib.h>
|
|
||||||
#include <Library/DebugLib.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
|
|
||||||
#include <Drivers/PL341Dmc.h>
|
|
||||||
#include <Drivers/SP804Timer.h>
|
|
||||||
|
|
||||||
#include <Ppi/ArmMpCoreInfo.h>
|
|
||||||
|
|
||||||
#include <ArmPlatform.h>
|
|
||||||
|
|
||||||
ARM_CORE_INFO mRealViewEbMpCoreInfoTable[] = {
|
|
||||||
{
|
|
||||||
// Cluster 0, Core 0
|
|
||||||
0x0, 0x0,
|
|
||||||
|
|
||||||
// MP Core MailBox Set/Get/Clear Addresses and Clear Value
|
|
||||||
(EFI_PHYSICAL_ADDRESS)ARM_EB_SYS_FLAGS_REG,
|
|
||||||
(EFI_PHYSICAL_ADDRESS)ARM_EB_SYS_FLAGS_SET_REG,
|
|
||||||
(EFI_PHYSICAL_ADDRESS)ARM_EB_SYS_FLAGS_CLR_REG,
|
|
||||||
(UINT64)0xFFFFFFFF
|
|
||||||
},
|
|
||||||
{
|
|
||||||
// Cluster 0, Core 1
|
|
||||||
0x0, 0x1,
|
|
||||||
|
|
||||||
// MP Core MailBox Set/Get/Clear Addresses and Clear Value
|
|
||||||
(EFI_PHYSICAL_ADDRESS)ARM_EB_SYS_FLAGS_REG,
|
|
||||||
(EFI_PHYSICAL_ADDRESS)ARM_EB_SYS_FLAGS_SET_REG,
|
|
||||||
(EFI_PHYSICAL_ADDRESS)ARM_EB_SYS_FLAGS_CLR_REG,
|
|
||||||
(UINT64)0xFFFFFFFF
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
/**
|
|
||||||
Return the current Boot Mode
|
|
||||||
|
|
||||||
This function returns the boot reason on the platform
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_BOOT_MODE
|
|
||||||
ArmPlatformGetBootMode (
|
|
||||||
VOID
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return BOOT_WITH_FULL_CONFIGURATION;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Initialize controllers that must setup in the normal world
|
|
||||||
|
|
||||||
This function is called by the ArmPlatformPkg/PrePi or ArmPlatformPkg/PlatformPei
|
|
||||||
in the PEI phase.
|
|
||||||
|
|
||||||
**/
|
|
||||||
RETURN_STATUS
|
|
||||||
ArmPlatformInitialize (
|
|
||||||
IN UINTN MpId
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (!ArmPlatformIsPrimaryCore (MpId)) {
|
|
||||||
return RETURN_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Disable memory remapping and return to normal mapping
|
|
||||||
MmioOr32 (ARM_EB_SYSCTRL, BIT8); //EB_SP810_CTRL_BASE
|
|
||||||
|
|
||||||
// Configure periodic timer (TIMER0) for 1MHz operation
|
|
||||||
MmioOr32 (SP810_CTRL_BASE + SP810_SYS_CTRL_REG, SP810_SYS_CTRL_TIMER0_TIMCLK);
|
|
||||||
// Configure 1MHz clock
|
|
||||||
MmioOr32 (SP810_CTRL_BASE + SP810_SYS_CTRL_REG, SP810_SYS_CTRL_TIMER1_TIMCLK);
|
|
||||||
// configure SP810 to use 1MHz clock and disable
|
|
||||||
MmioAndThenOr32 (SP810_CTRL_BASE + SP810_SYS_CTRL_REG, ~SP810_SYS_CTRL_TIMER2_EN, SP810_SYS_CTRL_TIMER2_TIMCLK);
|
|
||||||
// Configure SP810 to use 1MHz clock and disable
|
|
||||||
MmioAndThenOr32 (SP810_CTRL_BASE + SP810_SYS_CTRL_REG, ~SP810_SYS_CTRL_TIMER3_EN, SP810_SYS_CTRL_TIMER3_TIMCLK);
|
|
||||||
|
|
||||||
return RETURN_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Initialize the system (or sometimes called permanent) memory
|
|
||||||
|
|
||||||
This memory is generally represented by the DRAM.
|
|
||||||
|
|
||||||
**/
|
|
||||||
VOID
|
|
||||||
ArmPlatformInitializeSystemMemory (
|
|
||||||
VOID
|
|
||||||
)
|
|
||||||
{
|
|
||||||
// We do not need to initialize the System Memory on RTSM
|
|
||||||
}
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
PrePeiCoreGetMpCoreInfo (
|
|
||||||
OUT UINTN *CoreCount,
|
|
||||||
OUT ARM_CORE_INFO **ArmCoreTable
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if ((MmioRead32 (ARM_EB_SYS_PROCID0_REG) & ARM_EB_SYS_PROC_ID_MASK) == ARM_EB_SYS_PROC_ID_CORTEX_A9) {
|
|
||||||
*CoreCount = sizeof(mRealViewEbMpCoreInfoTable) / sizeof(ARM_CORE_INFO);
|
|
||||||
*ArmCoreTable = mRealViewEbMpCoreInfoTable;
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
} else {
|
|
||||||
return EFI_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Needs to be declared in the file. Otherwise gArmMpCoreInfoPpiGuid is undefined in the contect of PrePeiCore
|
|
||||||
EFI_GUID mArmMpCoreInfoPpiGuid = ARM_MP_CORE_INFO_PPI_GUID;
|
|
||||||
ARM_MP_CORE_INFO_PPI mMpCoreInfoPpi = { PrePeiCoreGetMpCoreInfo };
|
|
||||||
|
|
||||||
EFI_PEI_PPI_DESCRIPTOR gPlatformPpiTable[] = {
|
|
||||||
{
|
|
||||||
EFI_PEI_PPI_DESCRIPTOR_PPI,
|
|
||||||
&mArmMpCoreInfoPpiGuid,
|
|
||||||
&mMpCoreInfoPpi
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
VOID
|
|
||||||
ArmPlatformGetPlatformPpiList (
|
|
||||||
OUT UINTN *PpiListSize,
|
|
||||||
OUT EFI_PEI_PPI_DESCRIPTOR **PpiList
|
|
||||||
)
|
|
||||||
{
|
|
||||||
*PpiListSize = sizeof(gPlatformPpiTable);
|
|
||||||
*PpiList = gPlatformPpiTable;
|
|
||||||
}
|
|
||||||
|
|
@@ -1,53 +0,0 @@
|
|||||||
//
|
|
||||||
// Copyright (c) 2012-2013, ARM Limited. All rights reserved.
|
|
||||||
//
|
|
||||||
// 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.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#include <AsmMacroIoLib.h>
|
|
||||||
#include <Library/ArmLib.h>
|
|
||||||
|
|
||||||
.text
|
|
||||||
.align 2
|
|
||||||
|
|
||||||
GCC_ASM_EXPORT(ArmPlatformPeiBootAction)
|
|
||||||
GCC_ASM_EXPORT(ArmPlatformGetCorePosition)
|
|
||||||
GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore)
|
|
||||||
|
|
||||||
GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCore)
|
|
||||||
GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask)
|
|
||||||
|
|
||||||
//UINTN
|
|
||||||
//ArmPlatformGetCorePosition (
|
|
||||||
// IN UINTN MpId
|
|
||||||
// );
|
|
||||||
ASM_PFX(ArmPlatformGetCorePosition):
|
|
||||||
and r1, r0, #ARM_CORE_MASK
|
|
||||||
and r0, r0, #ARM_CLUSTER_MASK
|
|
||||||
add r0, r1, r0, LSR #7
|
|
||||||
bx lr
|
|
||||||
|
|
||||||
//UINTN
|
|
||||||
//ArmPlatformIsPrimaryCore (
|
|
||||||
// IN UINTN MpId
|
|
||||||
// );
|
|
||||||
ASM_PFX(ArmPlatformIsPrimaryCore):
|
|
||||||
LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, r1)
|
|
||||||
ldr r1, [r1]
|
|
||||||
and r0, r0, r1
|
|
||||||
LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r1)
|
|
||||||
ldr r1, [r1]
|
|
||||||
cmp r0, r1
|
|
||||||
moveq r0, #1
|
|
||||||
movne r0, #0
|
|
||||||
bx lr
|
|
||||||
|
|
||||||
ASM_PFX(ArmPlatformPeiBootAction):
|
|
||||||
bx lr
|
|
@@ -1,59 +0,0 @@
|
|||||||
//
|
|
||||||
// Copyright (c) 2012-2013, ARM Limited. All rights reserved.
|
|
||||||
//
|
|
||||||
// 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.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#include <AsmMacroIoLib.h>
|
|
||||||
#include <Library/ArmLib.h>
|
|
||||||
|
|
||||||
INCLUDE AsmMacroIoLib.inc
|
|
||||||
|
|
||||||
EXPORT ArmPlatformPeiBootAction
|
|
||||||
EXPORT ArmPlatformGetCorePosition
|
|
||||||
EXPORT ArmPlatformIsPrimaryCore
|
|
||||||
|
|
||||||
IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCore
|
|
||||||
IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCoreMask
|
|
||||||
|
|
||||||
AREA ArmRealViewEbHelper, CODE, READONLY
|
|
||||||
|
|
||||||
//UINTN
|
|
||||||
//ArmPlatformGetCorePosition (
|
|
||||||
// IN UINTN MpId
|
|
||||||
// );
|
|
||||||
ArmPlatformGetCorePosition FUNCTION
|
|
||||||
and r1, r0, #ARM_CORE_MASK
|
|
||||||
and r0, r0, #ARM_CLUSTER_MASK
|
|
||||||
add r0, r1, r0, LSR #7
|
|
||||||
bx lr
|
|
||||||
ENDFUNC
|
|
||||||
|
|
||||||
//UINTN
|
|
||||||
//ArmPlatformIsPrimaryCore (
|
|
||||||
// IN UINTN MpId
|
|
||||||
// );
|
|
||||||
ArmPlatformIsPrimaryCore FUNCTION
|
|
||||||
LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, r1)
|
|
||||||
ldr r1, [r1]
|
|
||||||
and r0, r0, r1
|
|
||||||
LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r1)
|
|
||||||
ldr r1, [r1]
|
|
||||||
cmp r0, r1
|
|
||||||
moveq r0, #1
|
|
||||||
movne r0, #0
|
|
||||||
bx lr
|
|
||||||
ENDFUNC
|
|
||||||
|
|
||||||
ArmPlatformPeiBootAction FUNCTION
|
|
||||||
bx lr
|
|
||||||
ENDFUNC
|
|
||||||
|
|
||||||
END
|
|
@@ -1,50 +0,0 @@
|
|||||||
#/* @file
|
|
||||||
# Copyright (c) 2011-2013, ARM Limited. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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]
|
|
||||||
INF_VERSION = 0x00010005
|
|
||||||
BASE_NAME = ArmRealViewEbLib
|
|
||||||
FILE_GUID = 736343a0-1d96-11e0-aaaa-0002a5d5c51b
|
|
||||||
MODULE_TYPE = BASE
|
|
||||||
VERSION_STRING = 1.0
|
|
||||||
LIBRARY_CLASS = ArmPlatformLib
|
|
||||||
|
|
||||||
[Packages]
|
|
||||||
MdePkg/MdePkg.dec
|
|
||||||
MdeModulePkg/MdeModulePkg.dec
|
|
||||||
EmbeddedPkg/EmbeddedPkg.dec
|
|
||||||
ArmPkg/ArmPkg.dec
|
|
||||||
ArmPlatformPkg/ArmPlatformPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
|
||||||
IoLib
|
|
||||||
ArmLib
|
|
||||||
MemoryAllocationLib
|
|
||||||
|
|
||||||
[Sources.common]
|
|
||||||
ArmRealViewEbHelper.asm | RVCT
|
|
||||||
ArmRealViewEbHelper.S | GCC
|
|
||||||
ArmRealViewEb.c
|
|
||||||
ArmRealViewEbMem.c
|
|
||||||
ArmRealViewEbHelper.asm | RVCT
|
|
||||||
ArmRealViewEbHelper.S | GCC
|
|
||||||
|
|
||||||
[FeaturePcd]
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdCacheEnable
|
|
||||||
|
|
||||||
[FixedPcd]
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemoryBase
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemorySize
|
|
||||||
|
|
||||||
gArmTokenSpaceGuid.PcdArmPrimaryCoreMask
|
|
||||||
gArmTokenSpaceGuid.PcdArmPrimaryCore
|
|
@@ -1,46 +0,0 @@
|
|||||||
#/* @file
|
|
||||||
# Copyright (c) 2011-2012, ARM Limited. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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]
|
|
||||||
INF_VERSION = 0x00010005
|
|
||||||
BASE_NAME = ArmRealViewEbLibSec
|
|
||||||
FILE_GUID = 5d1013ae-57b8-4a37-87d8-f5bf70e49059
|
|
||||||
MODULE_TYPE = SEC
|
|
||||||
VERSION_STRING = 1.0
|
|
||||||
LIBRARY_CLASS = ArmPlatformLib
|
|
||||||
|
|
||||||
[Packages]
|
|
||||||
MdePkg/MdePkg.dec
|
|
||||||
MdeModulePkg/MdeModulePkg.dec
|
|
||||||
EmbeddedPkg/EmbeddedPkg.dec
|
|
||||||
ArmPkg/ArmPkg.dec
|
|
||||||
ArmPlatformPkg/ArmPlatformPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
|
||||||
IoLib
|
|
||||||
ArmLib
|
|
||||||
|
|
||||||
[Sources.common]
|
|
||||||
ArmRealViewEb.c
|
|
||||||
ArmRealViewEbHelper.asm | RVCT
|
|
||||||
ArmRealViewEbHelper.S | GCC
|
|
||||||
|
|
||||||
[FeaturePcd]
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdCacheEnable
|
|
||||||
|
|
||||||
[FixedPcd]
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemoryBase
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemorySize
|
|
||||||
|
|
||||||
gArmTokenSpaceGuid.PcdArmPrimaryCoreMask
|
|
||||||
gArmTokenSpaceGuid.PcdArmPrimaryCore
|
|
@@ -1,116 +0,0 @@
|
|||||||
/** @file
|
|
||||||
*
|
|
||||||
* Copyright (c) 2011, ARM Limited. All rights reserved.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include <Library/ArmPlatformLib.h>
|
|
||||||
#include <Library/DebugLib.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
#include <Library/MemoryAllocationLib.h>
|
|
||||||
#include <Library/IoLib.h>
|
|
||||||
|
|
||||||
#include <ArmPlatform.h>
|
|
||||||
|
|
||||||
#define MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS 6
|
|
||||||
|
|
||||||
// DDR attributes
|
|
||||||
#define DDR_ATTRIBUTES_CACHED ARM_MEMORY_REGION_ATTRIBUTE_WRITE_BACK
|
|
||||||
#define DDR_ATTRIBUTES_UNCACHED ARM_MEMORY_REGION_ATTRIBUTE_UNCACHED_UNBUFFERED
|
|
||||||
|
|
||||||
/**
|
|
||||||
Return the Virtual Memory Map of your platform
|
|
||||||
|
|
||||||
This Virtual Memory Map is used by MemoryInitPei Module to initialize the MMU on your platform.
|
|
||||||
|
|
||||||
@param[out] VirtualMemoryMap Array of ARM_MEMORY_REGION_DESCRIPTOR describing a Physical-to-
|
|
||||||
Virtual Memory mapping. This array must be ended by a zero-filled
|
|
||||||
entry
|
|
||||||
|
|
||||||
**/
|
|
||||||
VOID
|
|
||||||
ArmPlatformGetVirtualMemoryMap (
|
|
||||||
IN ARM_MEMORY_REGION_DESCRIPTOR** VirtualMemoryMap
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINT32 CacheAttributes;
|
|
||||||
UINTN Index = 0;
|
|
||||||
ARM_MEMORY_REGION_DESCRIPTOR *VirtualMemoryTable;
|
|
||||||
|
|
||||||
ASSERT(VirtualMemoryMap != NULL);
|
|
||||||
|
|
||||||
VirtualMemoryTable = (ARM_MEMORY_REGION_DESCRIPTOR*)AllocatePages (EFI_SIZE_TO_PAGES (sizeof(ARM_MEMORY_REGION_DESCRIPTOR) * MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS));
|
|
||||||
if (VirtualMemoryTable == NULL) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (FeaturePcdGet(PcdCacheEnable) == TRUE) {
|
|
||||||
CacheAttributes = DDR_ATTRIBUTES_CACHED;
|
|
||||||
} else {
|
|
||||||
CacheAttributes = DDR_ATTRIBUTES_UNCACHED;
|
|
||||||
}
|
|
||||||
|
|
||||||
// ReMap (Either NOR Flash or DRAM)
|
|
||||||
VirtualMemoryTable[Index].PhysicalBase = ARM_EB_REMAP_BASE;
|
|
||||||
VirtualMemoryTable[Index].VirtualBase = ARM_EB_REMAP_BASE;
|
|
||||||
VirtualMemoryTable[Index].Length = ARM_EB_REMAP_SZ;
|
|
||||||
VirtualMemoryTable[Index].Attributes = (ARM_MEMORY_REGION_ATTRIBUTES)CacheAttributes;
|
|
||||||
|
|
||||||
// DDR
|
|
||||||
VirtualMemoryTable[++Index].PhysicalBase = PcdGet64 (PcdSystemMemoryBase);
|
|
||||||
VirtualMemoryTable[Index].VirtualBase = PcdGet64 (PcdSystemMemoryBase);
|
|
||||||
VirtualMemoryTable[Index].Length = PcdGet64 (PcdSystemMemorySize);
|
|
||||||
VirtualMemoryTable[Index].Attributes = (ARM_MEMORY_REGION_ATTRIBUTES)CacheAttributes;
|
|
||||||
|
|
||||||
// SMC CS7
|
|
||||||
VirtualMemoryTable[++Index].PhysicalBase = ARM_EB_SMB_MB_ON_CHIP_PERIPH_BASE;
|
|
||||||
VirtualMemoryTable[Index].VirtualBase = ARM_EB_SMB_MB_ON_CHIP_PERIPH_BASE;
|
|
||||||
VirtualMemoryTable[Index].Length = ARM_EB_SMB_MB_ON_CHIP_PERIPH_SZ;
|
|
||||||
VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;
|
|
||||||
|
|
||||||
// SMB CS0-CS1 - NOR Flash 1 & 2
|
|
||||||
VirtualMemoryTable[++Index].PhysicalBase = ARM_EB_SMB_NOR_BASE;
|
|
||||||
VirtualMemoryTable[Index].VirtualBase = ARM_EB_SMB_NOR_BASE;
|
|
||||||
VirtualMemoryTable[Index].Length = ARM_EB_SMB_NOR_SZ + ARM_EB_SMB_DOC_SZ;
|
|
||||||
VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;
|
|
||||||
|
|
||||||
// SMB CS2 - SRAM
|
|
||||||
VirtualMemoryTable[++Index].PhysicalBase = ARM_EB_SMB_SRAM_BASE;
|
|
||||||
VirtualMemoryTable[Index].VirtualBase = ARM_EB_SMB_SRAM_BASE;
|
|
||||||
VirtualMemoryTable[Index].Length = ARM_EB_SMB_SRAM_SZ;
|
|
||||||
VirtualMemoryTable[Index].Attributes = (ARM_MEMORY_REGION_ATTRIBUTES)CacheAttributes;
|
|
||||||
|
|
||||||
// SMB CS3-CS6 - Motherboard Peripherals
|
|
||||||
VirtualMemoryTable[++Index].PhysicalBase = ARM_EB_SMB_PERIPH_BASE;
|
|
||||||
VirtualMemoryTable[Index].VirtualBase = ARM_EB_SMB_PERIPH_BASE;
|
|
||||||
VirtualMemoryTable[Index].Length = ARM_EB_SMB_PERIPH_SZ;
|
|
||||||
VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;
|
|
||||||
|
|
||||||
// If a Logic Tile is connected to The ARM Versatile Express Motherboard
|
|
||||||
if (MmioRead32(ARM_EB_SYS_PROCID1_REG) != 0) {
|
|
||||||
VirtualMemoryTable[++Index].PhysicalBase = ARM_EB_LOGIC_TILE_BASE;
|
|
||||||
VirtualMemoryTable[Index].VirtualBase = ARM_EB_LOGIC_TILE_BASE;
|
|
||||||
VirtualMemoryTable[Index].Length = ARM_EB_LOGIC_TILE_SZ;
|
|
||||||
VirtualMemoryTable[Index].Attributes = ARM_MEMORY_REGION_ATTRIBUTE_DEVICE;
|
|
||||||
|
|
||||||
ASSERT((Index + 1) == (MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS + 1));
|
|
||||||
} else {
|
|
||||||
ASSERT((Index + 1) == MAX_VIRTUAL_MEMORY_MAP_DESCRIPTORS);
|
|
||||||
}
|
|
||||||
|
|
||||||
// End of Table
|
|
||||||
VirtualMemoryTable[++Index].PhysicalBase = 0;
|
|
||||||
VirtualMemoryTable[Index].VirtualBase = 0;
|
|
||||||
VirtualMemoryTable[Index].Length = 0;
|
|
||||||
VirtualMemoryTable[Index].Attributes = (ARM_MEMORY_REGION_ATTRIBUTES)0;
|
|
||||||
|
|
||||||
*VirtualMemoryMap = VirtualMemoryTable;
|
|
||||||
}
|
|
@@ -1,54 +0,0 @@
|
|||||||
//
|
|
||||||
// Copyright (c) 2011-2012, ARM Limited. All rights reserved.
|
|
||||||
//
|
|
||||||
// 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.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#include <AsmMacroIoLib.h>
|
|
||||||
#include <Base.h>
|
|
||||||
#include <Library/ArmPlatformSecLib.h>
|
|
||||||
#include <ArmPlatform.h>
|
|
||||||
#include <AutoGen.h>
|
|
||||||
|
|
||||||
.text
|
|
||||||
.align 3
|
|
||||||
|
|
||||||
GCC_ASM_EXPORT(ArmPlatformSecBootAction)
|
|
||||||
GCC_ASM_EXPORT(ArmPlatformSecBootMemoryInit)
|
|
||||||
|
|
||||||
/**
|
|
||||||
Call at the beginning of the platform boot up
|
|
||||||
|
|
||||||
This function allows the firmware platform to do extra actions at the early
|
|
||||||
stage of the platform power up.
|
|
||||||
|
|
||||||
Note: This function must be implemented in assembler as there is no stack set up yet
|
|
||||||
|
|
||||||
**/
|
|
||||||
ASM_PFX(ArmPlatformSecBootAction):
|
|
||||||
LoadConstantToReg (ARM_EB_SYS_FLAGS_NV_REG, r0)
|
|
||||||
ldr r0, [r0]
|
|
||||||
cmp r0, #0
|
|
||||||
bxeq lr
|
|
||||||
bxne r0
|
|
||||||
|
|
||||||
/**
|
|
||||||
Initialize the memory where the initial stacks will reside
|
|
||||||
|
|
||||||
This memory can contain the initial stacks (Secure and Secure Monitor stacks).
|
|
||||||
In some platform, this region is already initialized and the implementation of this function can
|
|
||||||
do nothing. This memory can also represent the Secure RAM.
|
|
||||||
This function is called before the satck has been set up. Its implementation must ensure the stack
|
|
||||||
pointer is not used (probably required to use assembly language)
|
|
||||||
|
|
||||||
**/
|
|
||||||
ASM_PFX(ArmPlatformSecBootMemoryInit):
|
|
||||||
// The SMC does not need to be initialized for RTSM
|
|
||||||
bx lr
|
|
@@ -1,58 +0,0 @@
|
|||||||
//
|
|
||||||
// Copyright (c) 2011-2012, ARM Limited. All rights reserved.
|
|
||||||
//
|
|
||||||
// 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.
|
|
||||||
//
|
|
||||||
//
|
|
||||||
|
|
||||||
#include <AsmMacroIoLib.h>
|
|
||||||
#include <Base.h>
|
|
||||||
#include <Library/ArmPlatformSecLib.h>
|
|
||||||
#include <ArmPlatform.h>
|
|
||||||
#include <AutoGen.h>
|
|
||||||
|
|
||||||
INCLUDE AsmMacroIoLib.inc
|
|
||||||
|
|
||||||
EXPORT ArmPlatformSecBootAction
|
|
||||||
EXPORT ArmPlatformSecBootMemoryInit
|
|
||||||
|
|
||||||
PRESERVE8
|
|
||||||
AREA ArmRealviewEbBootMode, CODE, READONLY
|
|
||||||
|
|
||||||
/**
|
|
||||||
Call at the beginning of the platform boot up
|
|
||||||
|
|
||||||
This function allows the firmware platform to do extra actions at the early
|
|
||||||
stage of the platform power up.
|
|
||||||
|
|
||||||
Note: This function must be implemented in assembler as there is no stack set up yet
|
|
||||||
|
|
||||||
**/
|
|
||||||
ArmPlatformSecBootAction
|
|
||||||
LoadConstantToReg (ARM_EB_SYS_FLAGS_NV_REG, r0)
|
|
||||||
ldr r0, [r0]
|
|
||||||
cmp r0, #0
|
|
||||||
bxeq lr
|
|
||||||
bxne r0
|
|
||||||
|
|
||||||
/**
|
|
||||||
Initialize the memory where the initial stacks will reside
|
|
||||||
|
|
||||||
This memory can contain the initial stacks (Secure and Secure Monitor stacks).
|
|
||||||
In some platform, this region is already initialized and the implementation of this function can
|
|
||||||
do nothing. This memory can also represent the Secure RAM.
|
|
||||||
This function is called before the satck has been set up. Its implementation must ensure the stack
|
|
||||||
pointer is not used (probably required to use assembly language)
|
|
||||||
|
|
||||||
**/
|
|
||||||
ArmPlatformSecBootMemoryInit
|
|
||||||
// The SMC does not need to be initialized for RTSM
|
|
||||||
bx lr
|
|
||||||
|
|
||||||
END
|
|
@@ -1,78 +0,0 @@
|
|||||||
/** @file
|
|
||||||
*
|
|
||||||
* Copyright (c) 2011-2014, ARM Limited. All rights reserved.
|
|
||||||
*
|
|
||||||
* 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.
|
|
||||||
*
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include <Library/IoLib.h>
|
|
||||||
#include <Library/ArmLib.h>
|
|
||||||
#include <Library/ArmPlatformLib.h>
|
|
||||||
#include <Library/ArmPlatformSecLib.h>
|
|
||||||
#include <Library/DebugLib.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
|
|
||||||
#include <Drivers/PL341Dmc.h>
|
|
||||||
#include <Drivers/SP804Timer.h>
|
|
||||||
|
|
||||||
#include <ArmPlatform.h>
|
|
||||||
|
|
||||||
/**
|
|
||||||
Initialize the Secure peripherals and memory regions
|
|
||||||
|
|
||||||
If Trustzone is supported by your platform then this function makes the required initialization
|
|
||||||
of the secure peripherals and memory regions.
|
|
||||||
|
|
||||||
**/
|
|
||||||
VOID
|
|
||||||
ArmPlatformSecTrustzoneInit (
|
|
||||||
IN UINTN MpId
|
|
||||||
)
|
|
||||||
{
|
|
||||||
ASSERT(FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Initialize controllers that must setup at the early stage
|
|
||||||
|
|
||||||
Some peripherals must be initialized in Secure World.
|
|
||||||
For example, some L2x0 requires to be initialized in Secure World
|
|
||||||
|
|
||||||
**/
|
|
||||||
RETURN_STATUS
|
|
||||||
ArmPlatformSecInitialize (
|
|
||||||
IN UINTN MpId
|
|
||||||
)
|
|
||||||
{
|
|
||||||
// If it is not the primary core then there is nothing to do
|
|
||||||
if (!ArmPlatformIsPrimaryCore (MpId)) {
|
|
||||||
return RETURN_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Do nothing yet
|
|
||||||
return RETURN_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
Call before jumping to Normal World
|
|
||||||
|
|
||||||
This function allows the firmware platform to do extra actions before
|
|
||||||
jumping to the Normal World
|
|
||||||
|
|
||||||
**/
|
|
||||||
VOID
|
|
||||||
ArmPlatformSecExtraAction (
|
|
||||||
IN UINTN MpId,
|
|
||||||
OUT UINTN* JumpAddress
|
|
||||||
)
|
|
||||||
{
|
|
||||||
*JumpAddress = (UINTN)PcdGet64 (PcdFvBaseAddress);
|
|
||||||
}
|
|
||||||
|
|
@@ -1,41 +0,0 @@
|
|||||||
#/* @file
|
|
||||||
# Copyright (c) 2011-2012, ARM Limited. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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]
|
|
||||||
INF_VERSION = 0x00010005
|
|
||||||
BASE_NAME = ArmRealViewEbSecLib
|
|
||||||
FILE_GUID = 6e02ebe0-1d96-11e0-b9cb-0002a5d5c51b
|
|
||||||
MODULE_TYPE = BASE
|
|
||||||
VERSION_STRING = 1.0
|
|
||||||
LIBRARY_CLASS = ArmPlatformSecLib
|
|
||||||
|
|
||||||
[Packages]
|
|
||||||
MdePkg/MdePkg.dec
|
|
||||||
MdeModulePkg/MdeModulePkg.dec
|
|
||||||
EmbeddedPkg/EmbeddedPkg.dec
|
|
||||||
ArmPkg/ArmPkg.dec
|
|
||||||
ArmPlatformPkg/ArmPlatformPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
|
||||||
IoLib
|
|
||||||
ArmLib
|
|
||||||
ArmPlatformLib
|
|
||||||
|
|
||||||
[Sources.common]
|
|
||||||
ArmRealViewEbSec.c
|
|
||||||
ArmRealViewEbBoot.asm | RVCT
|
|
||||||
ArmRealViewEbBoot.S | GCC
|
|
||||||
|
|
||||||
[FixedPcd]
|
|
||||||
gArmTokenSpaceGuid.PcdFvBaseAddress
|
|
||||||
|
|
@@ -1,77 +0,0 @@
|
|||||||
/** @file
|
|
||||||
Template for ArmEb DebugAgentLib.
|
|
||||||
|
|
||||||
For ARM we reserve FIQ for the Debug Agent Timer. We don't care about
|
|
||||||
laytency as we only really need the timer to run a few times a second
|
|
||||||
(how fast can some one type a ctrl-c?), but it works much better if
|
|
||||||
the interrupt we are using to break into the debugger is not being
|
|
||||||
used, and masked, by the system.
|
|
||||||
|
|
||||||
Copyright (c) 2008 - 2010, Apple Inc. 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.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include <Base.h>
|
|
||||||
|
|
||||||
#include <Library/DebugAgentTimerLib.h>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Setup all the hardware needed for the debug agents timer.
|
|
||||||
|
|
||||||
This function is used to set up debug enviroment.
|
|
||||||
|
|
||||||
**/
|
|
||||||
VOID
|
|
||||||
EFIAPI
|
|
||||||
DebugAgentTimerIntialize (
|
|
||||||
VOID
|
|
||||||
)
|
|
||||||
{
|
|
||||||
// Map Timer to FIQ
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Set the period for the debug agent timer. Zero means disable the timer.
|
|
||||||
|
|
||||||
@param[in] TimerPeriodMilliseconds Frequency of the debug agent timer.
|
|
||||||
|
|
||||||
**/
|
|
||||||
VOID
|
|
||||||
EFIAPI
|
|
||||||
DebugAgentTimerSetPeriod (
|
|
||||||
IN UINT32 TimerPeriodMilliseconds
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (TimerPeriodMilliseconds == 0) {
|
|
||||||
// Disable timer and Disable FIQ
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set timer period and unmask FIQ
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Perform End Of Interrupt for the debug agent timer. This is called in the
|
|
||||||
interrupt handler after the interrupt has been processed.
|
|
||||||
|
|
||||||
**/
|
|
||||||
VOID
|
|
||||||
EFIAPI
|
|
||||||
DebugAgentTimerEndOfInterrupt (
|
|
||||||
VOID
|
|
||||||
)
|
|
||||||
{
|
|
||||||
// EOI Timer interrupt for FIQ
|
|
||||||
}
|
|
@@ -1,38 +0,0 @@
|
|||||||
#/** @file
|
|
||||||
# Component description file for Base PCI Cf8 Library.
|
|
||||||
#
|
|
||||||
# PCI CF8 Library that uses I/O ports 0xCF8 and 0xCFC to perform PCI Configuration cycles.
|
|
||||||
# Layers on top of an I/O Library instance.
|
|
||||||
# Copyright (c) 2007, 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]
|
|
||||||
INF_VERSION = 0x00010005
|
|
||||||
BASE_NAME = ArmEbDebugAgentTimerLib
|
|
||||||
FILE_GUID = 80949BBB-68EE-4a4c-B434-D5DB5A232F0C
|
|
||||||
MODULE_TYPE = BASE
|
|
||||||
VERSION_STRING = 1.0
|
|
||||||
LIBRARY_CLASS = DebugAgentTimerLib|SEC BASE DXE_CORE
|
|
||||||
|
|
||||||
|
|
||||||
[Sources.common]
|
|
||||||
DebugAgentTimerLib.c
|
|
||||||
|
|
||||||
|
|
||||||
[Packages]
|
|
||||||
MdePkg/MdePkg.dec
|
|
||||||
EmbeddedPkg/EmbeddedPkg.dec
|
|
||||||
ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEbPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
|
||||||
IoLib
|
|
||||||
|
|
@@ -1,118 +0,0 @@
|
|||||||
/** @file
|
|
||||||
Basic serial IO abstaction for GDB
|
|
||||||
|
|
||||||
Copyright (c) 2008 - 2009, Apple Inc. 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.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include <Uefi.h>
|
|
||||||
#include <Library/GdbSerialLib.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
#include <Library/IoLib.h>
|
|
||||||
#include <Drivers/PL011Uart.h>
|
|
||||||
|
|
||||||
RETURN_STATUS
|
|
||||||
EFIAPI
|
|
||||||
GdbSerialLibConstructor (
|
|
||||||
VOID
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return GdbSerialInit (115200, 0, 8, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
RETURN_STATUS
|
|
||||||
EFIAPI
|
|
||||||
GdbSerialInit (
|
|
||||||
IN UINT64 BaudRate,
|
|
||||||
IN UINT8 Parity,
|
|
||||||
IN UINT8 DataBits,
|
|
||||||
IN UINT8 StopBits
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if ((Parity != 0) || (DataBits != 8) || (StopBits != 1)) {
|
|
||||||
return RETURN_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (BaudRate != 115200) {
|
|
||||||
// Could add support for different Baud rates....
|
|
||||||
return RETURN_UNSUPPORTED;
|
|
||||||
}
|
|
||||||
|
|
||||||
UINT32 Base = PcdGet32 (PcdGdbUartBase);
|
|
||||||
|
|
||||||
// initialize baud rate generator to 115200 based on EB clock REFCLK24MHZ
|
|
||||||
MmioWrite32 (Base + UARTIBRD, UART_115200_IDIV);
|
|
||||||
MmioWrite32 (Base + UARTFBRD, UART_115200_FDIV);
|
|
||||||
|
|
||||||
// no parity, 1 stop, no fifo, 8 data bits
|
|
||||||
MmioWrite32 (Base + UARTLCR_H, 0x60);
|
|
||||||
|
|
||||||
// clear any pending errors
|
|
||||||
MmioWrite32 (Base + UARTECR, 0);
|
|
||||||
|
|
||||||
// enable tx, rx, and uart overall
|
|
||||||
MmioWrite32 (Base + UARTCR, 0x301);
|
|
||||||
|
|
||||||
return RETURN_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOLEAN
|
|
||||||
EFIAPI
|
|
||||||
GdbIsCharAvailable (
|
|
||||||
VOID
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINT32 FR = PcdGet32 (PcdGdbUartBase) + UARTFR;
|
|
||||||
|
|
||||||
if ((MmioRead32 (FR) & UART_RX_EMPTY_FLAG_MASK) == 0) {
|
|
||||||
return TRUE;
|
|
||||||
} else {
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CHAR8
|
|
||||||
EFIAPI
|
|
||||||
GdbGetChar (
|
|
||||||
VOID
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINT32 FR = PcdGet32 (PcdGdbUartBase) + UARTFR;
|
|
||||||
UINT32 DR = PcdGet32 (PcdGdbUartBase) + UARTDR;
|
|
||||||
|
|
||||||
while ((MmioRead32 (FR) & UART_RX_EMPTY_FLAG_MASK) == 0);
|
|
||||||
return MmioRead8 (DR);
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
EFIAPI
|
|
||||||
GdbPutChar (
|
|
||||||
IN CHAR8 Char
|
|
||||||
)
|
|
||||||
{
|
|
||||||
UINT32 FR = PcdGet32 (PcdGdbUartBase) + UARTFR;
|
|
||||||
UINT32 DR = PcdGet32 (PcdGdbUartBase) + UARTDR;
|
|
||||||
|
|
||||||
while ((MmioRead32 (FR) & UART_TX_EMPTY_FLAG_MASK) != 0);
|
|
||||||
MmioWrite8 (DR, Char);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
VOID
|
|
||||||
GdbPutString (
|
|
||||||
IN CHAR8 *String
|
|
||||||
)
|
|
||||||
{
|
|
||||||
while (*String != '\0') {
|
|
||||||
GdbPutChar (*String);
|
|
||||||
String++;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,39 +0,0 @@
|
|||||||
#/** @file
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008 - 2010, Apple Inc. 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]
|
|
||||||
INF_VERSION = 0x00010005
|
|
||||||
BASE_NAME = GdbSerialLib
|
|
||||||
FILE_GUID = E8EA1309-2F14-428f-ABE3-7016CE4B4305
|
|
||||||
MODULE_TYPE = BASE
|
|
||||||
VERSION_STRING = 1.0
|
|
||||||
LIBRARY_CLASS = GdbSerialLib
|
|
||||||
|
|
||||||
CONSTRUCTOR = GdbSerialLibConstructor
|
|
||||||
|
|
||||||
|
|
||||||
[Sources.common]
|
|
||||||
GdbSerialLib.c
|
|
||||||
|
|
||||||
|
|
||||||
[Packages]
|
|
||||||
MdePkg/MdePkg.dec
|
|
||||||
EmbeddedPkg/EmbeddedPkg.dec
|
|
||||||
ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEbPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
|
||||||
DebugLib
|
|
||||||
IoLib
|
|
||||||
|
|
||||||
[FixedPcd]
|
|
||||||
gArmRealViewEbPkgTokenSpaceGuid.PcdGdbUartBase
|
|
@@ -1,54 +0,0 @@
|
|||||||
/** @file
|
|
||||||
|
|
||||||
Copyright (c) 2011-2014, ARM Ltd. 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.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include <PiDxe.h>
|
|
||||||
#include <Library/NorFlashPlatformLib.h>
|
|
||||||
#include <ArmPlatform.h>
|
|
||||||
|
|
||||||
#define NOR_FLASH_DEVICE_COUNT 1
|
|
||||||
|
|
||||||
// RTSM
|
|
||||||
NOR_FLASH_DESCRIPTION mNorFlashDevices[NOR_FLASH_DEVICE_COUNT] = {
|
|
||||||
{ // UEFI
|
|
||||||
ARM_EB_SMB_NOR_BASE,
|
|
||||||
ARM_EB_SMB_NOR_BASE,
|
|
||||||
SIZE_128KB * 512,
|
|
||||||
SIZE_128KB,
|
|
||||||
{0xE7223039, 0x5836, 0x41E1, { 0xB5, 0x42, 0xD7, 0xEC, 0x73, 0x6C, 0x5E, 0x59 } }
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
NorFlashPlatformInitialization (
|
|
||||||
VOID
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
NorFlashPlatformGetDevices (
|
|
||||||
OUT NOR_FLASH_DESCRIPTION **NorFlashDevices,
|
|
||||||
OUT UINT32 *Count
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if ((NorFlashDevices == NULL) || (Count == NULL)) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
*NorFlashDevices = mNorFlashDevices;
|
|
||||||
*Count = NOR_FLASH_DEVICE_COUNT;
|
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
@@ -1,35 +0,0 @@
|
|||||||
#/** @file
|
|
||||||
#
|
|
||||||
# Component description file for NorFlashArmRealViewEbLib module
|
|
||||||
#
|
|
||||||
# Copyright (c) 2011-2012, ARM Ltd. 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]
|
|
||||||
INF_VERSION = 0x00010005
|
|
||||||
BASE_NAME = NorFlashArmRealViewEbLib
|
|
||||||
FILE_GUID = a3a49a60-7597-11e0-b07c-0002a5d5c51b
|
|
||||||
MODULE_TYPE = DXE_DRIVER
|
|
||||||
VERSION_STRING = 1.0
|
|
||||||
LIBRARY_CLASS = NorFlashPlatformLib
|
|
||||||
|
|
||||||
[Sources.common]
|
|
||||||
NorFlashArmRealViewEb.c
|
|
||||||
|
|
||||||
[Packages]
|
|
||||||
MdePkg/MdePkg.dec
|
|
||||||
ArmPlatformPkg/ArmPlatformPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
|
||||||
BaseLib
|
|
||||||
DebugLib
|
|
||||||
IoLib
|
|
@@ -1,232 +0,0 @@
|
|||||||
/** @file
|
|
||||||
|
|
||||||
Copyright (c) 2011, ARM Ltd. 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.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
#include <PiDxe.h>
|
|
||||||
|
|
||||||
#include <Library/DebugLib.h>
|
|
||||||
#include <Library/IoLib.h>
|
|
||||||
#include <Library/LcdPlatformLib.h>
|
|
||||||
#include <Library/UefiBootServicesTableLib.h>
|
|
||||||
|
|
||||||
#include <Protocol/EdidDiscovered.h>
|
|
||||||
#include <Protocol/EdidActive.h>
|
|
||||||
|
|
||||||
#include <Drivers/PL111Lcd.h>
|
|
||||||
|
|
||||||
#include <ArmPlatform.h>
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
UINT32 Mode;
|
|
||||||
UINT32 HorizontalResolution;
|
|
||||||
UINT32 VerticalResolution;
|
|
||||||
LCD_BPP Bpp;
|
|
||||||
UINT32 ClcdClk;
|
|
||||||
|
|
||||||
UINT32 HSync;
|
|
||||||
UINT32 HBackPorch;
|
|
||||||
UINT32 HFrontPorch;
|
|
||||||
UINT32 VSync;
|
|
||||||
UINT32 VBackPorch;
|
|
||||||
UINT32 VFrontPorch;
|
|
||||||
} CLCD_RESOLUTION;
|
|
||||||
|
|
||||||
|
|
||||||
CLCD_RESOLUTION mResolutions[] = {
|
|
||||||
{ // Mode 0 : VGA : 640 x 480 x 24 bpp
|
|
||||||
VGA, VGA_H_RES_PIXELS, VGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_24, 0x2C77,
|
|
||||||
VGA_H_SYNC, VGA_H_BACK_PORCH, VGA_H_FRONT_PORCH,
|
|
||||||
VGA_V_SYNC, VGA_V_BACK_PORCH, VGA_V_FRONT_PORCH
|
|
||||||
},
|
|
||||||
{ // Mode 1 : SVGA : 800 x 600 x 24 bpp
|
|
||||||
SVGA, SVGA_H_RES_PIXELS, SVGA_V_RES_PIXELS, LCD_BITS_PER_PIXEL_24, 0x2CAC,
|
|
||||||
SVGA_H_SYNC, SVGA_H_BACK_PORCH, SVGA_H_FRONT_PORCH,
|
|
||||||
SVGA_V_SYNC, SVGA_V_BACK_PORCH, SVGA_V_FRONT_PORCH
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
EFI_EDID_DISCOVERED_PROTOCOL mEdidDiscovered = {
|
|
||||||
0,
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
EFI_EDID_ACTIVE_PROTOCOL mEdidActive = {
|
|
||||||
0,
|
|
||||||
NULL
|
|
||||||
};
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
LcdPlatformInitializeDisplay (
|
|
||||||
IN EFI_HANDLE Handle
|
|
||||||
)
|
|
||||||
{
|
|
||||||
EFI_STATUS Status;
|
|
||||||
|
|
||||||
MmioWrite32(ARM_EB_SYS_CLCD_REG, 1);
|
|
||||||
|
|
||||||
// Install the EDID Protocols
|
|
||||||
Status = gBS->InstallMultipleProtocolInterfaces(
|
|
||||||
&Handle,
|
|
||||||
&gEfiEdidDiscoveredProtocolGuid, &mEdidDiscovered,
|
|
||||||
&gEfiEdidActiveProtocolGuid, &mEdidActive,
|
|
||||||
NULL
|
|
||||||
);
|
|
||||||
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
LcdPlatformGetVram (
|
|
||||||
OUT EFI_PHYSICAL_ADDRESS* VramBaseAddress,
|
|
||||||
OUT UINTN* VramSize
|
|
||||||
)
|
|
||||||
{
|
|
||||||
*VramBaseAddress = PL111_CLCD_VRAM_BASE;
|
|
||||||
*VramSize = SIZE_8MB; //FIXME: Can this size change ?
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
UINT32
|
|
||||||
LcdPlatformGetMaxMode (
|
|
||||||
VOID
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return (sizeof(mResolutions) / sizeof(CLCD_RESOLUTION));
|
|
||||||
}
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
LcdPlatformSetMode (
|
|
||||||
IN UINT32 ModeNumber
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (ModeNumber >= LcdPlatformGetMaxMode ()) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
MmioWrite32(ARM_EB_SYS_LOCK_REG,0x0000A05F);
|
|
||||||
MmioWrite32(ARM_EB_SYS_OSC4_REG,mResolutions[ModeNumber].ClcdClk);
|
|
||||||
MmioWrite32(ARM_EB_SYS_LOCK_REG,0x0);
|
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
LcdPlatformQueryMode (
|
|
||||||
IN UINT32 ModeNumber,
|
|
||||||
OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info
|
|
||||||
)
|
|
||||||
{
|
|
||||||
EFI_STATUS Status;
|
|
||||||
|
|
||||||
if (ModeNumber >= LcdPlatformGetMaxMode ()) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
Status = EFI_UNSUPPORTED;
|
|
||||||
|
|
||||||
Info->Version = 0;
|
|
||||||
Info->HorizontalResolution = mResolutions[ModeNumber].HorizontalResolution;
|
|
||||||
Info->VerticalResolution = mResolutions[ModeNumber].VerticalResolution;
|
|
||||||
Info->PixelsPerScanLine = mResolutions[ModeNumber].HorizontalResolution;
|
|
||||||
|
|
||||||
switch (mResolutions[ModeNumber].Bpp) {
|
|
||||||
case LCD_BITS_PER_PIXEL_24:
|
|
||||||
Info->PixelFormat = PixelRedGreenBlueReserved8BitPerColor;
|
|
||||||
Info->PixelInformation.RedMask = LCD_24BPP_RED_MASK;
|
|
||||||
Info->PixelInformation.GreenMask = LCD_24BPP_GREEN_MASK;
|
|
||||||
Info->PixelInformation.BlueMask = LCD_24BPP_BLUE_MASK;
|
|
||||||
Info->PixelInformation.ReservedMask = LCD_24BPP_RESERVED_MASK;
|
|
||||||
Status = EFI_SUCCESS;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case LCD_BITS_PER_PIXEL_16_555:
|
|
||||||
Info->PixelFormat = PixelBitMask;
|
|
||||||
Info->PixelInformation.RedMask = LCD_16BPP_555_RED_MASK;
|
|
||||||
Info->PixelInformation.GreenMask = LCD_16BPP_555_GREEN_MASK;
|
|
||||||
Info->PixelInformation.BlueMask = LCD_16BPP_555_BLUE_MASK;
|
|
||||||
Info->PixelInformation.ReservedMask = LCD_16BPP_555_RESERVED_MASK;
|
|
||||||
Status = EFI_SUCCESS;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case LCD_BITS_PER_PIXEL_16_565:
|
|
||||||
Info->PixelFormat = PixelBitMask;
|
|
||||||
Info->PixelInformation.RedMask = LCD_16BPP_565_RED_MASK;
|
|
||||||
Info->PixelInformation.GreenMask = LCD_16BPP_565_GREEN_MASK;
|
|
||||||
Info->PixelInformation.BlueMask = LCD_16BPP_565_BLUE_MASK;
|
|
||||||
Info->PixelInformation.ReservedMask = LCD_16BPP_565_RESERVED_MASK;
|
|
||||||
Status = EFI_SUCCESS;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case LCD_BITS_PER_PIXEL_12_444:
|
|
||||||
Info->PixelFormat = PixelBitMask;
|
|
||||||
Info->PixelInformation.RedMask = LCD_12BPP_444_RED_MASK;
|
|
||||||
Info->PixelInformation.GreenMask = LCD_12BPP_444_GREEN_MASK;
|
|
||||||
Info->PixelInformation.BlueMask = LCD_12BPP_444_BLUE_MASK;
|
|
||||||
Info->PixelInformation.ReservedMask = LCD_12BPP_444_RESERVED_MASK;
|
|
||||||
Status = EFI_SUCCESS;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case LCD_BITS_PER_PIXEL_8:
|
|
||||||
case LCD_BITS_PER_PIXEL_4:
|
|
||||||
case LCD_BITS_PER_PIXEL_2:
|
|
||||||
case LCD_BITS_PER_PIXEL_1:
|
|
||||||
default:
|
|
||||||
// These are not supported
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return Status;
|
|
||||||
}
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
LcdPlatformGetTimings (
|
|
||||||
IN UINT32 ModeNumber,
|
|
||||||
OUT UINT32* HRes,
|
|
||||||
OUT UINT32* HSync,
|
|
||||||
OUT UINT32* HBackPorch,
|
|
||||||
OUT UINT32* HFrontPorch,
|
|
||||||
OUT UINT32* VRes,
|
|
||||||
OUT UINT32* VSync,
|
|
||||||
OUT UINT32* VBackPorch,
|
|
||||||
OUT UINT32* VFrontPorch
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (ModeNumber >= LcdPlatformGetMaxMode ()) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
*HRes = mResolutions[ModeNumber].HorizontalResolution;
|
|
||||||
*HSync = mResolutions[ModeNumber].HSync;
|
|
||||||
*HBackPorch = mResolutions[ModeNumber].HBackPorch;
|
|
||||||
*HFrontPorch = mResolutions[ModeNumber].HFrontPorch;
|
|
||||||
*VRes = mResolutions[ModeNumber].VerticalResolution;
|
|
||||||
*VSync = mResolutions[ModeNumber].VSync;
|
|
||||||
*VBackPorch = mResolutions[ModeNumber].VBackPorch;
|
|
||||||
*VFrontPorch = mResolutions[ModeNumber].VFrontPorch;
|
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
EFI_STATUS
|
|
||||||
LcdPlatformGetBpp (
|
|
||||||
IN UINT32 ModeNumber,
|
|
||||||
OUT LCD_BPP * Bpp
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (ModeNumber >= LcdPlatformGetMaxMode ()) {
|
|
||||||
return EFI_INVALID_PARAMETER;
|
|
||||||
}
|
|
||||||
|
|
||||||
*Bpp = mResolutions[ModeNumber].Bpp;
|
|
||||||
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
@@ -1,65 +0,0 @@
|
|||||||
#/** @file
|
|
||||||
#
|
|
||||||
# Component description file for ArmRealViewGraphicsDxe module
|
|
||||||
#
|
|
||||||
# Copyright (c) 2011-2012, ARM Ltd. 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]
|
|
||||||
INF_VERSION = 0x00010005
|
|
||||||
BASE_NAME = PL111LcdArmRealViewEbLib
|
|
||||||
FILE_GUID = 51396ee0-4973-11e0-868a-0002a5d5c51b
|
|
||||||
MODULE_TYPE = DXE_DRIVER
|
|
||||||
VERSION_STRING = 1.0
|
|
||||||
LIBRARY_CLASS = PL111LcdPlatformLib
|
|
||||||
|
|
||||||
[Sources.common]
|
|
||||||
PL111LcdArmRealViewEb.c
|
|
||||||
|
|
||||||
[Packages]
|
|
||||||
MdePkg/MdePkg.dec
|
|
||||||
ArmPlatformPkg/ArmPlatformPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
|
||||||
BaseLib
|
|
||||||
DebugLib
|
|
||||||
IoLib
|
|
||||||
|
|
||||||
[Guids]
|
|
||||||
|
|
||||||
[Protocols]
|
|
||||||
gEfiEdidDiscoveredProtocolGuid # Produced
|
|
||||||
gEfiEdidActiveProtocolGuid # Produced
|
|
||||||
|
|
||||||
[FixedPcd.common]
|
|
||||||
|
|
||||||
#
|
|
||||||
# The following modes are supported by PL111
|
|
||||||
#
|
|
||||||
# 0 : 640 x 480 x 24 bpp
|
|
||||||
# 1 : 800 x 600 x 24 bpp
|
|
||||||
# 2 : 1024 x 768 x 24 bpp
|
|
||||||
# 3 : 640 x 480 x 16 bpp (565 RGB Mode)
|
|
||||||
# 4 : 800 x 600 x 16 bpp (565 RGB Mode)
|
|
||||||
# 5 : 1024 x 768 x 16 bpp (565 RGB Mode)
|
|
||||||
# 6 : 640 x 480 x 15 bpp (555 RGB Mode)
|
|
||||||
# 7 : 800 x 600 x 15 bpp (555 RGB Mode)
|
|
||||||
# 8 : 1024 x 768 x 15 bpp (555 RGB Mode)
|
|
||||||
# 9 : 1024 x 768 x 15 bpp (555 RGB Mode) - Linux driver settings
|
|
||||||
# 10 : 640 x 480 x 12 bpp (444 RGB Mode)
|
|
||||||
# 11 : 800 x 600 x 12 bpp (444 RGB Mode)
|
|
||||||
# 12 : 1024 x 768 x 12 bpp (444 RGB Mode)
|
|
||||||
#
|
|
||||||
|
|
||||||
[Pcd.common]
|
|
||||||
|
|
||||||
[Depex]
|
|
||||||
# gEfiCpuArchProtocolGuid
|
|
@@ -1,87 +0,0 @@
|
|||||||
/** @file
|
|
||||||
Template library implementation to support ResetSystem Runtime call.
|
|
||||||
|
|
||||||
Fill in the templates with what ever makes you system reset.
|
|
||||||
|
|
||||||
|
|
||||||
Copyright (c) 2008 - 2009, Apple Inc. 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.
|
|
||||||
|
|
||||||
**/
|
|
||||||
|
|
||||||
|
|
||||||
#include <PiDxe.h>
|
|
||||||
|
|
||||||
#include <Library/BaseLib.h>
|
|
||||||
#include <Library/PcdLib.h>
|
|
||||||
#include <Library/DebugLib.h>
|
|
||||||
#include <Library/EfiResetSystemLib.h>
|
|
||||||
#include <Drivers/PL011Uart.h>
|
|
||||||
|
|
||||||
/**
|
|
||||||
Resets the entire platform.
|
|
||||||
|
|
||||||
@param ResetType The type of reset to perform.
|
|
||||||
@param ResetStatus The status code for the reset.
|
|
||||||
@param DataSize The size, in bytes, of WatchdogData.
|
|
||||||
@param ResetData For a ResetType of EfiResetCold, EfiResetWarm, or
|
|
||||||
EfiResetShutdown the data buffer starts with a Null-terminated
|
|
||||||
Unicode string, optionally followed by additional binary data.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
LibResetSystem (
|
|
||||||
IN EFI_RESET_TYPE ResetType,
|
|
||||||
IN EFI_STATUS ResetStatus,
|
|
||||||
IN UINTN DataSize,
|
|
||||||
IN CHAR16 *ResetData OPTIONAL
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (ResetData != NULL) {
|
|
||||||
DEBUG ((EFI_D_ERROR, "%s", ResetData));
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (ResetType) {
|
|
||||||
case EfiResetWarm:
|
|
||||||
// Map a warm reset into a cold reset
|
|
||||||
case EfiResetCold:
|
|
||||||
case EfiResetShutdown:
|
|
||||||
default:
|
|
||||||
CpuDeadLoop ();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
// If the reset didn't work, return an error.
|
|
||||||
ASSERT (FALSE);
|
|
||||||
return EFI_DEVICE_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
Initialize any infrastructure required for LibResetSystem () to function.
|
|
||||||
|
|
||||||
@param ImageHandle The firmware allocated handle for the EFI image.
|
|
||||||
@param SystemTable A pointer to the EFI System Table.
|
|
||||||
|
|
||||||
@retval EFI_SUCCESS The constructor always returns EFI_SUCCESS.
|
|
||||||
|
|
||||||
**/
|
|
||||||
EFI_STATUS
|
|
||||||
EFIAPI
|
|
||||||
LibInitializeResetSystem (
|
|
||||||
IN EFI_HANDLE ImageHandle,
|
|
||||||
IN EFI_SYSTEM_TABLE *SystemTable
|
|
||||||
)
|
|
||||||
{
|
|
||||||
return EFI_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
@@ -1,35 +0,0 @@
|
|||||||
#/** @file
|
|
||||||
# Reset System lib to make it easy to port new platforms
|
|
||||||
#
|
|
||||||
# Copyright (c) 2008, Apple Inc. 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]
|
|
||||||
INF_VERSION = 0x00010005
|
|
||||||
BASE_NAME = ArmEbResetSystemLib
|
|
||||||
FILE_GUID = CEFFA65C-B568-453e-9E11-B81AE683D035
|
|
||||||
MODULE_TYPE = BASE
|
|
||||||
VERSION_STRING = 1.0
|
|
||||||
LIBRARY_CLASS = EfiResetSystemLib
|
|
||||||
|
|
||||||
|
|
||||||
[Sources.common]
|
|
||||||
ResetSystemLib.c
|
|
||||||
|
|
||||||
[Packages]
|
|
||||||
MdePkg/MdePkg.dec
|
|
||||||
EmbeddedPkg/EmbeddedPkg.dec
|
|
||||||
ArmPlatformPkg/ArmPlatformPkg.dec
|
|
||||||
|
|
||||||
[LibraryClasses]
|
|
||||||
DebugLib
|
|
||||||
BaseLib
|
|
@@ -1,43 +0,0 @@
|
|||||||
@REM Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
|
|
||||||
@REM This program and the accompanying materials
|
|
||||||
@REM are licensed and made available under the terms and conditions of the BSD License
|
|
||||||
@REM which accompanies this distribution. The full text of the license may be found at
|
|
||||||
@REM http://opensource.org/licenses/bsd-license.php
|
|
||||||
@REM
|
|
||||||
@REM THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
||||||
@REM WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
||||||
@REM
|
|
||||||
|
|
||||||
@REM Example usage of this script. default is a DEBUG build
|
|
||||||
@REM b
|
|
||||||
@REM b clean
|
|
||||||
@REM b release
|
|
||||||
@REM b release clean
|
|
||||||
@REM b -v -y build.log
|
|
||||||
|
|
||||||
ECHO OFF
|
|
||||||
@REM Setup Build environment. Sets WORKSPACE and puts build in path
|
|
||||||
CALL ..\edksetup.bat
|
|
||||||
|
|
||||||
@REM Set for tools chain. Currently RVCT31
|
|
||||||
SET TARGET_TOOLS=RVCT31
|
|
||||||
SET TARGET=DEBUG
|
|
||||||
|
|
||||||
@if /I "%1"=="RELEASE" (
|
|
||||||
@REM If 1st argument is release set TARGET to RELEASE and shift arguments to remove it
|
|
||||||
SET TARGET=RELEASE
|
|
||||||
shift /1
|
|
||||||
)
|
|
||||||
|
|
||||||
SET BUILD_ROOT=%WORKSPACE%\Build\ArmRealViewEb\%TARGET%_%TARGET_TOOLS%
|
|
||||||
|
|
||||||
@REM Build the ARM RealView EB firmware and creat an FD (FLASH Device) Image.
|
|
||||||
CALL build -p ArmRealViewEbPkg\ArmRealViewEbPkg.dsc -a ARM -t RVCT31 -b %TARGET% %1 %2 %3 %4 %5 %6 %7 %8
|
|
||||||
@if ERRORLEVEL 1 goto Exit
|
|
||||||
|
|
||||||
@if /I "%1"=="CLEAN" goto Clean
|
|
||||||
|
|
||||||
:Exit
|
|
||||||
EXIT /B
|
|
||||||
|
|
||||||
:Clean
|
|
@@ -1,56 +0,0 @@
|
|||||||
@REM Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
|
|
||||||
@REM This program and the accompanying materials
|
|
||||||
@REM are licensed and made available under the terms and conditions of the BSD License
|
|
||||||
@REM which accompanies this distribution. The full text of the license may be found at
|
|
||||||
@REM http://opensource.org/licenses/bsd-license.php
|
|
||||||
@REM
|
|
||||||
@REM THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
||||||
@REM WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
||||||
@REM
|
|
||||||
|
|
||||||
@REM Example usage of this script. default is a DEBUG build
|
|
||||||
@REM b
|
|
||||||
@REM b clean
|
|
||||||
@REM b release
|
|
||||||
@REM b release clean
|
|
||||||
@REM b -v -y build.log
|
|
||||||
|
|
||||||
ECHO OFF
|
|
||||||
@REM Setup Build environment. Sets WORKSPACE and puts build in path
|
|
||||||
CALL ..\edksetup.bat
|
|
||||||
|
|
||||||
@REM Set for tools chain. Currently ARMGCC
|
|
||||||
SET TARGET_TOOLS=ARMGCC
|
|
||||||
SET TARGET=DEBUG
|
|
||||||
|
|
||||||
|
|
||||||
@if /I "%1"=="RELEASE" (
|
|
||||||
|
|
||||||
@REM If 1st argument is release set TARGET to RELEASE and shift arguments to remove it
|
|
||||||
|
|
||||||
SET TARGET=RELEASE
|
|
||||||
|
|
||||||
shift /1
|
|
||||||
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
SET BUILD_ROOT=%WORKSPACE%\Build\ArmRealViewEb\%TARGET%_%TARGET_TOOLS%
|
|
||||||
|
|
||||||
@REM Build the ARM RealView EB firmware and creat an FD (FLASH Device) Image.
|
|
||||||
CALL build -p ArmRealViewEbPkg\ArmRealViewEbPkg.dsc -a ARM -t %TARGET_TOOLS% -b %TARGET% %1 %2 %3 %4 %5 %6 %7 %8
|
|
||||||
@if ERRORLEVEL 1 goto Exit
|
|
||||||
|
|
||||||
@if /I "%1"=="CLEAN" goto Clean
|
|
||||||
|
|
||||||
|
|
||||||
ECHO Patching ..\Debugger_scripts ...
|
|
||||||
SET DEBUGGER_SCRIPT=Debugger_scripts
|
|
||||||
@for /f %%a IN ('dir /b %DEBUGGER_SCRIPT%\*.inc %DEBUGGER_SCRIPT%\*.cmm') do (
|
|
||||||
@CALL replace %DEBUGGER_SCRIPT%\%%a %BUILD_ROOT%\%%a ZZZZZZ %BUILD_ROOT% WWWWWW %WORKSPACE%
|
|
||||||
)
|
|
||||||
|
|
||||||
:Exit
|
|
||||||
EXIT /B
|
|
||||||
|
|
||||||
:Clean
|
|
@@ -1,118 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# Copyright (c) 2008 - 2009, Apple Inc. 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.
|
|
||||||
#
|
|
||||||
|
|
||||||
set -e
|
|
||||||
shopt -s nocasematch
|
|
||||||
|
|
||||||
function process_debug_scripts {
|
|
||||||
if [[ -d $1 ]]; then
|
|
||||||
for filename in `ls $1`
|
|
||||||
do
|
|
||||||
sed -e "s@ZZZZZZ@$BUILD_ROOT@g" -e "s@WWWWWW@$WORKSPACE@g" \
|
|
||||||
"$1/$filename" \
|
|
||||||
> "$BUILD_ROOT/$filename"
|
|
||||||
|
|
||||||
#For ARMCYGWIN, we have to change /cygdrive/c to c:
|
|
||||||
if [[ $TARGET_TOOLS == RVCT31CYGWIN ]]
|
|
||||||
then
|
|
||||||
mv "$BUILD_ROOT/$filename" "$BUILD_ROOT/$filename"_temp
|
|
||||||
sed -e "s@/cygdrive/\(.\)@\1:@g" \
|
|
||||||
"$BUILD_ROOT/$filename"_temp \
|
|
||||||
> "$BUILD_ROOT/$filename"
|
|
||||||
rm -f "$BUILD_ROOT/$filename"_temp
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Setup workspace if it is not set
|
|
||||||
#
|
|
||||||
if [ -z "$WORKSPACE" ]
|
|
||||||
then
|
|
||||||
echo Initializing workspace
|
|
||||||
cd ..
|
|
||||||
export EDK_TOOLS_PATH=`pwd`/BaseTools
|
|
||||||
source edksetup.sh BaseTools
|
|
||||||
else
|
|
||||||
echo Building from: $WORKSPACE
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Pick a default tool type for a given OS
|
|
||||||
#
|
|
||||||
case `uname` in
|
|
||||||
CYGWIN*)
|
|
||||||
TARGET_TOOLS=RVCT31CYGWIN
|
|
||||||
;;
|
|
||||||
Linux*)
|
|
||||||
# Not tested
|
|
||||||
TARGET_TOOLS=ARMGCC
|
|
||||||
;;
|
|
||||||
Darwin*)
|
|
||||||
Major=$(uname -r | cut -f 1 -d '.')
|
|
||||||
if [[ $Major == 9 ]]
|
|
||||||
then
|
|
||||||
# Not supported by this open source project
|
|
||||||
TARGET_TOOLS=XCODE31
|
|
||||||
else
|
|
||||||
TARGET_TOOLS=XCODE32
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
TARGET=DEBUG
|
|
||||||
for arg in "$@"
|
|
||||||
do
|
|
||||||
if [[ $arg == RELEASE ]];
|
|
||||||
then
|
|
||||||
TARGET=RELEASE
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
BUILD_ROOT=$WORKSPACE/Build/ArmRealViewEb/"$TARGET"_"$TARGET_TOOLS"
|
|
||||||
|
|
||||||
if [[ ! -e $EDK_TOOLS_PATH/Source/C/bin ]];
|
|
||||||
then
|
|
||||||
# build the tools if they don't yet exist
|
|
||||||
echo Building tools: $EDK_TOOLS_PATH
|
|
||||||
make -C $EDK_TOOLS_PATH
|
|
||||||
else
|
|
||||||
echo using prebuilt tools
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
|
||||||
# Build the edk2 ArmEb code
|
|
||||||
#
|
|
||||||
if [[ $TARGET == RELEASE ]]; then
|
|
||||||
build -p $WORKSPACE/ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEbPkg.dsc -a ARM -t $TARGET_TOOLS -b $TARGET -D DEBUG_TARGET=RELEASE $2 $3 $4 $5 $6 $7 $8
|
|
||||||
else
|
|
||||||
build -p $WORKSPACE/ArmPlatformPkg/ArmRealViewEbPkg/ArmRealViewEbPkg.dsc -a ARM -t $TARGET_TOOLS -b $TARGET $1 $2 $3 $4 $5 $6 $7 $8
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
for arg in "$@"
|
|
||||||
do
|
|
||||||
if [[ $arg == clean ]]; then
|
|
||||||
# no need to post process if we are doing a clean
|
|
||||||
exit
|
|
||||||
elif [[ $arg == cleanall ]]; then
|
|
||||||
make -C $EDK_TOOLS_PATH clean
|
|
||||||
exit
|
|
||||||
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
echo Creating debugger scripts
|
|
||||||
process_debug_scripts $WORKSPACE/ArmPlatformPkg/ArmRealViewEbPkg/Debugger_scripts
|
|
||||||
|
|
@@ -1,317 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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-CTA9x4
|
|
||||||
PLATFORM_GUID = eb2bd5ff-2379-4a06-9c12-db905cdee9ea
|
|
||||||
PLATFORM_VERSION = 0.1
|
|
||||||
DSC_SPECIFICATION = 0x00010005
|
|
||||||
SUPPORTED_ARCHITECTURES = ARM
|
|
||||||
BUILD_TARGETS = DEBUG|RELEASE
|
|
||||||
SKUID_IDENTIFIER = DEFAULT
|
|
||||||
FLASH_DEFINITION = ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-CTA9x4.fdf
|
|
||||||
|
|
||||||
# Reflashing the NOR Flash is a slow process. To ease the development on ARM Versatile Express Cortex-A9x4,
|
|
||||||
# the UEFI firmware can be built to be started from DRAM (instead of NOR Flash).
|
|
||||||
# The engineer only needs to copy the new binary in DRAM with the hardware debugger and execute from there.
|
|
||||||
!ifndef EDK2_ARMVE_STANDALONE
|
|
||||||
DEFINE EDK2_ARMVE_STANDALONE=1
|
|
||||||
!endif
|
|
||||||
!if $(EDK2_ARMVE_STANDALONE) == 1
|
|
||||||
OUTPUT_DIRECTORY = Build/ArmVExpress-CTA9x4-Standalone
|
|
||||||
!else
|
|
||||||
OUTPUT_DIRECTORY = Build/ArmVExpress-CTA9x4
|
|
||||||
!endif
|
|
||||||
|
|
||||||
!include ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc
|
|
||||||
|
|
||||||
[LibraryClasses.common]
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
|
|
||||||
ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA9Lib/ArmCortexA9Lib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLib.inf
|
|
||||||
ArmTrustZoneLib|ArmPlatformPkg/Drivers/ArmTrustZone/ArmTrustZone.inf
|
|
||||||
|
|
||||||
# ARM PL310 L2 Cache Driver
|
|
||||||
L2X0CacheLib|ArmPlatformPkg/Drivers/PL310L2Cache/PL310L2CacheSec.inf
|
|
||||||
# ARM PL354 SMC Driver
|
|
||||||
PL35xSmcLib|ArmPlatformPkg/Drivers/PL35xSmc/PL35xSmc.inf
|
|
||||||
# ARM PL341 DMC Driver
|
|
||||||
PL341DmcLib|ArmPlatformPkg/Drivers/PL34xDmc/PL341Dmc.inf
|
|
||||||
# ARM PL301 Axi Driver
|
|
||||||
PL301AxiLib|ArmPlatformPkg/Drivers/PL301Axi/PL301Axi.inf
|
|
||||||
|
|
||||||
ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf
|
|
||||||
NorFlashPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/NorFlashArmVExpressLib/NorFlashArmVExpressLib.inf
|
|
||||||
LcdPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpressLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.SEC]
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
|
|
||||||
ArmPlatformSecLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibCTA9x4/ArmVExpressSecLib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLibSec.inf
|
|
||||||
|
|
||||||
# Uncomment to turn on GDB stub in SEC.
|
|
||||||
#DebugAgentLib|EmbeddedPkg/Library/GdbDebugAgent/GdbDebugAgent.inf
|
|
||||||
|
|
||||||
[BuildOptions]
|
|
||||||
RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A9 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4
|
|
||||||
|
|
||||||
GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a9 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4
|
|
||||||
|
|
||||||
XCODE:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a9 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/CTA9x4
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
[PcdsFeatureFlag.common]
|
|
||||||
!if $(EDK2_ARMVE_STANDALONE) == 1
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdStandalone|TRUE
|
|
||||||
!else
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdStandalone|FALSE
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|TRUE
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|TRUE
|
|
||||||
!endif
|
|
||||||
|
|
||||||
!ifdef EDK2_SKIP_PEICORE
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|TRUE
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|TRUE
|
|
||||||
!endif
|
|
||||||
|
|
||||||
## 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"
|
|
||||||
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCoreCount|4
|
|
||||||
|
|
||||||
#
|
|
||||||
# NV Storage PCDs. Use base of 0x43FC0000 for NOR0 or 0x47FC0000 for NOR1 on Versatile Express
|
|
||||||
#
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x47FC0000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x00010000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x47FD0000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x00010000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x47FE0000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x00010000
|
|
||||||
|
|
||||||
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
|
||||||
|
|
||||||
# Stacks for MPCores in Secure World
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0x49E00000
|
|
||||||
# Stacks for MPCores in Monitor Mode
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecMonStackBase|0x49D00000
|
|
||||||
# Stacks for MPCores in Normal World
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x48000000
|
|
||||||
|
|
||||||
# System Memory (1GB)
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x60000000
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemorySize|0x40000000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM Pcds
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000040000000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM PrimeCell
|
|
||||||
#
|
|
||||||
|
|
||||||
## SP804 Timer
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedPerformanceCounterFrequencyInHz|1000000
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000 # expressed in 100ns units, 100,000 x 100 ns = 10,000,000 ns = 10 ms
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerPeriodicInterruptNum|34
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerPeriodicBase|0x10011000
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerPerformanceBase|0x10011020
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerMetronomeBase|0x10012020
|
|
||||||
|
|
||||||
## SP805 Watchdog - Motherboard Watchdog
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP805WatchdogBase|0x1000F000
|
|
||||||
## SP805 Watchdog - CoreTile Watchdog
|
|
||||||
#gArmPlatformTokenSpaceGuid.PcdSP805WatchdogBase|0x100E5000
|
|
||||||
|
|
||||||
## PL011 - Serial Terminal
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x10009000
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|38400
|
|
||||||
|
|
||||||
## PL031 RealTimeClock
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x10017000
|
|
||||||
|
|
||||||
## PL111 Lcd
|
|
||||||
# PL111 CoreTile or Tuscan Standalone controller
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL111LcdBase|0x10020000
|
|
||||||
# PL111 Versatile Express Motherboard controller
|
|
||||||
#gArmPlatformTokenSpaceGuid.PcdPL111LcdBase|0x1001F000
|
|
||||||
|
|
||||||
## PL180 MMC/SD card controller
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL180SysMciRegAddress|0x10000048
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL180MciBaseAddress|0x10005000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM General Interrupt Controller
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdGicDistributorBase|0x1e001000
|
|
||||||
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x1e000100
|
|
||||||
|
|
||||||
#
|
|
||||||
# Define the device path to the FDT for the platform
|
|
||||||
#
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdFdtDevicePaths|L"VenHw(E7223039-5836-41E1-B542-D7EC736C5E59)/ca9"
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM OS Loader
|
|
||||||
#
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"Linux from NorFlash"
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"Fv(1A9B3625-5286-4FA6-AF5F-8EABC481F3CC)/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)
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi();VenHw(407B4008-BF5B-11DF-9547-CF16E0D72085)"
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi()"
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM L2x0 PCDs
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdL2x0ControllerBase|0x1E00A000
|
|
||||||
|
|
||||||
# ISP1761 USB OTG Controller
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdIsp1761BaseAddress|0x4f000000
|
|
||||||
|
|
||||||
# LAN9118 Ethernet Driver PCDs
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdLan9118DxeBaseAddress|0x4E000000
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Components Section - list of all EDK II Modules needed by this Platform
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
[Components.common]
|
|
||||||
|
|
||||||
#
|
|
||||||
# SEC
|
|
||||||
#
|
|
||||||
ArmPlatformPkg/Sec/Sec.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
# Use the implementation which set the Secure bits
|
|
||||||
ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicSecLib.inf
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# PEI Phase modules
|
|
||||||
#
|
|
||||||
!ifdef EDK2_SKIP_PEICORE
|
|
||||||
ArmPlatformPkg/PrePi/PeiMPCore.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibCTA9x4/ArmVExpressLib.inf
|
|
||||||
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.inf
|
|
||||||
}
|
|
||||||
!else
|
|
||||||
ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Pei/PeiArmPlatformGlobalVariableLib.inf
|
|
||||||
}
|
|
||||||
MdeModulePkg/Core/Pei/PeiMain.inf
|
|
||||||
MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
|
||||||
}
|
|
||||||
ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
|
||||||
ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
|
||||||
ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
||||||
IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
|
||||||
Nt32Pkg/BootModePei/BootModePei.inf
|
|
||||||
MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
|
||||||
MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
|
||||||
}
|
|
||||||
!endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
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
|
|
||||||
EmbeddedPkg/SerialDxe/SerialDxe.inf
|
|
||||||
|
|
||||||
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
|
||||||
|
|
||||||
ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Platform
|
|
||||||
#
|
|
||||||
ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Filesystems
|
|
||||||
#
|
|
||||||
ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
|
|
||||||
#
|
|
||||||
# Bds
|
|
||||||
#
|
|
||||||
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
|
||||||
ArmPlatformPkg/Bds/Bds.inf
|
|
@@ -1,401 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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.Sec_ArmVExpress_EFI]
|
|
||||||
BaseAddress = 0x44000000|gArmTokenSpaceGuid.PcdSecureFdBaseAddress #The base address of the Secure FLASH Device.
|
|
||||||
Size = 0x00080000|gArmTokenSpaceGuid.PcdSecureFdSize #The size in bytes of the Secure FLASH Device
|
|
||||||
ErasePolarity = 1
|
|
||||||
BlockSize = 0x00001000
|
|
||||||
NumBlocks = 0x80
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Following are lists of FD Region layout which correspond to the locations of different
|
|
||||||
# images within the flash device.
|
|
||||||
#
|
|
||||||
# Regions must be defined in ascending order and may not overlap.
|
|
||||||
#
|
|
||||||
# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
|
|
||||||
# the pipe "|" character, followed by the size of the region, also in hex with the leading
|
|
||||||
# "0x" characters. Like:
|
|
||||||
# Offset|Size
|
|
||||||
# PcdOffsetCName|PcdSizeCName
|
|
||||||
# RegionType <FV, DATA, or FILE>
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
0x00000000|0x00080000
|
|
||||||
gArmTokenSpaceGuid.PcdSecureFvBaseAddress|gArmTokenSpaceGuid.PcdSecureFvSize
|
|
||||||
FV = FVMAIN_SEC
|
|
||||||
|
|
||||||
|
|
||||||
[FD.ArmVExpress_EFI]
|
|
||||||
!if $(EDK2_ARMVE_STANDALONE) == 1
|
|
||||||
BaseAddress = 0x45000000|gArmTokenSpaceGuid.PcdFdBaseAddress # The base address of the Firmware in NOR Flash.
|
|
||||||
!else
|
|
||||||
BaseAddress = 0x80000000|gArmTokenSpaceGuid.PcdFdBaseAddress # The base address of the Firmware in remapped DRAM.
|
|
||||||
!endif
|
|
||||||
Size = 0x00200000|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device
|
|
||||||
ErasePolarity = 1
|
|
||||||
|
|
||||||
# This one is tricky, it must be: BlockSize * NumBlocks = Size
|
|
||||||
BlockSize = 0x00001000
|
|
||||||
NumBlocks = 0x200
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Following are lists of FD Region layout which correspond to the locations of different
|
|
||||||
# images within the flash device.
|
|
||||||
#
|
|
||||||
# Regions must be defined in ascending order and may not overlap.
|
|
||||||
#
|
|
||||||
# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
|
|
||||||
# the pipe "|" character, followed by the size of the region, also in hex with the leading
|
|
||||||
# "0x" characters. Like:
|
|
||||||
# Offset|Size
|
|
||||||
# PcdOffsetCName|PcdSizeCName
|
|
||||||
# RegionType <FV, DATA, or FILE>
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
0x00000000|0x00200000
|
|
||||||
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_SEC]
|
|
||||||
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/Sec/Sec.inf
|
|
||||||
|
|
||||||
|
|
||||||
[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 = 1a9b3625-5286-4fa6-af5f-8eabc481f3cc
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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 EmbeddedPkg/SerialDxe/SerialDxe.inf
|
|
||||||
|
|
||||||
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
|
||||||
|
|
||||||
INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Platform
|
|
||||||
#
|
|
||||||
INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmHwDxe.inf
|
|
||||||
|
|
||||||
!if $(EDK2_ARMVE_STANDALONE) != 1
|
|
||||||
#
|
|
||||||
# Semi-hosting filesystem (Required the Hardware Debugger to be connected)
|
|
||||||
#
|
|
||||||
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
|
|
||||||
|
|
||||||
#
|
|
||||||
# Multimedia Card Interface
|
|
||||||
#
|
|
||||||
INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.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
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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 (Shell Embedded Boot Loader)
|
|
||||||
#
|
|
||||||
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.PcdFdtVExpressHwA9x4) {
|
|
||||||
# SECTION RAW = ArmPlatformPkg/ArmVExpressPkg/Fdts/vexpress-v2p-ca9.dtb
|
|
||||||
#}
|
|
||||||
|
|
||||||
[FV.FVMAIN_COMPACT]
|
|
||||||
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
|
|
||||||
|
|
||||||
!if $(EDK2_SKIP_PEICORE) == 1
|
|
||||||
INF ArmPlatformPkg/PrePi/PeiMPCore.inf
|
|
||||||
!else
|
|
||||||
INF ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
|
|
||||||
INF MdeModulePkg/Core/Pei/PeiMain.inf
|
|
||||||
INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
|
||||||
INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
|
||||||
INF ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
||||||
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
|
||||||
INF IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
|
||||||
INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
|
||||||
INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
|
|
||||||
!endif
|
|
||||||
|
|
||||||
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)
|
|
||||||
}
|
|
@@ -1,295 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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-RTSM-A15
|
|
||||||
PLATFORM_GUID = 1665b5b1-529d-4ba1-bd51-c3c9b29a2274
|
|
||||||
PLATFORM_VERSION = 0.1
|
|
||||||
DSC_SPECIFICATION = 0x00010005
|
|
||||||
OUTPUT_DIRECTORY = Build/ArmVExpress-RTSM-A15
|
|
||||||
SUPPORTED_ARCHITECTURES = ARM
|
|
||||||
BUILD_TARGETS = DEBUG|RELEASE
|
|
||||||
SKUID_IDENTIFIER = DEFAULT
|
|
||||||
FLASH_DEFINITION = ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A15.fdf
|
|
||||||
|
|
||||||
!include ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc
|
|
||||||
|
|
||||||
[LibraryClasses.common]
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
|
|
||||||
ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA15Lib/ArmCortexA15Lib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressLib.inf
|
|
||||||
|
|
||||||
ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf
|
|
||||||
NorFlashPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/NorFlashArmVExpressLib/NorFlashArmVExpressLib.inf
|
|
||||||
LcdPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpressLib.inf
|
|
||||||
|
|
||||||
#DebugAgentTimerLib|ArmPlatformPkg/ArmVExpressPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.inf
|
|
||||||
|
|
||||||
TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
|
|
||||||
|
|
||||||
# Virtio Support
|
|
||||||
VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
|
|
||||||
VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.SEC]
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
|
|
||||||
ArmPlatformSecLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/ArmVExpressSecLib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressLibSec.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.UEFI_APPLICATION, LibraryClasses.common.DXE_RUNTIME_DRIVER, LibraryClasses.common.DXE_DRIVER]
|
|
||||||
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
|
|
||||||
|
|
||||||
[BuildOptions]
|
|
||||||
RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A15 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
|
|
||||||
|
|
||||||
GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a15 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
|
|
||||||
|
|
||||||
XCODE:*_*_ARM_PLATFORM_FLAGS = -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
[PcdsFeatureFlag.common]
|
|
||||||
!ifdef EDK2_SKIP_PEICORE
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|TRUE
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|TRUE
|
|
||||||
!endif
|
|
||||||
|
|
||||||
## 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-RTSM"
|
|
||||||
|
|
||||||
#
|
|
||||||
# NV Storage PCDs. Use base of 0x0C000000 for NOR1
|
|
||||||
#
|
|
||||||
!if $(EDK2_ARMVE_SUPPORT_QEMU) == 1
|
|
||||||
# QEMU only models a single flash block size, so use larger blocks
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x0FF00000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x00040000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x0FF40000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x00040000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x0FF80000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x00040000
|
|
||||||
!else
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x0FFC0000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x00010000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase|0x0FFD0000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize|0x00010000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase|0x0FFE0000
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize|0x00010000
|
|
||||||
!endif
|
|
||||||
|
|
||||||
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
|
||||||
|
|
||||||
# Stacks for MPCores in Secure World
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0x2E009000
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecPrimaryStackSize|0x1000
|
|
||||||
|
|
||||||
# Stacks for MPCores in Monitor Mode
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecMonStackBase|0x2E008000
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecMonStackSize|0x100
|
|
||||||
|
|
||||||
# Stacks for MPCores in Normal World
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x2E000000
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
|
|
||||||
|
|
||||||
# System Memory (1GB)
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemorySize|0x40000000
|
|
||||||
|
|
||||||
# Size of the region used by UEFI in permanent memory (Reserved 64MB)
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM Pcds
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000040000000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM PrimeCell
|
|
||||||
#
|
|
||||||
|
|
||||||
## SP805 Watchdog - Motherboard Watchdog
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP805WatchdogBase|0x1C0F0000
|
|
||||||
|
|
||||||
## PL011 - Serial Terminal
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x1c090000
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|38400
|
|
||||||
|
|
||||||
## PL031 RealTimeClock
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000
|
|
||||||
|
|
||||||
## PL111 Versatile Express Motherboard controller
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL111LcdBase|0x1C1F0000
|
|
||||||
|
|
||||||
## PL180 MMC/SD card controller
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL180SysMciRegAddress|0x1C010048
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL180MciBaseAddress|0x1C050000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM General Interrupt Controller
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdGicDistributorBase|0x2C001000
|
|
||||||
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x2C002000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM OS Loader
|
|
||||||
#
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"SemiHosting"
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"Fv(9CA4F58C-341E-4F42-B37D-6042FCDDB5BF)/LinuxLoader.efi"
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|L"VenHw(C5B9C74A-6D72-4719-99AB-C59F199091EB)/Image -c \"console=ttyAMA0,38400 earlyprintk debug verbose\""
|
|
||||||
|
|
||||||
# Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut)
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi();VenHw(407B4008-BF5B-11DF-9547-CF16E0D72085)"
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi()"
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM Architectural Timer Frequency
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|100000000
|
|
||||||
|
|
||||||
[PcdsDynamicDefault.common]
|
|
||||||
#
|
|
||||||
# The size of a dynamic PCD of the (VOID*) type can not be increased at run
|
|
||||||
# time from its size at build time. Set the "PcdFdtDevicePaths" PCD to a 128
|
|
||||||
# character "empty" string, to allow to be able to set FDT text device paths
|
|
||||||
# up to 128 characters long.
|
|
||||||
#
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdFdtDevicePaths|L" "
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Components Section - list of all EDK II Modules needed by this Platform
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
[Components.common]
|
|
||||||
|
|
||||||
#
|
|
||||||
# SEC
|
|
||||||
#
|
|
||||||
ArmPlatformPkg/Sec/Sec.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
# Use the implementation which set the Secure bits
|
|
||||||
ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicSecLib.inf
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# PEI Phase modules
|
|
||||||
#
|
|
||||||
!ifdef EDK2_SKIP_PEICORE
|
|
||||||
ArmPlatformPkg/PrePi/PeiUniCore.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressLib.inf
|
|
||||||
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.inf
|
|
||||||
}
|
|
||||||
!else
|
|
||||||
ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Pei/PeiArmPlatformGlobalVariableLib.inf
|
|
||||||
}
|
|
||||||
MdeModulePkg/Core/Pei/PeiMain.inf
|
|
||||||
MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
|
||||||
}
|
|
||||||
ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
|
||||||
ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
|
||||||
ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
||||||
IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
|
||||||
Nt32Pkg/BootModePei/BootModePei.inf
|
|
||||||
MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
|
||||||
MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
|
||||||
}
|
|
||||||
!endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
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
|
|
||||||
EmbeddedPkg/SerialDxe/SerialDxe.inf
|
|
||||||
|
|
||||||
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
|
||||||
|
|
||||||
ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
|
||||||
ArmPkg/Drivers/TimerDxe/TimerDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Semi-hosting filesystem
|
|
||||||
#
|
|
||||||
ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Multimedia Card Interface
|
|
||||||
#
|
|
||||||
EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Platform Driver
|
|
||||||
#
|
|
||||||
ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
|
|
||||||
OvmfPkg/VirtioBlkDxe/VirtioBlk.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
|
|
||||||
|
|
||||||
#
|
|
||||||
# Bds
|
|
||||||
#
|
|
||||||
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
|
||||||
ArmPlatformPkg/Bds/Bds.inf
|
|
@@ -1,364 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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.RTSM_VE_Cortex-A15_EFI]
|
|
||||||
BaseAddress = 0x08000000|gArmTokenSpaceGuid.PcdFdBaseAddress # The base address of the Firmware in NOR Flash.
|
|
||||||
Size = 0x00300000|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device
|
|
||||||
ErasePolarity = 1
|
|
||||||
|
|
||||||
# This one is tricky, it must be: BlockSize * NumBlocks = Size
|
|
||||||
BlockSize = 0x00001000
|
|
||||||
NumBlocks = 0x300
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Following are lists of FD Region layout which correspond to the locations of different
|
|
||||||
# images within the flash device.
|
|
||||||
#
|
|
||||||
# Regions must be defined in ascending order and may not overlap.
|
|
||||||
#
|
|
||||||
# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
|
|
||||||
# the pipe "|" character, followed by the size of the region, also in hex with the leading
|
|
||||||
# "0x" characters. Like:
|
|
||||||
# Offset|Size
|
|
||||||
# PcdOffsetCName|PcdSizeCName
|
|
||||||
# RegionType <FV, DATA, or FILE>
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
0x00000000|0x00080000
|
|
||||||
gArmTokenSpaceGuid.PcdSecureFvBaseAddress|gArmTokenSpaceGuid.PcdSecureFvSize
|
|
||||||
FV = FVMAIN_SEC
|
|
||||||
|
|
||||||
0x00080000|0x00280000
|
|
||||||
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_SEC]
|
|
||||||
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/Sec/Sec.inf
|
|
||||||
|
|
||||||
|
|
||||||
[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 = 9ca4f58c-341e-4f42-b37d-6042fcddb5bf
|
|
||||||
|
|
||||||
APRIORI DXE {
|
|
||||||
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
|
|
||||||
}
|
|
||||||
|
|
||||||
INF MdeModulePkg/Core/Dxe/DxeMain.inf
|
|
||||||
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.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
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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 EmbeddedPkg/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/SP805WatchdogDxe/SP805WatchdogDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Semi-hosting filesystem
|
|
||||||
#
|
|
||||||
INF ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
|
|
||||||
#
|
|
||||||
# Multimedia Card Interface
|
|
||||||
#
|
|
||||||
INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Platform Driver
|
|
||||||
#
|
|
||||||
INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
|
|
||||||
INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# UEFI application (Shell Embedded Boot Loader)
|
|
||||||
#
|
|
||||||
INF ShellBinPkg/UefiShell/UefiShell.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Bds
|
|
||||||
#
|
|
||||||
INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
|
||||||
INF ArmPlatformPkg/Bds/Bds.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.PcdFdtVExpressFvpA15x1) {
|
|
||||||
# SECTION RAW = ArmPlatformPkg/ArmVExpressPkg/Fdts/rtsm_ve-ca15x1.dtb
|
|
||||||
#}
|
|
||||||
|
|
||||||
# Legacy Linux Loader
|
|
||||||
INF ArmPkg/Application/LinuxLoader/LinuxLoader.inf
|
|
||||||
|
|
||||||
[FV.FVMAIN_COMPACT]
|
|
||||||
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
|
|
||||||
|
|
||||||
!if $(EDK2_SKIP_PEICORE) == 1
|
|
||||||
INF ArmPlatformPkg/PrePi/PeiUniCore.inf
|
|
||||||
!else
|
|
||||||
INF ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
|
|
||||||
INF MdeModulePkg/Core/Pei/PeiMain.inf
|
|
||||||
INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
|
||||||
INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
|
||||||
INF ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
||||||
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
|
||||||
INF IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
|
||||||
INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
|
||||||
INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
|
|
||||||
!endif
|
|
||||||
|
|
||||||
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)
|
|
||||||
}
|
|
@@ -1,298 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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-RTSM-A9x4
|
|
||||||
PLATFORM_GUID = e46039e0-5bb3-11e0-a9d6-0002a5d5c51b
|
|
||||||
PLATFORM_VERSION = 0.1
|
|
||||||
DSC_SPECIFICATION = 0x00010005
|
|
||||||
OUTPUT_DIRECTORY = Build/ArmVExpress-RTSM-A9x4
|
|
||||||
SUPPORTED_ARCHITECTURES = ARM
|
|
||||||
BUILD_TARGETS = DEBUG|RELEASE
|
|
||||||
SKUID_IDENTIFIER = DEFAULT
|
|
||||||
FLASH_DEFINITION = ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-A9x4.fdf
|
|
||||||
|
|
||||||
!include ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc
|
|
||||||
|
|
||||||
[LibraryClasses.common]
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
|
|
||||||
ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexA9Lib/ArmCortexA9Lib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressLib.inf
|
|
||||||
|
|
||||||
ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf
|
|
||||||
NorFlashPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/NorFlashArmVExpressLib/NorFlashArmVExpressLib.inf
|
|
||||||
LcdPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpressLib.inf
|
|
||||||
|
|
||||||
#DebugAgentTimerLib|ArmPlatformPkg/ArmVExpressPkg/Library/DebugAgentTimerLib/DebugAgentTimerLib.inf
|
|
||||||
|
|
||||||
|
|
||||||
# Virtio Support
|
|
||||||
VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
|
|
||||||
VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.SEC]
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7LibSec.inf
|
|
||||||
ArmPlatformSecLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/ArmVExpressSecLib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressLibSec.inf
|
|
||||||
|
|
||||||
# Uncomment to turn on GDB stub in SEC.
|
|
||||||
#DebugAgentLib|EmbeddedPkg/Library/GdbDebugAgent/GdbDebugAgent.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.UEFI_APPLICATION, LibraryClasses.common.DXE_RUNTIME_DRIVER, LibraryClasses.common.DXE_DRIVER]
|
|
||||||
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
|
|
||||||
|
|
||||||
[BuildOptions]
|
|
||||||
RVCT:*_*_ARM_PLATFORM_FLAGS == --cpu Cortex-A9 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
|
|
||||||
|
|
||||||
GCC:*_*_ARM_PLATFORM_FLAGS == -mcpu=cortex-a9 -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
|
|
||||||
|
|
||||||
XCODE:*_*_ARM_PLATFORM_FLAGS == -march=armv7-a -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
[PcdsFeatureFlag.common]
|
|
||||||
|
|
||||||
!ifdef EDK2_SKIP_PEICORE
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|TRUE
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|TRUE
|
|
||||||
!endif
|
|
||||||
|
|
||||||
## 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-RTSM"
|
|
||||||
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCoreCount|4
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0x2E009000
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecPrimaryStackSize|0x1000
|
|
||||||
|
|
||||||
# Stacks for MPCores in Monitor Mode
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecMonStackBase|0x2E008000
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecMonStackSize|0x100
|
|
||||||
|
|
||||||
# Stacks for MPCores in Normal World
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x2E000000
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
|
|
||||||
|
|
||||||
# System Memory (1GB)
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemorySize|0x40000000
|
|
||||||
|
|
||||||
# Size of the region used by UEFI in permanent memory (Reserved 64MB)
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM Pcds
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000040000000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM PrimeCell
|
|
||||||
#
|
|
||||||
|
|
||||||
## SP804 Timer
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedPerformanceCounterFrequencyInHz|1000000
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdTimerPeriod|100000 # expressed in 100ns units, 100,000 x 100 ns = 10,000,000 ns = 10 ms
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerPeriodicInterruptNum|34
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerPeriodicBase|0x1c110000
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerPerformanceBase|0x1c110020
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP804TimerMetronomeBase|0x1c120020
|
|
||||||
|
|
||||||
## SP805 Watchdog - Motherboard Watchdog
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP805WatchdogBase|0x1C0F0000
|
|
||||||
|
|
||||||
## PL011 - Serial Terminal
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x1c090000
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|38400
|
|
||||||
|
|
||||||
## PL031 RealTimeClock
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000
|
|
||||||
|
|
||||||
## PL111 Versatile Express Motherboard controller
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL111LcdBase|0x1C1F0000
|
|
||||||
|
|
||||||
## PL180 MMC/SD card controller
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL180SysMciRegAddress|0x1C010048
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL180MciBaseAddress|0x1C050000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM General Interrupt Controller
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdGicDistributorBase|0x2C001000
|
|
||||||
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x2C000100
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM OS Loader
|
|
||||||
#
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"SemiHosting"
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"Fv(272E583C-B951-433F-AF42-A9C6862AF002)/LinuxLoader.efi"
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|L"VenHw(C5B9C74A-6D72-4719-99AB-C59F199091EB)/zImage -c \"console=ttyAMA0,38400n8\""
|
|
||||||
|
|
||||||
# Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut)
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi();VenHw(407B4008-BF5B-11DF-9547-CF16E0D72085)"
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi()"
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM L2x0 PCDs
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdL2x0ControllerBase|0x1E00A000
|
|
||||||
|
|
||||||
[PcdsDynamicDefault.common]
|
|
||||||
#
|
|
||||||
# The size of a dynamic PCD of the (VOID*) type can not be increased at run
|
|
||||||
# time from its size at build time. Set the "PcdFdtDevicePaths" PCD to a 128
|
|
||||||
# character "empty" string, to allow to be able to set FDT text device paths
|
|
||||||
# up to 128 characters long.
|
|
||||||
#
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdFdtDevicePaths|L" "
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Components Section - list of all EDK II Modules needed by this Platform
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
[Components.common]
|
|
||||||
|
|
||||||
#
|
|
||||||
# SEC
|
|
||||||
#
|
|
||||||
ArmPlatformPkg/Sec/Sec.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
# Use the implementation which set the Secure bits
|
|
||||||
ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicSecLib.inf
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# PEI Phase modules
|
|
||||||
#
|
|
||||||
!ifdef EDK2_SKIP_PEICORE
|
|
||||||
ArmPlatformPkg/PrePi/PeiMPCore.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/ArmV7/ArmV7Lib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressLib.inf
|
|
||||||
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.inf
|
|
||||||
}
|
|
||||||
!else
|
|
||||||
ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Pei/PeiArmPlatformGlobalVariableLib.inf
|
|
||||||
}
|
|
||||||
MdeModulePkg/Core/Pei/PeiMain.inf
|
|
||||||
MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
|
||||||
}
|
|
||||||
ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
|
||||||
ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
|
||||||
ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
||||||
IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
|
||||||
Nt32Pkg/BootModePei/BootModePei.inf
|
|
||||||
MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
|
||||||
MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
|
||||||
}
|
|
||||||
!endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
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
|
|
||||||
EmbeddedPkg/SerialDxe/SerialDxe.inf
|
|
||||||
|
|
||||||
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
|
||||||
|
|
||||||
ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Semi-hosting filesystem
|
|
||||||
#
|
|
||||||
ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Multimedia Card Interface
|
|
||||||
#
|
|
||||||
EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Platform Driver
|
|
||||||
#
|
|
||||||
ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
|
|
||||||
OvmfPkg/VirtioBlkDxe/VirtioBlk.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
|
|
||||||
|
|
||||||
#
|
|
||||||
# Bds
|
|
||||||
#
|
|
||||||
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
|
||||||
ArmPlatformPkg/Bds/Bds.inf
|
|
@@ -1,351 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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.RTSM_VE_Cortex-A9_EFI]
|
|
||||||
BaseAddress = 0x08000000|gArmTokenSpaceGuid.PcdFdBaseAddress # The base address of the Firmware in NOR Flash.
|
|
||||||
Size = 0x00300000|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device
|
|
||||||
ErasePolarity = 1
|
|
||||||
|
|
||||||
# This one is tricky, it must be: BlockSize * NumBlocks = Size
|
|
||||||
BlockSize = 0x00001000
|
|
||||||
NumBlocks = 0x300
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Following are lists of FD Region layout which correspond to the locations of different
|
|
||||||
# images within the flash device.
|
|
||||||
#
|
|
||||||
# Regions must be defined in ascending order and may not overlap.
|
|
||||||
#
|
|
||||||
# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
|
|
||||||
# the pipe "|" character, followed by the size of the region, also in hex with the leading
|
|
||||||
# "0x" characters. Like:
|
|
||||||
# Offset|Size
|
|
||||||
# PcdOffsetCName|PcdSizeCName
|
|
||||||
# RegionType <FV, DATA, or FILE>
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
0x00000000|0x00080000
|
|
||||||
gArmTokenSpaceGuid.PcdSecureFvBaseAddress|gArmTokenSpaceGuid.PcdSecureFvSize
|
|
||||||
FV = FVMAIN_SEC
|
|
||||||
|
|
||||||
0x00080000|0x00280000
|
|
||||||
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_SEC]
|
|
||||||
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/Sec/Sec.inf
|
|
||||||
|
|
||||||
|
|
||||||
[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 = 272e583c-b951-433f-af42-a9c6862af002
|
|
||||||
|
|
||||||
APRIORI DXE {
|
|
||||||
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
|
|
||||||
}
|
|
||||||
|
|
||||||
INF MdeModulePkg/Core/Dxe/DxeMain.inf
|
|
||||||
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.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 EmbeddedPkg/SerialDxe/SerialDxe.inf
|
|
||||||
|
|
||||||
INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/SP804TimerDxe/SP804TimerDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Semi-hosting filesystem
|
|
||||||
#
|
|
||||||
INF ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Versatile Express FileSystem
|
|
||||||
#
|
|
||||||
INF ArmPlatformPkg/FileSystem/BootMonFs/BootMonFs.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
|
|
||||||
#
|
|
||||||
# Multimedia Card Interface
|
|
||||||
#
|
|
||||||
INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Platform Driver
|
|
||||||
#
|
|
||||||
INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
|
|
||||||
INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# UEFI application (Shell Embedded Boot Loader)
|
|
||||||
#
|
|
||||||
INF ShellBinPkg/UefiShell/UefiShell.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Bds
|
|
||||||
#
|
|
||||||
INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
|
||||||
INF ArmPlatformPkg/Bds/Bds.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.PcdFdtVExpressFvpA9x4) {
|
|
||||||
# SECTION RAW = ArmPlatformPkg/ArmVExpressPkg/Fdts/rtsm_ve-ca9x4.dtb
|
|
||||||
#}
|
|
||||||
|
|
||||||
# Legacy Linux Loader
|
|
||||||
INF ArmPkg/Application/LinuxLoader/LinuxLoader.inf
|
|
||||||
|
|
||||||
[FV.FVMAIN_COMPACT]
|
|
||||||
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
|
|
||||||
|
|
||||||
!if $(EDK2_SKIP_PEICORE) == 1
|
|
||||||
INF ArmPlatformPkg/PrePi/PeiMPCore.inf
|
|
||||||
!else
|
|
||||||
INF ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
|
|
||||||
INF MdeModulePkg/Core/Pei/PeiMain.inf
|
|
||||||
INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
|
||||||
INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
|
||||||
INF ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
||||||
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
|
||||||
INF IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
|
||||||
INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
|
||||||
INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
|
|
||||||
!endif
|
|
||||||
|
|
||||||
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)
|
|
||||||
}
|
|
@@ -1,254 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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-RTSM-AEMv8Ax4-foundation
|
|
||||||
PLATFORM_GUID = 2a9d4992-0730-11e2-9829-1c6f650265cc
|
|
||||||
PLATFORM_VERSION = 0.1
|
|
||||||
DSC_SPECIFICATION = 0x00010005
|
|
||||||
OUTPUT_DIRECTORY = Build/ArmVExpress-RTSM-AEMv8Ax4-foundation
|
|
||||||
SUPPORTED_ARCHITECTURES = AARCH64
|
|
||||||
BUILD_TARGETS = DEBUG|RELEASE
|
|
||||||
SKUID_IDENTIFIER = DEFAULT
|
|
||||||
FLASH_DEFINITION = ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4-foundation.fdf
|
|
||||||
|
|
||||||
!include ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc
|
|
||||||
|
|
||||||
[LibraryClasses.common]
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
|
|
||||||
ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressFoundationLib.inf
|
|
||||||
|
|
||||||
# Virtio Support
|
|
||||||
VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
|
|
||||||
VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
|
|
||||||
|
|
||||||
ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf
|
|
||||||
|
|
||||||
TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
|
|
||||||
|
|
||||||
# Foundation model does not have an RTC. Use the NULL version.
|
|
||||||
RealTimeClockLib|EmbeddedPkg/Library/TemplateRealTimeClockLib/TemplateRealTimeClockLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.SEC]
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf
|
|
||||||
ArmPlatformSecLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/ArmVExpressFoundationSecLib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressFoundationLibSec.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.UEFI_APPLICATION, LibraryClasses.common.DXE_RUNTIME_DRIVER, LibraryClasses.common.DXE_DRIVER]
|
|
||||||
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
|
|
||||||
|
|
||||||
[BuildOptions]
|
|
||||||
GCC:*_*_AARCH64_PLATFORM_FLAGS == -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
|
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
[PcdsFeatureFlag.common]
|
|
||||||
|
|
||||||
!ifdef $(EDK2_SKIP_PEICORE)
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|TRUE
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|TRUE
|
|
||||||
!endif
|
|
||||||
|
|
||||||
## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe.
|
|
||||||
# It could be set FALSE to save size.
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|FALSE
|
|
||||||
|
|
||||||
[PcdsFixedAtBuild.common]
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Foundation Model"
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ArmFoundation"
|
|
||||||
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCoreCount|4
|
|
||||||
|
|
||||||
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
|
||||||
|
|
||||||
# Stacks for MPCores in Secure World (No SRAM on foundation model, put in RAM at 64MB)
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0xA4008000
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecPrimaryStackSize|0x1000
|
|
||||||
|
|
||||||
# Stacks for MPCores in Normal World (No SRAM on foundation model, put in RAM at 64MB)
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0xA4000000
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
|
|
||||||
|
|
||||||
# System Memory (2GB)
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemorySize|0x80000000
|
|
||||||
|
|
||||||
# Size of the region used by UEFI in permanent memory (Reserved 64MB)
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM Pcds
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000040000000
|
|
||||||
|
|
||||||
## Trustzone enable (to make the transition from EL3 to EL2 in ArmPlatformPkg/Sec)
|
|
||||||
gArmTokenSpaceGuid.PcdTrustzoneSupport|TRUE
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM PrimeCell
|
|
||||||
#
|
|
||||||
|
|
||||||
## PL011 - Serial Terminal
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x1c090000
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|38400
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM General Interrupt Controller
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdGicDistributorBase|0x2C001000
|
|
||||||
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x2C002000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM OS Loader
|
|
||||||
#
|
|
||||||
# Versatile Express machine type (ARM VERSATILE EXPRESS = 2272) required for ARM Linux:
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"Linux from SemiHosting"
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"VenHw(C5B9C74A-6D72-4719-99AB-C59F199091EB)/Image"
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|"root=/dev/vda2 rw console=ttyAMA0 earlyprintk=pl011,0x1c090000 maxcpus=4 debug user_debug=31 loglevel=9"
|
|
||||||
|
|
||||||
# Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut)
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi();"
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi()"
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM Architectural Timer Frequency
|
|
||||||
#
|
|
||||||
# Set model tick to 100MHz. This depends a lot on workstation performance.
|
|
||||||
gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|100000000
|
|
||||||
|
|
||||||
[PcdsDynamicDefault.common]
|
|
||||||
#
|
|
||||||
# The size of a dynamic PCD of the (VOID*) type can not be increased at run
|
|
||||||
# time from its size at build time. Set the "PcdFdtDevicePaths" PCD to a 128
|
|
||||||
# character "empty" string, to allow to be able to set FDT text device paths
|
|
||||||
# up to 128 characters long.
|
|
||||||
#
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdFdtDevicePaths|L" "
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Components Section - list of all EDK II Modules needed by this Platform
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
[Components.common]
|
|
||||||
|
|
||||||
#
|
|
||||||
# SEC
|
|
||||||
#
|
|
||||||
ArmPlatformPkg/Sec/Sec.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
# Use the implementation which set the Secure bits
|
|
||||||
ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicSecLib.inf
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# PEI Phase modules
|
|
||||||
#
|
|
||||||
!ifdef $(EDK2_SKIP_PEICORE)
|
|
||||||
ArmPlatformPkg/PrePi/PeiMPCore.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressFoundationLib.inf
|
|
||||||
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.inf
|
|
||||||
}
|
|
||||||
!else
|
|
||||||
ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Pei/PeiArmPlatformGlobalVariableLib.inf
|
|
||||||
}
|
|
||||||
MdeModulePkg/Core/Pei/PeiMain.inf
|
|
||||||
MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
|
||||||
}
|
|
||||||
ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
|
||||||
ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
|
||||||
ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
||||||
IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
|
||||||
Nt32Pkg/BootModePei/BootModePei.inf
|
|
||||||
MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
|
||||||
MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
|
||||||
}
|
|
||||||
!endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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/EmuRuntimeDxe/EmuVariableRuntimeDxe.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
|
|
||||||
EmbeddedPkg/SerialDxe/SerialDxe.inf
|
|
||||||
|
|
||||||
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
|
||||||
|
|
||||||
ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
|
||||||
ArmPkg/Drivers/TimerDxe/TimerDxe.inf
|
|
||||||
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Semi-hosting filesystem
|
|
||||||
#
|
|
||||||
ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Platform Driver
|
|
||||||
#
|
|
||||||
ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
|
|
||||||
OvmfPkg/VirtioBlkDxe/VirtioBlk.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
|
|
||||||
|
|
||||||
#
|
|
||||||
# Bds
|
|
||||||
#
|
|
||||||
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
|
||||||
ArmPlatformPkg/Bds/Bds.inf
|
|
@@ -1,332 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2011 - 2015, ARM Limited. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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.RTSM_VE_Foundationv8_EFI]
|
|
||||||
BaseAddress = 0xA0000000|gArmTokenSpaceGuid.PcdFdBaseAddress # The base address of the Firmware in RAM (Foundation model has no NOR Flash).
|
|
||||||
Size = 0x00300000|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device
|
|
||||||
ErasePolarity = 1
|
|
||||||
|
|
||||||
# This one is tricky, it must be: BlockSize * NumBlocks = Size
|
|
||||||
BlockSize = 0x00001000
|
|
||||||
NumBlocks = 0x300
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Following are lists of FD Region layout which correspond to the locations of different
|
|
||||||
# images within the flash device.
|
|
||||||
#
|
|
||||||
# Regions must be defined in ascending order and may not overlap.
|
|
||||||
#
|
|
||||||
# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
|
|
||||||
# the pipe "|" character, followed by the size of the region, also in hex with the leading
|
|
||||||
# "0x" characters. Like:
|
|
||||||
# Offset|Size
|
|
||||||
# PcdOffsetCName|PcdSizeCName
|
|
||||||
# RegionType <FV, DATA, or FILE>
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
0x00000000|0x00080000
|
|
||||||
gArmTokenSpaceGuid.PcdSecureFvBaseAddress|gArmTokenSpaceGuid.PcdSecureFvSize
|
|
||||||
FV = FVMAIN_SEC
|
|
||||||
|
|
||||||
0x00080000|0x00280000
|
|
||||||
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_SEC]
|
|
||||||
FvAlignment = 16
|
|
||||||
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/Sec/Sec.inf
|
|
||||||
|
|
||||||
|
|
||||||
[FV.FvMain]
|
|
||||||
BlockSize = 0x40
|
|
||||||
NumBlocks = 0 # This FV gets compressed so make it just big enough
|
|
||||||
FvAlignment = 16 # 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 = 6685e0b5-d6bb-4c12-97ef-58bd87112dee
|
|
||||||
|
|
||||||
APRIORI DXE {
|
|
||||||
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
|
|
||||||
}
|
|
||||||
|
|
||||||
INF MdeModulePkg/Core/Dxe/DxeMain.inf
|
|
||||||
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.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/EmuRuntimeDxe/EmuVariableRuntimeDxe.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 EmbeddedPkg/SerialDxe/SerialDxe.inf
|
|
||||||
|
|
||||||
INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
|
||||||
INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf
|
|
||||||
INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Semi-hosting filesystem
|
|
||||||
#
|
|
||||||
INF ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
|
|
||||||
#
|
|
||||||
# Platform Driver
|
|
||||||
#
|
|
||||||
INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
|
|
||||||
INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# UEFI application (Shell Embedded Boot Loader)
|
|
||||||
#
|
|
||||||
INF ShellBinPkg/UefiShell/UefiShell.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Bds
|
|
||||||
#
|
|
||||||
INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
|
||||||
INF ArmPlatformPkg/Bds/Bds.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
|
|
||||||
|
|
||||||
# FV Filesystem
|
|
||||||
INF MdeModulePkg/Universal/FvSimpleFileSystemDxe/FvSimpleFileSystemDxe.inf
|
|
||||||
|
|
||||||
# Legacy Linux Loader
|
|
||||||
INF ArmPkg/Application/LinuxLoader/LinuxLoader.inf
|
|
||||||
|
|
||||||
[FV.FVMAIN_COMPACT]
|
|
||||||
FvAlignment = 16
|
|
||||||
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
|
|
||||||
|
|
||||||
!if $(EDK2_SKIP_PEICORE) == 1
|
|
||||||
INF ArmPlatformPkg/PrePi/PeiMPCore.inf
|
|
||||||
!else
|
|
||||||
INF ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
|
|
||||||
INF MdeModulePkg/Core/Pei/PeiMain.inf
|
|
||||||
INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
|
||||||
INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
|
||||||
INF ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
||||||
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
|
||||||
INF IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
|
||||||
INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
|
|
||||||
!endif
|
|
||||||
|
|
||||||
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 = 4K $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
||||||
}
|
|
||||||
|
|
||||||
[Rule.Common.PEI_CORE]
|
|
||||||
FILE PEI_CORE = $(NAMED_GUID) {
|
|
||||||
TE TE Align = 8 $(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 Align = 8 $(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)
|
|
||||||
}
|
|
@@ -1,291 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2011-2015, ARM Limited. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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-RTSM-AEMv8Ax4
|
|
||||||
PLATFORM_GUID = f7003abd-8809-4096-ac3d-a6a99ff52478
|
|
||||||
PLATFORM_VERSION = 0.1
|
|
||||||
DSC_SPECIFICATION = 0x00010005
|
|
||||||
OUTPUT_DIRECTORY = Build/ArmVExpress-RTSM-AEMv8Ax4
|
|
||||||
SUPPORTED_ARCHITECTURES = AARCH64
|
|
||||||
BUILD_TARGETS = DEBUG|RELEASE
|
|
||||||
SKUID_IDENTIFIER = DEFAULT
|
|
||||||
FLASH_DEFINITION = ArmPlatformPkg/ArmVExpressPkg/ArmVExpress-RTSM-AEMv8Ax4.fdf
|
|
||||||
|
|
||||||
!include ArmPlatformPkg/ArmVExpressPkg/ArmVExpress.dsc.inc
|
|
||||||
|
|
||||||
[LibraryClasses.common]
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
|
|
||||||
ArmCpuLib|ArmPkg/Drivers/ArmCpuLib/ArmCortexAEMv8Lib/ArmCortexAEMv8Lib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressLib.inf
|
|
||||||
|
|
||||||
ArmPlatformSysConfigLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSysConfigLib/ArmVExpressSysConfigLib.inf
|
|
||||||
NorFlashPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/NorFlashArmVExpressLib/NorFlashArmVExpressLib.inf
|
|
||||||
LcdPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpressLib.inf
|
|
||||||
|
|
||||||
TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
|
|
||||||
|
|
||||||
# VirtIo Support
|
|
||||||
VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
|
|
||||||
VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.SEC]
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64LibSec.inf
|
|
||||||
ArmPlatformSecLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressSecLibRTSM/ArmVExpressSecLib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressLibSec.inf
|
|
||||||
|
|
||||||
[LibraryClasses.common.UEFI_DRIVER, LibraryClasses.common.UEFI_APPLICATION, LibraryClasses.common.DXE_RUNTIME_DRIVER, LibraryClasses.common.DXE_DRIVER]
|
|
||||||
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf
|
|
||||||
|
|
||||||
[BuildOptions]
|
|
||||||
GCC:*_*_AARCH64_PLATFORM_FLAGS == -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include -I$(WORKSPACE)/ArmPlatformPkg/ArmVExpressPkg/Include/Platform/RTSM
|
|
||||||
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
[PcdsFeatureFlag.common]
|
|
||||||
!ifdef $(EDK2_SKIP_PEICORE)
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryInitializeInSec|TRUE
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSendSgiToBringUpSecondaryCores|TRUE
|
|
||||||
!endif
|
|
||||||
|
|
||||||
## 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
|
|
||||||
|
|
||||||
# UEFI firmware is responsible to park the secondary cores on this platform.
|
|
||||||
# This PCD ensures the secondary cores are parked into the AArch64 Linux parking protocol.
|
|
||||||
gArmTokenSpaceGuid.PcdArmLinuxSpinTable|TRUE
|
|
||||||
|
|
||||||
[PcdsFixedAtBuild.common]
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdFirmwareVendor|"ARM Versatile Express"
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdEmbeddedPrompt|"ArmVExpress-RTSM"
|
|
||||||
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCoreCount|8
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
|
|
||||||
# FVP models can have 2 clusters with 4 cpus each
|
|
||||||
# Stacks for MPCores in Secure World
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0x2E009000
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecPrimaryStackSize|0x1000
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecSecondaryStackSize|0x800
|
|
||||||
|
|
||||||
# Stacks for MPCores in Normal World
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x2E000000
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize|0x800
|
|
||||||
|
|
||||||
# System Memory (2GB)
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
|
|
||||||
gArmTokenSpaceGuid.PcdSystemMemorySize|0x80000000
|
|
||||||
|
|
||||||
# Size of the region used by UEFI in permanent memory (Reserved 64MB)
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM Pcds
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdArmUncachedMemoryMask|0x0000000040000000
|
|
||||||
|
|
||||||
## Trustzone enable (to make the transition from EL3 to EL2 in ArmPlatformPkg/Sec)
|
|
||||||
gArmTokenSpaceGuid.PcdTrustzoneSupport|TRUE
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM PrimeCell
|
|
||||||
#
|
|
||||||
|
|
||||||
## SP805 Watchdog - Motherboard Watchdog at 24MHz
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP805WatchdogBase|0x1C0F0000
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdSP805WatchdogClockFrequencyInHz|24000000
|
|
||||||
|
|
||||||
## PL011 - Serial Terminal
|
|
||||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSerialRegisterBase|0x1c090000
|
|
||||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|38400
|
|
||||||
|
|
||||||
## PL031 RealTimeClock
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x1C170000
|
|
||||||
|
|
||||||
## PL111 Versatile Express Motherboard controller
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL111LcdBase|0x1C1F0000
|
|
||||||
|
|
||||||
## PL180 MMC/SD card controller
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL180SysMciRegAddress|0x1C010048
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdPL180MciBaseAddress|0x1C050000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM General Interrupt Controller
|
|
||||||
#
|
|
||||||
gArmTokenSpaceGuid.PcdGicDistributorBase|0x2C001000
|
|
||||||
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x2C002000
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM OS Loader
|
|
||||||
#
|
|
||||||
# Versatile Express machine type (ARM VERSATILE EXPRESS = 2272) required for ARM Linux:
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDescription|L"Linux from SemiHosting"
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootDevicePath|L"VenHw(C5B9C74A-6D72-4719-99AB-C59F199091EB)/Image"
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument|"root=/dev/mmcblk0p2 console=ttyAMA0 earlyprintk=pl011,0x1c090000 debug user_debug=31 loglevel=9"
|
|
||||||
|
|
||||||
# Use the serial console (ConIn & ConOut) and the Graphic driver (ConOut)
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultConOutPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi();VenHw(407B4008-BF5B-11DF-9547-CF16E0D72085)"
|
|
||||||
gArmPlatformTokenSpaceGuid.PcdDefaultConInPaths|L"VenHw(D3987D4B-971A-435F-8CAF-4967EB627241)/Uart(38400,8,N,1)/VenPcAnsi()"
|
|
||||||
|
|
||||||
#
|
|
||||||
# ARM Architectural Timer Frequency
|
|
||||||
#
|
|
||||||
# Set model tick to 100MHz. This depends a lot on workstation performance.
|
|
||||||
gArmTokenSpaceGuid.PcdArmArchTimerFreqInHz|100000000
|
|
||||||
|
|
||||||
[PcdsDynamicDefault.common]
|
|
||||||
#
|
|
||||||
# The size of a dynamic PCD of the (VOID*) type can not be increased at run
|
|
||||||
# time from its size at build time. Set the "PcdFdtDevicePaths" PCD to a 128
|
|
||||||
# character "empty" string, to allow to be able to set FDT text device paths
|
|
||||||
# up to 128 characters long.
|
|
||||||
#
|
|
||||||
gEmbeddedTokenSpaceGuid.PcdFdtDevicePaths|L" "
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Components Section - list of all EDK II Modules needed by this Platform
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
[Components.common]
|
|
||||||
|
|
||||||
#
|
|
||||||
# SEC
|
|
||||||
#
|
|
||||||
ArmPlatformPkg/Sec/Sec.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
# Use the implementation which set the Secure bits
|
|
||||||
ArmGicLib|ArmPkg/Drivers/ArmGic/ArmGicSecLib.inf
|
|
||||||
}
|
|
||||||
|
|
||||||
#
|
|
||||||
# PEI Phase modules
|
|
||||||
#
|
|
||||||
!ifdef $(EDK2_SKIP_PEICORE)
|
|
||||||
ArmPlatformPkg/PrePi/PeiMPCore.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
ArmLib|ArmPkg/Library/ArmLib/AArch64/AArch64Lib.inf
|
|
||||||
ArmPlatformLib|ArmPlatformPkg/ArmVExpressPkg/Library/ArmVExpressLibRTSM/ArmVExpressLib.inf
|
|
||||||
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/PrePi/PrePiArmPlatformGlobalVariableLib.inf
|
|
||||||
}
|
|
||||||
!else
|
|
||||||
ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
ArmPlatformGlobalVariableLib|ArmPlatformPkg/Library/ArmPlatformGlobalVariableLib/Pei/PeiArmPlatformGlobalVariableLib.inf
|
|
||||||
}
|
|
||||||
MdeModulePkg/Core/Pei/PeiMain.inf
|
|
||||||
MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
|
||||||
}
|
|
||||||
ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
|
||||||
ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
|
||||||
ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
||||||
IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
|
||||||
Nt32Pkg/BootModePei/BootModePei.inf
|
|
||||||
MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
|
||||||
MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
|
|
||||||
<LibraryClasses>
|
|
||||||
NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
|
||||||
}
|
|
||||||
!endif
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
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
|
|
||||||
EmbeddedPkg/SerialDxe/SerialDxe.inf
|
|
||||||
|
|
||||||
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
|
||||||
|
|
||||||
ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/NorFlashDxe/NorFlashDxe.inf
|
|
||||||
ArmPkg/Drivers/TimerDxe/TimerDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111LcdGraphicsOutputDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/SP805WatchdogDxe/SP805WatchdogDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Semi-hosting filesystem
|
|
||||||
#
|
|
||||||
ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Multimedia Card Interface
|
|
||||||
#
|
|
||||||
EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
|
|
||||||
ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Platform Driver
|
|
||||||
#
|
|
||||||
ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
|
|
||||||
OvmfPkg/VirtioBlkDxe/VirtioBlk.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
|
|
||||||
|
|
||||||
#
|
|
||||||
# Bds
|
|
||||||
#
|
|
||||||
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
|
||||||
ArmPlatformPkg/Bds/Bds.inf
|
|
@@ -1,343 +0,0 @@
|
|||||||
#
|
|
||||||
# Copyright (c) 2011 - 2015, ARM Limited. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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.RTSM_VE_AEMv8_EFI]
|
|
||||||
BaseAddress = 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress # The base address of the Firmware in NOR Flash.
|
|
||||||
Size = 0x00300000|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device
|
|
||||||
ErasePolarity = 1
|
|
||||||
|
|
||||||
# This one is tricky, it must be: BlockSize * NumBlocks = Size
|
|
||||||
BlockSize = 0x00001000
|
|
||||||
NumBlocks = 0x300
|
|
||||||
|
|
||||||
################################################################################
|
|
||||||
#
|
|
||||||
# Following are lists of FD Region layout which correspond to the locations of different
|
|
||||||
# images within the flash device.
|
|
||||||
#
|
|
||||||
# Regions must be defined in ascending order and may not overlap.
|
|
||||||
#
|
|
||||||
# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
|
|
||||||
# the pipe "|" character, followed by the size of the region, also in hex with the leading
|
|
||||||
# "0x" characters. Like:
|
|
||||||
# Offset|Size
|
|
||||||
# PcdOffsetCName|PcdSizeCName
|
|
||||||
# RegionType <FV, DATA, or FILE>
|
|
||||||
#
|
|
||||||
################################################################################
|
|
||||||
|
|
||||||
0x00000000|0x00080000
|
|
||||||
gArmTokenSpaceGuid.PcdSecureFvBaseAddress|gArmTokenSpaceGuid.PcdSecureFvSize
|
|
||||||
FV = FVMAIN_SEC
|
|
||||||
|
|
||||||
0x00080000|0x00280000
|
|
||||||
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_SEC]
|
|
||||||
FvBaseAddress = 0x0
|
|
||||||
FvForceRebase = TRUE
|
|
||||||
FvAlignment = 16
|
|
||||||
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/Sec/Sec.inf
|
|
||||||
|
|
||||||
|
|
||||||
[FV.FvMain]
|
|
||||||
BlockSize = 0x40
|
|
||||||
NumBlocks = 0 # This FV gets compressed so make it just big enough
|
|
||||||
FvAlignment = 16 # 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 = a2fc72eb-4157-40a3-8110-14c010e810b4
|
|
||||||
|
|
||||||
APRIORI DXE {
|
|
||||||
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
|
|
||||||
}
|
|
||||||
|
|
||||||
INF MdeModulePkg/Core/Dxe/DxeMain.inf
|
|
||||||
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.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 EmbeddedPkg/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/SP805WatchdogDxe/SP805WatchdogDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Semi-hosting filesystem
|
|
||||||
#
|
|
||||||
INF ArmPkg/Filesystem/SemihostFs/SemihostFs.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# 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
|
|
||||||
|
|
||||||
#
|
|
||||||
# Multimedia Card Interface
|
|
||||||
#
|
|
||||||
INF EmbeddedPkg/Universal/MmcDxe/MmcDxe.inf
|
|
||||||
INF ArmPlatformPkg/Drivers/PL180MciDxe/PL180MciDxe.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Platform Driver
|
|
||||||
#
|
|
||||||
INF ArmPlatformPkg/ArmVExpressPkg/ArmVExpressDxe/ArmFvpDxe.inf
|
|
||||||
INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# UEFI application (Shell Embedded Boot Loader)
|
|
||||||
#
|
|
||||||
INF ShellBinPkg/UefiShell/UefiShell.inf
|
|
||||||
|
|
||||||
#
|
|
||||||
# Bds
|
|
||||||
#
|
|
||||||
INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
|
||||||
INF ArmPlatformPkg/Bds/Bds.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
|
|
||||||
|
|
||||||
# Legacy Linux Loader
|
|
||||||
INF ArmPkg/Application/LinuxLoader/LinuxLoader.inf
|
|
||||||
|
|
||||||
[FV.FVMAIN_COMPACT]
|
|
||||||
FvAlignment = 16
|
|
||||||
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
|
|
||||||
|
|
||||||
!if $(EDK2_SKIP_PEICORE) == 1
|
|
||||||
INF ArmPlatformPkg/PrePi/PeiMPCore.inf
|
|
||||||
!else
|
|
||||||
INF ArmPlatformPkg/PrePeiCore/PrePeiCoreMPCore.inf
|
|
||||||
INF MdeModulePkg/Core/Pei/PeiMain.inf
|
|
||||||
INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
|
||||||
INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
|
||||||
INF ArmPkg/Drivers/CpuPei/CpuPei.inf
|
|
||||||
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
|
||||||
INF IntelFrameworkModulePkg/Universal/StatusCode/Pei/StatusCodePei.inf
|
|
||||||
INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
|
||||||
INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
|
|
||||||
!endif
|
|
||||||
|
|
||||||
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 = 4K $(INF_OUTPUT)/$(MODULE_NAME).efi
|
|
||||||
}
|
|
||||||
|
|
||||||
[Rule.Common.PEI_CORE]
|
|
||||||
FILE PEI_CORE = $(NAMED_GUID) {
|
|
||||||
TE TE Align = 8 $(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 Align = 8 $(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)
|
|
||||||
}
|
|
@@ -1,43 +0,0 @@
|
|||||||
==============================================
|
|
||||||
= ARM RealView Emulation Board Documentation =
|
|
||||||
==============================================
|
|
||||||
|
|
||||||
|
|
||||||
Howto build UEFI RealView EB for RealTime System Model
|
|
||||||
------------------------------------------------------
|
|
||||||
|
|
||||||
For Linux
|
|
||||||
---------
|
|
||||||
|
|
||||||
1. Get EDK2 from Tianocore Subversion repository
|
|
||||||
svn co https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2 edk2 --username guest
|
|
||||||
|
|
||||||
2. Get FatPkg from EDK2 SVN repository:
|
|
||||||
cd edk2
|
|
||||||
svn co https://edk2-fatdriver2.svn.sourceforge.net/svnroot/edk2-fatdriver2/trunk/FatPkg FatPkg --username guest
|
|
||||||
|
|
||||||
3. Set up the environment. And build the EDK2<4B>s tools
|
|
||||||
export EDK_TOOLS_PATH=`pwd`/BaseTools
|
|
||||||
. edksetup.sh `pwd`/BaseTools/
|
|
||||||
make -C $EDK_TOOLS_PATH
|
|
||||||
|
|
||||||
4. Build the ARM RealView EB UEFI Firmware
|
|
||||||
build -a ARM -p ArmPlatformPkg/ArmRealViewEBPkg/ArmRealViewEb-RTSM-A8.dsc -t RVCTLINUX
|
|
||||||
|
|
||||||
|
|
||||||
Howto test UEFI RealView EB on RealTime System Model - Example Cortex A8
|
|
||||||
------------------------------------------------------------------------
|
|
||||||
|
|
||||||
1. Build 'ArmRealViewEb-RTSM-A8.dsc'
|
|
||||||
|
|
||||||
2. To Run ArmRealViewEbPkg on the RTSM
|
|
||||||
1. Start RealView Debugger
|
|
||||||
2. Target > "Connect to Target"
|
|
||||||
3. Add RTSM
|
|
||||||
4. Configure this new RTSM.
|
|
||||||
5. Choose CortexA8
|
|
||||||
6. Setup the 'fname' of baseboard.flashldr_0 with your FD file (eg: c:\dev\edk2\Build\ArmRealViewEb-RTSM-A8\DEBUG_RVCT\FV\ARMREALVIEWEB_EFI.fd)
|
|
||||||
7. Turn use_s8 to TRUE in baseboard.sp810_sysctrl
|
|
||||||
8. Turn uart_enable to TRUE in baseboard.uart_0
|
|
||||||
4. Connect a telnet client to the port 5000 of your localhost
|
|
||||||
5. Launch the program
|
|
Reference in New Issue
Block a user