Berkus Decker
44ef31ff77
Add missed clobbered registers in asm block
...
Fixes mis-compilation described in rust-lang/rust#68812 .
2020-10-13 22:14:32 +03:00
Berkus Decker
44037398d4
Add hopper make target
...
hopper is useful for inspecting kernel disassembly.
2020-10-07 21:23:23 +03:00
Berkus Decker
d453d60e19
Bump qemu-exit to version 1.0
2020-10-07 13:00:30 +03:00
Berkus Decker
041c4add0d
Bump r0 to version 1.0
2020-10-07 13:00:28 +03:00
Berkus Decker
4cc5305dc8
Prepare scripts for windows CI runner
2020-10-06 19:27:50 +03:00
Berkus Decker
af1cc83530
Add testing framework
...
Based on os.phil-opp.com ideas it includes running test framework in
qemu semihosting mode so that tests can indicate pass or fail to calling
process.
GitHub Actions are configured to run these tests and validate acceptance.
Add test-runner target to perform tests in qemu.
Add -nographic for qemu running tests.
Drop serial for qemu tests as well.
2020-10-06 19:27:50 +03:00
Berkus Decker
9fd9612b77
Fix entry point to always start a binary
...
Keep vectors table.
Do not keep boot data if not referenced.
2020-09-21 04:01:21 +03:00
Berkus Decker
cd16b733e9
Add non-allocating formatted write implementation
2020-09-21 04:01:18 +03:00
Berkus Decker
f485629fb6
Add boot code for RPi and QEMU
2020-09-21 04:01:17 +03:00
Berkus Decker
668296b8e0
Fix clippy warning
2020-08-10 00:34:49 +03:00
Berkus Decker
a4a3289712
Add GH Actions build workflow
2020-08-10 00:34:49 +03:00
Berkus Decker
57e4b81e1c
Implement power-efficient sleep after boot-up
...
* arch-based crates, inspired by Redox
* Do not burn cpu uselessly.
* Start using cortex-a registers.
* Important: initialise stack pointer!
2020-08-09 22:00:36 +03:00
Berkus Decker
57fc6e5aa5
Add QEMU configuration
2020-08-09 19:40:57 +03:00
Berkus Decker
cb814b353b
Add Raspberry Pi target configuration
...
* Use rlibc for memset/memcpy
* Create linker script for raspberry pi 3
* Add aarch64 target file inspired by Robigalia
* Force bitcode embedding for LTO
2020-08-09 19:35:09 +03:00
Berkus Decker
a57833d2b1
Add basic structure
...
* Add default License
* Keep a changelog
* Add Code of Conduct
* Build tests as optimized for size ('s')
* Otherwise boot code goes bonkers in qemu
2020-08-09 19:33:34 +03:00