1/*
2 * Renesas SCP/MCP Software
3 * Copyright (c) 2020-2021, Renesas Electronics Corporation. All rights reserved.
4 *
5 * SPDX-License-Identifier: BSD-3-Clause
6 */
7
8    .globl _vector_table
9    .globl _freertos_vector_table
10    .extern _entrypoint
11
12.section .vectors, "ax"
13.balign 2048
14_vector_table:
15
16.set VBAR, _vector_table
17    /* -----------------------------------------------------
18     * Current EL with SP0 : 0x0 - 0x200 (at EL3)
19     * -----------------------------------------------------
20     */
21.org VBAR
22    b   _entrypoint
23.org (VBAR + 0x80)
24    b   .
25.org (VBAR + 0x100)
26    b   .
27.org (VBAR + 0x180)
28    b   .
29
30    /* -----------------------------------------------------
31     * Current EL with SPx: 0x200 - 0x400 (at EL3)
32     * -----------------------------------------------------
33     */
34.org (VBAR + 0x200)
35    b   .
36.org (VBAR + 0x280)
37    b   .
38.org (VBAR + 0x300)
39    b   .
40.org (VBAR + 0x380)
41    b   .
42
43    /* -----------------------------------------------------
44     * Lower EL using AArch64 : 0x400 - 0x600 (at EL3)
45     * -----------------------------------------------------
46     */
47.org (VBAR + 0x400)
48    b   .
49.org (VBAR + 0x480)
50    b   .
51.org (VBAR + 0x500)
52    b   .
53.org (VBAR + 0x580)
54    b   .
55
56    /* -----------------------------------------------------
57     * Lower EL using AArch32 : 0x600 - 0x800 (at EL3)
58     * -----------------------------------------------------
59     */
60.org (VBAR + 0x600)
61    b   .
62.org (VBAR + 0x680)
63    b   .
64.org (VBAR + 0x700)
65    b   .
66.org (VBAR + 0x780)
67    b   .
68
69/******************************************************************************
70 * Vector table to use when FreeRTOS is running.
71 *****************************************************************************/
72.set    FREERTOS_VBAR, (VBAR+0x0800)
73
74    /* -----------------------------------------------------
75     * Current EL with SP0 : 0x0 - 0x200 (at EL3)
76     * -----------------------------------------------------
77     */
78.org(FREERTOS_VBAR)
79_freertos_vector_table:
80    b   FreeRTOS_SWI_Handler
81.org (FREERTOS_VBAR + 0x80)
82    b   FreeRTOS_IRQ_Handler
83.org (FREERTOS_VBAR + 0x100)
84    b   FreeRTOS_IRQ_Handler
85.org (FREERTOS_VBAR + 0x180)
86    b   .
87
88    /* -----------------------------------------------------
89     * Current EL with SPx: 0x200 - 0x400 (at EL3)
90     * -----------------------------------------------------
91     */
92.org (FREERTOS_VBAR + 0x200)
93    b   FreeRTOS_SWI_Handler
94.org (FREERTOS_VBAR + 0x280)
95    b   FreeRTOS_IRQ_Handler
96.org (FREERTOS_VBAR + 0x300)
97    b   FreeRTOS_IRQ_Handler
98.org (FREERTOS_VBAR + 0x380)
99    b   .
100
101    /* -----------------------------------------------------
102     * Lower EL using AArch64 : 0x400 - 0x600 (at EL3)
103     * -----------------------------------------------------
104     */
105.org (FREERTOS_VBAR + 0x400)
106    b   .
107.org (FREERTOS_VBAR + 0x480)
108    b   .
109.org (FREERTOS_VBAR + 0x500)
110    b   .
111.org (FREERTOS_VBAR + 0x580)
112    b   .
113
114    /* -----------------------------------------------------
115     * Lower EL using AArch32 : 0x600 - 0x800 (at EL3)
116     * -----------------------------------------------------
117     */
118.org (FREERTOS_VBAR + 0x600)
119    b   .
120.org (FREERTOS_VBAR + 0x680)
121    b   .
122.org (FREERTOS_VBAR + 0x700)
123    b   .
124.org (FREERTOS_VBAR + 0x780)
125    b   .
126
127    .end
128