linux/arch/hexagon/kernel/vm_init_segtable.S
<<
>>
Prefs
   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
  45swapper_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
  76UART_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
 430