18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copied from omap44xx-smc.S Copyright (C) 2010 Texas Instruments, Inc. 48c2ecf20Sopenharmony_ci * Copyright 2012 Calxeda, Inc. 58c2ecf20Sopenharmony_ci */ 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ci#include <linux/linkage.h> 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci/* 108c2ecf20Sopenharmony_ci * This is common routine to manage secure monitor API 118c2ecf20Sopenharmony_ci * used to modify the PL310 secure registers. 128c2ecf20Sopenharmony_ci * 'r0' contains the value to be modified and 'r12' contains 138c2ecf20Sopenharmony_ci * the monitor API number. 148c2ecf20Sopenharmony_ci * Function signature : void highbank_smc1(u32 fn, u32 arg) 158c2ecf20Sopenharmony_ci */ 168c2ecf20Sopenharmony_ci .arch armv7-a 178c2ecf20Sopenharmony_ci .arch_extension sec 188c2ecf20Sopenharmony_ciENTRY(highbank_smc1) 198c2ecf20Sopenharmony_ci stmfd sp!, {r4-r11, lr} 208c2ecf20Sopenharmony_ci mov r12, r0 218c2ecf20Sopenharmony_ci mov r0, r1 228c2ecf20Sopenharmony_ci dsb 238c2ecf20Sopenharmony_ci smc #0 248c2ecf20Sopenharmony_ci ldmfd sp!, {r4-r11, pc} 258c2ecf20Sopenharmony_ciENDPROC(highbank_smc1) 26