1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Initial page table for Linux kernel under H 4 * 5 * Copyright (c) 2010-2011, The Linux Foundati 6 */ 7 8 /* 9 * These tables are pre-computed and linked in 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 17 * No user mode access, RWX, write-back cache. 18 * to be replicated for all 4 virtual segments 19 */ 20 21 /* "Big Kernel Page" */ 22 #define BKP(pa) (((pa) & __HVM_PTE_PGMASK_4MB) 23 | __HVM_PTE_R | __HVM_PTE_W | 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_ 30 | __HVM_PTE_R | __HVM_ 31 | __HVM_PDE_S_16MB | _ 32 33 #define FOURK_IO(pa) (((pa) & __HVM_PTE_PGMASK 34 | __HVM_PTE_R | __HVM_ 35 | __HEXAGON_C_DEV << 6 36 37 #define L2_PTR(pa) (((pa) & __HVM_PTE_PGMASK_4 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, 53 .word 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, 55 .word 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, 57 .word 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, 59 /* VA 0x40000000 */ 60 .word 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, 62 .word 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, 64 .word 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, 66 .word 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, 68 /* VA 0x80000000 */ 69 .word 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, 71 .word 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, 73 .word 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(0xa9 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, 88 .word 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) 92 .word BKP(0x01000000), BKP(0x01400000) 93 .word BKP(0x02000000), BKP(0x02400000) 94 .word BKP(0x03000000), BKP(0x03400000) 95 .word BKP(0x04000000), BKP(0x04400000) 96 .word BKP(0x05000000), BKP(0x05400000) 97 .word BKP(0x06000000), BKP(0x06400000) 98 .word BKP(0x07000000), BKP(0x07400000) 99 100 .word BKP(0x08000000), BKP(0x08400000) 101 .word BKP(0x09000000), BKP(0x09400000) 102 .word BKP(0x0a000000), BKP(0x0a400000) 103 .word BKP(0x0b000000), BKP(0x0b400000) 104 .word BKP(0x0c000000), BKP(0x0c400000) 105 .word BKP(0x0d000000), BKP(0x0d400000) 106 .word BKP(0x0e000000), BKP(0x0e400000) 107 .word BKP(0x0f000000), BKP(0x0f400000) 108 109 .word BKP(0x10000000), BKP(0x10400000) 110 .word BKP(0x11000000), BKP(0x11400000) 111 .word BKP(0x12000000), BKP(0x12400000) 112 .word BKP(0x13000000), BKP(0x13400000) 113 .word BKP(0x14000000), BKP(0x14400000) 114 .word BKP(0x15000000), BKP(0x15400000) 115 .word BKP(0x16000000), BKP(0x16400000) 116 .word BKP(0x17000000), BKP(0x17400000) 117 118 .word BKP(0x18000000), BKP(0x18400000) 119 .word BKP(0x19000000), BKP(0x19400000) 120 .word BKP(0x1a000000), BKP(0x1a400000) 121 .word BKP(0x1b000000), BKP(0x1b400000) 122 .word BKP(0x1c000000), BKP(0x1c400000) 123 .word BKP(0x1d000000), BKP(0x1d400000) 124 .word BKP(0x1e000000), BKP(0x1e400000) 125 .word BKP(0x1f000000), BKP(0x1f400000) 126 127 .word BKP(0x20000000), BKP(0x20400000) 128 .word BKP(0x21000000), BKP(0x21400000) 129 .word BKP(0x22000000), BKP(0x22400000) 130 .word BKP(0x23000000), BKP(0x23400000) 131 .word BKP(0x24000000), BKP(0x24400000) 132 .word BKP(0x25000000), BKP(0x25400000) 133 .word BKP(0x26000000), BKP(0x26400000) 134 .word BKP(0x27000000), BKP(0x27400000) 135 136 .word BKP(0x28000000), BKP(0x28400000) 137 .word BKP(0x29000000), BKP(0x29400000) 138 .word BKP(0x2a000000), BKP(0x2a400000) 139 .word BKP(0x2b000000), BKP(0x2b400000) 140 .word BKP(0x2c000000), BKP(0x2c400000) 141 .word BKP(0x2d000000), BKP(0x2d400000) 142 .word BKP(0x2e000000), BKP(0x2e400000) 143 .word BKP(0x2f000000), BKP(0x2f400000) 144 145 .word BKP(0x30000000), BKP(0x30400000) 146 .word BKP(0x31000000), BKP(0x31400000) 147 .word BKP(0x32000000), BKP(0x32400000) 148 .word BKP(0x33000000), BKP(0x33400000) 149 .word BKP(0x34000000), BKP(0x34400000) 150 .word BKP(0x35000000), BKP(0x35400000) 151 .word BKP(0x36000000), BKP(0x36400000) 152 .word BKP(0x37000000), BKP(0x37400000) 153 154 .word BKP(0x38000000), BKP(0x38400000) 155 .word BKP(0x39000000), BKP(0x39400000) 156 .word BKP(0x3a000000), BKP(0x3a400000) 157 .word BKP(0x3b000000), BKP(0x3b400000) 158 .word BKP(0x3c000000), BKP(0x3c400000) 159 .word BKP(0x3d000000), BKP(0x3d400000) 160 _K_io_map: 161 .word X,X,X,X /* 0x3e000000 - device I 162 .word X,X,X,X /* 0x3f000000 - hypervis 163 164 #if 0 165 /* 166 * This is in here as an example for devices w 167 * early. 168 */ 169 .p2align 12 170 .globl _K_io_kmap 171 .globl _K_init_devicetable 172 _K_init_devicetable: /* Should be 4MB worth 173 .word FOURK_IO(MSM_GPIO1_PHYS),FOURK_I 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
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.