summaryrefslogtreecommitdiff
path: root/kernel/kernel.c
diff options
context:
space:
mode:
authorMiguel <m.i@gmx.at>2018-09-04 01:39:10 +0200
committerMiguel <m.i@gmx.at>2018-09-04 01:39:10 +0200
commitf67ad595650954195ef064a8b91038dbd0e16842 (patch)
treef954239e0b9125df4ca44cdc6bb85090a1cfbe51 /kernel/kernel.c
parent7eb87bf3f3fa6226657a7106eb255cbfa97758d2 (diff)
ioapic & lapic
Diffstat (limited to 'kernel/kernel.c')
-rw-r--r--kernel/kernel.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/kernel/kernel.c b/kernel/kernel.c
index 7058a8a..bf6910d 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -45,7 +45,8 @@ void kernel_main(uint32_t eax,uint32_t ebx)
klog("Symmetrical Multi Processing (SMP) init ... ");
smp_processors procdata;
- if(!acpi_find(&procdata)&&!mp_find(&procdata))kpanic("No ACPI or MP found!");
+// if(!acpi_find(&procdata)&&!mp_find(&procdata))kpanic("No ACPI or MP found!");
+ if(!acpi_find(&procdata))("No ACPI found!");
klog("Memory init ... ");
uint32_t kernel_blocks=mem_init(info);
@@ -53,12 +54,15 @@ void kernel_main(uint32_t eax,uint32_t ebx)
klog("Ram Filesystem init ... ");
fs_mount(info);
+ klog("Interrupt Vector Table (IVT) init ...");
+ interrupts_init(0x08);
+
// Start the other Processors (before paging because apic addr etc..?)
//TODO: remap apic !!! Check commented out sleep ()!!!
// https://wiki.osdev.org/Symmetric_Multiprocessing
klog("Symmetric Multi Processing (SMP) start ... ");
smp_log_procdata(&procdata);
- //smp_start_aps(&procdata);
+ smp_start_aps(&procdata);
klog("Vritual Memory / Paging init ... ");
pdirectory *dir=vmem_init(kernel_blocks,(uint32_t)info->framebuffer_addr);
@@ -76,9 +80,6 @@ void kernel_main(uint32_t eax,uint32_t ebx)
uint32_t sstdout = syscall_open("term",0,0); // stdout 1
uint32_t sstderr = syscall_open("stderr",0,0); // stderr 2
- klog("Interrupt Vector Table (IVT) init ...");
- interrupts_init(0x08);
-
klog("Enable Interrupts & Start Scheduling ...");
scheduler_init(dir);
}