Commit Graph

18 Commits

Author SHA1 Message Date
Berkus Decker e4b12e2c45 Update to latest versions of dependencies 2021-07-10 03:27:47 +03:00
Berkus Decker 601cf7a784 Add documentation target
Type `just doc` to see documentation in browser.

Improve doc comments in code to support
rustdoc links format.
2021-01-27 19:22:48 +02:00
Berkus Decker b4205f5ce6 Revert “Adjust for nightly rustfmt bug”
367ad5bbb2

https://github.com/rust-lang/rustfmt/issues/4528
is now fixed.
2020-11-20 03:09:43 +02:00
Berkus Decker d85d824bfd Switch on MMU immediately to avoid unaligned access
Since enabling armv6 unaligned access bit U in CP15 C1
requires AArch32 assembly and I don't want to introduce
yet another boot stub, I'll just initialize MMU right away
- this causes CPU to treat SCTLR_EL1.A differently and not
cause any alignment faults.

In the future, a small AArch32 boot stub that uses
now commented out fn enable_armv6_unaligned_access()
should be used to set U=1 and A=0 for full unaligned
access even when MMU is off. See ARM documentation
linked from that fn.
2020-11-20 03:09:43 +02:00
Berkus Decker 1de52fa109 Disable stack align checks
As with data align checks lets not fault on this yet.
2020-11-20 03:09:00 +02:00
Berkus Decker 4cb6f29e0d Clean up boot-order
Extract shared code, fix comments.
2020-11-20 03:08:40 +02:00
Berkus Decker 367ad5bbb2 Adjust for nightly rustfmt bug
See https://github.com/rust-lang/rustfmt/issues/4528
for the bug description, namely rustfmt removes
this comment completely if it's left in the
extern block.
2020-11-17 22:56:56 +02:00
Berkus Decker 373f4753dc Disable alignment checks right on boot
Specifically, before we print any numbers - rust
core fmt_u64 uses a little optimisation that
ldrh/strh to unaligned addresses.
2020-11-14 17:33:43 +02:00
Berkus Decker 50d9caa5f6 Set stack pointer immediately upon boot 2020-11-14 17:33:43 +02:00
Berkus Decker 20c7c8bd7e Refactor non-DRY boot code 2020-11-14 17:33:43 +02:00
Berkus Decker c823b42447 Update license identification 2020-10-17 22:32:16 +03:00
Berkus Decker 504dcd1f65 Update copyrights 2020-10-15 23:04:01 +03:00
Berkus Decker 408857fcb6 Add documentation 2020-10-15 22:49:31 +03:00
Berkus Decker 4898ad3139 Move global options to main.rs 2020-10-15 22:36:52 +03:00
Berkus Decker 2f663f61de Move stack start constant to linker script 2020-10-15 22:36:52 +03:00
Berkus Decker ded53c16a7 Add MMU init code
Switch to cortex-a git version temporarily
(waiting for PR to be merged) with support
for all necessary registers.
2020-10-15 22:36:52 +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 f485629fb6 Add boot code for RPi and QEMU 2020-09-21 04:01:17 +03:00