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
c11361d40f
Build new page tables in HULK
2022-10-19 23:59:11 -04:00
c8a81b1101
Add PAGE_SIZE constant
2022-10-18 21:53:38 -04:00
41531cf4d2
Rename Hurl to hurl for consistency
2022-10-18 20:59:13 -04:00
edbe33bcfa
Add ApicRegisters structure
2022-10-18 20:48:46 -04:00
747e824dae
Fix calcuation of reserved HULK binary pages
2022-10-18 16:23:13 -04:00
b1be5b888f
Add apic module that does not do anything yet
2022-10-18 12:56:02 -04:00
dba58b2277
acpi: show APIC address found
2022-10-18 12:55:41 -04:00
72b83b0c3c
Hurl.debug_lookup(): show page table entry index
2022-10-18 12:54:27 -04:00
90711adada
Actually calling Hurl.initialize() helps a lot
2022-10-18 12:51:08 -04:00
4f98c469b7
Add Hurl.debug_lookup()
2022-10-18 11:18:19 -04:00
7d2b535df5
Add hulk.acpi module
2022-10-18 00:48:56 -04:00