Commit Graph

87 Commits

Author SHA1 Message Date
oliviermartin a6caee65ac ArmPlatformPkg: Remove PcdStandalone from Sec module and Introduce ArmPlatformSecExtraAction()
The PcdStandalone is a PCD ARM Ltd uses to make the difference between a standalone UEFI (boot
from cold boot to Boot Manager without user intervention) and a Debug UEFI firmware (the firmware
engineer has to copy the Normale World image into the DRAM to enable his/her firmware).

By coping the firmware into DRAM in the non standalone version it is much faster than reflashing
the NOR Flash after each build.

ArmPlatformSecExtraAction() function is called just before the Sec module jump to normal world.
The platform firmware can run extra actions at this stage.
The 'ARM Standalone' concept has moved to the implementation of ArmPlatformSecExtraAction() for
the ARM development boards (in ArmPlatformPkg/Library/DebugSecExtraActionLib).


ArmPlatformPkg: Enable DebugAgentLib in Sec and PrePeiCore


ArmPlatformPkg: Fix line endings in some source files

Use CR+LF line endings as defined by the EDK2 coding convention




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11991 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-06 16:07:54 +00:00
oliviermartin 3723a71a33 ArmPlatformPkg: Fix builds
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11964 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-01 19:51:48 +00:00
oliviermartin cb5bf2697d ArmPlatformPkg: Set an empty value to the argument of the default boot entry
Set gArmPlatformTokenSpaceGuid.PcdDefaultBootArgument with the empty string
in DSC files.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11963 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-01 17:01:37 +00:00
oliviermartin 4d900a638e ArmPlatformPkg: Replace the macro $(BUILD_TARGETS) by $(TARGET) in DSC file
The $(BUILD_TARGETS) macro was used to make the difference between DEBUG and
RELEASE builds. The $(TARGET) macro should be used instead.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11961 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-01 16:58:28 +00:00
oliviermartin c52e2dca64 ArmPlatformPkg/PL35xSmc: Clean SMC driver to replace hardcoded Chip Select into the driver itself by passing SMC configuration to the driver
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11959 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-01 16:33:22 +00:00
oliviermartin 5cc45b70c3 ArmPkg: Move ARM Platform drivers from ArmPkg/Drivers/ to ArmPlatformPkg/Drivers/
The idea is to keep ArmPkg responsible for the ARM architectural modules and ArmPlatformPkg
the ARM development platform packages (with their respective drivers).


ArmPlatformPkg: Reduce driver dependency on ArmPlatform.h

- Move some driver definitions from C-Macro to PCD values
- Unify PCD driver namespace




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11956 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-01 15:30:01 +00:00
oliviermartin 64e03133cc ArmPlatformPkg: Add support for PrePi module
This module is enabled for ArmRealViewEb and ArmvExpress builds
when the macro EDK2_SKIP_PEICORE is passed to the build system.

The PrePi module can be used when the DRAM has already been initialized
by the SEC phase/1st stage boot loader and no call to external PEIM is
required.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11953 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-01 14:33:26 +00:00
oliviermartin bf72cf3381 ArmPlatformPkg: Move PcdStandalone from Feature PCD to Fixed PCD
Feature PCDs cannot be used in assembly files.
The PcdStandalone PCD is needed in one of the assembly file of the
ArmPlatformPkg/PrePi module.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11952 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-01 14:21:12 +00:00
oliviermartin bf276b45b8 ArmPlatformPkg/ArmVExpressLib: Move Secure code into a separate file
The code specific to the secure intialization has been moved into a
separate file that is not linked with the Normal world version of the
library.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11810 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 12:12:49 +00:00
oliviermartin 6aaa8d7d9b ArmPlatformPkg/ArmRealViewEbPkg: Fix some register definitions
Some registers were not correctly set. Some other registers do not
exist on ARM RealView EB.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11809 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 12:11:29 +00:00
oliviermartin f598bf1266 ArmPlatformPkg: Code cleaning
- Fix coding style to follow EDK2 coding convention
- Remove deprecated function
- Remove unused PCDs



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11808 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 12:10:19 +00:00
oliviermartin 1ad14bc86b ArmPlatformPkg: Unify the Secure and Normal FD and FV PCD naming
With this change, we now have these following PCDs values to define the
location of the Secure and Normal firmwares:
- gArmTokenSpaceGuid.PcdSecureFd(BaseAddress|Size)
- gArmTokenSpaceGuid.PcdSecureFv(BaseAddress|Size)
- gArmTokenSpaceGuid.PcdNormalFd(BaseAddress|Size)
- gArmTokenSpaceGuid.PcdNormalFv(BaseAddress|Size)



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11806 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 12:06:59 +00:00
oliviermartin 9d074e739f ArmPlatformPkg: Clean DSC files
Remove unused or duplicated libraries declarations



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11805 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 12:04:41 +00:00
oliviermartin b1b0fbed06 ArmPlatformPkg/ArmRealViewEbPkg: Fixed General Interrupt Controller Base Address
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11804 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 12:03:48 +00:00
oliviermartin 47a8e12fe1 ArmPlatformPkg/PrePeiCore: Reserve some memory on the top of the stack for Global Variables in XIP code
The size of this memory is controlled by a PCD. The Global Variable in this regsion are defined by their offset.

This memory region can be use to store the PEI Services Table Pointer.
Update the PeiServicesTablePointerLib to use this region instead of PcdPeiServicePtrAddr.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11803 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 12:03:00 +00:00
oliviermartin 936eff09c3 ArmPlatformPkg: Enable console splitter for all ARM platforms
The Graphics Output Protocol is enable by default.

Note: ArmRealViewEb RTSM supports the LCD controller as well.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11802 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 12:00:58 +00:00
oliviermartin ea46ebbe6a ArmPlatformPkg/Bds: Upgrade the BDS to be more conformed to the UEFI Specification
The UEFI Specification defines some requirement related to the Boot Manager.
This new version of the BDS support most of the features:
- TimeOut, BootNext, BootOrder, Boot### environment variable for boot device selection
- ConOut. ConIn, ConErr environment variables for console intialization
- Boot EFI application defined by a Device Path
- Support removable devices
- Support FileSystem, MemMap, PXE and TFTP boot devices



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11800 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 11:58:23 +00:00
oliviermartin e6b3b50834 EmbeddedPkg/Ebl: Move the flag string %a for the path from the PCD to the function call
The UEFI platform designer had to add '%a' to their EBL prompt PCD to print out the path
in the shell.
This change makes the addition of the path automatically after the platform specific value
in the EBL shell.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11798 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 11:28:59 +00:00
oliviermartin d355ba4855 ArmPlatformPkg/ArmRealViewEb: Add SysConfigLib support
The ARM RealViewEB tiles could have their microcontrollers mapped into the
ARM RealView EB motherboard memory map



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11796 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 11:25:03 +00:00
oliviermartin 0f4386e775 ArmPlatformPkg/PL031RealTimeClockLib: Implement PL031 RTC drive
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11793 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 11:20:27 +00:00
oliviermartin 1eb3454b8a ArmPlatformPkg/SP804TimerDxe: Replaced Interrupt number #define by a PCD
The PcdSP804Timer0InterruptNum defines the interrupt number attached to SP804 Timer0.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11791 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 11:17:41 +00:00
oliviermartin 9bc6ef0231 ArmPlatformPkg/ArmRealViewEb: Add support for PL111 Lcd controller
- Add the LcdGraphicsOutputDxe driver to DSC and FDF file.
- Implement LcdPlatformLib for the platform.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11787 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 11:14:06 +00:00
oliviermartin 6fd231c072 ArmPlatformPkg/ArmRealViewEbPkg: Set some missing PCDs
PcdEmbeddedPerformanceCounterFrequencyInHz and PcdSerialRegisterBase
were not defined.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11748 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:40:01 +00:00
oliviermartin a89cb4b773 ArmPlatformPkg/ArmRealViewEbPkg: Use NorFlashDxe and enable variables services
The ARM RealView EB (hardware and RTSM) supports the same NOR Flash controller
as the ARM Versatile Express.
Add the implementation of the NorFlashPlatformLib for ArmRealViewEb.

Remove the Firmware Volume Block raw data used to enable environment variables on
ARM RealView EB from the FDF file to use the NOR Flash driver.

Replace the variable service emulation by the version using Firmware Volume Block.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11747 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:39:00 +00:00
oliviermartin 23792dea0c ArmPlatformPkg/SP804Timer: Remove the SP810 System Controller dependency
The SP804 drivers must not consider the presence of the SP810 System Controller
on the platform. The SP810 was used to enable the SP804 Dual Timers on ArmVExpress.
It is the role of the Platform specific driver to enable to the SP804 dual timers
if required.

The former SP810 initialization code has moved to ArmPlatformLib for ArmRealViewEb
and ArmVersatileExpress.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11744 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:32:39 +00:00
oliviermartin 9dcfb8e5c8 ArmPlatformPkg/PL011Uart: Create PL011 UART driver
This library makes the interface with the PL011 UART controller.
This library can be linked to different types of driver (Serial Console,
debugger, etc) using PL011 UART controller.


ArmPlatformPkg/PL011SerialPortLib: Use Drivers/PL011Uart

Remove the direct accesses to the PL011 UART controller to use the PL011Uart
library.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11743 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:31:02 +00:00
oliviermartin 55fad96509 ArmPlatformPkg/ArmRealViewEbPkg: Use PL390 GIC on RTSM
ArmRealViewEb model (RTSM) use the PL390 Generic Interrupt Controller
as interrupt controller.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11732 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:17:04 +00:00
oliviermartin f9b0d42aa7 ArmPlatformPkg/ArmRealViewEbPkg: Remove unused PCD
gArmRealViewEbPkgTokenSpaceGuid.PcdPeiServicePtrAddr is not used.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11731 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:15:14 +00:00
oliviermartin aa01abaa77 ArmPlatformPkg/ArmPlatformLib: Renamed ArmPlatformInitialize into ArmPlatformSecInitialize
Some platforms require some of their controllers to be initialized in Secure world.
This function make the difference between Secure and Normal world platform initialization.


ArmPlatformPkg/ArmPlatformLib: Introduce ArmPlatformNormalInitialize

Contain the code that initializes platform controllers that would be initialized in Normal World
by PlatformPei.




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11591 6f19259b-4bc3-4df7-8a09-765794883524
2011-04-26 18:27:15 +00:00
oliviermartin 95650ceda8 ArmPlatform: Remove dummy padding to make the Reset Vector aligned on 32 bytes boundary
A dummy padding was added before the Reset Vectors to force the alignment on a
32 bytes boundary in XIP code.
The correct fix is to define the alignment in the FDF file.




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11588 6f19259b-4bc3-4df7-8a09-765794883524
2011-04-26 17:00:11 +00:00
oliviermartin a54d210938 ArmPlatformPkg: Fix build
Declared DebugPrintErrorLevelLib for the ArmPlatformPkg builds.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11484 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 12:24:08 +00:00
oliviermartin 964680c124 ArmPlatformPkg/ArmPlatformLib: Move the UEFI memory partionning to MemoryInitPei
Formerly, each platform was responsible to declare the location of its UEFI memory
region (used by PEI and DXE Foundations).
The ArmPlatformLib was also declaring every region of its partitionned system memory
with a System Resource HOB.
    
In this new model, the MemoryInit expects the system memory to be declared with the
PCDs gArmTokenSpaceGuid.PcdSystemMemoryBase/Size.
These PCDs declare the largest continuous DRAM region. Additional regions can be
declared with the ArmPLatformLib function ArmPlatformGetAdditionalSystemMemory().
    
Now, it is the PEIM that partitions the system memory for every platform. It installs
a region of the size PcdSystemMemoryUefiRegionSize (default 128MB) for the PEI permanent
memory at the top of the DRAM region.
And a region of gArmPlatformTokenSpaceGuid.PcdSystemMemoryFixRegionSize (default 128MB)
is declared at the base of the system memory. This region is used for the allocation that
requires fixed address or have some constraints on their locations.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11481 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 12:21:41 +00:00
oliviermartin a534d71480 ArmPlatformPkg/ArmPlatformLib: Introduce the function ArmPlatformGetBootMode()
This function returns the current Boot Mode of the ARM Platform.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11480 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 12:18:28 +00:00
oliviermartin 8e06b586e8 ArmPlatformPkg: Introduce ArmPlatformInitialize() function
This function is responsible to handle all the specific platform code that must
be run in secure world to initialize some controllers.
   

ArmPlatformPkg/Sec: Move the L2x0 initialization to ArmPlatformLib
    
The L2x0 controller must be initialized in secure world. Move its initialization
into the ArmPlatformInitialize() of the Cortex A9x4 Core Tile PlatformLib.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11476 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 12:12:58 +00:00
oliviermartin 262a9b0444 ArmPlatformPkg: Rename gEmbeddedTokenSpaceGuid.PcdEmbeddedFd* into gArmTokenSpaceGuid.PcdNormalFd*
This renaming is for matching the namespace with the secure firmware
gArmTokenSpaceGuid.PcdSecureFdBaseAddress/Size.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11475 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 12:11:12 +00:00
andrewfish 6377d2f12d Fix minor Xcode build issues.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11348 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-05 13:23:47 +00:00
andrewfish 1d5d0ae92d Add ArmPlatformPkg from ARM Ltd. patch.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11291 6f19259b-4bc3-4df7-8a09-765794883524
2011-02-01 05:41:42 +00:00