Commit Graph

44 Commits

Author SHA1 Message Date
5ffa467b7d
Fix paging on >143MB ram.
Add visual printf.
2021-06-14 01:36:46 +01:00
77933c3aa4
Fix paging breaking on VirtualBox. Dynamically figure out the starting location. 2021-06-12 01:49:43 +01:00
54559a977d
Add missing header guards 2021-04-15 16:33:51 +01:00
2c95714d2f
Working on ethernet.
Includes a prototype E1000 driver.
2021-03-19 02:18:39 +00:00
98f3786e8b
Fix paging to completion.
More debug messages, some things are slightly broken. We can recover.
2021-03-18 20:33:15 +00:00
bd9f994648
Adjustments to the virtual memory manager, add Liballoc for kmalloc and kfree. 2021-03-17 01:23:36 +00:00
d3c36a29af
Paging works.
HOLY SHIT PAGING WORKS. THIS HAS BEEN SO MUCH WORK.

ALL IT TOOK WAS A BIT MASKgit add *.c !
2021-03-16 00:13:37 +00:00
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
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
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
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
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
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
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
f30a0ebd68
Add defs required for kernel to compile 2020-09-03 21:37:03 +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
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
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
493ef776e2
Refresh all files with project headers and documentation 2020-08-23 00:48:49 +01:00
3eb69c052d
Removed unnecessary VGA textmode header 2020-08-23 00:47:15 +01:00
destoer
4b4ad2ca65
fix compilier warnings 2020-07-08 00:38:59 +01:00
destoer
f2531d9ec5
remove makefile 2020-07-07 21:36:17 +01:00
destoer
86307dda70
added build scripts 2020-07-07 01:21:18 +01:00
5892af699d
Add missing files from git migration 2020-07-05 22:58:37 +01:00
97576bab02
Attempts at fixing paging.
Have somehow fixed the drawing routines along the way.

I also tried to implement a better keyboard handler, but that's quite a ways away right now.
2020-04-11 22:59:39 +01:00
822cfc4b9e Complete overhaul of the Legacy system.
Now with reasonable architecture, plus added x86_64.
2020-02-06 20:20:58 +00:00