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