summaryrefslogtreecommitdiff
path: root/kernel/kernel.c
diff options
context:
space:
mode:
authorMichal Idziorek <m.i@gmx.at>2014-09-03 16:05:48 +0200
committerMichal Idziorek <m.i@gmx.at>2014-09-03 16:05:48 +0200
commitae361f46b092264f5107eaaf8fc594e0ca679014 (patch)
tree560ec382c3b3c9b5759996df7fdcd8f6032a763c /kernel/kernel.c
parente5e674724ec527c45efaa1622d0e9a1618757ca3 (diff)
fix bug in apic.c and update of Readme
Diffstat (limited to 'kernel/kernel.c')
-rw-r--r--kernel/kernel.c29
1 files changed, 7 insertions, 22 deletions
diff --git a/kernel/kernel.c b/kernel/kernel.c
index 40c576a..6931ad1 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -146,32 +146,17 @@ void kernel_main(uint32_t initial_stack, int mp)
//
- // Initialize other processors (run this before entering paged mode)
+ // Gather Info about other processors.
+ // ACPI or MP
//
- // This currently uses the MP Floating Pointer Struct.
- // Should support APCI in future too.
- //
-
- smp_processors procdata1;
- smp_processors procdata2;
smp_processors procdata;
// try to find acpi tables
- bool succ_acpi=acpi_find(&procdata1);
-
- // fallback to mp tables
- bool succ_mp=mp_find(&procdata2);
-
- if(!succ_acpi&&!succ_mp)
- panic(FOOLOS_MODULE_NAME,"ACPI and MP search failed! I do not want to continue!");
-
- if(succ_acpi)procdata=procdata1;
- else procdata=procdata2;
-
- // multiprocessing!
+ if(!acpi_find(&procdata))
+ if(!mp_find(&procdata))
+ panic(FOOLOS_MODULE_NAME,"ACPI and MP search failed! I do not want to continue!");
- smp_log_procdata(&procdata1);
- smp_log_procdata(&procdata2);
+ // Start the other Processors (also before paging !)
smp_start_aps(&procdata);
@@ -195,7 +180,7 @@ void kernel_main(uint32_t initial_stack, int mp)
// Initialize Floppy Disk
//
- // floppy_init();
+ //floppy_init();
//