Commit Graph

94 Commits

Author SHA1 Message Date
Berkus Decker 0466589ddf [wip] try to use fdt-rs for DTB parsing 2021-07-11 22:32:29 +03:00
Berkus Decker 5c7de9ceec additional dtb crates to review - fdt-rs seems most active? 2021-07-11 22:31:22 +03:00
Berkus Decker 059566e698 [wip] Add wrapper for device_tree crate, bootup with DTB
This is to easily add necessary functions without touching the original crate - this will probably need to be upstreamed eventually!
2021-07-11 22:31:15 +03:00
Berkus Decker 36b2d92515 Import interfaces only when used
Fixes clippy noserial check deny(unused_imports).
2021-07-11 20:27:41 +03:00
Berkus Decker 7af16897ec Relax several clippy checks 2021-07-11 19:58:57 +03:00
Berkus Decker 155ae413b4 Replace wildcard imports with specific ones 2021-07-11 17:00:00 +03:00
Berkus Decker e4b12e2c45 Update to latest versions of dependencies 2021-07-10 03:27:47 +03:00
Berkus Decker 1644f299fe Make long hex constants readable in align tests 2021-01-27 20:10:32 +02:00
Berkus Decker 82d44a9c62 Add ASID type 2021-01-27 20:10:32 +02:00
Berkus Decker 856c4a9e68 Fix PhysAddr test 2021-01-27 19:55:52 +02:00
Berkus Decker 6281204062 Split addr module 2021-01-27 19:55:52 +02:00
Berkus Decker d3f561d214 Implement shifts for PhysAddr 2021-01-27 19:55:52 +02:00
Berkus Decker 50e955c6a7 Print test names in test_runner
Based on os.phil-opp.com Testing chapter.
2021-01-27 19:22:48 +02: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
dependabot-preview[bot] e6cea882dd Bump cortex-a from 5.0.0 to 5.1.0
Bumps [cortex-a](https://github.com/rust-embedded/cortex-a) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/rust-embedded/cortex-a/releases)
- [Commits](https://github.com/rust-embedded/cortex-a/commits/v5.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-29 18:36:54 +02:00
Berkus Decker 20363a7e25 Fix wasteful empty loop
Thanks, clippy!
2020-12-29 18:12:38 +02:00
Berkus Decker a53ede11af Rename nightly allocator API fns 2020-12-29 18:01:07 +02:00
Berkus Decker 74303ac7c1 Bump cortex-a and register-rs dependencies 2020-11-24 22:28:40 +02:00
Berkus Decker f3103126ab Add simple serial menu for playing with kernel 2020-11-20 04:35:06 +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 696307f30c Improve traps printing 2020-11-20 03:08:40 +02:00
Berkus Decker 4cb6f29e0d Clean up boot-order
Extract shared code, fix comments.
2020-11-20 03:08:40 +02:00
Berkus Decker 43d5e4ea21 Suppress clippy warning
For now, no api change.
2020-11-19 14:50:52 +02:00
Berkus Decker 3147e5327a Add display demo in main 2020-11-19 04:05:52 +02:00
Berkus Decker e72fac01b0 Add Display output 2020-11-19 04:05:52 +02:00
Berkus Decker 2ac804793b Add minimal RPi power management
* Turn the board off
* Reboot the board
2020-11-18 02:29:09 +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 5dffa9eb8e Add PL011 UART 2020-11-14 22:15:52 +02:00
Berkus Decker d124b02e7c Add set_clock_rate mailbox command 2020-11-14 22:15:52 +02:00
Berkus Decker e8da38e04f Add qemu-gdb target
Refactor QEMU runners.
2020-11-14 17:59:50 +02:00
Berkus Decker 7604f7c166 Add cargo expand task 2020-11-14 17:33:43 +02:00
Berkus Decker 09003a7da2 Traps: print more detailed exception report 2020-11-14 17:33:43 +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 482c62d341 Change mmu detail printer formatting
Print mmu features before and after init.
2020-11-14 17:33:43 +02:00
Berkus Decker df0510266e Fix formatting 2020-11-14 17:33:43 +02:00
Berkus Decker dc2a73f6c6 Provide memory intrinsics via compiler builtins
Use unstable feature to remove rlibc crate dependency.
2020-11-14 17:33:43 +02:00
Berkus Decker bfba78118f Move build-std flags to cargo config 2020-11-14 17:33:43 +02:00
Berkus Decker aac05a8776 Increase stack print buffer size to print test panics
Tests may write pretty long messages in panic output.
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 79028dba96 Add nm helper target 2020-11-04 22:24:39 +02:00
Berkus Decker 6da44a69ac Improve gdb runner 2020-11-04 22:24:34 +02:00
Berkus Decker d38661b63f Add openocd/gdb targets to makefile
Refactor build system scripts a bit.
2020-11-03 19:29:43 +02:00
Berkus Decker 3415ccd68c Add JTAG helpers 2020-11-03 14:03:22 +02:00
Berkus Decker c378250aba Init serial before the rest
So we could see output from all modules.
2020-11-02 20:55:18 +02:00
Berkus Decker d342031331 Add kernel global CONSOLE
Init it with mini_uart - nothing else is implemented yet.
2020-10-28 21:38:53 +02:00
Berkus Decker ab696eca8e Implement Error type for traps module
Recommended by the clippy lint
https://rust-lang.github.io/rust-clippy/master/index.html#result_unit_err

Using snafu because it already has a no_std feature
unlike thiserror.
2020-10-28 21:38:53 +02:00
Berkus Decker fef66a0191 Bump cortex-a dependency to released version 2020-10-28 21:38:53 +02:00