Luna/kernel/src/boot/Init.cpp

35 lines
733 B
C++
Raw Normal View History

2022-11-19 17:59:49 +01:00
#include "boot/Init.h"
2022-11-30 13:29:28 +01:00
#include "Log.h"
2022-11-15 19:10:32 +01:00
#include "arch/CPU.h"
2022-11-13 12:20:53 +01:00
#include "arch/Serial.h"
2022-11-19 17:59:49 +01:00
#include "boot/bootboot.h"
#include "memory/MemoryManager.h"
#include "video/Framebuffer.h"
#include <luna/String.h>
2022-11-13 12:20:53 +01:00
extern BOOTBOOT bootboot;
void Init::check_magic()
{
if (memcmp(bootboot.magic, BOOTBOOT_MAGIC, 4))
{
2022-11-30 17:16:36 +01:00
kerrorln("ERROR: Invalid magic value from bootloader");
2022-11-13 12:20:53 +01:00
for (;;)
;
}
}
void Init::early_init()
{
2022-11-19 20:01:01 +01:00
CPU::disable_interrupts();
2022-11-13 12:20:53 +01:00
Framebuffer::init();
2022-11-30 13:29:28 +01:00
setup_log(log_debug_enabled(), log_serial_enabled(), true);
MemoryManager::init();
2022-11-15 19:10:32 +01:00
CPU::platform_init();
MemoryManager::protect_kernel_sections().expect_release_value("We should succeed to protect sections");
2022-11-13 12:20:53 +01:00
}