51ce7fe132
Rewriting memory management, part one.
2021-03-15 21:48:51 +00:00
5bc7ec5b79
Delete paging. Time for an overhaul.
2021-03-13 21:24:30 +00:00
d4c5b006a3
Move to using the BS toolchain
2021-03-12 23:40:56 +00:00
1c1fce9b13
More attempts to fix paging. Still missing the stack.
2020-12-11 20:51:12 +00:00
6470487f2e
Fix bug in control register writing
2020-12-11 20:50:33 +00:00
3c29c69d14
Increase debugging level
2020-12-11 20:49:48 +00:00
e9c79f1d6a
Adjust bounds for page table filling. Some maths was wrong
2020-12-02 02:37:17 +00:00
69eb6e10c8
Separate out ELF header parsing to another file
2020-12-02 02:37:17 +00:00
Curle
13139779f2
Fix formatting in templates
2020-11-29 21:24:00 +00:00
Curle
2ae1c75019
Update issue templates
2020-11-29 21:22:39 +00:00
Curle
f9a6171f0a
Create LICENSE
2020-11-29 21:12:49 +00:00
986c7816b1
Adjust structure of the image folder
...
Reduces the kernel initrd size.
2020-11-28 16:52:34 +00:00
2b1d6cca5f
Fixes for memory. Lots of work left.
...
Mainly, we need to be able to locate the kernel executable physically in memory.
2020-11-28 16:52:17 +00:00
4468cee2e7
Fix embarassing bug in paging impl that caused crashes..
2020-11-26 04:01:22 +00:00
4e7f8d47a5
Add better output to GPF handler
2020-11-26 03:50:30 +00:00
e2635c8125
Fix ordering of INTERRUPT_FRAME in header
2020-11-26 03:49:54 +00:00
c451afba0d
Add debugging symbols to output..
2020-11-26 03:48:41 +00:00
3f2ac2db36
Add a memstart symbol to the linkerscript
...
This replaces the old way of appending the memory bitmap to the end of the kernel, which started causing problems with expansion..
I hardcoded the value to 0x1440, which is the start of the first FREE block of memory given to SeaBIOS in QEMU. This should be changed in the future..
2020-11-09 18:48:47 +00:00
a9c0fcdfde
Adjust the crt0 file to insert a null stack frame before calling the kernel. Provides a solid base for the stack unwinding.
2020-11-09 18:44:42 +00:00
39c1956819
Minimise printing in physmem - turns out serial output is SLOW.
2020-11-09 18:43:59 +00:00
c8c1af3961
Adjust formatting in paging that i missed
2020-11-09 18:43:20 +00:00
63a5bfa4d6
Flailing with Invalid Opcode..
2020-11-09 18:43:06 +00:00
0de541b069
Add stack unwinding to critical ISRs.
...
Also adjust the formatting of serial prints..
2020-11-09 18:41:34 +00:00
1cb5c671f7
Add basic stack unwinding functionality
2020-11-09 18:39:34 +00:00
91063e12d2
Add opcode handling.. started debugging memory management.
2020-10-30 22:24:59 +00:00
903b5439ba
Fix building on Windows by dpeter99
...
Fix CMake invocation that confused it into using Visual Studio build tools..
2020-10-18 18:27:07 +02:00
Curle
162c4def06
Fix pre.sh
...
I can't spell!
2020-10-18 13:14:15 +01:00
Curle
5421541208
Comment out the post-build script.
...
More preparation for build server.
2020-10-16 23:28:02 +01:00
Curle
b9b1cb4337
Update pre.sh with explicit cross-linker
...
Just to help automating the build process.
2020-10-16 23:24:41 +01:00
266e00a3d8
Fix typo in post-build script
2020-09-29 02:03:48 +01:00
ff60205e11
Remove large image file, add extra stuff to the gitignore
2020-09-29 01:58:29 +01:00
5ad73b7046
Move toolchain to VirtualBox. qemu is too restrictive :/
2020-09-29 01:36:05 +01:00
81313cef42
Refactor CPU preparation into cpu.c, work on enabling AVX and SSE
2020-09-25 16:48:20 +01:00
d342772ed3
Poke paging. Still a little strange. Removed excess debugging.
2020-09-25 16:47:10 +01:00
Curle
cf30822677
We have virtual memory management!
...
Even if it's a little broken...
2020-09-07 20:56:49 +01:00
f30a0ebd68
Add defs required for kernel to compile
2020-09-03 21:37:03 +01:00
ee7f3c76f7
Add symbols to linker script for page table generation
2020-08-31 21:53:44 +01:00
78fb7f061f
Add new files to CMake
2020-08-31 21:53:10 +01:00
833562c7be
Change bracketing to make gcc -Werror happy
2020-08-31 21:51:41 +01:00
35715d1501
Add MMIO read/write functions.
2020-08-31 21:51:07 +01:00
48f574a170
Add missing invlpg function to cpu.c
2020-08-31 21:50:20 +01:00
baf09c80f2
Rework memory management.
2020-08-31 21:47:52 +01:00
53506eccb8
Add BXRC file for Bochs support.
2020-08-31 21:47:12 +01:00
58a944ee6e
Add startings of new kernel-side library
...
Lainlib is libk. It is separate from Helix, which will become the 3D engine common to the kernel and the userspace.
2020-08-31 21:44:54 +01:00
59896e4765
Remove dead files
2020-08-27 02:10:05 +01:00
ed89a1fb77
Remove ISO components
2020-08-27 02:08:03 +01:00
Curle
b6554e8501
Update README for new build process
2020-08-27 01:57:59 +01:00
aba82eaacb
Add support for C++
...
This was a doozy. I had to recompile gcc with a custom target to get it to output the CRT{BEGIN/END}.o files with proper 64 bit relocations.
The CMakeLists.txt file was also edited to allow these files to be linked (thereby actually adding the support) as well as to automatically create the boot image upon build.
2020-08-27 01:39:56 +01:00
4c9108bc87
Add PCI Enumeration to boot output
2020-08-23 02:32:47 +01:00
73b51c851d
Add basic PCI support.
...
Currently can only enumerate the PCI bus with a basic process, and retrieve basic details on every valid device.
2020-08-23 00:50:10 +01:00