josh
|
bb65def53c
|
XHCI: set dcbaap
|
2025-05-23 10:16:49 -04:00 |
|
josh
|
0d970a6d25
|
XHCI: allocate scratchpad buffers
|
2025-05-23 10:13:54 -04:00 |
|
josh
|
ea159db100
|
XHCI: allocate device context buffer for each slot
|
2025-05-23 09:21:48 -04:00 |
|
josh
|
e3f27812ad
|
Allocate memory regions for XHCI
|
2025-02-23 20:52:36 -05:00 |
|
josh
|
d78669df9c
|
Check for pkg-config
|
2025-02-23 20:46:31 -05:00 |
|
josh
|
7313b01732
|
Allow allocating arbitrarily aligned physical memory regions
This will be needed for USB (XHCI controller driver).
|
2025-02-21 15:31:48 -05:00 |
|
josh
|
b2497d1ee0
|
HIPPO: store memory regions in addition to individual free pages
|
2025-02-21 12:31:03 -05:00 |
|
josh
|
30078417b6
|
Turn off test thread
|
2025-02-20 15:50:57 -05:00 |
|
josh
|
c18cbf7be3
|
Remove unsupported avx CPU flags
|
2025-02-20 11:30:53 -05:00 |
|
josh
|
2d95371aa1
|
Add hulk.volatile
|
2024-12-03 00:18:45 -05:00 |
|
josh
|
13b6f39e1a
|
Add OVMF search location
|
2024-12-02 10:54:02 -05:00 |
|
josh
|
30aedfc97b
|
Map framebuffer with write-combining access mode to speed up physical hardware
|
2024-07-29 00:01:47 -04:00 |
|
josh
|
26bb071b4d
|
Update base address to build with kernel code model
|
2024-07-28 23:14:24 -04:00 |
|
josh
|
3a75e0505f
|
Prepare for future XHCI setup
|
2024-02-20 11:41:23 -05:00 |
|
josh
|
a02df12924
|
Add XHCI.reset()
|
2024-02-20 11:23:12 -05:00 |
|
josh
|
699f53ac15
|
Initialize USB after enabling interrupts so Time can be used
|
2024-02-20 11:17:29 -05:00 |
|
josh
|
1119855215
|
Fix mapping PCI regions as writable
|
2024-02-20 11:17:01 -05:00 |
|
josh
|
0c82250bd2
|
Fix Time.msleep() when inlined in a loop
|
2024-02-20 11:16:34 -05:00 |
|
josh
|
2a66443a49
|
Add DoorbellRegister comment
|
2024-02-09 13:02:05 -05:00 |
|
josh
|
9874802ee4
|
Add new threads to runnable threads list
More safely handle nested interrupts.
Switch to newly created thread immediately.
|
2023-12-08 12:16:35 -05:00 |
|
josh
|
44a305721e
|
Allow use of {suspend,resume}_interrupts() from within an ISR
Move functions from hulk.cpu to hulk.him.
|
2023-12-01 07:54:37 -05:00 |
|
josh
|
73f4d6b728
|
Rename hulk.idt to hulk.him
|
2023-12-01 07:49:52 -05:00 |
|
josh
|
0efe8af5aa
|
Commonize ISR handling as much as possible
|
2023-11-30 20:32:06 -05:00 |
|
josh
|
edc9b2c3ff
|
Remove thread test
|
2023-11-28 10:47:44 -05:00 |
|
josh
|
c8a9fcf0d5
|
idt: add INT_KERNEL_SWINT
|
2023-11-28 10:30:16 -05:00 |
|
josh
|
dc231741b7
|
cpu: add swint()
|
2023-11-28 10:30:03 -05:00 |
|
josh
|
fbaf9df59f
|
Add kernel threading test
Kernel multithreading is working!
Threads cannot exit for now.
Scheduling is round-robin for now.
|
2023-11-27 20:07:08 -05:00 |
|
josh
|
58a74e4859
|
Fix PCI device list
|
2023-11-27 19:37:14 -05:00 |
|
josh
|
cc1753a75d
|
Move system time display to Rtc.initialize()
|
2023-11-27 19:36:04 -05:00 |
|
josh
|
3c8587acf5
|
Redesign List as a mixin template
|
2023-11-27 15:30:09 -05:00 |
|
josh
|
db2814596b
|
Move PIT test to test module
|
2023-11-25 21:01:46 -05:00 |
|
josh
|
8cfa7bc009
|
Add hulk.thread module
|
2023-11-25 20:58:11 -05:00 |
|
josh
|
d100ab53a8
|
Add read_rflags()
|
2023-11-25 13:02:27 -05:00 |
|
josh
|
35e5aa2ee5
|
Add hulk.test module to test kernel functionality
|
2023-11-22 20:47:21 -05:00 |
|
josh
|
cd9a3a7284
|
Rework List to allow removing nodes
|
2023-11-22 20:46:48 -05:00 |
|
josh
|
294500fb70
|
Squelch linker warning about a RWX segment
|
2023-11-21 12:13:29 -05:00 |
|
josh
|
bb4404df23
|
Add suspend_interrupts() and resume_interrupts()
|
2023-11-21 11:36:22 -05:00 |
|
josh
|
aa5ca83889
|
Disable the red zone
This fixes the interrupt handler from clobbering local variables.
|
2023-11-20 16:18:41 -05:00 |
|
josh
|
f2839cdd0f
|
Handle all APIC IRQ redirects specified in MADT
|
2023-11-07 17:19:56 -05:00 |
|
josh
|
31bf82e2ae
|
Store all registers in interrupt stack frame
Do not clear console when printing interrupt stack frame
|
2023-11-02 16:32:42 -04:00 |
|
josh
|
4f9206af91
|
Build with debugging symbols
|
2023-11-02 11:54:08 -04:00 |
|
josh
|
2eec448653
|
Update gcc and binutils
|
2023-11-02 11:53:35 -04:00 |
|
josh
|
9932b92963
|
Change orange screen of death to red bar
|
2023-11-02 10:34:29 -04:00 |
|
josh
|
5d8343ed40
|
Preserve registers and align stack in interrupt handlers
|
2023-11-02 10:29:27 -04:00 |
|
josh
|
2fa4193517
|
Pass exception stack frame pointer to exception handler
Show exception stack frame contents on exception
|
2023-11-01 21:22:54 -04:00 |
|
josh
|
01c73f8474
|
Add check that PIT ISR is firing
|
2023-11-01 14:45:43 -04:00 |
|
josh
|
7264a31ff3
|
Rework scanning MADT table entries
Get I/O APIC address from MADT entry.
Add DEBUG flag for APIC.
Show number of CPUs found.
|
2023-10-31 13:29:23 -04:00 |
|
josh
|
c0a00b528e
|
Run in QEMU with 4 CPUs by default
|
2023-10-31 11:56:39 -04:00 |
|
josh
|
9f8a4ea100
|
Add hulk.time and msleep()
|
2023-10-26 16:18:26 -04:00 |
|
josh
|
6251fee3ff
|
Store item in List rather than pointer to item
|
2023-10-25 21:28:27 -04:00 |
|
josh
|
f5c6a35cef
|
Move MCFG ACPI table processing from ACPI to PCI
|
2023-10-25 21:18:36 -04:00 |
|
josh
|
e32282f6f0
|
Move MADT table processing from ACPI to APIC
|
2023-10-25 21:11:21 -04:00 |
|
josh
|
2b87792c67
|
Store ACPI table pointers in list
|
2023-10-25 19:13:36 -04:00 |
|
josh
|
e480bd0ed0
|
Enable PIT ISR to count milliseconds
|
2023-10-25 12:02:44 -04:00 |
|
josh
|
e357f2ba44
|
Initialize USB controllers from Usb instead of Pci
|
2023-10-24 10:44:48 -04:00 |
|
josh
|
f8f9b72588
|
Store PCI addresses and types as 32-bit uints
|
2023-10-24 10:25:16 -04:00 |
|
josh
|
d86bf47211
|
Store a List of discovered PCI devices
|
2023-10-24 08:49:11 -04:00 |
|
josh
|
757f8f8c65
|
Make A1.allocate() zero returned memory
|
2023-10-24 08:48:26 -04:00 |
|
josh
|
8303451929
|
Add List class
|
2023-10-24 08:48:00 -04:00 |
|
josh
|
1c6c922b45
|
Add Pci.Type struct
|
2023-10-22 21:30:36 -04:00 |
|
josh
|
7632445d43
|
Add console escape sequences to draw headings
|
2023-10-21 22:13:20 -04:00 |
|
josh
|
601ea50e4b
|
Console: delay newline rendering until non newline character
|
2023-10-21 21:21:46 -04:00 |
|
josh
|
722494af44
|
Console: do not index nonexistent character codes
|
2023-10-21 21:04:18 -04:00 |
|
josh
|
e1f38bd5ea
|
Initialize RTC after APIC
|
2023-10-21 20:47:15 -04:00 |
|
josh
|
bcf1bd3bde
|
HELLO: Zero HULK BSS region after mapping it
|
2023-10-21 20:46:27 -04:00 |
|
josh
|
f7dde241ad
|
Split console into two pages
|
2023-10-21 20:15:11 -04:00 |
|
josh
|
8638840cd8
|
Add console header line
|
2023-10-21 17:08:45 -04:00 |
|
josh
|
4273c703e9
|
writef: split into writef() and writefv()
|
2023-10-21 16:45:41 -04:00 |
|
josh
|
b2597fb5da
|
Add hulk.ver module
|
2023-10-18 19:33:43 -04:00 |
|
josh
|
291ba2bc1c
|
Remove xHCI TODO
|
2023-10-13 14:17:34 -04:00 |
|
josh
|
71bc3543a1
|
fontgen: show more error info for invalid character metrics
|
2023-09-26 12:00:22 -04:00 |
|
josh
|
a87d24d417
|
Reduce kernel console font size slightly
|
2023-09-26 09:59:22 -04:00 |
|
josh
|
6fcc6da022
|
Remove APIC debug outputs
|
2023-09-24 11:03:21 -04:00 |
|
josh
|
dc07fd0255
|
Document xHCI runtime registers and interrupter registers
|
2023-09-23 19:48:14 -04:00 |
|
josh
|
eb0a4b2a4d
|
Document xHCI port registers
|
2023-09-23 19:28:35 -04:00 |
|
josh
|
0ae3c6c96d
|
Document xHCI operational registers
|
2023-09-23 11:59:20 -04:00 |
|
josh
|
4814b51daf
|
Dump xHCI extended capabilities
|
2023-09-19 11:07:18 -04:00 |
|
josh
|
14bb3adf37
|
Document xHCI capability registers
|
2023-09-19 11:07:02 -04:00 |
|
josh
|
cda45b205d
|
Remove legacy PCI bus scanning
|
2023-09-17 16:13:37 -04:00 |
|
josh
|
cfd42550fc
|
Add struct definitions for all PCI header types
|
2023-09-17 15:22:58 -04:00 |
|
josh
|
673ce8f097
|
Scan PCI devices via MCFG table
|
2023-09-17 14:49:02 -04:00 |
|
josh
|
ba0befa21b
|
Check that needed ACPI tables are found
|
2023-09-17 13:40:26 -04:00 |
|
josh
|
fa4de31aa4
|
Store pertinent ACPI table pointers
|
2023-09-17 11:22:58 -04:00 |
|
josh
|
3412d9ece9
|
Add Klog.fatal_error()
|
2023-09-17 11:15:02 -04:00 |
|
josh
|
e8978c73f2
|
Move PCI initialization after ACPI/APIC/RTC
|
2023-09-17 11:00:48 -04:00 |
|
josh
|
f79b0098c5
|
Map ACPI tables as disable cache + no execute
|
2023-09-17 09:12:20 -04:00 |
|
josh
|
10d7e7f0c6
|
Move parsing of ACPI tables into table structures
Move mapping ACPI table memory into common location
|
2023-09-17 09:08:01 -04:00 |
|
josh
|
e088f942d1
|
Use Acpi.Header in ACPI table structures
|
2023-09-17 08:53:34 -04:00 |
|
josh
|
6514af8e94
|
Begin parsing MCFG ACPI table
|
2023-09-17 08:41:08 -04:00 |
|
josh
|
602a7525d2
|
Add %p format specifier for printing pointers
|
2023-09-16 17:09:55 -04:00 |
|
josh
|
617b861524
|
Size to hulk.elf.size
|
2023-09-15 13:38:25 -04:00 |
|
josh
|
2f968de7ed
|
Disassemble to hulk.elf.txt
|
2023-09-15 13:37:48 -04:00 |
|
josh
|
68e85999fb
|
Drop unused sections when linking HULK
|
2023-09-15 13:37:00 -04:00 |
|
josh
|
6b1445935c
|
Update mk-vmdk task to have a file template since VBoxManage createmedium command was failing
|
2023-09-15 11:04:36 -04:00 |
|
josh
|
665d8aef80
|
Update qemu command to change machine to q35
This enables PCIe
|
2023-09-15 11:04:12 -04:00 |
|
josh
|
af5ad73cf7
|
Update instructions for VirtualBox to change machine chipset
This enables PCIe
|
2023-09-15 11:03:39 -04:00 |
|
josh
|
4c67faaad4
|
Rework Kfont to store glyph top as offset from top of text row
|
2023-09-13 13:48:11 -04:00 |
|
josh
|
4fcea6a283
|
Reverse framebuffer vertical coordinates to start with 0 at top
|
2023-09-13 11:57:47 -04:00 |
|
josh
|
c958b9ffcc
|
Remove alpha-blending framebuffer functions
|
2023-09-13 10:57:45 -04:00 |
|
josh
|
3d911ab191
|
Adjust console text height by font baseline offset
This fixes having leftover pixels on screen bottom when scrolling the
console up.
|
2023-09-13 10:52:24 -04:00 |
|