History log of /device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
b7de7e3cab3f172bb8ef3e2638f90889981d791a 08-Dec-2015 Eugene Cohen <eugene@hp.com> ArmPkg: update InvalidateInstructionCacheRange to flush only to PoU

This patch updates the ArmPkg variant of InvalidateInstructionCacheRange to
flush the data cache only to the point of unification (PoU). This improves
performance and also allows invalidation in scenarios where it would be
inappropriate to flush to the point of coherency (like when executing code
from L2 configured as cache-as-ram).

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eugene Cohen <eugene@hp.com>

Added AARCH64 and ARM/GCC implementations of the above.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Eugene Cohen <eugene@hp.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19174 6f19259b-4bc3-4df7-8a09-765794883524
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
efda17751344965c7f51cbd0660ed6a59e2de855 03-Dec-2015 Eugene Cohen <eugene@hp.com> ArmPkg: update RVCT assembly functions to use new RVCT_ASM_EXPORT macro

This has the effect of splitting assembly functions into their own sections
so the linker can remove unused ones to save space.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eugene Cohen <eugene@hp.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@gmail.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19109 6f19259b-4bc3-4df7-8a09-765794883524
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
3b1495156a3576992b31a77e799db207cb61d9de 20-Nov-2015 Leif Lindholm <leif.lindholm@linaro.org> ArmPkg: ArmLib: purge incorrect ArmDrainWriteBuffer () alias

In ArmLib, there exists an alias for ArmDataSynchronizationBarrier,
named after one of several names for the pre-ARMv6 cp15 operation that
was formalised into the Data Synchronization Barrier in ARMv6.

This alias is also the one called from within ArmLib, in preference of
the correct name. Through the power of code reuse, this name slipped
into the AArch64 variant as well.

Expunge it from the codebase.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18915 6f19259b-4bc3-4df7-8a09-765794883524
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
63dbd629649a4c5ccf83243e9482a4e0d092b422 18-Nov-2015 Ard Biesheuvel <ard.biesheuvel@linaro.org> ArmPkg/ArmV7Lib: add support for reading the ID_MMFR0 system register

Implement an accessor function for the ID_MMFR0 system register, which
contains information about the VMSA implementation. We will need this
to access the number of shareability levels and the nature of their
implementations.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18894 6f19259b-4bc3-4df7-8a09-765794883524
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
c722289324223c472fcf920f860dc4b49314dedf 09-Nov-2015 Ard Biesheuvel <ard.biesheuvel@linaro.org> ArmPkg/ArmLib: move cache maintenance sync barriers out of loop

There is no need to issue a full data synchronization barrier and an
instruction synchronization barrier after each and every set/way or
MVA cache maintenance operation. For the set/way case, we can simply
remove them, since the set/way outer loop already issues the required
barriers after completing its traversal over all the cache levels.

For the MVA case, move the data synchronization barrier out of the
loop, and add the instruction synchronization barrier to the I-cache
invalidation by MVA routine.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18755 6f19259b-4bc3-4df7-8a09-765794883524
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
acdb6dc8b739ccddd8425e609b68871151c5b94e 09-Nov-2015 Ard Biesheuvel <ard.biesheuvel@linaro.org> ArmPkg/ArmLib: remove unused ArmCleanDataCacheToPoU()

The function ArmCleanDataCacheToPoU() has no users, and its purpose
is unclear, since it uses cache maintenance by set/way to perform
the clean to PoU, which is a dubious practice to begin with. So
remove the declaration and all definitions.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18752 6f19259b-4bc3-4df7-8a09-765794883524
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
cf93a37859e6d06efdbc5b1a91a6bf66f06b578b 09-Nov-2015 Ard Biesheuvel <ard.biesheuvel@linaro.org> ArmPkg BeagleBoardPkg Omap35xxPkg: fix typo 'ArmDataSyncronizationBarrier'

Replace all instances of ArmDataSyncronizationBarrier with
ArmDataSynchronizationBarrier.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18751 6f19259b-4bc3-4df7-8a09-765794883524
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
8dd618d2110bea0d3c3073b66eb51bc622e81c68 27-Oct-2014 Olivier Martin <olivier.martin@arm.com> ArmPkg/ArmLib: Removed duplicated invalidate TLB function

ArmInvalidateInstructionAndDataTlb() was doing the same thing as
ArmInvalidateTlb().
Both invalidate Data and Instruction TLBs.

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@16253 6f19259b-4bc3-4df7-8a09-765794883524
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
3402aac7d985bf8a9f9d3c639f3fe93609380513 19-Aug-2014 Ronald Cron <ronald.cron@arm.com> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
f6c5a29bb9041caf66426ddced7454f9051124eb 01-Mar-2014 Olivier Martin <olivier.martin@arm.com> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
9401d6f4b989d977f8b0aa4946168a92b748aead 12-Feb-2014 Olivier Martin <olivier.martin@arm.com> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
c6ba1c12851d4e628410094684a697006a465628 02-Sep-2013 Roy Franz <roy.franz@linaro.org> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
836c350061600e6cde14b73417b9d073b00b0f69 02-May-2012 oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
18029bb9112f7af8c9aedcf0dacbdd5267eb258c 26-Mar-2012 oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
d60f6af456a08f186a2b7568eec5279e96547a22 14-Feb-2012 oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
bd6b97994ab6219c74033a7e68a503dbb8d56f9f 27-Sep-2011 oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
0530bfe360e9ad4f2d72d23116589ebcdc1d8948 03-Jun-2011 oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
4705b7da4b61e591a84a2deb9736ddbad24ce34a 03-Jun-2011 oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> ArmPkg: Add comments to ArmEnableVFP



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11740 6f19259b-4bc3-4df7-8a09-765794883524
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
f0fef790ff6a55997035af8727cc2f3fbd39afbf 03-Jun-2011 oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
2ac288f9199196dfc4ab05bee0a7815ca361174a 03-Feb-2011 andrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524> Fix issue with fixing tabs.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11297 6f19259b-4bc3-4df7-8a09-765794883524
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
58b5d037b4627460242c9333860faabf6115069e 02-Feb-2011 andrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
1bfda055dfbc52678655ab2ded721f9f7c0cd496 02-Feb-2011 andrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
d6ebcab76903254f4423b7e7d3808fb0abaadb46 29-Apr-2010 hhtian <hhtian@6f19259b-4bc3-4df7-8a09-765794883524> Update the copyright notice format

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10444 6f19259b-4bc3-4df7-8a09-765794883524
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
e9fc14b6e17de3ecc299d4f7f8a39c2cb0c55292 14-Apr-2010 andrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
bb02cb8071e9df25cbcae15a9afa70d6387320cb 13-Apr-2010 andrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
7800c283e0f64417c7d537a99859324ded7eaa7f 07-Apr-2010 andrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524> Cleanup Cache an MMU operations.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10348 6f19259b-4bc3-4df7-8a09-765794883524
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
548af3e7805cf6f1cdc75b54f685d43d9bb58d32 03-Mar-2010 andrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
026c3d34ee83b4df623cc80761450a53e9f7622b 24-Feb-2010 andrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
37b91c49fc9a25310a970762ac9fc6d11cb9f4dc 20-Feb-2010 andrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524> Clean up some externs


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10028 6f19259b-4bc3-4df7-8a09-765794883524
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
98bc0c8c056271095ae2a3a9ab7f2c3ccd64117e 19-Feb-2010 andrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
1a27eb48874440f18a1b41fc2aa7a4a7105dbacb 18-Feb-2010 andrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm
5dea9bd6e60a2571c9b89a0b9aa3d163d665810e 18-Feb-2010 andrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524> 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
/device/linaro/bootloader/edk2/ArmPkg/Library/ArmLib/ArmV7/ArmV7Support.asm