xref: /OK3568_Linux_fs/u-boot/arch/arm/cpu/armv8/tlb.S (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun/*
2*4882a593Smuzhiyun * (C) Copyright 2013
3*4882a593Smuzhiyun * David Feng <fenghua@phytium.com.cn>
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * SPDX-License-Identifier:	GPL-2.0+
6*4882a593Smuzhiyun */
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun#include <asm-offsets.h>
9*4882a593Smuzhiyun#include <config.h>
10*4882a593Smuzhiyun#include <linux/linkage.h>
11*4882a593Smuzhiyun#include <asm/macro.h>
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun/*
14*4882a593Smuzhiyun * void __asm_invalidate_tlb_all(void)
15*4882a593Smuzhiyun *
16*4882a593Smuzhiyun * invalidate all tlb entries.
17*4882a593Smuzhiyun*/
18*4882a593Smuzhiyun.pushsection .text.__asm_invalidate_tlb_all, "ax"
19*4882a593SmuzhiyunENTRY(__asm_invalidate_tlb_all)
20*4882a593Smuzhiyun	switch_el x9, 3f, 2f, 1f
21*4882a593Smuzhiyun3:	tlbi	alle3
22*4882a593Smuzhiyun	dsb	sy
23*4882a593Smuzhiyun	isb
24*4882a593Smuzhiyun	b	0f
25*4882a593Smuzhiyun2:	tlbi	alle2
26*4882a593Smuzhiyun	dsb	sy
27*4882a593Smuzhiyun	isb
28*4882a593Smuzhiyun	b	0f
29*4882a593Smuzhiyun1:	tlbi	vmalle1
30*4882a593Smuzhiyun	dsb	sy
31*4882a593Smuzhiyun	isb
32*4882a593Smuzhiyun0:
33*4882a593Smuzhiyun	ret
34*4882a593SmuzhiyunENDPROC(__asm_invalidate_tlb_all)
35*4882a593Smuzhiyun.popsection
36