Commit Graph

118 Commits

Author SHA1 Message Date
oliviermartin 2dbcb8f0a3 ArmPlatformPkg: Changed memory model for the stacks
In the previous version, every cores had the same stack size.
To avoid to waste memory with secondary core stacks, the primary core stack
size is now different from the secondary cores stack size.

These are the Stack PCDs and their default values:

gArmPlatformTokenSpaceGuid.PcdCPUCoresSecStackBase|0
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecPrimaryStackSize|0x10000
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecSecondaryStackSize|0x1000

gArmPlatformTokenSpaceGuid.PcdCPUCoresSecMonStackBase|0
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecMonStackSize|0x1000

gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x10000
gArmPlatformTokenSpaceGuid.PcdCPUCoreSecondaryStackSize|0x1000




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12415 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 23:05:20 +00:00
oliviermartin f156d5b49d ArmPlatformPkg/ArmPlatformLib: Removed 'ArmPlatformIsMemoryInitialized' function
'ArmPlatformInitializeBootMemory' function can check if the memory has already
been initialized.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12414 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 23:04:06 +00:00
oliviermartin 44e272fd6a ArmPlatformPkg/ArmPlatformLib: Introduce ArmPlatformSecBootAction function
This function is called at the initial stage of the Secure boot process to allow
platform vendors to add early actions.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12413 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 23:02:13 +00:00
oliviermartin 0787bc6184 ArmPlatformPkg: Introduce Primary core macros
On MpCore system, the primary core can now be any core of the system.

To identify the primary core, you can use 'gArmTokenSpaceGuid.PcdArmPrimaryCoreMask'
and 'gArmTokenSpaceGuid.PcdArmPrimaryCore'.
These PCDs by default use the ClusterId and CoreId to identify the core. And the
primary core is defined as the ClusetrId=0 and CoreId=0.

The helper macros are: IS_PRIMARY_CORE(MpId), GET_CORE_ID(MpId), GET_CLUSTER_ID(MpId),
GET_CORE_POS(MpId), PRIMARY_CORE_ID.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12412 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 23:01:13 +00:00
oliviermartin 55a0d64b88 ArmPkg: Renamed library 'PL390GicLib' into 'ArmGicLib'
This library is the interface for the ARM Generic Interrupt Controller
Architecture Specification.
ARM Platform can use any GIC controller (not necessary PL390 GIC).




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12411 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 22:59:52 +00:00
oliviermartin 76d17c3156 ArmPkg/BdsLib: Use two distinct functions to boot Linux either by Atag or Fdt
Separate the BdsBootLinux() function into two functions for Atag and Fdt specific Linux booting
- BdsBootLinuxAtag ()
- BdsBootLinuxFdt ()



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12408 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 22:54:38 +00:00
oliviermartin 11c20f4e06 Arm Packages: Fixed coding style/Line endings to follow EDK2 coding convention
Arm Packages: Fixed mispelling

Arm Packages: Reduced warnings all over the code




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12407 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 22:53:54 +00:00
oliviermartin c93ab96c01 ArmPlatformPkg/Bds: Fix menu when no boot entry are present for deletion or update
When there are no boot entries to delete, the boot manager was prompting the
user to select an entry to delete. This fix prints a message to let the
user know that he is trying delete boot entry when there are none.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12405 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 22:51:35 +00:00
oliviermartin e8e1daee63 ArmPlatformPkg/Bds: Fixed initialization of default Boot Entry with an initrd
The Boot CmdLine was used instead of the initrd Device Path.

Issue found by Sivasakthivel N (AMI India)



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12404 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 22:50:13 +00:00
oliviermartin e291948ce0 ArmPlatformPkg/patches: Updated list of Pending patches after latest BaseTools sync
BaseTools-GenC-Cast-Pcd-Types.patch changes are now part of the EDK2 Basetools mainline.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12391 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-20 16:09:47 +00:00
oliviermartin 3e710183d1 ArmPlatformPkg/Bds: Fix the update of existing boot entries
Variables were not initialized in the right order in the boot entry update function.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12335 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-13 09:03:10 +00:00
oliviermartin ff7666c511 ArmPlatformPkg/Bds: Minor fixes and coding style changes
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12316 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-09 10:56:14 +00:00
oliviermartin 4aa2417061 ArmPkg/BdsLib: Move some functions used to create/update BDS Boot Entry from ArmPlatformPkg/Bds to ArmPkg/BdsLib
These functions can be reused by any EFI application to add/update a BDS Boot Entry.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12314 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-09 10:54:33 +00:00
oliviermartin 2755d844f9 ArmPkg/BdsLib: Add support to pass argument to a loaded EFI application
OptionalData argument has to be set in the Loaded Image Protocol of the
new EFI application.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12313 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-09 10:53:42 +00:00
oliviermartin a6e97d28aa ArmPkg/BdsLib: Move the Generic BDS_LOAD_OPTION structure from Armplatform/Pkg to ArmPkg/Bds
This structure is defined by the UEFI specification and has a better location in BdsLib.


ArmPlatformPkg/Bds: Encapsulate the BDS_LOAD_OPTION into a list entry structure




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12312 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-09 10:52:31 +00:00
oliviermartin 2ccfb71ebe ArmPlatformPkg/Bds: Add a signature in front of the Boot Argument propoer to this Bds
Each application loader has its own OptionalData format. To avoid to start a Boot Entry
that has not been created by ArmPlatform/Bds a signature has been added to the
OptionalData.


ArmPlatformPkg/Bds: Rename some internal structure from BDS_* to ARM_BDS_*



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12311 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-09 10:51:13 +00:00
oliviermartin 74b961324c ArmPlatformPkg/Bds: Get User inputs in Unicode
The user input was getting in Ascii and converted later to Unicode
when required.
In this change, the user inputs are caught in Unicode and converted
to Ascii only when needed.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12310 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-09 10:49:54 +00:00
oliviermartin 6740ea74e2 Clean up Rules of Platform FDFs to apply only one EFI image and Depex for each driver
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12285 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-06 18:41:55 +00:00
oliviermartin 16d88c2d20 EmbeddedPkg/MmcDxe: Add 'This' pointer attribute to protocol function
This attribute allows the EFI_MMC_HOST_PROTOCOL interface to manage
multiple instances in one driver.


EmbeddedPkg/MmcDxe: Add Revision attribute to the EFI_MMC_HOST_PROTOCOL


Note: The ARM PL180 and Omap35xx MMC host drivers has been updated.




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12255 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-01 17:08:41 +00:00
oliviermartin c8ece79ccd ArmPlatformPkg: Fix ARM RealView EB and VE builds (2)
This file is missing from the earlier commit (ArmPlatformPkg: Fix ARM RealView EB and VE builds).



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12235 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-30 17:12:13 +00:00
oliviermartin 192039d7b3 ArmPlatformPkg: Update list of pending patches
BaseTools has recently been updated in edk2. Some of the BaseTools patches are now available in edk2 mainline.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12234 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-30 17:09:34 +00:00
oliviermartin cc1e814923 ArmPlatformPkg: Fix ARM RealView EB and VE builds
Tested with RVCTLINUX and ARMGCC toolchains.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12233 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-30 16:54:48 +00:00
oliviermartin ca8afbca68 ArmPlatformPkg: Changed the reference base of the PI Global Pointer Offset
Before the PI Global Pointer Offsets were refered to the top of the Global Pointer region (negative offset).
After this commit the Global Pointer Offset are relative to the base of the Global Pointer region.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12172 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-18 22:02:20 +00:00
oliviermartin 656416bc2e ArmPlatformPkg/Bds: Add Linux 'initrd' support to BDS
An 'initrd' file can be specified for a Linux kernel.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12169 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-18 13:21:14 +00:00
oliviermartin 326d1df919 ArmPlatformPkg/Bds: Add return carriage after the user presses 'ESC'
Otherwise, the next line of the boot menu was on the same line as the 'escaped' one.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12168 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-18 11:29:26 +00:00
oliviermartin e1808603dc ArmPlatformPkg/PrePiHobListPointerLib: Fixed pointer calculation
In the PrePi module, the global variables are located at the top of the stack.
At the opposite of the PeiCore where the global variables are located in the
middle of the stack. The top stack region is reserved for Temporary Memory.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12167 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-18 11:23:28 +00:00
oliviermartin 3757392733 ArmPlatformPkg/PrePi: Removed harcoded HobList pointer calculation to use PrePeiHobListPointerLib function
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12166 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-18 11:17:09 +00:00
oliviermartin 11e667fbab ArmPlatformPkg/PrePi: Removed second initialization of DebugAgenLib
This second initialization does not make sense in this context.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12164 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-18 10:17:59 +00:00
oliviermartin 2dde40b1ff ArmPlatformPkg/SP804TimerLib: Fix delay functions to be reentrant
In the previous implementation, if the MicroSecondDelay or NanoSecondDelay
were called while a delay function was already running, the timer HW controller
was reinitialized with the new settings and it was discarding the settings
of the first called delay function.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12163 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-18 10:14:33 +00:00
oliviermartin 9e4a626c06 ArmPlatformPkg/SP804TimerLib: Fixed macro timer base addresses
The base address for the Metronome and Performance timer were reverted.




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12162 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-18 10:06:38 +00:00
oliviermartin bb0f9e9ba3 EmbeddedPkg/MmcDxe: Fix the indexes in the response array
The indexes have been reversed compare to the specification which
created confusions in some MMC responses.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12132 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-15 16:20:55 +00:00
oliviermartin 1d36ec02a5 ArmPkg: Fix ARM builds for XCode32
- Build BeagleBoardPkg, ArmRealViewEb-A8, ArmRealView-A9x2 and ArmVExpress-CTA9x4




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12055 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-28 14:58:52 +00:00
oliviermartin 65cd89d008 ArmPkg/DebugAgentSymbolsOnlyLib: Add library to print loaded address of the SEC and PEI_CORE modules
This library that uses the DebugAgentLib interface prints the loaded addresses
of the SEC and PEI_CORE module using PeCoffExtraActionLib.

Note: Because there is no PE loader for these XIP modules, PeCoffExtraActionLib is not invoked.
This library scans the firmware volume to find these modules and calculate their fixup loaded
addresses used to load their symbols in the debugger.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12023 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-18 10:27:12 +00:00
oliviermartin e5bdb129e1 ArmPlatformPkg/Documentation: Add diagram to the documentation
- Give an overview of the different possible boot phases on ARM platforms (using
EDK2 for the full boot story or limiting its use to the last boot sequence)
- Show which functions to implement in ArmPlatformLib following the the boot phases



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12004 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-11 15:45:33 +00:00
oliviermartin 2ee8536623 ArmPlatformPkg: Fix warnings
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12001 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-07 10:52:07 +00:00
oliviermartin dbf6167688 ArmPlatformPkg/Documentation: Update ArmPLatformPkg documentation with PCD descriptions and explain how to port UEFI to new ARM platforms
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11994 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-06 16:37:37 +00:00
oliviermartin d269095b71 ArmPlatformPkg: Change the memory model for the ARM Platform components
In the former memory model, the UEFI firmware was expected to be located
at the top of the system memory. Stacks & Pi memory regions were set below
the firmware.
On some platform, the UEFI firmware could be shadowed by the ROM firmware
(case of the BeagleBoard) and in some cases the firmware is copied at the
beginning of the system memory.

With this new memory model, stack and Pi/DXE memory regions are set at the
top of the system memory wherever the UEFI firmware is located in the memory
map.
Because DXE core does not support shadowed firmwares, the system memory covered
by the UEFI firmware is marked as 'Non Present' to avoid to be overlapped by
DXE allocations.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11992 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-06 16:27:21 +00:00
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 70aa21d5d6 ArmPlatformPkg/Bds: Catch the key pressed to escape the count doan
Catch the pressed key used to not start the default boot device.
Otherwise this key would appear in the menu user input.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11990 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-06 13:52:29 +00:00
oliviermartin bcd8fa799d ArmPlatformPkg/SP804TimerLib: Fixed the performance timer
The SP804 timer counts down. Change GetPerformanceCounterProperties ()
to declare this property.




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11989 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-06 13:43:50 +00:00
oliviermartin fb42fffeb8 ArmPlatformPkg: Fix build issues
Other compiler version ... other warnings



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11970 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-04 10:18:18 +00:00
oliviermartin 597cb96fa3 ArmPlatformPkg: Update the list of the BaseTools pending patches and the documentation
To make the life easier for the user, I compiled the patches into a single patch
'BaseTools-Pending-Patches.patch'.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11966 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-01 20:26:17 +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 06a8973319 ArmPlatformPkg/PL34xDmc: Remove DMC base address from the DMC configuration
By removing the DMC Base Address from the structure, we can reuse the same DMC
configuration for two similar DMC controllers.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11960 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-01 16:50:59 +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 3c4b742c18 ArmPlatformPkg/PrePiHobListPointerLib: Get the HobListPointer from the stop of the stack
When using ArmPlatformPkg/PrePeiCore or ArmPlatformPkg/PrePi, the global variable during
the XIP phase are stored on the top of the stack.
Global variables are defined by their PCD offset from the top of this stack.

For example, the HobListPtr is defined at the offset PcdHobListPtrGlobalOffset.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11958 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-01 15:45:52 +00:00
oliviermartin 633724f462 ArmPkg: Move ARM Platform drivers from ArmPkg/Drivers/ to ArmPlatformPkg/Drivers/ (2)
... svn did not like my way to move folder from one directory to another one :-/




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11957 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-01 15:40:16 +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