summaryrefslogtreecommitdiff
path: root/kernel/kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/kernel.c')
-rw-r--r--kernel/kernel.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/kernel/kernel.c b/kernel/kernel.c
index 6bda4bf..c244b9a 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -13,6 +13,8 @@
//-- clean below headers --//
#include "sysfs.h"
+#include "pci.h"
+#include "e1000.h"
#include "pipe.h"
#include "testing/testing.h"
#include "ext2.h"
@@ -82,6 +84,12 @@ void kernel_main(uint32_t eax,uint32_t ebx)
interrupts_install();
fixme("register interrupt callback funcs (instead hardcoded dispatcher)");
+
+ // -- PCI SCAN --/
+ klog("PCI init ...");
+ uint32_t e1000_addr=pci_init();
+ klog("E1000 addr=0x%08X",e1000_addr);
+
// -- MEMORY MANAGEMENT -- //
klog("Memory init ... ");
mem_init(cfg_multiboot);
@@ -91,7 +99,7 @@ void kernel_main(uint32_t eax,uint32_t ebx)
fixme("write convenneint management funcs as: mapCPU, mapKErnel, map USerspace..");
fixme("move stack and guard with empty pages!");
- vmem_init(cfg_multiboot,&cfg_acpi);
+ vmem_init(cfg_multiboot,&cfg_acpi,e1000_addr);
struct pdirectory_struct *dir=vmem_kernel_dir();
x86_set_page_directory(dir);
@@ -120,6 +128,7 @@ void kernel_main(uint32_t eax,uint32_t ebx)
vesa_init(cfg_multiboot,addr);
// -- STD STREAMS -- //
+ klog("Standard Streams init ...");
fd_init_std_streams(0,cfg_multiboot->framebuffer_type!=2);
// -- KB -- //
@@ -136,6 +145,8 @@ void kernel_main(uint32_t eax,uint32_t ebx)
uint64_t unixtime=timer_init();
klog("Unix Time = %u seconds",unixtime);
+ e1000_init(e1000_addr);
+
klog("Symmetric Multi Processing (SMP) start ... ");
smp_start_aps(&cfg_acpi);
}