arm64: configs: synchronize with other 3399 config for 3399 linux
[firefly-linux-kernel-4.4.55.git] / arch / arm / mach-rockchip / sram.h
1 #ifndef __MACH_ROCKCHIP_SRAM_H
2 #define __MACH_ROCKCHIP_SRAM_H
3
4 #include <linux/pie.h>
5 #ifdef CONFIG_PIE
6 #include <asm/pie.h>
7 #endif
8
9 extern char __pie_common_start[];
10 extern char __pie_common_end[];
11 extern char __pie_overlay_start[];
12
13 extern struct gen_pool *rockchip_sram_pool;
14 extern struct pie_chunk *rockchip_pie_chunk;
15 extern void *rockchip_sram_virt;
16 extern size_t rockchip_sram_size;
17 extern char *rockchip_sram_stack;
18 extern char __pie_data(rk3188) __pie_rk3188_sram_stack[1024];
19
20 #define RK_PIE_DATA3(x) __pie_data(rk##x)
21 #define RK_PIE_DATA2(x) RK_PIE_DATA3(x)
22 #define RK_PIE_DATA RK_PIE_DATA2(CPU)
23
24 #define DATA3(x, y) __pie_rk##y##_##x
25 #define DATA2(x, y) DATA3(x, y)
26 #define DATA(x) DATA2(x, CPU)
27
28 #define RK_PIE3(x) __pie(rk##x)
29 #define RK_PIE2(x) RK_PIE3(x)
30 #define RK_PIE RK_PIE2(CPU)
31
32 #define FUNC3(x, y) __pie_rk##y##_##x
33 #define FUNC2(x, y) FUNC3(x, y)
34 #define FUNC(x) FUNC2(x, CPU)
35
36 #define PIE_FUNC(x) RK_PIE FUNC(x)
37 #define PIE_DATA(x) RK_PIE_DATA DATA(x)
38
39 #define DEFINE_PIE_DATA(x) PIE_DATA(x); EXPORT_PIE_SYMBOL(DATA(x));
40
41 /* Tag variables with this */
42 #define __sramdata RK_PIE_DATA
43 /* Tag functions inside SRAM called from outside SRAM with this */
44 #define __sramfunc RK_PIE noinline
45 /* Tag function inside SRAM called from inside SRAM  with this */
46 #define __sramlocalfunc RK_PIE
47
48 extern void call_with_stack(void (*fn)(void *), void *arg, void *sp);
49
50 #ifdef CONFIG_PIE
51 extern int __init rockchip_pie_init(void);
52 #else
53 static inline int rockchip_pie_init(void) { return -1; }
54 #endif
55
56 #endif