Commit Graph

84 Commits

Author SHA1 Message Date
oliviermartin f8181c90f4 ArmPlatformPkg: Replaced 'ArmGicSecLib' by 'ArmGicLib'
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13265 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-02 20:19:00 +00:00
oliviermartin 9d59a88be1 ArmPkg/ArmCpuLib: Fixed SMP Cortex-A9 and Cortex-A15
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13261 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-02 20:14:55 +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 124dfbf6da ArmPkg/ArmCpuLib: Removed unused files
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13250 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-02 19:57:43 +00:00
oliviermartin b1d41be7c9 ArmPkg/ArmCpuLib: Replaced complex functions ArmCpuSynchronizeWait & ArmCpuSynchronizeSignal by sev & wfe
Previsouly the synchronization of MpCore was using the SGI (Software
Generated Interrupt) to synchronize MpCore during the early boot.
This commit replaced this mechanism by the more appropriate SEV/WFE
instructions (Send/Wait Event instructions).
That also eases the port to a new cpu/platform.

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



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13249 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-02 19:55:32 +00:00
oliviermartin e9f7c58f25 ArmPkg: Replaced gArmTokenSpaceGuid.PcdGicNumInterrupts by ArmGicGetMaxNumInterrupts()
The maximum number of interrupts can be retrieve through the GIC distributor.

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



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13244 6f19259b-4bc3-4df7-8a09-765794883524
2012-05-02 19:48:00 +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 645890ba40 ArmPkg/Drivers/PL390Gic: Removed acknowledge of special interrupts (spurious interrupt)
Cleaning a special interrupt has an unpredictable behaviour.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13129 6f19259b-4bc3-4df7-8a09-765794883524
2012-03-26 10:54:49 +00:00
oliviermartin be613c8b2c ArmPkg/PL390Gic: Introduced PcdGicSgiIntId to define which SGI is used for core synchronisation
By default this PCD is set to use SGI #0.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13123 6f19259b-4bc3-4df7-8a09-765794883524
2012-03-26 10:46:25 +00:00
oliviermartin 9253410646 ArmPkg/ArmGicLib: Added function ArmGicSetSecureInterrupts() to define the secure interrupts
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13122 6f19259b-4bc3-4df7-8a09-765794883524
2012-03-26 10:45:27 +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 1bccfbe5ab ArmPkg/PL390Gic: Removed duplicated line of codes disabling the interrupts
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13040 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-27 10:20:46 +00:00
oliviermartin 9207c5d758 ArmPkg: Changed ARM CPU SetMemoryAttributes to always use strongly ordered for the EFI_MEMORY_UC attribute
Changed ARM CPU SetMemoryAttributes to always use strongly ordered for the EFI_MEMORY_UC attribute. 

Signed-off-by: 
Reviewed-by: eugenecohen
Reviewed-by: yanivtal




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13011 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-14 15:54:05 +00:00
oliviermartin 81be6e070f ArmPkg/ArmCpuLib: Fix GCC/XCode builds
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12626 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-01 23:32:04 +00:00
oliviermartin 89bbce116a Arm Packages: Fix builds for XCODE32 toolchain
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12509 6f19259b-4bc3-4df7-8a09-765794883524
2011-10-04 13:58:28 +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 88d4f51dfc ArmPlatformPkg: Add support for ARM RTSM Versatile Express A15x1 and A15x4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12456 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 16:37:01 +00:00
oliviermartin da9675a241 ArmPkg: Add ARM Architectural Timer support
ARM Architectural Timer support is defined by the ARM Generic Timer Specification.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12455 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 16:35:16 +00:00
oliviermartin 0c0e7ef451 ArmPkg/ArmLib: Update Arm11 port
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12454 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 16:33:20 +00:00
oliviermartin bd6b97994a ArmPkg/ArmLib: Clean ArmV7Lib
- Move the non specific ArmV7 functions to ArmLib.
- Clean the ARM Platform common components to not depend on ArmV7 if not required



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12453 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 16:31:20 +00:00
oliviermartin 3127615b4d ArmPkg: Introduce ArmCpuLib to abstract ARM Cpu specific initialization (2)
Missed new files.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12450 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 16:26:03 +00:00
oliviermartin 44788bae6f ArmPkg: Create MpCoreInfo PPI and HOB to describe CPU Cores on a MPCore platform
These info are:
- ClusterId, CoreId
- MailBox Set/Get/Clear address



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12423 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-22 23:14:01 +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 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 43f69915d9 ArmPkg/PL390Gic: Fix RegisterInterruptSource() to be able to unregister an interrupt handler
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12135 6f19259b-4bc3-4df7-8a09-765794883524
2011-08-15 16:47:18 +00:00
oliviermartin 438311a3bd ArmPkg: Minor coding style changes
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11993 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-06 16:35:30 +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 1c1e70fa6e ArmPkg/BdsLib: Linux kernel supports either FDT or ATAG
If a FDT blob is passed to the kernel it is required we can load it.
If we fail to load the binary then we must abort the Linux booting
process.


ArmPkg/CpuDxe: Ensure the reset vector passed to the CP15 VBAR register is aligned on the right boundary





git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11968 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-04 10:02:49 +00:00
oliviermartin 6e88239331 ArmPkg/CpuDxe: ZeroMem the gExceptionHandlers[] array
Prevent an IRQ (or any other exceptions) to make a call to an undefined
handler when the interrupt handler has not been registered yet.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11965 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-01 20:02:14 +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 8513037f2c ArmPkg/CpuDxe: Register a callback for the gIdleLoopEventGuid event
This gIdleLoopEventGuid event signals the Cpu that it should go into
the idle state waiting for any events.
CpuSleep() is used in this implementation to make the Cpu wait for
the next interrupt (WFI instruction).



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11863 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 21:35:50 +00:00
oliviermartin 149daa615f ArmPkg/CpuPei: Declare the CPU HOB
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11862 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 21:33:56 +00:00
oliviermartin fbcd5cea83 ArmPkg/CpuPei: Get the System Memory from the Resource Memory HOB
Declare the system memory provided by the first Resource Memory HOB
as cached memory to the MMU.
All the remaining memory space is declared as Device Memory.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11861 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 21:32:46 +00:00
oliviermartin d7b6c49b78 ArmPkg/CpuDxe: Change chain of dependency for CpuDxe and PL390Gic
Previously the CPU driver had a dependency on the GIC driver.
But by design is should be the opposite. The CPU driver installs the
CPU protocol that exposes the exception registration function.
And then, the interrupt controller registers its IRQ handler through
this interface.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11860 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 21:30:51 +00:00
oliviermartin e862cd50c6 ArmPkg: Fix warnings raised by ARMGCC
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11829 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-15 19:53:15 +00:00
oliviermartin f501f5d1b5 ArmPkg/PL35xSmc: Split the SMC initialization in multiple Chip Select initialization functions
Some ArmVExpress-based tiles do not map all the ArmVExpress Chips into their memory map.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11797 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 11:26:42 +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 838725abd7 ArmPkg/PL180MciDxe: Replace VenHw Device Path GUID by EFI_CALLER_ID_GUID
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11788 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-11 11:14:51 +00:00
oliviermartin f0fef790ff ArmPkg: Introduce ArmSetLowVectors/ArmSetHighVectors functions
These functions set/clear the SCTLR.V bit that controls the location
of the Vector Table.
This commit also forces the SCTLR.V to be clear when the VBAR register
is set.

Note: The original fix has been proposed by Eugene Cohen (HP).




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11739 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:25:01 +00:00
oliviermartin e7f7105ba0 ArmPkg: Renamed PL354SmcSecLib into PL354SmcLib
There is no requirement to initialize the SMC in secure world.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11738 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:23:19 +00:00
oliviermartin 8be5d4d65e ArmPkg/PL34xDmc: Remove magic values in PL310L2Cache and clean the code
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11736 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:21:30 +00:00
oliviermartin 51d191aad5 ArmPkg/PL310L2Cache: Remove magic values in PL310L2Cache and clean the code
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11735 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:20:30 +00:00
oliviermartin 63adfb1129 Armkg: Fix EDK2 coding style
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11734 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:18:48 +00:00
oliviermartin eeec69c5dc ArmPkg: Introduce the PCD PcdDebuggerExceptionSupport
The Exception Vector can be set before installing the CPU DXE driver to add
debugger support at the early stage of the firmware initialization.
If no one has touched the exception vector prior to the CPU DXE then the Vector
might contain non zero data.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11733 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:18:00 +00:00
oliviermartin ce73d60afb EmbeddedPkg: Move Universal/MmcDxe from ArmPkg to EmbeddedPkg
The MmcDxe is not ARM architecture specific.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11725 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:07:31 +00:00
oliviermartin 2cf57c92af ArmPkg/PL180Mci: Fix build
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11598 6f19259b-4bc3-4df7-8a09-765794883524
2011-04-27 17:07:34 +00:00
oliviermartin 50c5f18731 ArmPkg/PL180MciDxe: Use the new flag MMC_CMD_NO_CRC_RESPONSE
This new MMC flag defines if a CRC is attached to MMC Response.




git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11587 6f19259b-4bc3-4df7-8a09-765794883524
2011-04-26 16:54:05 +00:00
andrewfish 8ea50d2e4a Fix Xcode compile bug. It looks like these two arguments had an extra level of indirection that was in error. Good thing about extra compilers is we catch this kind of thing for almost free.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11491 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 15:31:36 +00:00
oliviermartin fe93eba096 ArmPkg/PL390GixDxe: Return from the interrupt handler when it is a sporadic interrupt
Sporadic interrupts must not be handled by any interrupt handlers.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11469 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-31 11:28:25 +00:00