All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
cpu_data.h
Go to the documentation of this file.
1 /*
2  * OpenVirtualization:
3  * For additional details and support contact [email protected].
4  * Additional documentation can be found at www.openvirtualization.org
5  *
6  * Copyright (C) 2011 SierraWare
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU General Public License
10  * as published by the Free Software Foundation; either version 2
11  * of the License, or (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21  *
22  * declaration of .data and .bss section variables
23  *
24  */
25 
26 #ifndef __TZ_CPU_DATA_H__
27 #define __TZ_CPU_DATA_H__
28 
29 #include <page_table.h>
30 #include <cpu_asm.h>
31 #include <sw_board.h>
32 #include <sw_mcore.h>
33 
34 #define TASK_STACK_SIZE 2048
35 
36 #define SW_PRIMARY_CORE 0x1
37 #define SW_SECONDARY_CORE 0x0
38 
39 
40 
41 
45 struct swi_temp_regs {
49  u32 regs[13];
51  u32 lr;
52 };
53 
54 
55 extern u32 _SW_KSYMTAB;
56 extern u32 _SW_KSYMTAB_END;
57 
62 
66 extern u32 user_stack[MAX_CORES][STACK_SIZE/4];
67 
71 extern u32 service_stack[MAX_CORES][STACK_SIZE/4];
72 
76 extern u32 abort_stack[MAX_CORES][STACK_SIZE/4];
77 
81 extern u32 undefined_stack[MAX_CORES][STACK_SIZE/4];
82 
86 extern u32 irq_stack[MAX_CORES][STACK_SIZE/4];
87 
91 extern u32 fiq_stack[MAX_CORES][STACK_SIZE/4];
92 
96 extern u32 monitor_stack[MAX_CORES][STACK_SIZE/4];
97 
102 
106 extern u32 params_smp_stack[MAX_CORES][PARAM_STACK_SIZE];
107 
112 
116 extern u32 temp_regs[32];
117 
122 
128 
132 extern struct swi_temp_regs *temp_swi_regs;
133 
134 
138 extern u32 valid_params_flag;
139 
143 extern u32 valid_return_params_flag[MAX_CORES];
144 
148 extern u32 multi_core_mode;
149 
156 va_t* get_sw_code_start(void);
157 
165 va_t* get_sw_code_end(void);
166 
173 va_t* get_sw_text_start(void);
174 
182 int get_sw_text_size(void);
183 
190 va_t* get_sw_fs_start(void);
191 
198 va_t* get_sw_data_start(void);
199 
207 int get_sw_data_size(void);
208 
215 va_t* get_sw_bss_start(void);
216 
224 int get_sw_bss_size(void);
225 
234 
243 
244 #endif /* __TZ_CPU_DATA_H__ */