The clean/invalidate helper functions that operate on a single cache line identified by set, way and level in a special, architected format are only used by the implementations of the clean/invalidate routines that operate on the entire cache hierarchy, as exposed by ArmLib. The latter routines will be deprecated soon, so move the helpers out of ArmLib.h and into a private header so they are safe from abuse. Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Reviewed-by: Leif Lindholm <leif@nuviainc.com>
53 lines
1.1 KiB
C
53 lines
1.1 KiB
C
/** @file
|
|
|
|
Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
|
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#ifndef __ARM_V7_LIB_H__
|
|
#define __ARM_V7_LIB_H__
|
|
|
|
#define ID_MMFR0_SHARELVL_SHIFT 12
|
|
#define ID_MMFR0_SHARELVL_MASK 0xf
|
|
#define ID_MMFR0_SHARELVL_ONE 0
|
|
#define ID_MMFR0_SHARELVL_TWO 1
|
|
|
|
#define ID_MMFR0_INNERSHR_SHIFT 28
|
|
#define ID_MMFR0_INNERSHR_MASK 0xf
|
|
#define ID_MMFR0_OUTERSHR_SHIFT 8
|
|
#define ID_MMFR0_OUTERSHR_MASK 0xf
|
|
|
|
#define ID_MMFR0_SHR_IMP_UNCACHED 0
|
|
#define ID_MMFR0_SHR_IMP_HW_COHERENT 1
|
|
#define ID_MMFR0_SHR_IGNORED 0xf
|
|
|
|
typedef VOID (*ARM_V7_CACHE_OPERATION)(UINT32);
|
|
|
|
VOID
|
|
ArmV7AllDataCachesOperation (
|
|
IN ARM_V7_CACHE_OPERATION DataCacheOperation
|
|
);
|
|
|
|
VOID
|
|
EFIAPI
|
|
ArmInvalidateDataCacheEntryBySetWay (
|
|
IN UINTN SetWayFormat
|
|
);
|
|
|
|
VOID
|
|
EFIAPI
|
|
ArmCleanDataCacheEntryBySetWay (
|
|
IN UINTN SetWayFormat
|
|
);
|
|
|
|
VOID
|
|
EFIAPI
|
|
ArmCleanInvalidateDataCacheEntryBySetWay (
|
|
IN UINTN SetWayFormat
|
|
);
|
|
|
|
#endif // __ARM_V7_LIB_H__
|
|
|