-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlower_kernel.c
More file actions
28 lines (20 loc) · 847 Bytes
/
Copy pathlower_kernel.c
File metadata and controls
28 lines (20 loc) · 847 Bytes
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
#include "kernel/kernel.h"
#include "kernel/paging.h"
#include "serial.h"
extern char _binary_omos_kernel_img_start;
static void start_kernel(const kernel_params *params) {
init_kernel start = (init_kernel) KERNEL_VIRTUAL_BASE;
SERIAL_DUMP_HEX(start);
start(params);
}
void start_omos_kernel(const kernel_params *params) {
serial_print("Hello, lower kernel\r\n");
serial_print("Loading paging...\r\n");
char *kernel_img = (char *) &_binary_omos_kernel_img_start;
kernel_params new_params = *params;
enable_paging(kernel_img, &new_params.efi_memory_map, &new_params.framebuffer);
serial_print("Paging enabled\r\n");
new_params.framebuffer.base = (void *) FRAMEBUFFER_START;
serial_print("Starting new kernel\r\n");
start_kernel(&new_params);
}