Andre Richter
8c2cec00be
Assembly: Use local label syntax for named labels
...
This prevents that they show up in the symbol table.
3 years ago
Andre Richter
7f666000ce
Init DRAM in assembly instead of Rust
...
See https://github.com/rust-embedded/cortex-m-rt/issues/300
3 years ago
Andre Richter
c0da8ab1b7
Remove confusing statement
4 years ago
Andre Richter
b4ed84dd77
Replace ldr pseudo-instruction with adrp/add
4 years ago
Andre Richter
2432c0d283
Revert to assembly boot code
...
It is too risky to rely on the compiler to not insert any operations using the
stack.
Having a stack-setting call in Rust using the cortex-a crate as the first action
in a Rust-only _start() function does not work if you're subsequently using the
stack, because the compiler often inserts the operations to make room on the
stack to prepare a function call BEFORE the call to set the stack, which crashes
the boot process.
Hence, keep on using a small piece of assembly boot code throughout.
4 years ago
Andre Richter
223989adb9
Overhaul linker script
4 years ago
Andre Richter
a5884321a7
Fix rustdoc warnings
4 years ago
Andre Richter
e7cb61b389
Refactoring
...
- Don't wildcard-import from arch modules. Make it explicit.
- Put translation table code into its own module.
- Put boot code in boot.rs instead of cpu.rs
- Other minor changes, most memory subsystem.
4 years ago
Andre Richter
44bb3f8942
Update copyright year
4 years ago
Andre Richter
098e19ecc4
Fix zero-sized bss handling
4 years ago
Andre Richter
208f547f29
Remove needless extern C
4 years ago
Andre Richter
27a1d10cc3
Remove UB in linker script symbol <-> Rust handover
4 years ago
Andre Richter
22faff5229
Various finetunings
4 years ago
Andre Richter
37b9d1435e
Move anything wrt linker symbols to bsp::memory
...
Also, some rewording of data types.
4 years ago
Andre Richter
cfc3bfc996
Switch to new Rust inline asm! syntax
4 years ago
Andre Richter
82f97c000b
Switch to llvm_asm! to avoid future breakage
5 years ago
Andre Richter
175d72ae8b
Refactor tutorial 03
5 years ago
Andre Richter
c64dd1197a
For educational purposes, use own zero_bss().
5 years ago
Andre Richter
a41190e298
Ensure kernel panic starts on newline
5 years ago
Andre Richter
6d9641d05f
Fix possibility of (.bss size) mod 8 != 0
5 years ago
Andre Richter
e690f8e7e4
Copyright bump to 2020 🎆
5 years ago
Andre Richter
034e1f01d8
rename init() -> runtime_init()
5 years ago
Andre Richter
10090900cc
Add missing source comments
5 years ago
Andre Richter
54137e8b38
Relicense as dual MIT OR Apache-2.0
5 years ago
Andre Richter
8c2b18e8ce
More robust, self-contained UART printing in panic!
5 years ago
Andre Richter
6119cf88b1
Actions: Add RPi4 build
5 years ago
Andre Richter
9bebad4765
Misspell run
5 years ago
Andre Richter
2fe2dcba6d
Add support for Raspberry Pi 4 🎉
5 years ago
Andre Richter
2933bcf162
Separate init from main
5 years ago
Andre Richter
56a650397d
Having a little code formatting party
5 years ago
Andre Richter
0ca114b408
Streamlining
5 years ago
Andre Richter
d57cf418bf
Add arch use clause
5 years ago
Andre Richter
038c558ac8
Big restructuring for more modularity
...
- Make architecture code separate from BSP code
- Make BSPs pull in drivers from a generic folder
- Enables reuse of drivers between different BSPs.
5 years ago
Andre Richter
be787f967c
Tiny rustfmt and vscode changes
5 years ago
Andre Richter
e7ae509376
minor streamlining
5 years ago
Andre Richter
515a96925d
Minor adaptions
5 years ago
Andre Richter
de3957009b
Use distinct path for interfaces
5 years ago
Andre Richter
dd4a132259
Change linker scripts
5 years ago
Andre Richter
8b6a4f1819
Add Rust embedded logo for docs
5 years ago
Andre Richter
3d8f12f619
Add code for tutorial 03
5 years ago