ArmPlatformPkg: PrePei Cache disable and invalidate.

- Disable data cache on all cores.
- Do not clean caches as there might be junk in them, invalidate only.

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@14527 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
Olivier Martin 2013-08-06 17:41:53 +00:00 committed by oliviermartin
parent bb058bcdfb
commit 6dafb3030d
2 changed files with 20 additions and 24 deletions

View File

@ -1,15 +1,15 @@
/** @file /** @file
* Main file supporting the transition to PEI Core in Normal World for Versatile Express * Main file supporting the transition to PEI Core in Normal World for Versatile Express
* *
* Copyright (c) 2011-2012, ARM Limited. All rights reserved. * Copyright (c) 2011-2013, ARM Limited. All rights reserved.
*
* This program and the accompanying materials
* are licensed and made available under the terms and conditions of the BSD License
* which accompanies this distribution. The full text of the license may be found at
* http://opensource.org/licenses/bsd-license.php
* *
* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, * This program and the accompanying materials
* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. * are licensed and made available under the terms and conditions of the BSD License
* which accompanies this distribution. The full text of the license may be found at
* http://opensource.org/licenses/bsd-license.php
*
* THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
* WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
* *
**/ **/
@ -71,14 +71,13 @@ CEntryPoint (
IN EFI_PEI_CORE_ENTRY_POINT PeiCoreEntryPoint IN EFI_PEI_CORE_ENTRY_POINT PeiCoreEntryPoint
) )
{ {
//Clean Data cache // Data Cache enabled on Primary core when MMU is enabled.
ArmCleanInvalidateDataCache (); ArmDisableDataCache ();
// Invalidate Data cache
//Invalidate instruction cache ArmInvalidateDataCache ();
// Invalidate instruction cache
ArmInvalidateInstructionCache (); ArmInvalidateInstructionCache ();
// Enable Instruction Caches on all cores.
// Enable Instruction & Data caches
ArmEnableDataCache ();
ArmEnableInstructionCache (); ArmEnableInstructionCache ();
// //

View File

@ -1,6 +1,6 @@
/** @file /** @file
* *
* Copyright (c) 2011-2012, ARM Limited. All rights reserved. * Copyright (c) 2011-2013, ARM Limited. All rights reserved.
* *
* This program and the accompanying materials * This program and the accompanying materials
* are licensed and made available under the terms and conditions of the BSD License * are licensed and made available under the terms and conditions of the BSD License
@ -222,16 +222,13 @@ CEntryPoint (
StartTimeStamp = 0; StartTimeStamp = 0;
} }
// Clean Data cache // Data Cache enabled on Primary core when MMU is enabled.
ArmCleanInvalidateDataCache (); ArmDisableDataCache ();
// Invalidate Data cache
ArmInvalidateDataCache ();
// Invalidate instruction cache // Invalidate instruction cache
ArmInvalidateInstructionCache (); ArmInvalidateInstructionCache ();
// Enable Instruction Caches on all cores.
//TODO:Drain Write Buffer
// Enable Instruction & Data caches
ArmEnableDataCache ();
ArmEnableInstructionCache (); ArmEnableInstructionCache ();
// Define the Global Variable region when we are not running in XIP // Define the Global Variable region when we are not running in XIP