diff options
Diffstat (limited to 'kernel/kernel.c')
| -rw-r--r-- | kernel/kernel.c | 13 |
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); } |
