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