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