Commit Graph

918 Commits

Author SHA1 Message Date
Justin C. Miller
9a45ea562b Updating notes v0.1.1 2018-04-21 02:53:18 -07:00
Justin C. Miller
da404f520d Rearrange memory bootstrapping code.
Move EFI-related code and initial memory manager bootstrap code
to memory_bootstrap.cpp, move memory page structs to their own
memory_page.h/cpp files.
2018-04-21 02:52:52 -07:00
Justin C. Miller
799ad8b264 Add operator| to enum_bitfields 2018-04-21 02:47:37 -07:00
Justin C. Miller
818b51d57c Make qemu.bat log to popcorn.log 2018-04-21 02:45:33 -07:00
Justin C. Miller
e8866abc7a Bootstrap in-kernel memory management 2018-04-20 02:15:56 -07:00
Justin C. Miller
3b560c063a Move kernel to higher half.
Return to having the bootloader re-map the kernel into the higher
half before jumping into the kernel entrypoint, so we don't have
to juggle pointers inside the kernel.
2018-04-19 01:37:34 -07:00
Justin C. Miller
a27b8d6a3a Add/move code into kutil library 2018-04-17 23:41:28 -07:00
Justin C. Miller
2050b89334 Move src/modules/main -> src/kernel 2018-04-17 09:45:05 -07:00
Justin C. Miller
504de44ff3 Make APIC addresses uint32_t*
APIC registers need to be read/written 32 bits at a time, so
best to keep these as pointers to that size.
2018-04-17 09:20:56 -07:00
Justin C. Miller
71a6f13fa5 Make interrupt_isrs.inc the one source of ISRs 2018-04-17 01:39:21 -07:00
Justin C. Miller
f62fbefe54 Parse APIC addresses out of ACPI tables. 2018-04-16 23:56:03 -07:00
Justin C. Miller
6c29024eac Remove broken console QEMU bat file. 2018-04-16 01:17:11 -07:00
Justin C. Miller
b7f18c0d31 Parse the ACPI XSDT and find ACPI tables. 2018-04-16 01:15:42 -07:00
Justin C. Miller
696c29086b Clean up isr references in main.cpp 2018-04-15 18:44:47 -07:00
Justin C. Miller
bce281606e Finish ISR code for CPU faults (ISRs 0-31) 2018-04-15 18:40:21 -07:00
Justin C. Miller
2388a92085 Add initial IDT and GDT setup.
WIP interrupt handling. Interrupts do not yet return.
2018-04-15 15:46:20 -07:00
Justin C. Miller
447991e82b Add comment to assert 2018-04-15 09:14:02 -07:00
Justin C. Miller
a8984350da Add new kassert macro. 2018-04-14 18:34:34 -07:00
Justin C. Miller
4d5da72e2e Add parse_memmap.py script 2018-04-13 23:54:34 -07:00
Justin C. Miller
712df97dfc Add a better boot message with version v0.1.0 2018-04-12 09:17:59 -07:00
Justin C. Miller
656d5dfedf Save tool scripts like parse_font.py in a scripts dir 2018-04-12 09:02:56 -07:00
Justin C. Miller
1f396ced8e Make console support 256 color mode 2018-04-12 00:19:43 -07:00
Justin C. Miller
7f805fae1a Fix only allocating one page for log 2018-04-11 10:14:13 -07:00
Justin C. Miller
2d52f64eb6 Implement scrolling console 2018-04-10 02:15:41 -07:00
Justin C. Miller
067ff3af89 fix tab/spaces 2018-04-10 01:03:52 -07:00
Justin C. Miller
eaa9d2ba53 Move screen and font to proper classes 2018-04-09 13:56:14 -07:00
Justin C. Miller
77cc1fe757 Move main module to c++ 2018-04-08 12:44:09 -07:00
Justin C. Miller
58729b412a Add inital console font rendering 2018-04-04 11:58:02 -07:00
Justin C. Miller
8914106bee Add PSF font header definition 2018-04-02 10:20:56 -07:00
Justin C. Miller
4577c2d10c Add the beginning of support for kernel graphics to bootloader.
* Load a font file off disk to pass to kernel
* Expose a framebuffer to the kernel
* Currently the kernel just paints the screen red
2018-04-01 22:48:46 -07:00
Justin C. Miller
23365b39c7 Move all guid instances into .rodata in our own list. 2018-04-01 17:06:49 -07:00
Justin C. Miller
913fb202eb Clean up lots of debug output I no longer use. 2018-04-01 15:41:32 -07:00
Justin C. Miller
967018c3ac Fix con_printf not returing anything. 2018-04-01 15:37:26 -07:00
Justin C. Miller
cbb6ca5bd1 Fix printing on video console 2018-04-01 14:19:17 -07:00
Justin C. Miller
7b4388af5c Add guids CSV 2018-03-31 17:33:31 -07:00
Justin C. Miller
165ed28cd3 Reduce dependency on efi library functions 2018-03-31 17:32:10 -07:00
Justin C. Miller
a09a25d3e6 Ignore .gdbinit 2018-03-31 17:31:39 -07:00
Justin C. Miller
7ce2898b6e Test for incoming data pointer in kernel_main 2018-03-29 09:49:38 -07:00
Justin C. Miller
cc01f9d260 Actually pass data pages to kernel 2018-03-27 14:50:28 -07:00
Justin C. Miller
fd32af4905 Make memory functions operate on structure type 2018-03-27 14:47:21 -07:00
Justin C. Miller
2b9a0ca15e Create a kernel data area for passing information 2018-03-27 14:46:53 -07:00
Justin C. Miller
561686abd3 Update gnu-efi 2018-03-26 10:21:34 -07:00
Justin C. Miller
fd5780610b Format using clang-format 2018-03-25 14:06:25 -07:00
Justin C. Miller
64a6d88e5c Truly enable virtual memory.
Map is still identity-mapped. I think we need to sort and/or clean up
the map before using a higher half address. In-kernel vga output not
working yet, but do_the_set_registers() is getting called.
2018-03-25 13:51:32 -07:00
Justin C. Miller
417f080993 Improve QEMU debugging setup 2018-03-25 13:45:52 -07:00
Justin C. Miller
df93eeb708 OVMF upgrade 2018-03-25 03:07:23 -07:00
Justin C. Miller
e19c7cee50 Give kernel image a header.
Kernel image now has a header with version, magic number, and a
pointer to its actual entrypoint. Entry point is now _start in
boot.s, and we now generate versions.s in the build tree for the
version macros.
2018-03-24 18:34:44 -07:00
Justin C. Miller
d438392ed5 Formatting fixes and removed commented code only. 2018-03-23 09:04:51 -07:00
Justin C. Miller
cdef82f06f Virtualizing memory after exiting boot services 2018-03-22 19:16:44 -07:00
Justin C. Miller
b5c579fe0d Debugging helper changes 2018-03-22 18:37:18 -07:00