armv8: ls2080a: Update serdes protocol support
[platform/kernel/u-boot.git] / arch / arm / cpu / armv8 / sec_firmware_asm.S
1 /*
2  * Copyright 2016 NXP Semiconductor, Inc.
3  *
4  * SPDX-License-Identifier:     GPL-2.0+
5  */
6
7 #include <config.h>
8 #include <linux/linkage.h>
9 #include <asm/system.h>
10 #include <asm/macro.h>
11
12 WEAK(_sec_firmware_entry)
13         /*
14          * x0: Secure Firmware entry point
15          * x1: Exception return address Low
16          * x2: Exception return address High
17          */
18
19         /* Save stack pointer for EL2 */
20         mov     x3, sp
21         msr     sp_el2, x3
22
23         /* Set exception return address hold pointer */
24         adr     x4, 1f
25         mov     x3, x4
26 #ifdef SEC_FIRMWARE_ERET_ADDR_REVERT
27         rev     w3, w3
28 #endif
29         str     w3, [x1]
30         lsr     x3, x4, #32
31 #ifdef SEC_FIRMWARE_ERET_ADDR_REVERT
32         rev     w3, w3
33 #endif
34         str     w3, [x2]
35
36         /* Call SEC monitor */
37         br      x0
38
39 1:
40         mov     x0, #0
41         ret
42 ENDPROC(_sec_firmware_entry)
43
44 #ifdef CONFIG_ARMV8_PSCI
45 ENTRY(_sec_firmware_support_psci_version)
46         mov     x0, 0x84000000
47         mov     x1, 0x0
48         mov     x2, 0x0
49         mov     x3, 0x0
50         smc     #0
51         ret
52 ENDPROC(_sec_firmware_support_psci_version)
53 #endif