1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Copyright (c) 2016, NVIDIA CORPORATION.
7 #include <linux/linkage.h>
9 #define SMC_SIP_INVOKE_MCE 0x82FFFF00
10 #define MCE_SMC_ROC_FLUSH_CACHE (SMC_SIP_INVOKE_MCE | 11)
11 #define MCE_SMC_ROC_FLUSH_CACHE_ONLY (SMC_SIP_INVOKE_MCE | 14)
12 #define MCE_SMC_ROC_CLEAN_CACHE_ONLY (SMC_SIP_INVOKE_MCE | 15)
14 ENTRY(__asm_tegra_cache_smc)
24 ENDPROC(__asm_invalidate_l3_dcache)
26 ENTRY(__asm_invalidate_l3_dcache)
27 mov x0, #(MCE_SMC_ROC_FLUSH_CACHE_ONLY & 0xffff)
28 movk x0, #(MCE_SMC_ROC_FLUSH_CACHE_ONLY >> 16), lsl #16
29 b __asm_tegra_cache_smc
30 ENDPROC(__asm_invalidate_l3_dcache)
32 ENTRY(__asm_flush_l3_dcache)
33 mov x0, #(MCE_SMC_ROC_CLEAN_CACHE_ONLY & 0xffff)
34 movk x0, #(MCE_SMC_ROC_CLEAN_CACHE_ONLY >> 16), lsl #16
35 b __asm_tegra_cache_smc
36 ENDPROC(__asm_flush_l3_dcache)
38 ENTRY(__asm_invalidate_l3_icache)
39 mov x0, #(MCE_SMC_ROC_FLUSH_CACHE & 0xffff)
40 movk x0, #(MCE_SMC_ROC_FLUSH_CACHE >> 16), lsl #16
41 b __asm_tegra_cache_smc
42 ENDPROC(__asm_invalidate_l3_icache)