c16aa0e9c3
Add hulk.range
2023-06-10 22:21:55 -04:00
2935903bae
Map PCI device memory regions
2023-06-10 20:12:46 -04:00
5179b5881b
Read PCI device header type
2023-06-10 12:01:06 -04:00
a0c62937ff
Remove Pci.init_device() for now
2023-06-10 11:28:51 -04:00
657287c160
Move Pci.scan() recursion into scan() itself
2023-06-10 11:20:50 -04:00
d600e089e5
Add Pci.Device class
2023-06-10 11:16:27 -04:00
dd07a08388
Fix A1 allocator to map the correct pages
2023-06-10 11:06:41 -04:00
63fbbc9051
Use ulong for round_up_power_2()
2023-06-10 10:59:46 -04:00
3e32802862
Add A1.allocate() template to allocate struct/class instances
2023-06-10 10:30:56 -04:00
40ff805f7d
Add Pci.Address struct
2023-06-10 09:35:52 -04:00
9ac69c9003
Add Pci.write_config_register()
2023-06-10 09:19:58 -04:00
7aa28da1ef
Allow pointers or integers for Hurl.*map_range()
2023-06-09 23:38:52 -04:00
222a1efea4
Fix address calculation in Hurl.identity_map_range()
2023-06-09 23:27:20 -04:00
7a4edf38f0
Scan for multi-function PCI devices
2023-06-08 20:28:32 -04:00
dda1b6379f
Fix in32()/out32() to use uint instead of ulong
2023-06-08 16:07:44 -04:00
98134957e7
Print APIC table signatures found
2023-06-08 13:21:43 -04:00
22463e729b
writef: add %c format specifier support
2023-06-08 13:21:24 -04:00
8de86dd647
Add Pci.init_device() skeleton
2023-06-07 16:49:54 -04:00
f6fde01b06
Fix build error -- import hulk.util
2023-04-05 01:08:55 -04:00
ea6f485bd9
Add hulk.util and round_up_power_2()
2023-02-24 21:15:33 -05:00
2ab388f2e9
Remove seconds counter printout
2023-02-24 20:58:11 -05:00
cc891f6d4d
Assign PCI header fields to named variables
2023-02-24 20:53:46 -05:00
f5e5c40c12
Reduce Hurl.map() template overhead
2023-01-02 20:46:12 -05:00
7b09c9beed
Add A1 memory allocator
2023-01-01 22:02:48 -05:00
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