forked from garasubo/T-Visor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
system_init.c
50 lines (48 loc) · 1.25 KB
/
system_init.c
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
#include "basic.h"
#include "type.h"
#include "debug.h"
#include "page_table.h"
#include "rbtree.h"
#include "vint_sender.h"
#include "gic.h"
#include "virtual_gic.h"
#include "cp_access.h"
#include "virtual_device_handle.h"
#include "timer_event.h"
#include "memory_manage.h"
#include "cortexa7.h"
#include "vcpu.h"
#include "logger.h"
extern void user_init(void);
void system_init(void){
serial_init();
tv_display_boot_process(1);
page_table_init();
tv_display_boot_process(2);
rbtree_init();
tv_display_boot_process(3);
irq_handler_init();
tv_display_boot_process(4);
logger_init();
tv_display_boot_process(5);
virtual_device_handle_init();
tv_display_boot_process(6);
gic_virtual_init();
tv_display_boot_process(7);
gic_enable_int(IRQ_ID_HT,0);
tv_display_boot_process(8);
virtual_gic_register_handle();
tv_display_boot_process(9);
timer_event_init();
tv_display_boot_process(0xa);
vint_sender_init();
tv_display_boot_process(0xb);
user_init();
tv_display_boot_process(0xc);
vcpu_preemption(scheduler_get_operations()->schedule());
tv_display_boot_process(0xd);
flush_cache();
tv_display_boot_process(0xe);
FlushTLB();
tv_display_boot_process(0xf);
}