summaryrefslogtreecommitdiffstats
path: root/ArmPkg/Library
diff options
context:
space:
mode:
authoroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>2012-07-04 20:24:25 +0000
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>2012-07-04 20:24:25 +0000
commited71a22c185ad4b5311812854ee614ad7974ef31 (patch)
tree5a1af695e4e2548e3025aa942bd16accd85a6e3c /ArmPkg/Library
parentce88684e2af0103e7ffaea58a26b3fae16f70367 (diff)
downloadedk2-ed71a22c185ad4b5311812854ee614ad7974ef31.tar.gz
edk2-ed71a22c185ad4b5311812854ee614ad7974ef31.tar.bz2
edk2-ed71a22c185ad4b5311812854ee614ad7974ef31.zip
ArmPkg/BdsLib: Fixed cache cleaning in PreparePlatformHardware()
Because the D&I caches were clean before to be disabled, the cache lines might have got dirty during the cache maintenance operations. This fix disables D&I caches before to clean them. The performance drops should be minimised as invalidating the I cache is only a couple of instruction. Signed-off-by: Eugene Cohen <eugene@hp.com> Reviewed-by: Olivier Martin <olivier.martin@arm.com> git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13503 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmPkg/Library')
-rw-r--r--ArmPkg/Library/BdsLib/BdsLinuxLoader.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/ArmPkg/Library/BdsLib/BdsLinuxLoader.c b/ArmPkg/Library/BdsLib/BdsLinuxLoader.c
index 6cd49a2fca..5ef3c1cb8d 100644
--- a/ArmPkg/Library/BdsLib/BdsLinuxLoader.c
+++ b/ArmPkg/Library/BdsLib/BdsLinuxLoader.c
@@ -25,12 +25,12 @@ PreparePlatformHardware (
//Note: Interrupts will be disabled by the GIC driver when ExitBootServices() will be called.
// Clean, invalidate, disable data cache
- ArmCleanInvalidateDataCache();
ArmDisableDataCache();
+ ArmCleanInvalidateDataCache();
// Invalidate and disable the Instruction cache
- ArmInvalidateInstructionCache ();
ArmDisableInstructionCache ();
+ ArmInvalidateInstructionCache ();
// Turn off MMU
ArmDisableMmu();