aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/riscv64/include/cpu.h1
-rw-r--r--arch/riscv64/include/pages.h4
-rw-r--r--arch/riscv64/include/types.h9
-rw-r--r--arch/riscv64/include/vmem.h1
-rw-r--r--arch/riscv64/init/init.c4
-rw-r--r--arch/riscv64/kernel/cpu.c2
-rw-r--r--arch/riscv64/kernel/irq.c2
-rw-r--r--arch/riscv64/kernel/vmem.c4
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)