diff options
Diffstat (limited to 'arch')
| -rw-r--r-- | arch/riscv64/include/cpu.h | 1 | ||||
| -rw-r--r-- | arch/riscv64/include/pages.h | 4 | ||||
| -rw-r--r-- | arch/riscv64/include/types.h | 9 | ||||
| -rw-r--r-- | arch/riscv64/include/vmem.h | 1 | ||||
| -rw-r--r-- | arch/riscv64/init/init.c | 4 | ||||
| -rw-r--r-- | arch/riscv64/kernel/cpu.c | 2 | ||||
| -rw-r--r-- | arch/riscv64/kernel/irq.c | 2 | ||||
| -rw-r--r-- | arch/riscv64/kernel/vmem.c | 4 |
8 files changed, 15 insertions, 12 deletions
diff --git a/arch/riscv64/include/cpu.h b/arch/riscv64/include/cpu.h new file mode 100644 index 0000000..40a8c17 --- /dev/null +++ b/arch/riscv64/include/cpu.h @@ -0,0 +1 @@ +/* empty */ diff --git a/arch/riscv64/include/pages.h b/arch/riscv64/include/pages.h index 362499a..643d3b4 100644 --- a/arch/riscv64/include/pages.h +++ b/arch/riscv64/include/pages.h @@ -1,8 +1,6 @@ #ifndef APOS_RISCV_PAGES_H #define APOS_RISCV_PAGES_H -#include <apos/types.h> - #define MM_KPAGE MM_O0 #define MM_MPAGE MM_O1 #define MM_GPAGE MM_O2 @@ -13,6 +11,4 @@ #define MM_GPAGE_SIZE SZ_1G #define MM_TPAGE_SIZE SZ_512G -typedef uint64_t pm_t; - #endif /* APOS_RISCV_PAGES_H */ diff --git a/arch/riscv64/include/types.h b/arch/riscv64/include/types.h new file mode 100644 index 0000000..3e1c08b --- /dev/null +++ b/arch/riscv64/include/types.h @@ -0,0 +1,9 @@ +#ifndef APOS_RISCV_TYPES_H +#define APOS_RISCV_TYPES_H + +#include <apos/types.h> + +typedef size_t vm_t; +typedef size_t pm_t; + +#endif /* APOS_RISCV_TYPES_H */ diff --git a/arch/riscv64/include/vmem.h b/arch/riscv64/include/vmem.h index 228b24b..115f2b0 100644 --- a/arch/riscv64/include/vmem.h +++ b/arch/riscv64/include/vmem.h @@ -19,7 +19,6 @@ enum mm_mode { Sv32, }; -typedef size_t vm_t; struct __packed vm_branch { struct vm_branch *leaf[512]; }; diff --git a/arch/riscv64/init/init.c b/arch/riscv64/init/init.c index 7aecfb5..94f9777 100644 --- a/arch/riscv64/init/init.c +++ b/arch/riscv64/init/init.c @@ -61,12 +61,12 @@ void init(void *fdt) { extern char *__init_end; extern void jump_to_kernel(void *k, void *fdt); - void (*kernel_main)(void *fdt) = (void (*)(void *))(VM_KERN); + init_bootmem(); move_kernel(); __va_reg(sp); __va_reg(fp); __va_reg(gp); + jump_to_kernel((void *)VM_KERN, __va(fdt)); - //kernel_main(__va(fdt)); } diff --git a/arch/riscv64/kernel/cpu.c b/arch/riscv64/kernel/cpu.c index 6ae4ee7..3583a94 100644 --- a/arch/riscv64/kernel/cpu.c +++ b/arch/riscv64/kernel/cpu.c @@ -1,4 +1,4 @@ -#include <apos/cpu.h> +#include <arch/cpu.h> id_t cpu_id() { diff --git a/arch/riscv64/kernel/irq.c b/arch/riscv64/kernel/irq.c index f844dd1..a88288f 100644 --- a/arch/riscv64/kernel/irq.c +++ b/arch/riscv64/kernel/irq.c @@ -1,6 +1,6 @@ -#include <apos/irq.h> #include <apos/attrs.h> #include <apos/debug.h> +#include <arch/irq.h> #include <csr.h> void init_irq(void *fdt) diff --git a/arch/riscv64/kernel/vmem.c b/arch/riscv64/kernel/vmem.c index bc1a74e..146f30f 100644 --- a/arch/riscv64/kernel/vmem.c +++ b/arch/riscv64/kernel/vmem.c @@ -3,9 +3,7 @@ #include <apos/vmem.h> #include <apos/mem.h> #include <apos/debug.h> -#include <apos/cpu.h> -#include <pages.h> -#include <vmem.h> +#include <arch/cpu.h> #include <csr.h> #define pte_ppn(pte) (((pm_t)(pte)) >> 10) |
