blob: 78b3f19e7f37fe83edb25a723037417c1d2d7bd8 [file] [log] [blame]
David Brazdil0f672f62019-12-10 10:32:29 +00001/* SPDX-License-Identifier: GPL-2.0-only */
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00002/*
3 * Copied from omap44xx-smc.S Copyright (C) 2010 Texas Instruments, Inc.
4 * Copyright 2012 Calxeda, Inc.
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00005 */
6
7#include <linux/linkage.h>
8
9/*
10 * This is common routine to manage secure monitor API
11 * used to modify the PL310 secure registers.
12 * 'r0' contains the value to be modified and 'r12' contains
13 * the monitor API number.
14 * Function signature : void highbank_smc1(u32 fn, u32 arg)
15 */
David Brazdil0f672f62019-12-10 10:32:29 +000016 .arch armv7-a
17 .arch_extension sec
Andrew Scullb4b6d4a2019-01-02 15:54:55 +000018ENTRY(highbank_smc1)
19 stmfd sp!, {r4-r11, lr}
20 mov r12, r0
21 mov r0, r1
22 dsb
23 smc #0
24 ldmfd sp!, {r4-r11, pc}
25ENDPROC(highbank_smc1)