Justin C. Miller
ff3bd640f0
Add simple vector implementation to kutil for device_manager
2018-05-07 09:47:34 -07:00
Justin C. Miller
abb347e1a8
Implement free() to finish buddy allocator
2018-05-07 00:59:45 -07:00
Justin C. Miller
949c9c0b8c
Remove boot elf loader debug spam
2018-05-06 23:01:03 -07:00
Justin C. Miller
627a9f7972
Add structures in prep for better device tracking
2018-05-06 22:59:59 -07:00
Justin C. Miller
cce892e92f
Load ELF file by sections to get addresses right
2018-05-06 22:03:44 -07:00
Justin C. Miller
97fb8ef653
Map 1MiB instead of 1 page for APIC (prep for MSI)
2018-05-06 18:31:08 -07:00
Justin C. Miller
649d6169c9
Ditch BAR logging for PIC devices
2018-05-06 18:31:08 -07:00
Justin C. Miller
9efb97c2a7
Increase to 64 IRQs
2018-05-06 18:24:12 -07:00
Justin C. Miller
d876aa141c
Add better number formatting to printf
2018-05-06 02:18:24 -07:00
Justin C. Miller
f64efad057
Add initial PCIe enumeration
2018-05-06 01:38:19 -07:00
Justin C. Miller
20edb87505
Move block list dump to separate method in page manager
2018-05-06 01:37:39 -07:00
Justin C. Miller
34156c55ae
Add simple stack trace to exception handler
2018-05-05 17:12:02 -07:00
Justin C. Miller
569bc243f1
Fix bug in log::enable
2018-05-05 15:33:56 -07:00
Justin C. Miller
bc6a42735c
Bring Intel/HP efi source into project, remove gnu-efi
2018-05-05 14:13:38 -07:00
Justin C. Miller
b2f2a9c721
Set chipset to q35
2018-05-05 11:26:59 -07:00
Justin C. Miller
8a00b9c77d
Spend a few more bytes on 'push' instruction to clear warnings
2018-05-05 11:26:13 -07:00
Justin C. Miller
d7506b6aaf
Rename intr log to apic, remove debug defaults
2018-05-05 11:02:41 -07:00
Justin C. Miller
3a86e89116
Update wscripts
2018-05-05 11:01:34 -07:00
Justin C. Miller
0e71bdab65
add FADT acpi table
2018-05-04 23:54:37 -07:00
Justin C. Miller
0c553b3406
Switch to waf build system, first attempt
2018-05-04 23:50:48 -07:00
Justin C. Miller
33012f35ef
Re-integrate framebuffer console
2018-05-03 22:01:33 -07:00
Justin C. Miller
05905f8c3c
Move LAPIC LINT enable after log message for better debugging
2018-05-03 00:58:45 -07:00
Justin C. Miller
9542bd8a44
Add beginning of better vmem allocator
2018-05-03 00:57:58 -07:00
Justin C. Miller
d9fe457b44
Add beginning basic serial driver
2018-05-03 00:08:22 -07:00
Justin C. Miller
59700b07db
Add initial IO APIC support
...
- IO APIC vector mapping
- Legacy PIC disable
- Real interrupts happening
2018-05-02 16:46:37 -07:00
Justin C. Miller
428e4563d0
Add initial classes representing APIC
2018-05-01 01:03:19 -07:00
Justin C. Miller
2d4e7cfdee
Check CPUID info, switch cpu flag to Broadwell
2018-04-30 08:25:35 -07:00
Justin C. Miller
99222d8ab9
Log more info about ACPI APIC table data
2018-04-29 23:50:01 -07:00
Justin C. Miller
a845fee689
Remove test kalloc from main
2018-04-29 18:09:19 -07:00
Justin C. Miller
cfecf4f1d4
Add rdmsr/wrmsr to io.cpp
2018-04-29 13:24:02 -07:00
Justin C. Miller
b3e49590a7
Add logging framework
2018-04-28 19:18:53 -07:00
Justin C. Miller
358837ed69
Implement first-pass simple virtual memory manager
2018-04-28 02:17:17 -07:00
Justin C. Miller
14f51436d7
Load ELF file with bootloader instead of flat binary
2018-04-28 02:12:08 -07:00
Justin C. Miller
d9619e65a2
Fix indirection bug with marked offset pointer mapping
2018-04-26 17:27:55 -07:00
Justin C. Miller
9754994e0c
Standardize types used in memory_pages
2018-04-26 16:47:51 -07:00
Justin C. Miller
34c894b15d
Enable allocation and mapping of pages
2018-04-26 11:10:32 -07:00
Justin C. Miller
a2665d9247
Fix printf bug in page_block::dump
2018-04-26 11:09:34 -07:00
Justin C. Miller
25b9625635
paging finally works
2018-04-25 19:53:22 -07:00
Justin C. Miller
2404b22c1f
support widths in printf
2018-04-25 19:52:27 -07:00
Justin C. Miller
bed882f41c
Enable paging WIP
2018-04-25 10:48:14 -07:00
Justin C. Miller
fd9e0944cb
Add rudimentary printf to console
2018-04-25 10:43:17 -07:00
Justin C. Miller
7e462319c9
Fix inconsistenly-named frame_buffer_size
2018-04-24 09:50:07 -07:00
Justin C. Miller
94de87ef86
Refactor screen ouput from main console code
2018-04-24 09:32:57 -07:00
Justin C. Miller
eb13f1f4fb
Fix missing return
2018-04-24 08:54:38 -07:00
Justin C. Miller
ff1aac64c1
Use our own stack space, not efi's.
2018-04-23 10:22:43 -07:00
Justin C. Miller
ef24894211
Add stupid first serial output
2018-04-23 10:22:02 -07:00
Justin C. Miller
1113164505
Join page_block insert methods into one
2018-04-22 23:27:15 -07:00
Justin C. Miller
1de73de2e3
Move page table allocation to top 256GiB.
...
I forgot to account for tracking page table physical addresses, so
this is a bit of an overhaul. Major changes:
- Refactor bootstrap code into more functions and:
- Only allocate 32 pages of scratch space
- Remap remaining space into top 256GiB, the "page table space"
- Use the page table space to directly offset-map page table pages
from their physical addresses, to avoid tracking overhead.
- Refactor page_block list functions into static functions to better
handle null/empty lists
2018-04-22 21:52:59 -07:00
Justin C. Miller
8cb0803605
Make page_manager::unmap_pages() handle multiple blocks
2018-04-22 13:37:44 -07:00
Justin C. Miller
95d52b87f4
Initialize page_manager.
...
Page manager now:
- Caches mapped pages and page_block structs
- Can unmap memory ranges
- Unmaps extra kernel memory during it's init
2018-04-22 02:48:45 -07:00