370 Commits

Author SHA1 Message Date
103205bff2 Move address constants into Hurl struct 2023-01-01 21:04:29 -05:00
25ee1775f0 Capitalize namespacing structs
This helps to avoid name clashes when breaking up modules into packages.
2023-01-01 17:34:41 -05:00
a423cdf1b1 Fix RTC clock reading in 24-hour mode 2022-12-19 11:32:08 -05:00
7c8744d1e0 Read RTC date and time 2022-12-18 22:29:12 -05:00
4081a220ef Route I/O APIC interrupts, enable RTC tick interrupt 2022-12-16 00:32:49 -05:00
9adc248225 Initialize rtc module 2022-12-15 20:41:44 -05:00
676fd17bf5 Add pit and rtc modules 2022-12-15 20:41:15 -05:00
b1a8f8d348 Handle local APIC exceptions 2022-12-07 23:24:01 -05:00
9b52ae58e8 Get local APIC timer ready to run 2022-12-07 23:13:51 -05:00
5799f94efe Configure local APIC interrupt vectors 2022-12-06 22:06:57 -05:00
400a7b22db Enable local APIC interrupts 2022-12-06 21:22:56 -05:00
2bba0dfca4 Add hulk.mtrr module 2022-11-08 21:49:41 -05:00
edba40b2c6 Implement frame buffer double-buffering
This slowed down drawing to video in QEMU/VirtualBox but greatly sped up
doing so on real hardware (no longer reading from video memory).
Despite the speed-up, it is still quite slow though.
2022-11-08 06:19:03 -05:00
55604468c8 Allocate framebuffer buffer1 in HELLO 2022-11-07 21:27:52 -05:00
71c30fa932 Reclaim bootloader page table pages 2022-11-06 21:59:42 -05:00
b3fb599b25 Move EFER initialization to initialize_cpu() 2022-11-05 22:49:57 -04:00
d357aada75 Map HULK regions separately 2022-11-05 22:45:35 -04:00
1fef8ada29 Define acpi structs as static 2022-11-05 22:26:21 -04:00
5231930543 Clean up ApicRegister 2022-11-05 22:22:09 -04:00
95b9e4558a Move hulk.writef buffer variables to stack
Previously ldc2 was emitting AVX/SSE instructions to initialize these
buffers.
2022-11-05 22:06:18 -04:00
354555d7f1 Disable AVX and SSE instruction generation for HULK 2022-11-05 22:03:13 -04:00
1b69810e8f Turn on OSXSAVE 2022-11-05 21:17:30 -04:00
64190b04cb Add initialize_cpu() 2022-11-05 20:27:48 -04:00
d7b12c7896 Run qemu with maximum supported host CPU features 2022-11-05 20:15:30 -04:00
11f922da33 Add write_cr0() 2022-11-05 19:58:10 -04:00
59e084c234 Add cpuid1() and output bit enums 2022-11-04 19:28:34 -04:00
f21ee0d149 Add enums for a few CPU register bits 2022-11-04 00:08:40 -04:00
2a7c783bba Add write_cr4() 2022-11-03 23:31:55 -04:00
1f2a2bea48 Add xgetbv()/xsetbv() 2022-11-03 22:45:35 -04:00
8eedf4e267 Switch klog buffer to ubyte array to move it to bss section 2022-11-03 16:34:03 -04:00
ae49c29c75 Fail build if thread-local data is found 2022-11-03 16:17:42 -04:00
4d88810fc1 Move hulk.writef hex character strings out of data section 2022-11-03 16:03:12 -04:00
ba9cf30e67 Clean up linker script symbols 2022-11-03 15:41:14 -04:00
b9675019e7 Rename BOOTX64.EFI -> HOS.EFI 2022-11-03 13:54:42 -04:00
aa9809e0ed README: add building instructions 2022-11-03 13:34:21 -04:00
07202b902b README: fix headings 2022-11-03 13:30:09 -04:00
08501e86bb README: Add HOS System Requirements 2022-11-03 13:29:05 -04:00
10a2d63e08 Add instructions to run HOS from GRUB 2022-11-03 13:27:24 -04:00
8aa01ba122 Build HELLO page tables from unused memory instead of scratch buffer 2022-11-02 22:49:42 -04:00
0b326e2e36 Move PAGE_SIZE from hulk.hippo to hulk.pagetable 2022-11-01 22:23:26 -04:00
e49c27cbbc Increase scratch space to 10MB 2022-10-30 21:29:19 -04:00
49677c8499 PageTableEntry improvements
- fix alias this
- add properties for dirty/accessed
- add opIndex for direct indexing
2022-10-29 22:07:38 -04:00
1e1c389caf Turn on EFER NXE bit to allow no-execute pages 2022-10-27 23:42:18 -04:00
7b531e36ea Fix HELLO check that HULK bss and stack region could be found 2022-10-26 23:26:25 -04:00
7540d4302e Add a couple more page table flags 2022-10-26 23:18:08 -04:00
ba7c2996d5 Add MSR_EFER and rdmsr() 2022-10-26 22:45:09 -04:00
707d42bec4 Remove PageTable.opIndex and .opIndexAssign, use .entry 2022-10-26 21:58:22 -04:00
476ae7d6fd Move hos.* modules to hulk.* 2022-10-26 00:16:07 -04:00
4a431f7d93 Use hulk.pagetable from hello 2022-10-26 00:05:49 -04:00
555ec9b627 Split PageTable struct out from hulk.hurl to hulk.pagetable 2022-10-25 23:30:17 -04:00