diff options
| author | Miguel <m.i@gmx.at> | 2018-09-10 22:31:48 +0200 |
|---|---|---|
| committer | Miguel <m.i@gmx.at> | 2018-09-10 22:31:48 +0200 |
| commit | a7ca82133bcb8139bb9d11aa717657ef42ab6cfe (patch) | |
| tree | befef8186e0adb819ae77b9fc89c9a37b900859f /kernel | |
| parent | fe83c82693ae231368d1e8c196fb975c3df1dd30 (diff) | |
fixed bug in asm_pit_rate_
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/apic.c | 3 | ||||
| -rw-r--r-- | kernel/apic.h | 4 | ||||
| -rw-r--r-- | kernel/interrupts.c | 1 | ||||
| -rw-r--r-- | kernel/kernel.c | 8 |
4 files changed, 12 insertions, 4 deletions
diff --git a/kernel/apic.c b/kernel/apic.c index a670208..a90cbf6 100644 --- a/kernel/apic.c +++ b/kernel/apic.c @@ -147,6 +147,9 @@ void ioapic_config() // PIT irq 00 -> 02 flags 0 -> 0x90 // kb irq 01 -> 01 flags ? -> 0x91 // mouse irq 12 -> 12 flags ? -> 0x92 +// ioapic_config_entry(2,0x90|0x2000,0x3<<24); // egde trigger on falling +// ioapic_config_entry(2,0x90|0x8000,0x3<<24); // level trigger on high +// ioapic_config_entry(2,0x90|0xa000,0x3<<24); // level trigger on low ioapic_config_entry(2,0x90,0x0); ioapic_config_entry(1,0x91,0x0); ioapic_config_entry(12,0x92,0x0); diff --git a/kernel/apic.h b/kernel/apic.h index 2c76379..0ba2844 100644 --- a/kernel/apic.h +++ b/kernel/apic.h @@ -38,7 +38,7 @@ void apic_enable(); void apic_init_timer(uint32_t ticks_per_second); /** startup other cpu - * @dest destination apic - * @addy entrypoint (example 0x7->0x7000 etc..) + * @param dest destination apic + * @param addy entrypoint (example 0x7->0x7000 etc..) * */ void apic_sipi(uint32_t dest,uint32_t addy); diff --git a/kernel/interrupts.c b/kernel/interrupts.c index 9ffd7c6..6e9d943 100644 --- a/kernel/interrupts.c +++ b/kernel/interrupts.c @@ -54,6 +54,7 @@ uint32_t interrupt_handler(uint32_t esp, uint32_t irq) // klog("int: %d on 0x%x",irq,apicID()); if(irq==INTERRUPT_PIT_TIMER){ asm_pit_tick(); +// asm_pit_sleep_40ms(); // return esp; // tried to skip EOI } diff --git a/kernel/kernel.c b/kernel/kernel.c index 4c7227b..ccc7446 100644 --- a/kernel/kernel.c +++ b/kernel/kernel.c @@ -29,6 +29,7 @@ #include "fs/fs.h" #include "kmalloc.h" #include "driver/vesa.h" +#include "asm_pit.h" /* F00L 0S Entry point (called directly from asm/multiboot.asm */ void kernel_main(uint32_t eax,uint32_t ebx) @@ -132,11 +133,14 @@ void kernel_main(uint32_t eax,uint32_t ebx) klog("Unlock application processors ... "); asm_smp_unlock(); - PutFont('X', 100,200, 0x00ffff,0xff00ff); // TODO temporary! + //PutFont('X', 100,200, 0x00ffff,0xff00ff); // TODO temporary! klog("Enable Interrupts ... "); x86_sti(); // this will start processing hardware interrupts // now just wait until our scheduler kicks in. - while(1)asm("hlt"); + while(1){ + asm("hlt"); + PutString("pit cnt: %d",10,10,0xff00ff,asm_pit_get_ticks()/25); + } } |
