cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

vm_init_segtable.S (12163B)


      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