feat: integrate gdb support over serial port for bare-metal debugging.
[lunaix-os.git] / lunaix-os / kernel / proc0.c
index cd7681854e86dfefca8455928256a7aefd9c5614..2a410322345706414a4d2d4719c548e63b8e7c4a 100644 (file)
 #include <lunaix/mm/valloc.h>
 #include <lunaix/mm/vmm.h>
 #include <lunaix/peripheral/ps2kbd.h>
+#include <lunaix/peripheral/serial.h>
 #include <lunaix/proc.h>
 #include <lunaix/spike.h>
 #include <lunaix/syscall.h>
 #include <lunaix/syslog.h>
 #include <lunaix/types.h>
+#include <sdbg/protocol.h>
 
 #include <hal/acpi/acpi.h>
 #include <hal/ahci/ahci.h>
@@ -161,6 +163,8 @@ init_platform()
     acpi_init(_k_init_mb_info);
     apic_init();
     ioapic_init();
+    serial_init();
+    sdbg_init();
     timer_init(SYS_TIMER_FREQUENCY_HZ);
     clock_init();
     ps2_kbd_init();
@@ -173,12 +177,17 @@ init_platform()
     console_start_flushing();
     console_flush();
 
+    cake_export();
     unlock_reserved_memory();
 
     for (size_t i = 0; i < (uintptr_t)(&__init_hhk_end); i += PG_SIZE) {
         vmm_del_mapping(PD_REFERENCED, (void*)i);
         pmm_free_page(KERNEL_PID, (void*)i);
     }
+
+    for (size_t i = L1_INDEX(KERNEL_MM_BASE); i < 1023; i++) {
+        vmm_set_mapping(PD_REFERENCED, i << 22, 0, 0, VMAP_NOMAP);
+    }
 }
 
 void