]> rtime.felk.cvut.cz Git - l4.git/blob - kernel/fiasco/src/kern/arm/bsp/realview/mem_layout-arm-realview.cpp
update
[l4.git] / kernel / fiasco / src / kern / arm / bsp / realview / mem_layout-arm-realview.cpp
1 INTERFACE [arm && realview]: // -------------------------------------------
2
3 #include "globalconfig.h"
4
5 EXTENSION class Mem_layout
6 {
7 public:
8   enum Phys_layout_realview_all : Address {
9     Sdram_phys_base      = CONFIG_PF_REALVIEW_RAM_PHYS_BASE,
10     Flush_area_phys_base = 0xe0000000,
11   };
12 };
13
14 // ------------------------------------------------------------------------
15 INTERFACE [arm && realview && (realview_eb || realview_pb11mp || realview_pbx || realview_vexpress)]:
16
17 #include "globalconfig.h"
18
19 EXTENSION class Mem_layout
20 {
21 public:
22   enum Virt_layout_realview : Address {
23     System_regs_map_base = Devices0_map_base,
24     System_ctrl_map_base = Devices0_map_base + 0x00001000,
25     Uart0_map_base       = Devices0_map_base + 0x00009000,
26     Uart1_map_base       = Devices0_map_base + 0x0000a000,
27     Uart2_map_base       = Devices0_map_base + 0x0000b000,
28     Uart3_map_base       = Devices0_map_base + 0x0000c000,
29     Timer0_map_base      = Devices0_map_base + 0x00011000,
30     Timer1_map_base      = Devices0_map_base + 0x00011020,
31     Timer2_map_base      = Devices0_map_base + 0x00012000,
32     Timer3_map_base      = Devices0_map_base + 0x00012020,
33     Uart_base            = Uart0_map_base,
34   };
35
36   enum Phys_layout_realview : Address {
37     Devices0_phys_base   = 0x10000000,
38   };
39 };
40
41 // ------------------------------------------------------------------------
42 INTERFACE [arm && realview && realview_eb && !(mpcore || armca9)]:
43
44 EXTENSION class Mem_layout
45 {
46 public:
47   enum Virt_layout_realview_single : Address {
48     Gic_cpu_map_base    = Devices0_map_base  + 0x00040000,
49     Gic_dist_map_base   = Gic_cpu_map_base   + 0x00001000,
50   };
51
52   enum Phys_layout_realview_single : Address {
53     Devices1_phys_base   = Invalid_address,
54     Devices2_phys_base   = Invalid_address,
55   };
56 };
57
58 // ------------------------------------------------------------------------
59 INTERFACE [arm && realview && realview_eb && (mpcore || armca9)]:
60
61 EXTENSION class Mem_layout
62 {
63 public:
64   enum Virt_layout_realview_mp : Address {
65     Mp_scu_map_base      = Devices1_map_base,
66     Gic_cpu_map_base     = Devices1_map_base + 0x00000100,
67     Gic_dist_map_base    = Devices1_map_base + 0x00001000,
68     L2cxx0_map_base      = Devices1_map_base + 0x00002000,
69
70     Gic1_cpu_map_base    = Devices0_map_base + 0x00040000,
71     Gic1_dist_map_base   = Devices0_map_base + 0x00041000,
72
73     Gic2_cpu_map_base    = Devices0_map_base + 0x00050000,
74     Gic2_dist_map_base   = Devices0_map_base + 0x00051000,
75     Gic3_cpu_map_base    = Devices0_map_base + 0x00060000,
76     Gic3_dist_map_base   = Devices0_map_base + 0x00061000,
77     Gic4_cpu_map_base    = Devices0_map_base + 0x00070000,
78     Gic4_dist_map_base   = Devices0_map_base + 0x00071000,
79   };
80
81   enum Phys_layout_realview_mp : Address {
82     Devices1_phys_base   = 0x10100000,
83     Devices2_phys_base   = Invalid_address,
84   };
85 };
86
87 // ------------------------------------------------------------------------
88 INTERFACE [arm && realview && realview_pb11mp]:
89
90 EXTENSION class Mem_layout
91 {
92 public:
93   enum Virt_layout_realview_pb11mp : Address {
94     Mp_scu_map_base      = Devices1_map_base,
95     Gic_cpu_map_base     = Devices1_map_base + 0x00000100,
96     Gic_dist_map_base    = Devices1_map_base + 0x00001000,
97     L2cxx0_map_base      = Devices1_map_base + 0x00002000,
98
99     Gic1_cpu_map_base    = Devices2_map_base,
100     Gic1_dist_map_base   = Devices2_map_base + 0x00001000,
101   };
102
103   enum Phys_layout_realview_pb11mp : Address {
104     Devices1_phys_base   = 0x1f000000,
105     Devices2_phys_base   = 0x1e000000,
106   };
107 };
108
109 // ------------------------------------------------------------------------
110 INTERFACE [arm && realview && realview_pbx]:
111
112 EXTENSION class Mem_layout
113 {
114 public:
115   enum Virt_layout_realview_pbx : Address {
116     Mp_scu_map_base      = Devices1_map_base,
117     Gic_cpu_map_base     = Devices1_map_base + 0x00000100,
118     Gic_dist_map_base    = Devices1_map_base + 0x00001000,
119     L2cxx0_map_base      = Devices1_map_base + 0x00002000,
120
121     Gic2_cpu_map_base    = Devices2_map_base + 0x00020000,
122     Gic2_dist_map_base   = Devices2_map_base + 0x00021000,
123     Gic3_cpu_map_base    = Devices2_map_base + 0x00030000,
124     Gic3_dist_map_base   = Devices2_map_base + 0x00031000,
125   };
126
127   enum Phys_layout_realview_pbx : Address {
128     Devices1_phys_base   = 0x1f000000,
129     Devices2_phys_base   = 0x1e000000,
130   };
131 };
132
133 // ------------------------------------------------------------------------
134 INTERFACE [arm && realview && realview_vexpress]:
135
136 EXTENSION class Mem_layout
137 {
138 public:
139   enum Virt_layout_realview_vexpress : Address {
140     Mp_scu_map_base      = Devices1_map_base,
141     Gic_cpu_map_base     = Devices1_map_base + 0x00000100,
142     Gic_dist_map_base    = Devices1_map_base + 0x00001000,
143     L2cxx0_map_base      = Devices1_map_base + 0x00002000,
144   };
145
146   enum Phys_layout_realview_vexpress : Address {
147     Devices1_phys_base   = 0x1e000000,
148     Devices2_phys_base   = Invalid_address,
149   };
150 };