From 4ca9447efa6917c80278f6e932f815004d819494 Mon Sep 17 00:00:00 2001 From: Hopeless Tyromancy Date: Sun, 15 Feb 2026 02:23:08 -0500 Subject: [PATCH] Added apic init --- bin/os | Bin 72784 -> 74448 bytes image.hdd | Bin 67108864 -> 67108864 bytes obj/src/int.c.o | Bin 131720 -> 131720 bytes obj/src/main.c.o | Bin 22288 -> 24664 bytes src/acpi.c | 28 ++---------------- src/acpi.h | 28 +++++++++--------- src/apic.c | 73 +++++++++++++++++++++++++++++++++++++++++++++++ src/common.h | 10 +++++++ src/int.c | 2 -- src/main.c | 28 ++++++++++++++++++ 10 files changed, 126 insertions(+), 43 deletions(-) create mode 100644 src/apic.c diff --git a/bin/os b/bin/os index 580a4cfbf69c8b94936b088028bc5ac5552ca6bc..13da876d6be80b039d7a38220288a2f1b213b494 100755 GIT binary patch literal 74448 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 delta 27956 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 diff --git a/image.hdd b/image.hdd index 05858a118bb0f3c33c3e4076d8658d7c83e4462f..4ceb3f36c03a946b7650b6cdb78d23d6139ae513 100644 GIT binary patch delta 34368 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%0AC->-(a{bvjEDz$#7X_A(VZK zq5iVWA}HrJ!)2MpQ1%^$D>6%=z8zWi~+BFBz`OY=p93Fuj2!$a8{P>vvoa}&xD0 ZIl>^$Z74^Ck>Qc- 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 diff --git a/obj/src/int.c.o b/obj/src/int.c.o index 1c2c7eafd0261c85292114c11c0402e860bc5853..d33f5b5cadec3ad0e91ea3038394004b9dac3a78 100644 GIT binary patch delta 3910 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 delta 4479 zcmca{fN{b)#t9ls7koBqIkO6{XJlaT=w@YLU|{fQuHazcZ<#x}fmMgU7$n|o3leAG zZz-L;n^m4Mb@OdjZARWSJ%0HXu*8?wehWEI4$s*NQDjt{yopDdQE~D$9z90I$*jDJf{H9G`#~l@W?aYwa*5(( zb6y)p#mObSR*p(64CaiXEao;Wiy1@bGcYQ#FjzB&uvmlmAa5$MFjz7MvRH!nAQvdH zu$VK3g4D5CgUnKz{GL}qNQH&LfH9QCpp_YFjLKw1K4C_c$)Hv@x)ETf@tsImr(uL-jc<_;}$usgKXK)Fwxb8(&^OTGFQ1_lPkuzq$1 z1}3XY76t}}My7=VOxFD%W-rr1K_QvR>;?++q+ZznYzaL1Z&K1A}NeI|G9T znA8N5T4Igt3=G=hjG;{RP-z{okS<857%HU4z}(8hz`zpEF!`-$N&POSg<{OL%wPcq z1~~=+eo%q3pJ|~uLR6bUKoulJxJU|`@tVzV(Y*TW^48Mr~gASF8w94V0uhWU&P4AKno42His7#O4( z6BrB`I2jnEnGzWcKXWiJ$S@}{7_o6OFvzeZGZ=GoGBC)>b%6>=))WR)kOBqSGwf!4471U+wlZ5CK;4`8B&z}80u8~8R~MF7#LIo80tZBts2PC z0H)m;=71Ec1~JS9(F|((!l23~ERJEddN(@*g8?WZGOT3nq zgtBrdf?}G1J&ct_A)J*P9NcP(AkQ(dMKdrkM6d~Ifl?SZD<=bkwiYNcYJsAgTaw{Jiugl}R~cE}Gk#`bV3wW7 z$SmK+$gH@LiCM{pS*4YkS$zv5v;Jfjh9jGEWsWm$&XJ2`7D-G=DKa*SPf0B(V#rC& zV*v3dUs2SY?5kuoxkpKF@=K)zMwQKh${I|QbL2$9v9p<1&6trK{U@}WtL}So?Q<$>jcOwR_3b=dTh+c>UM#QSAYoJ0tp>N5qby`+65Jw zyh!I6CqpX}0|N`g$N!TVIYl-v(T!ndoH&`$u$*zpWJ5#o$rB6(7= zSzK}nRMr7acID)Y&f=1Lpt2rlvWF%!x`<1jgvth>$zGUj=prt81u6?_#e)0-bMO7h zi7w*xFQBpsXnNm3#Z%D4KS0GZ(8Rw(#dFZa|3Sq;?Pp}$S;48BVe)quK~5eBo1tRz zMi=qP8m^6)L*{P1a*_p_{m*H&k{9nylaC zg>K@U!BE))lNY**Prl(Mz!<*S(qlH0p*|>#p!fxp2AKeEOF{V`pfpIFX|imfI4>y4 zvO`4~CNK0B7vum*f~q|R1_n?Juul&37M^^^n}=5dNrrWDt+)7O9v_~`5rI66Y?Ie| zi%+)k;Sq!-QIJwL1_p+j$q&7SC+GO^2*MH|NCsr1-(*1_;mLD+cm!d|3nr62+0jRM z@);i-h2r!eSYu0F+)8CSUXs4h69; zgM=6u7+`S;;)2BAgBT1946v94aY5q$K@0{423Q<|xFB(UP?#|=Fl?B-(N|m&7E3VM zV;}|t1H*yI4}HZYPe6Gf3Zyp)8q^mi3;K!I-v9|ieF2iyhw>jlX%Gbxw+1m77#Lna zX%GbxcLp&S7#Kc4X%Gbx_XjZ;7#My)X%Gbx4+k+oE`a!8vc4bZ;A{5S+9&}3FlZuAqMEa1MYu5vPyQKU&h-PDU{A12wu&@kOqg64 zY0u~|d1IuyWC5sw0!@Apb0B2G$z)c1#CM zCU1&TQ(OZz$_SzcPVV4Yb56F3F=LuxI=Lvuj>$`M@}?L&uC0;~r6(9C|B5l=(lCQ? z8@MK0#hP)}N<+ADlPhD*Id98Dcp8&;#+q}jaDea<*e3sqHDh8{nrswj$0VsVnUPa$ zaz~f|Ycj|ypwQ(~P=Y88V4Q3fB_|aJuHYCLpawwXK&^Q9$)DoXScBmD3X~yolB|=f z!sI3g7_o?fN)vQ_5gwC^;_a9^H70M0w-e-mMkOelfwXH(ZVVG=ox{Yyzyx+ofF?+k KfdLec3334TAHrn- diff --git a/src/acpi.c b/src/acpi.c index 7cf267c..9578db8 100644 --- a/src/acpi.c +++ b/src/acpi.c @@ -4,38 +4,14 @@ #include "../include/limine.h" // credit to dreamportdev's OSDev-Notes and the OSDev Wiki for table layouts +// #include "acpi.h" #define RSDT_SIGNATURE "RSDT" #define XSDT_SIGNATURE "XSDT" -bool rsdp_validate(const u8* data) { - if(memcmp(data, (const u8*)RSDP_SIGNATURE, 8) != 0) { - /* to debug in memcmp is broken somehow */ - if(data[0] == 'R' && data[1] == 'S' && data[2] == 'D' && data[3] == 'T' && data[4] == ' ') { - printn((const char*)data, 8); - } - return false; - } - - struct acpi_rsdp_header* head = (struct acpi_rsdp_header*)data; - size_t len = sizeof(struct acpi_rsdp_header); - len -= (head->revision == 2) * sizeof(u32) + sizeof(u64) + sizeof(u8) + sizeof(u8[3]); - u32 sum_to_zero = 0; - for(size_t i = 0; i < len; i++) { - sum_to_zero += data[i]; - } - - return (sum_to_zero & 0xFF) == 0; -} - -static bool use_xsdt = false; static struct acpi_rsdt* rsdt; -static struct acpi_xsdt* xsdt; - -struct acpi_sdt_header* acpi_get_header(size_t n) { - return (struct acpi_sdt_header*) (use_xsdt? xsdt->addrs[n] : (u64)rsdt->addrs[n]); -} struct acpi_rsdp_header* rsdp; + diff --git a/src/acpi.h b/src/acpi.h index 5cb5127..0080d1d 100644 --- a/src/acpi.h +++ b/src/acpi.h @@ -11,15 +11,21 @@ pstruct acpi_rsdp_header { u8 checksum; u8 OEMID[6]; u8 revision; - u32 addr32_depr; + /* + union { + struct acpi_rsdt* rsdt :32; + struct acpi_xsdt* xsdt :32; + } ptr; + */ + u32 ptr32; // v2 u32 len; - u64 addr; + u64 ptr64; u8 extended_checksum; u8 resv[3]; }; -struct acpi_sdt_header { +struct acpi_rsdt { u8 signature[4]; u32 len; u8 revision; @@ -29,18 +35,10 @@ struct acpi_sdt_header { u32 OEM_revision; u32 creator_id; u32 creator_revision; -}; - -struct acpi_rsdt { - // signature == "RSDT" - struct acpi_sdt_header header; - u32 addrs[]; -}; - -struct acpi_xsdt { - // signature == "XSDT" - struct acpi_rsdp_header header; - u64 addrs[]; + union { + u32 addrs32[]; + u64 addrs64[]; + }; }; extern struct acpi_rsdp_header* rsdp; diff --git a/src/apic.c b/src/apic.c new file mode 100644 index 0000000..331288a --- /dev/null +++ b/src/apic.c @@ -0,0 +1,73 @@ +#include "common.h" +#include "print.h" + +// stub of a PIC layout, we don't need the whole thing +// as we only care about initializing it to disable it +enum { + PIC_COMM_MASTER = 0x20, + PIC_COMM_SLAVE = 0x21, + PIC_DATA_MASTER = 0xA0, + PIC_DATA_SLAVE = 0xA1, +}; + +static void pic_disable() { + outb(PIC_DATA_MASTER, ~0); + outb(PIC_DATA_SLAVE, ~0); +} + +static inline u64 rdmsr(u32 msr) { + u32 hi, lo; + asm volatile ( + "rdmsr" + : "=a"(lo), "=d"(hi) + : "c"(msr) + ); + + return (((u64)hi) << 32) | (u64)lo; +} + +static inline void wrmsr(u32 msr, u64 val) { + u32 eax = (u32) val; + u32 edx = (u32) (val >> 32); + asm volatile ( + "wrmsr" + : + : "c"(msr), "a" (eax), "d" (edx) + ); +} + + +static u64 apic_base; + +u64 apic_get_local_base() { + const u8 APIC_BASE_MSR = 0x1B; + + u64 msr = rdmsr(APIC_BASE_MSR); + + return (apic_base = (msr & 0xfffff000)); +} + +static u64 apic_set_local_base(u64 base) { + const u8 APIC_BASE_MSR = 0x1B; + + wrmsr(APIC_BASE_MSR, base & 0xfffff000); + + return base & 0xfffff000; +} + +static u32* apic_reg(u32 reg) { + return (u32*) (apic_base + reg); +} + +void apic_enable() { + pic_disable(); + print("\nPIC Disabled\n"); + apic_set_local_base(apic_get_local_base()); + volatile u32* reg = apic_reg(0xF0); + print("Local Base Set\nReg 0xF0 at 0x"); + print64((u64) reg); + // set enable flag + *reg = (*reg | 0x100); + print("\nReg written\n"); +} + diff --git a/src/common.h b/src/common.h index ec1c474..a6c9664 100644 --- a/src/common.h +++ b/src/common.h @@ -23,6 +23,16 @@ static inline void INT(int n) { ); } +static inline void outb(u16 port, u8 value) { + asm volatile ("outb %0, %1" : : "a"(value), "Nd"(port)); +} +static inline void outw(u16 port, u16 value) { + asm volatile ("outw %0, %1" : : "a"(value), "Nd"(port)); +} +static inline void outd(u16 port, u32 value) { + asm volatile ("outl %0, %1" : : "a"(value), "Nd"(port)); +} + void* memcpy(void* restrict dst, const void* src, size_t n); void* memset(void* s, int c, size_t n); diff --git a/src/int.c b/src/int.c index 5364253..e76b128 100644 --- a/src/int.c +++ b/src/int.c @@ -29,8 +29,6 @@ enum INT_DESC_FLAGS { #define CODE64_SELECTOR 0x28 -static int cnt = 0; - struct int_desc idt[256]; void set_idt(u8 vect, void* handler, u8 dpl) { diff --git a/src/main.c b/src/main.c index 88d3396..bc6174a 100644 --- a/src/main.c +++ b/src/main.c @@ -168,6 +168,9 @@ void print_memmap_entry(struct limine_memmap_entry* entry) { +u32 apic_get_local_base(); +void apic_enable(); + void kmain() { if(LIMINE_BASE_REVISION_SUPPORTED(limine_base_revision) == false) { hang(); @@ -211,6 +214,31 @@ void kmain() { print("With signature: "); printn((char*)rsdp->signature, sizeof(rsdp->signature)); + + print(" v"); + print8(rsdp->revision); + print("\nRSDT at 0x"); + struct acpi_rsdt* rsdt = + (struct acpi_rsdt*)( + (rsdp->revision? rsdp->ptr64:rsdp->ptr32) + hhdm_offset + ); + print64((u64)rsdt); + print("\nSDT Signature: "); + + + printn((const char*) rsdt->signature, sizeof(rsdt->signature)); + print("\nAPIC Local Base: "); + + /* I should check cpuid to ensure its supported but it will + * be for my machines ;^) */ + /* APIC stuff */ + u32 r = 0xDEADBEEF; + r = apic_get_local_base(); + print32(r); + + apic_enable(); + + print("\nAPIC Enabled"); hang();