From b016271c246bd40352e76c147e4aafae0bd30c46 Mon Sep 17 00:00:00 2001 From: Adrien Bourmault Date: Thu, 14 Nov 2019 21:20:06 +0100 Subject: [PATCH] [Inconsistent] Work on Cpu --- Makefile | 2 +- kaleid/kernel/init/init.c | 6 ++++-- kaleid/kernel/ke/pit.c | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 3d4de79..104a40c 100644 --- a/Makefile +++ b/Makefile @@ -265,7 +265,7 @@ OS/K: $(dep) ./ProjectTree $(BINDIR)/kaleid ## QEMU/DEBUG RELATED test: all install - @qemu-system-x86_64 -vga std -cpu core2duo -soundhw pcspk -s \ + @qemu-system-x86_64 -vga std -cpu core2duo -enable-kvm -soundhw pcspk -s \ -rtc base=localtime -m $(ram) -hda $(installdisk) \ -d cpu_reset,guest_errors,pcall,int 2> $(BUILDDIR)/qemu.log & diff --git a/kaleid/kernel/init/init.c b/kaleid/kernel/init/init.c index cf2f92f..92934f1 100644 --- a/kaleid/kernel/init/init.c +++ b/kaleid/kernel/init/init.c @@ -68,12 +68,14 @@ noreturn void BtStartKern(multiboot_info_t *mbInfo, uint mbMagic, void *codeSeg) // Interrupts launching KeSetupIDT(); KeEnableIRQs(); - KeGetCpuInfos(); MmInitGdt(); - // Start drivers + // Clocks KeEnableRTC(); KeEnablePIT(); + + // Start drivers + KeGetCpuInfos(); IoEnableKeyb(); MmActivatePageHandler(); diff --git a/kaleid/kernel/ke/pit.c b/kaleid/kernel/ke/pit.c index 182ce28..816a1d8 100644 --- a/kaleid/kernel/ke/pit.c +++ b/kaleid/kernel/ke/pit.c @@ -121,10 +121,10 @@ static void UpdateCurTime(void) uchar minRemain, hourRemain, dayRemain; CurTime.sec = - (uchar)(((ulong)KeGetOriginTime()->sec + (Ticks / frequency)) % 60); + (uchar)(((ulong)KeGetOriginTime()->sec * frequency + Ticks) / frequency % 60); minRemain = - (uchar)(((ulong)KeGetOriginTime()->sec + (Ticks / frequency)) / 60); + (uchar)(((ulong)KeGetOriginTime()->sec * frequency + Ticks) / (60 * frequency)); CurTime.min = (uchar)(((ulong)KeGetOriginTime()->min + minRemain) % 60);