162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copied from omap44xx-smc.S Copyright (C) 2010 Texas Instruments, Inc. 462306a36Sopenharmony_ci * Copyright 2012 Calxeda, Inc. 562306a36Sopenharmony_ci */ 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci#include <linux/linkage.h> 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci/* 1062306a36Sopenharmony_ci * This is common routine to manage secure monitor API 1162306a36Sopenharmony_ci * used to modify the PL310 secure registers. 1262306a36Sopenharmony_ci * 'r0' contains the value to be modified and 'r12' contains 1362306a36Sopenharmony_ci * the monitor API number. 1462306a36Sopenharmony_ci * Function signature : void highbank_smc1(u32 fn, u32 arg) 1562306a36Sopenharmony_ci */ 1662306a36Sopenharmony_ci .arch armv7-a 1762306a36Sopenharmony_ci .arch_extension sec 1862306a36Sopenharmony_ciENTRY(highbank_smc1) 1962306a36Sopenharmony_ci stmfd sp!, {r4-r11, lr} 2062306a36Sopenharmony_ci mov r12, r0 2162306a36Sopenharmony_ci mov r0, r1 2262306a36Sopenharmony_ci dsb 2362306a36Sopenharmony_ci smc #0 2462306a36Sopenharmony_ci ldmfd sp!, {r4-r11, pc} 2562306a36Sopenharmony_ciENDPROC(highbank_smc1) 26