Eugene Cohen
ffb91edfd5
ArmPkg/ArmLib: Improved ArmConfigureMmu Performance
...
Data & Instruction Caches can be kept enabled while the new
translation table is filled.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eugene Cohen <eugene@hp.com>
Reviewed-By: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15647 6f19259b-4bc3-4df7-8a09-765794883524
2014-07-09 11:14:36 +00:00
Olivier Martin
01674afdad
ArmPkg/ArmLib: Drain Write Buffer before DCache maintenance operations.
...
Cache maintenance operations by Set/Way require that the Write Buffer
be drained before the cache is flushed. Without that, the flush can
miss the most recent values written as they are still "pipelined".
That has unfortunate consequences, especially where code is being
copied to RAM.
The fix is to add DSB instructions before the affected operations.
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@15551 6f19259b-4bc3-4df7-8a09-765794883524
2014-06-03 16:37:29 +00:00
Olivier Martin
f6c5a29bb9
ArmPkg/ArmLib: Rationalise ArmReadMidr and cognate functions.
...
The function ArmReadMidr has been recently added, but that functionality was
already present under other names such as Cp15IdCode and ArmMainIdCode. This
change removes redundant code and moves the function to the Common library.
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@15276 6f19259b-4bc3-4df7-8a09-765794883524
2014-03-01 11:00:07 +00:00
Olivier Martin
992a1f830d
ArmPkg/ArmLib: Fix compilation error with -O3 switch
...
A warning is reported because ArmArchTimerReadReg may theoretically result
in an unititialised value.
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@15275 6f19259b-4bc3-4df7-8a09-765794883524
2014-03-01 10:59:25 +00:00
Olivier Martin
0ff0e414d1
ArmPkg/ArmLib: Move common definitions from ArmV7Lib.h & AArch64Lib.h to ArmLib.h
...
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@15272 6f19259b-4bc3-4df7-8a09-765794883524
2014-03-01 10:57:09 +00:00
Olivier Martin
9401d6f4b9
ArmPkg/ArmLib: Added ArmReadMidr()
...
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@15240 6f19259b-4bc3-4df7-8a09-765794883524
2014-02-12 15:14:41 +00:00
Roy Franz
c6ba1c1285
ArmPkg/ArmLib: Change comment to match code for setting of V bit in SCTLR register.
...
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Roy Franz <roy.franz@linaro.org>
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14616 6f19259b-4bc3-4df7-8a09-765794883524
2013-09-02 09:10:17 +00:00
Olivier Martin
6adbd5b4d2
ArmPkg/ArmLib: Added ConvertSectionAttributesToPageAttributes()
...
This helper function converts the section attributes into their page equivalents.
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@14567 6f19259b-4bc3-4df7-8a09-765794883524
2013-08-19 17:37:50 +00:00
Olivier Martin
d6dc67ba1b
ARM: Remove NSACR from the common code
...
NSACR (Non-Secure Access Control Register) is AArch32 specific.
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@14522 6f19259b-4bc3-4df7-8a09-765794883524
2013-08-06 10:59:19 +00:00
Harry Liebel
25402f5d06
ArmPkg: 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@14486 6f19259b-4bc3-4df7-8a09-765794883524
2013-07-18 18:07:46 +00:00
Olivier Martin
a3202839da
ArmPkg/ArmLib: Marked functions as 'STATIC' if not exposed outside of the scope of the source file
...
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@14446 6f19259b-4bc3-4df7-8a09-765794883524
2013-06-27 18:17:19 +00:00
Olivier Martin
6f050ad6bf
ArmPkg: Made ArmConfigureMmu() returns a status code
...
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@14445 6f19259b-4bc3-4df7-8a09-765794883524
2013-06-27 18:16:06 +00:00
Olivier Martin
918c653e1f
ArmPkg/ArmLib: Removed ArmInvalidateTlb when disabling cache as ArmDisableMmu() already does it
...
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@14436 6f19259b-4bc3-4df7-8a09-765794883524
2013-06-19 18:27:55 +00:00
oliviermartin
2614b0c474
ArmPkg: 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@14180 6f19259b-4bc3-4df7-8a09-765794883524
2013-03-12 00:49:42 +00:00
oliviermartin
47585ed568
ArmPkg: Move Arm(Enable|Disable)Irq() functions from internal header to library header file
...
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14091 6f19259b-4bc3-4df7-8a09-765794883524
2013-01-25 11:52:14 +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
ce88684e2a
ARM Packages: Fixed mispellings
...
Signed-off-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13502 6f19259b-4bc3-4df7-8a09-765794883524
2012-07-04 20:23:21 +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
526099f968
ArmPkg/ArmLib: Fixed parameter checking in ArmConfigureMmu()
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13429 6f19259b-4bc3-4df7-8a09-765794883524
2012-06-06 15:47:23 +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
18029bb911
ArmLib/ArmV7: Add ISB to ArmEnableVFP
...
ArmEnableVFP could crash on an out-of-order CPU. Adding an instruction barrier after writing to CPACR cures the problem.
Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Reviewed-by: Olivier Martin <olivier.martin@arm.com>
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13134 6f19259b-4bc3-4df7-8a09-765794883524
2012-03-26 11:01:21 +00:00
oliviermartin
5ed2368498
ArmPkg/ArmLib: Fixed 'ArmConfigureMmu()' to avoid overflow when an entry is mapped at 0xFFFFFFFF
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13056 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-28 17:20:34 +00:00
oliviermartin
d60f6af456
ArmPkg/ArmV7Lib: Add support for Invalid Instruction Cache to Point of Unification
...
This patch adds support to invalidate Instruction Cache to the Point of Unification (PoU).
Signed-off-by: eugenecohen
Reviewed-by: oliviermartin
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13012 6f19259b-4bc3-4df7-8a09-765794883524
2012-02-14 18:44:40 +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
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
aa84fef5fe
ArmPkg: Removed 'ArmV7/ArmV7MPCore*' files
...
These files were Cortex A9 specific. The A9 specific functions have
moved to ArmCpuLib/ArmCortexA9Lib.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12449 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-27 16:24:30 +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
0530bfe360
ArmPkg: Implement PeiServicesTablePointerLib using TPIDRURW register
...
This implementation use the Tpidrurw software context register to
store the PEI Services Table Pointer.
The author of this patch is Eugene Cohen (HP).
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11750 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:43:12 +00:00
oliviermartin
4705b7da4b
ArmPkg: Add comments to ArmEnableVFP
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11740 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-03 09:25: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
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
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
2ac288f919
Fix issue with fixing tabs.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11297 6f19259b-4bc3-4df7-8a09-765794883524
2011-02-02 23:19:30 +00:00
andrewfish
58b5d037b4
Remove tabs from all text files in the package.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11295 6f19259b-4bc3-4df7-8a09-765794883524
2011-02-02 22:52:07 +00:00
andrewfish
1bfda055df
Sync up ArmPkg with patch from mailing list. Changed name of BdsLib.h to BdsUnixLib.h and fixed a lot of issues with Xcode building.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11293 6f19259b-4bc3-4df7-8a09-765794883524
2011-02-02 22:35:30 +00:00
andrewfish
63ca740217
Update remaining ARM .S files with INTERWORK_FUNC macro. This is the 2nd half of check-in 11167.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11169 6f19259b-4bc3-4df7-8a09-765794883524
2010-12-15 01:06:20 +00:00
hhtian
d6ebcab769
Update the copyright notice format
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10444 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-29 12:15:47 +00:00
andrewfish
e9fc14b6e1
Make sure FIQ debugger stuff can work.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10369 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-13 22:30:42 +00:00
andrewfish
bb02cb8071
Cleanup MMU code to do book required sync. Update exception handler to clear fault registers.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10366 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-13 19:27:03 +00:00
andrewfish
7800c283e0
Cleanup Cache an MMU operations.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10348 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-07 18:13:58 +00:00
andrewfish
0416278cfd
Added FIQ interrupt primatives. Update exception handler to disable/reenable FIQ when updating in case debug agent library is using FIQ.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10197 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-05 02:15:41 +00:00
andrewfish
548af3e780
Syncing GCC and ARMASM assembly. Made chunks of the ARMASM lowercase to make the diff easier.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10163 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-03 04:14:16 +00:00
andrewfish
026c3d34ee
Updated Hardware Interrupt protocol to add an EOI member. Added ARM Data/Instruction syncronization barrier support to the ARM lib.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10063 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-24 22:38:46 +00:00
andrewfish
37b91c49fc
Clean up some externs
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10028 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-19 23:05:04 +00:00
andrewfish
fea3a3a4cf
Fix typo
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10026 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-19 22:31:35 +00:00
andrewfish
98bc0c8c05
Sync gcc with armasm. update some memory barriers.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10025 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-19 18:51:10 +00:00
andrewfish
1a27eb4887
Hack in some DSB, ISB syncronization primatives. Need to do it a little cleaner.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10023 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-18 04:25:31 +00:00
andrewfish
5dea9bd6e6
Change Cortex-A8 references to ARMv7. Cortex-A8 is a branded implementation of the ARMv7 processor architecture.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10022 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-18 01:57:13 +00:00