aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv64/config.h
blob: b52585b565322924dacc70c3a24bee65a8d897b1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <apos/sizes.h>

/* --- START ARCH USER CONFIG VALUES --- */
/* physical address to which the kernel will be loaded */
#define RAM_BASE        0x80000000
#define PM_KERN_BASE    (RAM_BASE + SZ_512K)
#define PM_KERN_SIZE    (SZ_256K)
#define PM_KERN_TOP     (PM_KERN_BASE + PM_KERN_SIZE)
/* --- END ARCH USER CONFIG VALUES --- */

/* don't touch >:( */

#define PM_STACK_BASE   (PM_KERN_BASE + SZ_256K)
#define PM_STACK_SIZE   (SZ_256K)
#define PM_STACK_TOP    (PM_STACK_BASE + PM_STACK_SIZE)

#if __riscv_xlen == 64
/* 64bit */
#define VM_DMAP         (0xffffffc000000000) /* testing for now */
#define VM_KERN         (VM_DMAP + SZ_256K)

#define IO_PAGE         511UL
#define KSTART_PAGE     256UL
#define CSTACK_PAGE     255UL

/* assume Sv39, probably wouldn't be too difficult to use runtime parameters
 * instead. First 4K is reserved for NULL, but I suppose it could be mapped
 * later if *absolutely* necessary. */
#define UVMEM_START     (SZ_4K)
#define UVMEM_END       (SZ_256G - SZ_1G)

#define PROC_STACK_TOP  (SZ_256G)
#define PROC_STACK_BASE (SZ_256G - SZ_1G)
#else
/* 32bit */
/* TODO: figure this stuff out */
#define VM_DMAP         (0x000000000)
#define VM_KERN         (VM_DMAP + SZ_256K)
#define ROOT_PTE        (0UL)
#define ROOT_REGION     (SZ_4K)

#define IO_PAGE         1023UL
#define KSTART_PAGE     512UL
#define CSTACK_PAGE     511UL

/* assume Sv39, probably wouldn't be too difficult to use runtime parameters
 * instead. First 4K is reserved for NULL, but I suppose it could be mapped
 * later if *absolutely* necessary. */
#define UVMEM_START     (SZ_4K)
#define UVMEM_END       (SZ_4G - SZ_8M)

#define PROC_STACK_TOP  (SZ_4G)
#define PROC_STACK_BASE (SZ_4G - SZ_8M)
#endif