758 Commits (master)
 

Author SHA1 Message Date
Andre Richter 0d25085af7
Fix clippy warning 5 years ago
Andre Richter 1b69b5dcc2
Make sure Pagetable arrays are 4 KiB aligned 5 years ago
Andre Richter aa8ec19e8b
Add publicly available docs 5 years ago
Andre Richter 40c5760260
Remove not needed features 5 years ago
Andre Richter 5db5147a1d
forgot an unsafe 5 years ago
Andre Richter 4ecddb20de
Add tutorial 0E - Exceptions: Groundwork 5 years ago
Andre Richter 90d88f65b6
Streamlining, cleanup, and minor fixes. 5 years ago
Andre Richter c017fc16dd
Minor Cargo.lock fix 5 years ago
Andre Richter 0824b0ecaa
Rework utils 5 years ago
Andre Richter 0802adca1c
Fix accidental local path in dependency 5 years ago
Andre Richter 52e0f4c850
mmu: Add more descriptive comments 5 years ago
Andre Richter 7f8960bb81
09_delays: Fix delays in main 5 years ago
Andre Richter ad2d0d1182
🎉 Update to Rust 2018 🎉 5 years ago
Albert Cervin 977343de2e Fix a small error in the RO mapping (#9)
The error would cause one page too much to be marked as read only.
Instead, calculate the appropriate page table indices for the read-only
region together with a comment explaining the subtraction by one.
5 years ago
Tyler Christensen d981f670b1 Fix two timing issues in delays.rs (#8)
* Fix two timing issues in delays.rs

These changes correct the implementations of delays::SysTmr::wait_msec_st
and delays::wait_msec to behave correctly and consistently with one another.

* Port delay fix from 09_delays to 0B_exception_levels

I believe this covers all copies of this bug in the codebase.

* Rebuild tutorial kernels with delay fixes
6 years ago
Andre Richter 83fdecc647
Add simple soft-panic test 6 years ago
Andre Richter 3e10cd52a1
Add nm target 6 years ago
Andre Richter c004e78e90
Safe implementations of uart::dec() and divisions
The previous implementation of uart::dec() forced the compiler to emit a
software out-of-bounds acces check into the code, bloating it a bit. Prevent
that by using an iterator instead.

Same is true for the ordinary division operator that was used in multiple places
in the benchmark code. Here, the compiler emitted software-checks for divison by
zero. Prevent this by using `checked_div()` where we can implement our own
"panic" handling.
6 years ago
Andre Richter 17b582f774
Update README.md 6 years ago
Andre Richter c62b79f09b
UART1 output on QEMU. Rework some Readmes. 6 years ago
Andre Richter b6fafa6191
Use SP_EL1 as EL1 stack instead of SP_EL0 6 years ago
Andre Richter b1786d5110
Update README.md 6 years ago
Andre Richter 5a7f77eae8
Update README.md 6 years ago
Andre Richter 937397d6b2
Update README.md 6 years ago
Andre Richter 6b4bd0e881
Formatting didn't work. Try again. 6 years ago
Andre Richter d488436f04
Add myself to License file; Reformat 6 years ago
Andre Richter f5d97b5723
Restructure Readme
Also, closes #5
6 years ago
Andre Richter a44d487d89
Update .travis.yml 6 years ago
Andre Richter fb17d56991
Adapter Travis badge to moved repo 6 years ago
Andre Richter 2046da5eab
Add objdump target 6 years ago
Andre Richter 3f92aab6e7
Bump extern crates
cortex-a -> 2.2.1
panic-abort -> 0.3.1
6 years ago
Andre Richter 6d135ee441
Makefile: Don't delete kernel8 6 years ago
Andre Richter 37fe055082
Alignment. Binaries from newer Rust version. 6 years ago
Andre Richter 68de789d15
0D: Instruction caching and better benchmark function.
The previous benchmark function had a few flaws. First of all, it wasn't
idiomatic Rust, because we used a loop construct that you would expect in C.
Revamped that by using an iterator. Also, the previous benchmark got heavily
optimized by the compiler, which unrolled the inner loop it into a huge sequence
of consecutive loads and stores, resulting in lots of instructions that needed
to be fetched from DRAM. Additionally, instruction caching was not turned on.

The new code compiles into two tight loops, fully leveraging the power of the I
and D caches, and providing an great showcase.
6 years ago
Andre Richter c65e2e56cd
Add tutorial 0D_cache_performance 6 years ago
Andre Richter bf2a1fff7e
First part of tutorial: 0C_virtual_memory 6 years ago
Andre Richter 60db699637
Add macOS 6 years ago
Andre Richter 4b1bac7509
First part of tutorial: 0B_exception_levels
- Added code
- Missing: README
6 years ago
Andre Richter 08235093c1
Bump cortex-a to v2.0.1 6 years ago
Andre Richter 1ca70bcd56
Check-in kernel8
Useful for assembly inspection via objdump
6 years ago
Andre Richter 4364173386
New todo entry 6 years ago
Andre Richter c156a32411
rust-fmt all 6 years ago
Andre Richter 633510262d
Fix wrong Stack address
Luckily, this error was non-manifest.
6 years ago
Andre Richter 8fcfc76e74
Add TODO list 6 years ago
Andre Richter 5ca70912fb
Remove unused cortex-a imports.
Why doesn't clippy catch this...?
6 years ago
Andre Richter bc32b52f96
Add gitignore 6 years ago
Andre Richter 21e181c63a
Bump cortex-a to v1.1.0 6 years ago
Andre Richter 0ededdc791
Bump register to v0.2.0 6 years ago
Andre Richter 6ba72c8625
Travis; I always forget about travis... 6 years ago
Andre Richter c19993934c
Use cargo-xbuild
Also, have a config where the individual projects can reuse the same
sysroot.
6 years ago