Commit Graph

32 Commits

Author SHA1 Message Date
Philipp Oppermann
5b4e457439 Double stack size to avoid stack overflow 2015-12-09 15:46:14 +01:00
Philipp Oppermann
e071c24680 Recursive map the P4 table 2015-12-09 15:46:14 +01:00
Philipp Oppermann
dabef43db9 Reset src to master to be able to follow step-by-stp 2015-12-09 15:46:14 +01:00
Philipp Oppermann
b7debed3b7 Increase stack size to 4096*2 2015-12-09 15:38:46 +01:00
Philipp Oppermann
0e574426c5 Add recursive mapping and start describing it 2015-12-08 22:20:19 +01:00
Philipp Oppermann
88eb0636f3 Don't set write protect bit as we don't need it now 2015-11-19 15:26:58 +01:00
Philipp Oppermann
fc389c9e9e Increase stack size to 4096 2015-11-15 12:00:03 +01:00
Philipp Oppermann
895d40cd13 Add section about kernel elf sections 2015-11-15 12:00:03 +01:00
Philipp Oppermann
73aa41e25e Pass multiboot pointer as argument to rust_main 2015-11-15 12:00:03 +01:00
Philipp Oppermann
8789fa8531 Use unsigned mul instead of signed imul 2015-10-31 13:48:58 +01:00
Philipp Oppermann
2a35ec19b6 Use 2MiB pages instead of one 1GiB page 2015-10-29 17:47:21 +01:00
Philipp Oppermann
7b0428b07a Rename multiboot section to multiboot_header 2015-10-27 18:42:28 +01:00
Philipp Oppermann
5e5374cd7d Update grub.cfg to use renamed kernel file
Renaming occurred in 37b576e to be in line with the blog posts.
2015-10-26 16:54:45 +01:00
Philipp Oppermann
f670e330f5 Fix long mode test (fixes #6) 2015-10-25 01:49:42 +02:00
Philipp Oppermann
a39a611629 Wording: replace check with test 2015-10-25 01:48:57 +02:00
Philipp Oppermann
5db8977495 Rename main to rust_main to support testing
On testing, `std` is imported, which defines an own `main` function. Thus `cargo test` fails if there alread exists one non-mangled main.
2015-09-15 14:51:07 +02:00
Philipp Oppermann
03a46b4141 Print OS returned! instead of OKAY 2015-08-25 14:54:06 +02:00
Philipp Oppermann
e09ae042a3 Setup SSE because rust needs it 2015-08-25 14:54:06 +02:00
Philipp Oppermann
c65797d89f Add an 64-bit error function 2015-08-25 14:54:06 +02:00
Philipp Oppermann
fcf69dcc53 Remove unused sections to avoid float issues
Avoids a linker error for `fmod` and `fmodf`. These functions are refenced in libcore. The KEEP ensures that the Multiboot section isn't removed.
2015-08-25 14:54:06 +02:00
Philipp Oppermann
3c08203437 Call rust main function 2015-08-25 14:54:06 +02:00
Philipp Oppermann
7e898e6a4c Reload selector registers and print OKAY 2015-08-25 14:54:06 +02:00
Philipp Oppermann
9c4b8fef9d Add and load a 64-bit GDT 2015-08-25 14:54:06 +02:00
Philipp Oppermann
457a61341a Enable paging 2015-08-25 14:54:06 +02:00
Philipp Oppermann
b47699685f Add and setup a P4 and a P3 table 2015-08-25 14:54:06 +02:00
Philipp Oppermann
bd11ed9a6f Check for Multiboot, CPUID, and Long Mode 2015-08-25 14:54:06 +02:00
Philipp Oppermann
49f8c3c810 Add a small stack 2015-08-25 14:54:06 +02:00
Philipp Oppermann
d474c8fa7f Add error function 2015-08-25 14:54:06 +02:00
Philipp Oppermann
0c44988b4f Add grub config for iso creation 2015-08-13 12:48:17 +02:00
Philipp Oppermann
2c529d0060 Add a basic linker script
Ensures that the multiboot header is early in the executable.
2015-08-13 12:48:17 +02:00
Philipp Oppermann
3f530b3e83 Add basic boot code
It just prints a green `OK` to the screen and hangs.
2015-08-13 12:48:17 +02:00
Philipp Oppermann
cd12dc0427 Add multiboot 2 header file 2015-08-10 12:56:36 +02:00