Commit Graph

41 Commits

Author SHA1 Message Date
Philipp Oppermann
635f7d3f9d Align section size instead of section start due to #126
This fixes the problem that GRUB sometimes puts the multiboot info struct between kernel sections if the hole is big enough. This leads to problems since we would try to map the same page twice in that case.
2016-02-24 16:52:19 +01:00
Philipp Oppermann
de2305038a Improve comments in code as well 2016-02-02 23:11:19 +01:00
Philipp Oppermann
c2c863c7f3 Use cmp and je instead of xor and jz 2016-02-01 23:42:09 +01:00
Philipp Oppermann
157b3b208d Improve comments for CPUID check 2016-01-02 16:01:42 +01:00
Philipp Oppermann
8e65034643 Align sections in linker script 2016-01-01 18:05:16 +01:00
Philipp Oppermann
a9e5b7fd28 Update license headers 2015-12-29 12:31:25 +01:00
Philipp Oppermann
6e60552e87 Rename test_* functions to check_* 2015-12-14 01:03:55 +01:00
Philipp Oppermann
c0439cf194 Fix Grammar
`set up` not `setup`
2015-12-13 18:53:15 +01:00
Philipp Oppermann
953704f103 Move setup_SSE to boot.asm 2015-12-12 15:00:14 +01:00
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