Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
[linux-2.6-microblaze.git] / arch / hexagon / kernel / vm_init_segtable.S
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Initial page table for Linux kernel under Hexagon VM,
4  *
5  * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
6  */
7
8 /*
9  * These tables are pre-computed and linked into kernel.
10  */
11
12 #include <asm/vm_mmu.h>
13 /*  #include <asm/iomap.h>  */
14
15 /*
16  * Start with mapping PA=0 to both VA=0x0 and VA=0xc000000 as 16MB large pages.
17  * No user mode access, RWX, write-back cache.  The entry needs
18  * to be replicated for all 4 virtual segments mapping to the page.
19  */
20
21 /* "Big Kernel Page"  */
22 #define BKP(pa) (((pa) & __HVM_PTE_PGMASK_4MB)          \
23                 | __HVM_PTE_R | __HVM_PTE_W | __HVM_PTE_X       \
24                 | __HEXAGON_C_WB_L2 << 6                        \
25                 | __HVM_PDE_S_16MB)
26
27 /*  No cache version  */
28
29 #define BKPG_IO(pa) (((pa) & __HVM_PTE_PGMASK_16MB) \
30                         | __HVM_PTE_R | __HVM_PTE_W | __HVM_PTE_X \
31                         | __HVM_PDE_S_16MB | __HEXAGON_C_DEV << 6 )
32
33 #define FOURK_IO(pa) (((pa) & __HVM_PTE_PGMASK_4KB) \
34                         | __HVM_PTE_R | __HVM_PTE_W | __HVM_PTE_X \
35                         | __HEXAGON_C_DEV << 6 )
36
37 #define L2_PTR(pa) (((pa) & __HVM_PTE_PGMASK_4KB) \
38                         | __HVM_PDE_S_4KB  )
39
40 #define X __HVM_PDE_S_INVALID
41
42         .p2align 12
43         .globl swapper_pg_dir
44         .globl _K_init_segtable
45 swapper_pg_dir:
46 /* VA 0x00000000 */
47         .word X,X,X,X
48         .word X,X,X,X
49         .word X,X,X,X
50         .word X,X,X,X
51         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
52         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
53         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
54         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
55         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
56         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
57         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
58         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
59 /* VA 0x40000000 */
60         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
61         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
62         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
63         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
64         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
65         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
66         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
67         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
68 /* VA 0x80000000 */
69         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
70         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
71         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
72         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
73         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
74 /*0xa8*/.word X,X,X,X
75 #ifdef CONFIG_COMET_EARLY_UART_DEBUG
76 UART_PTE_ENTRY:
77 /*0xa9*/.word BKPG_IO(0xa9000000),BKPG_IO(0xa9000000),BKPG_IO(0xa9000000),BKPG_IO(0xa9000000)
78 #else
79 /*0xa9*/.word X,X,X,X
80 #endif
81 /*0xaa*/.word X,X,X,X
82 /*0xab*/.word X,X,X,X
83 /*0xac*/.word X,X,X,X
84 /*0xad*/.word X,X,X,X
85 /*0xae*/.word X,X,X,X
86 /*0xaf*/.word X,X,X,X
87 /*0xb0*/.word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
88         .word X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X
89 _K_init_segtable:
90 /* VA 0xC0000000 */
91         .word BKP(0x00000000), BKP(0x00400000), BKP(0x00800000), BKP(0x00c00000)
92         .word BKP(0x01000000), BKP(0x01400000), BKP(0x01800000), BKP(0x01c00000)
93         .word BKP(0x02000000), BKP(0x02400000), BKP(0x02800000), BKP(0x02c00000)
94         .word BKP(0x03000000), BKP(0x03400000), BKP(0x03800000), BKP(0x03c00000)
95         .word BKP(0x04000000), BKP(0x04400000), BKP(0x04800000), BKP(0x04c00000)
96         .word BKP(0x05000000), BKP(0x05400000), BKP(0x05800000), BKP(0x05c00000)
97         .word BKP(0x06000000), BKP(0x06400000), BKP(0x06800000), BKP(0x06c00000)
98         .word BKP(0x07000000), BKP(0x07400000), BKP(0x07800000), BKP(0x07c00000)
99
100         .word BKP(0x08000000), BKP(0x08400000), BKP(0x08800000), BKP(0x08c00000)
101         .word BKP(0x09000000), BKP(0x09400000), BKP(0x09800000), BKP(0x09c00000)
102         .word BKP(0x0a000000), BKP(0x0a400000), BKP(0x0a800000), BKP(0x0ac00000)
103         .word BKP(0x0b000000), BKP(0x0b400000), BKP(0x0b800000), BKP(0x0bc00000)
104         .word BKP(0x0c000000), BKP(0x0c400000), BKP(0x0c800000), BKP(0x0cc00000)
105         .word BKP(0x0d000000), BKP(0x0d400000), BKP(0x0d800000), BKP(0x0dc00000)
106         .word BKP(0x0e000000), BKP(0x0e400000), BKP(0x0e800000), BKP(0x0ec00000)
107         .word BKP(0x0f000000), BKP(0x0f400000), BKP(0x0f800000), BKP(0x0fc00000)
108
109         .word BKP(0x10000000), BKP(0x10400000), BKP(0x10800000), BKP(0x10c00000)
110         .word BKP(0x11000000), BKP(0x11400000), BKP(0x11800000), BKP(0x11c00000)
111         .word BKP(0x12000000), BKP(0x12400000), BKP(0x12800000), BKP(0x12c00000)
112         .word BKP(0x13000000), BKP(0x13400000), BKP(0x13800000), BKP(0x13c00000)
113         .word BKP(0x14000000), BKP(0x14400000), BKP(0x14800000), BKP(0x14c00000)
114         .word BKP(0x15000000), BKP(0x15400000), BKP(0x15800000), BKP(0x15c00000)
115         .word BKP(0x16000000), BKP(0x16400000), BKP(0x16800000), BKP(0x16c00000)
116         .word BKP(0x17000000), BKP(0x17400000), BKP(0x17800000), BKP(0x17c00000)
117
118         .word BKP(0x18000000), BKP(0x18400000), BKP(0x18800000), BKP(0x18c00000)
119         .word BKP(0x19000000), BKP(0x19400000), BKP(0x19800000), BKP(0x19c00000)
120         .word BKP(0x1a000000), BKP(0x1a400000), BKP(0x1a800000), BKP(0x1ac00000)
121         .word BKP(0x1b000000), BKP(0x1b400000), BKP(0x1b800000), BKP(0x1bc00000)
122         .word BKP(0x1c000000), BKP(0x1c400000), BKP(0x1c800000), BKP(0x1cc00000)
123         .word BKP(0x1d000000), BKP(0x1d400000), BKP(0x1d800000), BKP(0x1dc00000)
124         .word BKP(0x1e000000), BKP(0x1e400000), BKP(0x1e800000), BKP(0x1ec00000)
125         .word BKP(0x1f000000), BKP(0x1f400000), BKP(0x1f800000), BKP(0x1fc00000)
126
127         .word BKP(0x20000000), BKP(0x20400000), BKP(0x20800000), BKP(0x20c00000)
128         .word BKP(0x21000000), BKP(0x21400000), BKP(0x21800000), BKP(0x21c00000)
129         .word BKP(0x22000000), BKP(0x22400000), BKP(0x22800000), BKP(0x22c00000)
130         .word BKP(0x23000000), BKP(0x23400000), BKP(0x23800000), BKP(0x23c00000)
131         .word BKP(0x24000000), BKP(0x24400000), BKP(0x24800000), BKP(0x24c00000)
132         .word BKP(0x25000000), BKP(0x25400000), BKP(0x25800000), BKP(0x25c00000)
133         .word BKP(0x26000000), BKP(0x26400000), BKP(0x26800000), BKP(0x26c00000)
134         .word BKP(0x27000000), BKP(0x27400000), BKP(0x27800000), BKP(0x27c00000)
135
136         .word BKP(0x28000000), BKP(0x28400000), BKP(0x28800000), BKP(0x28c00000)
137         .word BKP(0x29000000), BKP(0x29400000), BKP(0x29800000), BKP(0x29c00000)
138         .word BKP(0x2a000000), BKP(0x2a400000), BKP(0x2a800000), BKP(0x2ac00000)
139         .word BKP(0x2b000000), BKP(0x2b400000), BKP(0x2b800000), BKP(0x2bc00000)
140         .word BKP(0x2c000000), BKP(0x2c400000), BKP(0x2c800000), BKP(0x2cc00000)
141         .word BKP(0x2d000000), BKP(0x2d400000), BKP(0x2d800000), BKP(0x2dc00000)
142         .word BKP(0x2e000000), BKP(0x2e400000), BKP(0x2e800000), BKP(0x2ec00000)
143         .word BKP(0x2f000000), BKP(0x2f400000), BKP(0x2f800000), BKP(0x2fc00000)
144
145         .word BKP(0x30000000), BKP(0x30400000), BKP(0x30800000), BKP(0x30c00000)
146         .word BKP(0x31000000), BKP(0x31400000), BKP(0x31800000), BKP(0x31c00000)
147         .word BKP(0x32000000), BKP(0x32400000), BKP(0x32800000), BKP(0x32c00000)
148         .word BKP(0x33000000), BKP(0x33400000), BKP(0x33800000), BKP(0x33c00000)
149         .word BKP(0x34000000), BKP(0x34400000), BKP(0x34800000), BKP(0x34c00000)
150         .word BKP(0x35000000), BKP(0x35400000), BKP(0x35800000), BKP(0x35c00000)
151         .word BKP(0x36000000), BKP(0x36400000), BKP(0x36800000), BKP(0x36c00000)
152         .word BKP(0x37000000), BKP(0x37400000), BKP(0x37800000), BKP(0x37c00000)
153
154         .word BKP(0x38000000), BKP(0x38400000), BKP(0x38800000), BKP(0x38c00000)
155         .word BKP(0x39000000), BKP(0x39400000), BKP(0x39800000), BKP(0x39c00000)
156         .word BKP(0x3a000000), BKP(0x3a400000), BKP(0x3a800000), BKP(0x3ac00000)
157         .word BKP(0x3b000000), BKP(0x3b400000), BKP(0x3b800000), BKP(0x3bc00000)
158         .word BKP(0x3c000000), BKP(0x3c400000), BKP(0x3c800000), BKP(0x3cc00000)
159         .word BKP(0x3d000000), BKP(0x3d400000), BKP(0x3d800000), BKP(0x3dc00000)
160 _K_io_map:
161         .word X,X,X,X /* 0x3e000000 - device IO early remap */
162         .word X,X,X,X /* 0x3f000000 - hypervisor space*/
163
164 #if 0
165 /*
166  * This is in here as an example for devices which need to be mapped really
167  * early.
168  */
169         .p2align 12
170         .globl _K_io_kmap
171         .globl _K_init_devicetable
172 _K_init_devicetable:  /*  Should be 4MB worth of entries  */
173         .word FOURK_IO(MSM_GPIO1_PHYS),FOURK_IO(MSM_GPIO2_PHYS),FOURK_IO(MSM_SIRC_PHYS),X
174         .word FOURK_IO(TLMM_GPIO1_PHYS),X,X,X
175         .word X,X,X,X
176         .word X,X,X,X
177         .word X,X,X,X
178         .word X,X,X,X
179         .word X,X,X,X
180         .word X,X,X,X
181         .word X,X,X,X
182         .word X,X,X,X
183         .word X,X,X,X
184         .word X,X,X,X
185         .word X,X,X,X
186         .word X,X,X,X
187         .word X,X,X,X
188         .word X,X,X,X
189         .word X,X,X,X
190         .word X,X,X,X
191         .word X,X,X,X
192         .word X,X,X,X
193         .word X,X,X,X
194         .word X,X,X,X
195         .word X,X,X,X
196         .word X,X,X,X
197         .word X,X,X,X
198         .word X,X,X,X
199         .word X,X,X,X
200         .word X,X,X,X
201         .word X,X,X,X
202         .word X,X,X,X
203         .word X,X,X,X
204         .word X,X,X,X
205         .word X,X,X,X
206         .word X,X,X,X
207         .word X,X,X,X
208         .word X,X,X,X
209         .word X,X,X,X
210         .word X,X,X,X
211         .word X,X,X,X
212         .word X,X,X,X
213         .word X,X,X,X
214         .word X,X,X,X
215         .word X,X,X,X
216         .word X,X,X,X
217         .word X,X,X,X
218         .word X,X,X,X
219         .word X,X,X,X
220         .word X,X,X,X
221         .word X,X,X,X
222         .word X,X,X,X
223         .word X,X,X,X
224         .word X,X,X,X
225         .word X,X,X,X
226         .word X,X,X,X
227         .word X,X,X,X
228         .word X,X,X,X
229         .word X,X,X,X
230         .word X,X,X,X
231         .word X,X,X,X
232         .word X,X,X,X
233         .word X,X,X,X
234         .word X,X,X,X
235         .word X,X,X,X
236         .word X,X,X,X
237         .word X,X,X,X
238         .word X,X,X,X
239         .word X,X,X,X
240         .word X,X,X,X
241         .word X,X,X,X
242         .word X,X,X,X
243         .word X,X,X,X
244         .word X,X,X,X
245         .word X,X,X,X
246         .word X,X,X,X
247         .word X,X,X,X
248         .word X,X,X,X
249         .word X,X,X,X
250         .word X,X,X,X
251         .word X,X,X,X
252         .word X,X,X,X
253         .word X,X,X,X
254         .word X,X,X,X
255         .word X,X,X,X
256         .word X,X,X,X
257         .word X,X,X,X
258         .word X,X,X,X
259         .word X,X,X,X
260         .word X,X,X,X
261         .word X,X,X,X
262         .word X,X,X,X
263         .word X,X,X,X
264         .word X,X,X,X
265         .word X,X,X,X
266         .word X,X,X,X
267         .word X,X,X,X
268         .word X,X,X,X
269         .word X,X,X,X
270         .word X,X,X,X
271         .word X,X,X,X
272         .word X,X,X,X
273         .word X,X,X,X
274         .word X,X,X,X
275         .word X,X,X,X
276         .word X,X,X,X
277         .word X,X,X,X
278         .word X,X,X,X
279         .word X,X,X,X
280         .word X,X,X,X
281         .word X,X,X,X
282         .word X,X,X,X
283         .word X,X,X,X
284         .word X,X,X,X
285         .word X,X,X,X
286         .word X,X,X,X
287         .word X,X,X,X
288         .word X,X,X,X
289         .word X,X,X,X
290         .word X,X,X,X
291         .word X,X,X,X
292         .word X,X,X,X
293         .word X,X,X,X
294         .word X,X,X,X
295         .word X,X,X,X
296         .word X,X,X,X
297         .word X,X,X,X
298         .word X,X,X,X
299         .word X,X,X,X
300         .word X,X,X,X
301         .word X,X,X,X
302         .word X,X,X,X
303         .word X,X,X,X
304         .word X,X,X,X
305         .word X,X,X,X
306         .word X,X,X,X
307         .word X,X,X,X
308         .word X,X,X,X
309         .word X,X,X,X
310         .word X,X,X,X
311         .word X,X,X,X
312         .word X,X,X,X
313         .word X,X,X,X
314         .word X,X,X,X
315         .word X,X,X,X
316         .word X,X,X,X
317         .word X,X,X,X
318         .word X,X,X,X
319         .word X,X,X,X
320         .word X,X,X,X
321         .word X,X,X,X
322         .word X,X,X,X
323         .word X,X,X,X
324         .word X,X,X,X
325         .word X,X,X,X
326         .word X,X,X,X
327         .word X,X,X,X
328         .word X,X,X,X
329         .word X,X,X,X
330         .word X,X,X,X
331         .word X,X,X,X
332         .word X,X,X,X
333         .word X,X,X,X
334         .word X,X,X,X
335         .word X,X,X,X
336         .word X,X,X,X
337         .word X,X,X,X
338         .word X,X,X,X
339         .word X,X,X,X
340         .word X,X,X,X
341         .word X,X,X,X
342         .word X,X,X,X
343         .word X,X,X,X
344         .word X,X,X,X
345         .word X,X,X,X
346         .word X,X,X,X
347         .word X,X,X,X
348         .word X,X,X,X
349         .word X,X,X,X
350         .word X,X,X,X
351         .word X,X,X,X
352         .word X,X,X,X
353         .word X,X,X,X
354         .word X,X,X,X
355         .word X,X,X,X
356         .word X,X,X,X
357         .word X,X,X,X
358         .word X,X,X,X
359         .word X,X,X,X
360         .word X,X,X,X
361         .word X,X,X,X
362         .word X,X,X,X
363         .word X,X,X,X
364         .word X,X,X,X
365         .word X,X,X,X
366         .word X,X,X,X
367         .word X,X,X,X
368         .word X,X,X,X
369         .word X,X,X,X
370         .word X,X,X,X
371         .word X,X,X,X
372         .word X,X,X,X
373         .word X,X,X,X
374         .word X,X,X,X
375         .word X,X,X,X
376         .word X,X,X,X
377         .word X,X,X,X
378         .word X,X,X,X
379         .word X,X,X,X
380         .word X,X,X,X
381         .word X,X,X,X
382         .word X,X,X,X
383         .word X,X,X,X
384         .word X,X,X,X
385         .word X,X,X,X
386         .word X,X,X,X
387         .word X,X,X,X
388         .word X,X,X,X
389         .word X,X,X,X
390         .word X,X,X,X
391         .word X,X,X,X
392         .word X,X,X,X
393         .word X,X,X,X
394         .word X,X,X,X
395         .word X,X,X,X
396         .word X,X,X,X
397         .word X,X,X,X
398         .word X,X,X,X
399         .word X,X,X,X
400         .word X,X,X,X
401         .word X,X,X,X
402         .word X,X,X,X
403         .word X,X,X,X
404         .word X,X,X,X
405         .word X,X,X,X
406         .word X,X,X,X
407         .word X,X,X,X
408         .word X,X,X,X
409         .word X,X,X,X
410         .word X,X,X,X
411         .word X,X,X,X
412         .word X,X,X,X
413         .word X,X,X,X
414         .word X,X,X,X
415         .word X,X,X,X
416         .word X,X,X,X
417         .word X,X,X,X
418         .word X,X,X,X
419         .word X,X,X,X
420         .word X,X,X,X
421         .word X,X,X,X
422         .word X,X,X,X
423         .word X,X,X,X
424         .word X,X,X,X
425         .word X,X,X,X
426         .word X,X,X,X
427         .word X,X,X,X
428         .word X,X,X,X
429 #endif