2 * OMAP44xx secure APIs file.
4 * Copyright (C) 2010 Texas Instruments, Inc.
5 * Written by Santosh Shilimkar <santosh.shilimkar@ti.com>
8 * This program is free software,you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
13 #include <linux/linkage.h>
16 * This is common routine to manage secure monitor API
17 * used to modify the PL310 secure registers.
18 * 'r0' contains the value to be modified and 'r12' contains
19 * the monitor API number. It uses few CPU registers
20 * internally and hence they need be backed up including
22 * Function signature : void omap_smc1(u32 fn, u32 arg)
26 stmfd sp!, {r2-r12, lr}
31 ldmfd sp!, {r2-r12, pc}
35 * u32 omap_smc2(u32 id, u32 falg, u32 pargs)
36 * Low level common routine for secure HAL and PPA APIs.
37 * @id: Application ID of HAL APIs
38 * @flag: Flag to indicate the criticality of operation
39 * @pargs: Physical address of parameter list starting
40 * with number of parametrs
43 stmfd sp!, {r4-r12, lr}
46 mov r1, #0x0 @ Process ID
48 mov r12, #0x00 @ Secure Service ID
50 mcr p15, 0, r7, c7, c5, 6
54 ldmfd sp!, {r4-r12, pc}
57 ENTRY(omap_modify_auxcoreboot0)
58 stmfd sp!, {r1-r12, lr}
62 ldmfd sp!, {r1-r12, pc}
63 ENDPROC(omap_modify_auxcoreboot0)
65 ENTRY(omap_auxcoreboot_addr)
66 stmfd sp!, {r2-r12, lr}
70 ldmfd sp!, {r2-r12, pc}
71 ENDPROC(omap_auxcoreboot_addr)
73 ENTRY(omap_read_auxcoreboot0)
74 stmfd sp!, {r2-r12, lr}
79 ldmfd sp!, {r2-r12, pc}
80 ENDPROC(omap_read_auxcoreboot0)