xref: /haiku/src/system/kernel/arch/riscv64/arch_cpu.cpp (revision c085f3863924bb32c6b250e1b9697a39688effef)
1*c085f386SAlexander von Gluck IV /*
2*c085f386SAlexander von Gluck IV  * Copyright 2019, Adrien Destugues, pulkomandy@pulkomandy.tk.
3*c085f386SAlexander von Gluck IV  * Distributed under the terms of the MIT License.
4*c085f386SAlexander von Gluck IV  */
5*c085f386SAlexander von Gluck IV 
6*c085f386SAlexander von Gluck IV 
7*c085f386SAlexander von Gluck IV #include <KernelExport.h>
8*c085f386SAlexander von Gluck IV 
9*c085f386SAlexander von Gluck IV #include <arch/cpu.h>
10*c085f386SAlexander von Gluck IV #include <boot/kernel_args.h>
11*c085f386SAlexander von Gluck IV #include <commpage.h>
12*c085f386SAlexander von Gluck IV #include <elf.h>
13*c085f386SAlexander von Gluck IV 
14*c085f386SAlexander von Gluck IV 
15*c085f386SAlexander von Gluck IV status_t
16*c085f386SAlexander von Gluck IV arch_cpu_preboot_init_percpu(kernel_args *args, int curr_cpu)
17*c085f386SAlexander von Gluck IV {
18*c085f386SAlexander von Gluck IV 	return B_OK;
19*c085f386SAlexander von Gluck IV }
20*c085f386SAlexander von Gluck IV 
21*c085f386SAlexander von Gluck IV 
22*c085f386SAlexander von Gluck IV status_t
23*c085f386SAlexander von Gluck IV arch_cpu_init_percpu(kernel_args *args, int curr_cpu)
24*c085f386SAlexander von Gluck IV {
25*c085f386SAlexander von Gluck IV 	//detect_cpu(curr_cpu);
26*c085f386SAlexander von Gluck IV 
27*c085f386SAlexander von Gluck IV 	// we only support one anyway...
28*c085f386SAlexander von Gluck IV 	return 0;
29*c085f386SAlexander von Gluck IV }
30*c085f386SAlexander von Gluck IV 
31*c085f386SAlexander von Gluck IV 
32*c085f386SAlexander von Gluck IV status_t
33*c085f386SAlexander von Gluck IV arch_cpu_init(kernel_args *args)
34*c085f386SAlexander von Gluck IV {
35*c085f386SAlexander von Gluck IV 	return B_OK;
36*c085f386SAlexander von Gluck IV }
37*c085f386SAlexander von Gluck IV 
38*c085f386SAlexander von Gluck IV 
39*c085f386SAlexander von Gluck IV status_t
40*c085f386SAlexander von Gluck IV arch_cpu_init_post_vm(kernel_args *args)
41*c085f386SAlexander von Gluck IV {
42*c085f386SAlexander von Gluck IV 	return B_OK;
43*c085f386SAlexander von Gluck IV }
44*c085f386SAlexander von Gluck IV 
45*c085f386SAlexander von Gluck IV 
46*c085f386SAlexander von Gluck IV status_t
47*c085f386SAlexander von Gluck IV arch_cpu_init_post_modules(kernel_args *args)
48*c085f386SAlexander von Gluck IV {
49*c085f386SAlexander von Gluck IV 	return B_OK;
50*c085f386SAlexander von Gluck IV }
51*c085f386SAlexander von Gluck IV 
52*c085f386SAlexander von Gluck IV 
53*c085f386SAlexander von Gluck IV void
54*c085f386SAlexander von Gluck IV arch_cpu_sync_icache(void *address, size_t len)
55*c085f386SAlexander von Gluck IV {
56*c085f386SAlexander von Gluck IV }
57*c085f386SAlexander von Gluck IV 
58*c085f386SAlexander von Gluck IV 
59*c085f386SAlexander von Gluck IV void
60*c085f386SAlexander von Gluck IV arch_cpu_memory_read_barrier(void)
61*c085f386SAlexander von Gluck IV {
62*c085f386SAlexander von Gluck IV }
63*c085f386SAlexander von Gluck IV 
64*c085f386SAlexander von Gluck IV 
65*c085f386SAlexander von Gluck IV void
66*c085f386SAlexander von Gluck IV arch_cpu_memory_write_barrier(void)
67*c085f386SAlexander von Gluck IV {
68*c085f386SAlexander von Gluck IV }
69*c085f386SAlexander von Gluck IV 
70*c085f386SAlexander von Gluck IV 
71*c085f386SAlexander von Gluck IV void
72*c085f386SAlexander von Gluck IV arch_cpu_invalidate_TLB_range(addr_t start, addr_t end)
73*c085f386SAlexander von Gluck IV {
74*c085f386SAlexander von Gluck IV }
75*c085f386SAlexander von Gluck IV 
76*c085f386SAlexander von Gluck IV 
77*c085f386SAlexander von Gluck IV void
78*c085f386SAlexander von Gluck IV arch_cpu_invalidate_TLB_list(addr_t pages[], int num_pages)
79*c085f386SAlexander von Gluck IV {
80*c085f386SAlexander von Gluck IV }
81*c085f386SAlexander von Gluck IV 
82*c085f386SAlexander von Gluck IV 
83*c085f386SAlexander von Gluck IV void
84*c085f386SAlexander von Gluck IV arch_cpu_global_TLB_invalidate(void)
85*c085f386SAlexander von Gluck IV {
86*c085f386SAlexander von Gluck IV }
87*c085f386SAlexander von Gluck IV 
88*c085f386SAlexander von Gluck IV 
89*c085f386SAlexander von Gluck IV void
90*c085f386SAlexander von Gluck IV arch_cpu_user_TLB_invalidate(void)
91*c085f386SAlexander von Gluck IV {
92*c085f386SAlexander von Gluck IV }
93*c085f386SAlexander von Gluck IV 
94*c085f386SAlexander von Gluck IV 
95*c085f386SAlexander von Gluck IV status_t
96*c085f386SAlexander von Gluck IV arch_cpu_shutdown(bool reboot)
97*c085f386SAlexander von Gluck IV {
98*c085f386SAlexander von Gluck IV 	return B_ERROR;
99*c085f386SAlexander von Gluck IV }
100