Commit Graph

193 Commits

Author SHA1 Message Date
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 01906a02bc Update rust-toolchain file for new rustup
Rustup since version 1.23.0 supports more detailed specification.
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
Berkus Decker 147a88acb4 Ignore IDE project files 2021-01-27 19:22:01 +02:00
Berkus Decker 8a5ef112be Merge pull-request #56 from metta-systems:fix/bump-dependencies to develop
Fix/bump dependencies
Closes #50
Closes #52
Closes #53
Closes #54

[close #56]
2020-12-29 18:55:10 +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
dependabot-preview[bot] ed568f8ca4 Bump register from 1.0.0 to 1.0.1
Bumps [register](https://github.com/rust-embedded/register-rs) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/rust-embedded/register-rs/releases)
- [Changelog](https://github.com/rust-embedded/register-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-embedded/register-rs/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-29 18:36:47 +02:00
dependabot-preview[bot] a267ad83ad Bump snafu from 0.6.9 to 0.6.10
Bumps [snafu](https://github.com/shepmaster/snafu) from 0.6.9 to 0.6.10.
- [Release notes](https://github.com/shepmaster/snafu/releases)
- [Changelog](https://github.com/shepmaster/snafu/blob/master/CHANGELOG.md)
- [Commits](https://github.com/shepmaster/snafu/compare/0.6.9...0.6.10)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-29 18:36:47 +02:00
dependabot-preview[bot] 73bc383e23 Bump qemu-exit from 1.0.0 to 1.0.1
Bumps [qemu-exit](https://github.com/andre-richter/qemu-exit) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/andre-richter/qemu-exit/releases)
- [Commits](https://github.com/andre-richter/qemu-exit/compare/v1.0.0...v1.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-29 18:36:47 +02:00
Berkus Decker 2c43585286 Merge pull-request #55 from metta-systems:fix/nightly-allocator-api to develop
Rename nightly allocator API fns
See https://github.com/rust-lang/wg-allocators/issues/76

[close #55]
2020-12-29 18:27:55 +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 7e9d325b14 Merge pull-request #48 from metta-systems:update/bump-dependencies to develop
Bump cortex-a and register-rs dependencies
Closes #44
Closes #45

[close #48]
2020-11-24 22:53:00 +02:00
Berkus Decker 74303ac7c1 Bump cortex-a and register-rs dependencies 2020-11-24 22:28:40 +02:00
Berkus Decker c20faca3bd Merge pull-request #46 from metta-systems:fix/gitpod-workspace to develop
Update gitpod configuration
According to some setup docs and example in workspace-full Dockerfile.

[close #46]
2020-11-24 22:26:34 +02:00
Berkus Decker 7def43ad97 Update gitpod configuration
According to some setup docs and example in workspace-full Dockerfile.
2020-11-24 21:01:40 +02:00
Berkus Decker 32a738994d Merge pull-request #47 from metta-systems:fix/bind-qemu-version to develop
Don't install rc version of qemu on windows
Who even decided that intalling rc by default is a good idea?

[close #47]
2020-11-24 19:51:54 +02:00
Berkus Decker c174ad204b Don't install rc version of qemu on windows
Who even decided that intalling rc by default is a good idea?
2020-11-24 17:54:36 +02:00
Berkus Decker 1c37e0dfba Merge pull-request #41 from metta-systems:feature/add-menus to develop
Feature/add menus
Add serial-driven menu system for playing with kernel features.

[close #41]
2020-11-20 05:03:02 +02:00
Berkus Decker f3103126ab Add simple serial menu for playing with kernel 2020-11-20 04:35:06 +02:00
Berkus Decker 42c3ace1fa Merge pull-request #39 from metta-systems:fix/bootup-cleanup to develop
Fix/bootup cleanup

[close #39]
2020-11-20 04:01:57 +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 8265b06474 Merge pull-request #38 from metta-systems:feature/display-output to develop
Feature/display output

[close #38]
2020-11-19 15:19:39 +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 6896b7a1cc Merge pull-request #34 from metta-systems:feature/power-management to develop
Add minimal RPi power management
* Turn the board off
* Reboot the board

[close #34]
2020-11-18 23:03:47 +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 6127b5d940 Merge pull-request #33 from metta-systems:fix/implement-gitpod-workspace to develop
Implement working gitpod workspace
For online development.

[close #33]
2020-11-18 02:27:52 +02:00
Berkus Decker 6050ca9e9d Update gitpod configuration
* Build from proper image
* Add vscode extensions
2020-11-18 02:27:05 +02:00
Berkus Decker 4e45358339 Merge pull-request #37 from metta-systems:fix/github-actions-upgrade to develop
Switch PATH setting to new environment files
According to github update https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/

[close #37]
2020-11-17 23:09:53 +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 53e68bf7b3 Switch PATH setting to new environment files
According to github update https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/
2020-11-17 22:56:56 +02:00
Berkus Decker 02124ed342 Merge pull-request #30 from metta-systems:feature/add-pl011-uart to develop
Feature/add pl011 uart

[close #30]
2020-11-14 23:55:42 +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 de8b24d504 Merge pull-request #32 from metta-systems:feature/add-qemu-gdb-target to develop
Add qemu-gdb target
Refactor QEMU runners.

[close #32]
2020-11-14 22:15:18 +02:00
Berkus Decker e8da38e04f Add qemu-gdb target
Refactor QEMU runners.
2020-11-14 17:59:50 +02:00
Berkus Decker 91e8652abc Merge pull-request #31 from metta-systems:fix/code-cleanup to develop
Fix/code cleanup
* Set stack pointer immediately upon entry
* Disable alignment checks before enabling MMU (rust core lib likes to do unaligned half-word accesses from its fmt_u64 routine, which we use a lot)
* Print more detailed reports in kernel exception handler
* Clean up makefiles
* Dry up boot code
* Move build-std flags to cargo config, as they apply to all of the cargo invocations
* Remove rlibc dependency, use compiler built-ins instead

[close #31]
2020-11-14 17:59:14 +02:00
Berkus Decker 7604f7c166 Add cargo expand task 2020-11-14 17:33:43 +02:00
Berkus Decker f07f130132 Add comments to justfile commands 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