Commit Graph

134 Commits

Author SHA1 Message Date
Ronald Cron 91c38d4e94 ARM Packages: Replace tabs by spaces for indentation
Replace tabs by spaces for indentation to comply to EDK2 coding standards.
Done in files with extension ".S", ".c", ".h", ".asm", ".dsc", ".inc", "*.inf",
 "*.dec" or ".fdf" and located in ArmPkg, ArmPlatformPkg, EmbeddedPkg,
BeagleBoardPkg or Omap35xxPkg.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
Reviewed-By: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15901 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-26 10:14:17 +00:00
Ronald Cron 3402aac7d9 ARM Packages: Removed trailing spaces
Trailing spaces create issue/warning when generating/applying patches.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
Reviewed-By: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15833 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-19 13:29:52 +00:00
Olivier Martin 1b0ac0dedf ArmPkg/ArmGic: Returned the InterruptId in ArmGicAcknowledgeInterrupt()
The InterruptId has a different width for GicV2 and GicV3 (respectively
10bit and 24bit).
The function prototype has been changed to return this value to make the
caller GIC architecture version independent. Otherwise, we would have need
to expose a different mask to allow the caller to retrieve this value from
the read register.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15628 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-04 14:41:30 +00:00
Olivier Martin 2ca815a495 ArmPkg/ArmGic: Move out the EndOfInterrupt from the interrupt acknowledgement
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15619 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-04 11:13:27 +00:00
Olivier Martin ec6b8eda8f ArmPlatformPkg/SP804TimerLib: Checked both Metronome and Performance timers are initialized
Prior to this change if Metronome timer was already initialized the initialization of the
Performance timer was skipped.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15577 6f19259b-4bc3-4df7-8a09-765794883524
2014-06-20 18:23:37 +00:00
Brendan Jackman ef7b378605 ARM Packages: Remove GCC filter for AARCH64 assembly files
Some non-GCC toolchain might support the GNU assembly language.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Brendan Jackman <brendan.jackman@arm.com>
Reviewed-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15504 6f19259b-4bc3-4df7-8a09-765794883524
2014-05-08 14:54:11 +00:00
Olivier Martin 18ee5b6d78 ArmPlatformPkg/PL031RealTimeClock: Fixed driver to support UEFI Runtime Services
- Removed PCD base address from the macro definition. The base address needs to be fixup when the driver runs in UEFI Runtime mode
- Added the PL031 controller memory region to the Runtime UEFI Memory Mapped IO
- Caught the gEfiEventVirtualAddressChangeGuid event to fixup the PL031 Base address

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15435 6f19259b-4bc3-4df7-8a09-765794883524
2014-04-08 17:59:00 +00:00
Olivier Martin 51ad04cbd1 ARM Packages: Include 'AsmMacroIoLibV8.h' instead of the 32bit version
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>


git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15256 6f19259b-4bc3-4df7-8a09-765794883524
2014-02-24 19:20:16 +00:00
Gao, Liming d91e3ba5e7 Add VOID MigratePeiServicesTablePointer() to fix'Deprecated declaration'.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Gao, Liming <liming.gao@intel.com>
Reviewed-By: Olivier Martin <Olivier.Martin@arm.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15139 6f19259b-4bc3-4df7-8a09-765794883524
2014-01-17 06:07:01 +00:00
Gao, Liming 382e45e7fd ArmPlatformPkg/PeiServicesTablePointerLib: Update PeiServicesTablePointerLib instance to add new API MigratePeiServicesTablePointer()
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Gao, Liming <liming.gao@intel.com>
Reviewed-By: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15120 6f19259b-4bc3-4df7-8a09-765794883524
2014-01-15 11:51:38 +00:00
Olivier Martin c357fd6a1f ArmPkg/ArmPkg.dec: Redefined PcdSystemMemory(Base|Size) as UINT64
The System Memory region might be out of the 32-bit memory space.

This change has been validated on the FVP AArch64 model using 4GB
of DRAM at 0x8_0000_0000:

-  # System Memory (2GB)
-  gArmTokenSpaceGuid.PcdSystemMemoryBase|0x80000000
-  gArmTokenSpaceGuid.PcdSystemMemorySize|0x80000000
+  # System Memory (4GB)
+  gArmTokenSpaceGuid.PcdSystemMemoryBase|0x800000000
+  gArmTokenSpaceGuid.PcdSystemMemorySize|0x100000000

EFI Shell and Linux kernel boot successfully.

Note: This change has not been validated on AArch32. I expect some
early assembly code to not work.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>




git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15093 6f19259b-4bc3-4df7-8a09-765794883524
2014-01-10 11:27:31 +00:00
Olivier Martin 8a25bd7c54 ArmPlatformPkg/ArmPlatformStackLib: Do not directly use PcdArmPrimaryCore
To make the code platform independent we should not use PcdArmPrimaryCore
in libraries other than the platform specific libraries.
Some platforms allow to change the primary core with external registers.
These platforms do not use PcdArmPrimaryCore to identify the primary CPU.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14938 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-06 16:12:24 +00:00
Olivier Martin 99267097f3 ArmPlatformPkg: Fix and Implement ArmPlatformGetPrimaryCoreMpId
- Used correct PCD
- Implement the function for AArch64, BeagleBoard, CTA15A7

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14937 6f19259b-4bc3-4df7-8a09-765794883524
2013-12-06 16:11:34 +00:00
Olivier Martin 6cc28dc4c0 ARM Packages: Removed 'Chipset/ArmV7.h' inclusion from the non-ARMv7 specific files
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14909 6f19259b-4bc3-4df7-8a09-765794883524
2013-11-28 21:38:06 +00:00
Olivier Martin cc104d19a9 ArmPlatformPkg/PL031RealTimeClockLib: Fixed the conditions in LibSetTime()
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14794 6f19259b-4bc3-4df7-8a09-765794883524
2013-10-21 11:12:21 +00:00
Olivier Martin 5b53eaffe8 ArmPkg,ArmPlatformPkg: Free memory allocated by Get.*SpaceMap()
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14507 6f19259b-4bc3-4df7-8a09-765794883524
2013-07-26 17:12:12 +00:00
Harry Liebel 1bc8326695 ArmPlatformPkg: Added Aarch64 support
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Harry Liebel <Harry.Liebel@arm.com>
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14489 6f19259b-4bc3-4df7-8a09-765794883524
2013-07-18 19:06:52 +00:00
oliviermartin 15e277d5ac EmbeddedPkg/SerialPortExtLib.h: Changed SerialPortSetAttributes() prototype to return the set value(s)
To be compliant with the UEFI specification it is required to update SERIAL_IO_MODE with the values set.
This prototype change allows to get the value used inside SerialPortSetAttributes().

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <Olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14365 6f19259b-4bc3-4df7-8a09-765794883524
2013-05-15 08:44:59 +00:00
oliviermartin b5a572238d ArmPlatform/ArmPlatformLib: Introduced ArmPlatformPeiBootAction()
This function allows platform to do any specific actions prior to
the start the PEI phase.
For instance, this function could be used by some platforms to initialize clocks that
are required at the early stage of the PEI phase.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Acked-by: Ryan Harkin <ryan.harkin@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14347 6f19259b-4bc3-4df7-8a09-765794883524
2013-05-10 12:49:10 +00:00
oliviermartin d05ca26cb8 ArmPlatformPkg/ArmPlatformLib: Added ArmPlatformGetPrimaryCoreMpId()
ArmPlatformGetPrimaryCoreMpId returns the MPID of the primary core.
The primary core might not be known at build time (eg: the platform allows
the boot CPU to be changed through board config).

This function is used during the secondary core stack initialization to know
the position of the secondary core in the SoC.
A secondary core that is at the position N, with N greater than the primary
core position, will be at the position N-1 in the list of secondary stacks
(the primary core has its own separate bigger stack).

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Acked-by: Ryan Harkin <ryan.harkin@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14345 6f19259b-4bc3-4df7-8a09-765794883524
2013-05-10 12:44:30 +00:00
oliviermartin bebda7ceec ArmPlatformPkg/ArmPlatformLib: Added support for ArmPlatformIsPrimaryCore()
Checking if a core if the primary/boot core used to be done with the macro
IS_PRIMARY_CORE().
Some platforms exposes configuration registers to change the primary core.
Replacing the macro IS_PRIMARY_CORE() by ArmPlatformIsPrimaryCore() allows
some flexibility in the way to check the primary core.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
Acked-by: Ryan Harkin <ryan.harkin@linaro.org>


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14344 6f19259b-4bc3-4df7-8a09-765794883524
2013-05-10 12:41:27 +00:00
oliviermartin 72647f1901 ArmPlatformPkg: Remove an unused function.
ArmPlatformGetAdditionalSystemMemory() function wasn't used anywhere in UEFI.
This patch deletes it.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14270 6f19259b-4bc3-4df7-8a09-765794883524
2013-04-14 09:32:45 +00:00
oliviermartin a9d7090fc2 ArmPlatformPkg: Moved ARMv7 specific files to a 'Arm' subdirectory
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14182 6f19259b-4bc3-4df7-8a09-765794883524
2013-03-12 00:54:02 +00:00
oliviermartin c0b2e4775d ArmPkg: Introduce GetGlobalEnvironmentVariable() function.
Rename GetEnvironmentVariable() function into GetGlobalEnvironmentVariable().
GetEnvironmentVariable() function sill exists but caller must now pass a Guid.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14176 6f19259b-4bc3-4df7-8a09-765794883524
2013-03-12 00:42:59 +00:00
oliviermartin b9ee70610b ArmPlatformPkg/ArmPlatformLibNull: Fixed build
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14174 6f19259b-4bc3-4df7-8a09-765794883524
2013-03-12 00:41:05 +00:00
oliviermartin d38c35f9f7 EmbeddedPkg: Introduced a separate SerialPortExtLib library
Formerly only the header was defined and it was expecting the SerialPortExtLib
interface to be implemented by SerialPortLib if supported. This behaviour was
not conform to the EDK2 framework.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14173 6f19259b-4bc3-4df7-8a09-765794883524
2013-03-12 00:40:11 +00:00
oliviermartin 166c01fbc2 ArmPkg: Move ArmSmcLib from ArmPlatformLib to ArmPkg
A ArmSmcLib Null implementation has also been added for CPU without the ARM Security
Extension (Trustzone support).

Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14164 6f19259b-4bc3-4df7-8a09-765794883524
2013-03-06 00:01:49 +00:00
oliviermartin 1e43cdfdd4 ArmPlatformPkg/PL031RealTimeClockLib: Set PL031_{TimeZone,Daylight} UEFI variables as local
PL031_TimeZone and PL031_Daylight are not global variables as defined by UEFI specification

Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14107 6f19259b-4bc3-4df7-8a09-765794883524
2013-01-28 11:59:37 +00:00
oliviermartin d5cd447b1f ArmPlatformPkg: Fixed unsigned type to be architecture independent
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14106 6f19259b-4bc3-4df7-8a09-765794883524
2013-01-28 11:56:33 +00:00
oliviermartin e7072e04e4 ArmPlatformPkg/ArmPlatformLibNull: Added template for ArmPlatformGetCorePosition()
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14105 6f19259b-4bc3-4df7-8a09-765794883524
2013-01-28 11:51:15 +00:00
oliviermartin 1e57a46299 ARM Packages: Fixed line endings
This large code change only modifies the line endings to be CRLF to be
compliant with the EDK2 coding convention document.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14088 6f19259b-4bc3-4df7-8a09-765794883524
2013-01-25 11:28:06 +00:00
oliviermartin 17839a45b8 ArmPlatformPkg/ArmPlatformStackLib: Introduced helper library to initialize stacks
The new functions are:
- ArmPlatformStackSet(IN UINTN StackBase, IN UINTN MpId, IN UINTN PrimaryStackSize, IN UINTN SecondaryStackSize);
- ArmPlatformStackSetPrimary(IN UINTN StackBase, IN UINTN MpId, IN UINTN PrimaryStackSize, IN UINTN SecondaryStackSize);
- ArmPlatformStackSetSecondary(IN UINTN StackBase, IN UINTN MpId, IN UINTN PrimaryStackSize, IN UINTN SecondaryStackSize);

The stack topology can be changed by implementing a new ArmPlatformStackLib

Signed-off-by: Olivier Martin <olivier.martin@arm.com>




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13774 6f19259b-4bc3-4df7-8a09-765794883524
2012-09-28 11:01:36 +00:00
oliviermartin 7d49ced0cf EmbeddedPkg: Introduced 'SerialPortExtLib.h'
EmbeddedPkg/SerialDxe was not allowing to set/get the control of the
Serial connection because the needed functions were not exposed in
SerialPortLib.h.
This commit introduces an additional library to extend the SerialPort
features.

Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13773 6f19259b-4bc3-4df7-8a09-765794883524
2012-09-28 10:56:12 +00:00
oliviermartin 21de944e03 ARM Packages: Moved ARM assembly files to 'Arm' subdirectory
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13772 6f19259b-4bc3-4df7-8a09-765794883524
2012-09-28 10:52:16 +00:00
oliviermartin 145292e4c8 ArmPlatformPkg/EblCmdLib: Added the command 'dumpfdt'
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13771 6f19259b-4bc3-4df7-8a09-765794883524
2012-09-28 10:48:35 +00:00
oliviermartin 68978a52ae ArmPlatformPkg/EblCmdLib: Fixed 'performance' command
Added support for performance counter that counts up or down

Signed-off-by: Olivier Martin <olivier.martin@arm.com>




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13747 6f19259b-4bc3-4df7-8a09-765794883524
2012-09-26 20:24:10 +00:00
oliviermartin 2575b72620 ArmPkg: Fixed RVCT compiler warnings
Signed-off-by: Olivier Martin <olivier.martin@arm.com>


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13490 6f19259b-4bc3-4df7-8a09-765794883524
2012-07-04 20:06:23 +00:00
oliviermartin cfe1bb1765 ArmPlatformPkg/DebugSecExtraActionLib: Added Warning comment to signal the DRAM must be inititalized at this stage
Since the System Memory initialization has been moved inside ArmPlatformSecLib
on some platforms, the use of this library could crash if the firmware engineer
forgot to initialize the DRAM.
This library 'patches' the DRAM to add an infinite loop.

Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13262 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-02 20:15:49 +00:00
oliviermartin e314d564db ArmPlatformPkg: Introduced 'ArmPlatformSecLib'
The function only used in Secure Firmware used to be mixed with
the Non-Secure/Normal functions in ArmPlatformLib.
When the Secure Firmware was not required for some platforms (eg:
BeagleBoard), these functions were empty functions.
This new interface has been created to clean the ArmPlatformLib
interface between the SEC and PEI phases.

Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13260 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-02 20:13:32 +00:00
oliviermartin 315649cda2 ArmPkg/ArmGicLib: Replaced 'ArmGicAcknowledgeSgiFrom' by 'ArmGicAcknowledgeInterrupt'
The function 'ArmGicAcknowledgeSgiFrom' was actually acknowledging Interrupts (and not only SGIs).


ArmPkg/ArmGicLib: Introduced the PCD PcdGicPrimaryCoreId

This PCD defines the Id of the primary core in the GIC.


Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13259 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-02 20:09:16 +00:00
oliviermartin 4c19ece32a ArmPkg/ArmGicLib: Changed ArmGicSendSgiTo() to allow to send a specific SGI
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13258 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-02 20:08:03 +00:00
oliviermartin 40ab42ddca EmbeddedPkg/SerialDxe: Do not block UART when no data is available on the port
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13255 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-02 20:04:42 +00:00
oliviermartin 836c350061 ArmPkg/ArmLib: Added new functions to access ARM coprocessors
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13253 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-02 20:02:39 +00:00
oliviermartin 7fffeef9be ARM Packages: Fixed th 'NS' (Non Secure) bit in the MMU page Table Descriptor
The 'NS' bit must only be set in Secure world to define the Non-Secure region
of the Non-Secure World.
This bit must not be set in Non-Secure World.

Signed-off-by: Olivier Martin <olivier.martin@arm.com>


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13252 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-02 20:00:54 +00:00
oliviermartin 96a8bc1150 ArmPkg/PeCoffExtraActionLib: Enabled DS-5 command line when using ARM Toolchain v5
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13251 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-02 19:58:46 +00:00
oliviermartin f463bb00ad ArmPlatformPkg/ArmPlatformGlobalVariableLib: Fixed calculation of GlobalVariableBase
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13248 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-02 19:54:21 +00:00
oliviermartin d9efd68ef5 ArmPlatformPkg/ArmPlatformGlobalVariableLib: Added new function ArmPlatformGetGlobalVariableAddress()
This function returns the address of a Global Variable in the Global Variable Region.

Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13246 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-02 19:51:08 +00:00
oliviermartin f437141a9c ArmPlatformPkg: Renamed and Invoked earlier ArmPlatformNormalInitialize()
- ArmPlatformNormalInitialize() has been renamed into ArmPlatformInitialize()
- Make the function be called at the early stage of the PEI phase as some
  platforms require their interconnects or clocks to be initialize before any
  access to Timers or UARTs.

Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13245 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-02 19:49:35 +00:00
oliviermartin 5e7731443c ArmPlatformPkg/Sec: Allowed the Secondary Cores to set the Secure/Non Secure bits to their PPIs
The GICD_IGROUPR0 is banked for each connected processor. It means the
Non-Secure bits for the PPIs (Private Peripheral Interrupts) must be
configured for every processor.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13135 6f19259b-4bc3-4df7-8a09-765794883524
2012-03-26 11:03:36 +00:00
oliviermartin eac42a514b ArmPlatformPkg/ArmSmcLib: Added helper library to make SMC call to the Secure World
This library adds C-wrapper around the SMC instruction and allows to pass
parameters to the Secure World.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13133 6f19259b-4bc3-4df7-8a09-765794883524
2012-03-26 10:59:50 +00:00
oliviermartin f15f91a22f ArmPlatformPkg/ArmPlatformGlobalVariableLib: Fixed incorrect type casting
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13121 6f19259b-4bc3-4df7-8a09-765794883524
2012-03-26 10:41:50 +00:00
oliviermartin 051e63bb55 ArmPlatformPkg/PL011Uart: Allowed to change UART settings in its initialization function
Because this driver can be used for different purposes (Terminal, Debug port, communication),
its initialization function has been extended to accept additional settings.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13071 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-29 17:19:52 +00:00
oliviermartin 8cc852f791 ArmPlatformPkg: Move the Secure Monitor initialization into a separate 'ArmTrustedMonitorLib' library
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13059 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-28 17:27:15 +00:00
oliviermartin 0db25ccc6c ArmPlatformPkg: Minor code changes (comments, misspellings, coding stylei, line endings)
- Fixed misspellings
- Updated Copyright
- Remove unused sections in INF file
- Fixed incorrect commentsi
- Fixed coding style
- Fixed line endings (CRLR)



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13052 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-28 17:11:42 +00:00
oliviermartin 782d45d1e3 ArmPlatformPkg/ArmPlatformGlobalVariableLib: Added an assert to ensure the 'VariableOffset' belongs to the GlobalVariable region
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13043 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-27 10:26:16 +00:00
oliviermartin 99565b88c1 ArmPlatform/PrePi: Fixed PrePi for MP Cores platform and Global Variable region settings
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12638 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-01 23:41:52 +00:00
oliviermartin 8d0fe26cbf ArmPlatformPkg: Remove ArmPlatformBootRemapping() function from the ArmPlatformLib
Memory map remapping is a platform specific feature only enabled by some platforms.
Instead of keeping this function empty for most platforms, the function has been
removed. This feature can easily fit in any other ArmPlatformLib function.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12632 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-01 23:36:59 +00:00
oliviermartin 886f97c86b ARM Packages: Fixed Build failings/warnings/EDK2 coding convention
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12458 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 16:42:47 +00:00
oliviermartin 12fcdcb83d ArmPlatformPkg: Create an ARM Platform DSC / FDF / ArmPlatformLib template
By copying these templates, it should make easier to port EDK2 to new ARM
Platforms.

- ArmPlatformPkg.(dsc|fdf): For EDK2 firmwares which support the full boot
story from cold boot to OS loading
- ArmPlatformPkg-2ndstage.(dsc|fdf): For EDK2 as a second stage boot loader
(either started after a proprietary ROM firmware or x-loader)


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12457 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 16:40:46 +00:00
oliviermartin 8fc38a3f50 ArmPlatformPkg: Introduce ArmPlatformGlobalVariableLib
This library hides where the 'XIP' Global Variable are located in the memory.
It is expected the Sec/PrePi modules define the Global Variable area through
the GlobalVariable HOB.

The ArmPlatformGlobalVariableLib library allows access to global variables by
their offsets in this region.




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12420 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 23:11:03 +00:00
oliviermartin f92b93c9a3 ARM Packages: Rename PcdNormal* into Pcd* PCDs
The denomination 'Normal' was used to make reference to the 'Normal'
or 'Non Secure' or 'Non Trusted' world.
To avoid confusion, this prefix has been removed from PCDs to define
the normal world.

The PCDs explicitely related to the Secure/Trusted World continue to
have the 'Sec' prefix.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12416 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 23:06:31 +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 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 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 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 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 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 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 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
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 6a15908fd6 ArmPlatformPkg/EblCmdLib: Add the 'devicepaths' EBL command
This command start alls the available drivers and prints out all the
device paths of the platform.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11801 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 11:59:31 +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 9e2b420ee9 ArmPkg: Fix coding style to follow EDK2 coding convention
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11789 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 11:15:55 +00:00
oliviermartin ce9cc403bd ArmPlatformPkg/SP804Timer: Introduce gArmPlatformTokenSpaceGuid.PcdSP804FrequencyInMHz
This PCD defines the speed of the SP804 timer. The default value is 1MHz.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11745 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:33:35 +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 2cf4b60895 ArmPkg/Mmu: Support page size granularity in the initial MMU setting
Formerly, it was only possible to use section size granularity for the
translation table regions.
This change allows to define initial translation table regions with
4K-byte granularty (page size granularity).



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11467 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 11:23:55 +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