xous-core/kernel
Sean Cross b884c8ed4f kernel: riscv: use page base addr when allocating pages
When allocating a page, it is only assigned a physical address once it
is actually needed. This on-demand paging works well, however we were
assuming that the first address of a page was accessed first.

This fixes an issue where a Message is allocated but the first byte
isn't accessed first.

Signed-off-by: Sean Cross <sean@xobs.io>
2021-01-07 13:40:21 +08:00
..
.cargo
.vscode
bin
src kernel: riscv: use page base addr when allocating pages 2021-01-07 13:40:21 +08:00
assemble.ps1
assemble.sh
build.rs
Cargo.lock kernel: use crossbeam-channel internally 2020-12-30 16:50:28 +08:00
Cargo.toml Merge remote-tracking branch 'origin/master' into hardware 2021-01-04 03:19:23 +08:00
LICENSE
link.x
README.md Update kernel README.md links to other docs 2020-12-06 10:41:53 -06:00

Xous Kernel

This contains the core kernel for Xous. It requires a stage 1 loader in order to start up, as it assumes the system is already running in Supervisor mode.

Building

To build the kernel, you will need a riscv32 target for Rust. Possible targets include riscv32i-unknown-none-elf, riscv32imac-unknown-none-elf, or riscv32imac-unknown-xous-elf.

  1. Decide what target you want. For simple, embedded systems this could be riscv32i-unknown-none-elf, and for more complex systems with compressed instructions you could use riscv32imac-unknown-none-elf.
  2. Get Rust. Go to https://rustup.rs/ and follow its instructions.
  3. Install the proper toolchain: rustup target add ${target_arch}
  4. Build the kernel: cargo build --release --target ${target_arch}

Using

To use the kernel, you must package it up into an arguments binary with xous-tools.

Testing

TBD

Contribution Guidelines

Contributor Covenant

Please see CONTRIBUTING for details on how to make a contribution.

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide its terms.

License

Copyright © 2020

Licensed under the Apache License 2.0 LICENSE