decoupled ULIM from KERNBASE. rebuild your xcc.
[akaros.git] / kern / arch / riscv / ros / mmu.h
1 #ifndef ROS_INC_MMU_H
2 #define ROS_INC_MMU_H
3
4 // All physical memory mapped at this address
5 #ifdef __riscv64
6 # define KERNBASE       0xFFFF800000000000
7 # define ULIM           0x0000800000000000
8 # define KERN_LOAD_ADDR 0xFFFFFFFF80000000
9 # define NPTLEVELS                       4
10 # define L1PGSHIFT              (12+9+9+9)
11 # define L1PGSIZE        (1L << L1PGSHIFT)
12 # define L2PGSHIFT                (12+9+9)
13 # define L2PGSIZE        (1L << L2PGSHIFT)
14 # define L3PGSHIFT                  (12+9)
15 # define L3PGSIZE        (1L << L3PGSHIFT)
16 # define L4PGSHIFT                    (12)
17 # define L4PGSIZE        (1L << L4PGSHIFT)
18 # define PGSHIFT                 L4PGSHIFT
19 # define PTSIZE                   L2PGSIZE
20 #else
21 # define KERNBASE               0x80000000
22 # define ULIM                   0x7F000000
23 # define KERN_LOAD_ADDR           KERNBASE
24 # define NPTLEVELS                       2
25 # define L1PGSHIFT                 (12+10)
26 # define L1PGSIZE         (1 << L1PGSHIFT)
27 # define L2PGSHIFT                      12
28 # define L2PGSIZE         (1 << L2PGSHIFT)
29 # define PGSHIFT                 L2PGSHIFT
30 # define PTSIZE                   L1PGSIZE
31 #endif
32
33 #define PGSIZE (1 << PGSHIFT)
34
35 #define NOVPT
36
37 #ifndef __ASSEMBLER__
38 typedef unsigned long pte_t;
39 typedef unsigned long pde_t;
40 #endif
41
42 #endif