53 Commits (8513ccfd8dc83e76997c4f83252452e495fbc17b)

Author SHA1 Message Date
Andre Richter 8513ccfd8d
Various minor fixes 2 years ago
Andre Richter 1323c8245b
Remove RA helper target from Makefile 2 years ago
Andre Richter b7cecafa1e
Non-phony kernel targets
Saves time on various targets that depend on the kernel ELF because calling
cargo can be completely skipped if nothing changed.
2 years ago
Andre Richter cb4ae40ac2
Linker: Provide LD script folder via cmdline
This enables shorter relative paths for ld-internal INCLUDE, which adds more
flexibility wrt to directory structure.
2 years ago
Andre Richter ad5a96db4c
Bump compiler version 2 years ago
°~zanez d50f675965
README.ES.md --> 03 (#151)
* README.ES.md

I added a spanish translation for the README.md file, and modified the README.md to add my github profile and to add the link to README.ES.md file

* Slightly reorganize translation overview

* README.ES.md These changes are in response to PR comments

* Update README.ES.md

* README.ES.md -> 00_before_we_start

* Updating README.ES.md

I corrected a few mistakes in both README.ES.md files.

* README.ES.md for 00 These changes are in response to PR comments

* README.ES.md -> 01_wait_forever

* README.ES.md -> 02_runtime_init

* README.md for 01 & 02 with corrections/improvements

* Update 01_wait_forever/README.ES.md

* Update 02_runtime_init/README.ES.md

* README.ES.md -> 03_hacky_hello_world

* README.md with corrections/improvements

Co-authored-by: zanez <zanez@protonmail.com>
Co-authored-by: Andre Richter <andre-richter@users.noreply.github.com>
Co-authored-by: Diego Barrios Romero <eldruin@gmail.com>
2 years ago
Andre Richter 1581b26995
Panic: Print location 2 years ago
Andre Richter 68b81aa6a0
Panic: Guard against infinite panic loops 2 years ago
Andre Richter d901ae6cfe
Update copyright 2 years ago
Andre Richter 7d02537515
Bump toolchain 2 years ago
Andre Richter dee575bb18
Bump QEMU to 6.1; Tag Docker images from now on 3 years ago
Andre Richter fb4a30f64c
Upgrade to Rust 2021 edition 3 years ago
Andre Richter de3ba3e871 Refactor Tests and Makefile
- Carve out common files for tests
- Add boot tests starting tutorial 3
- Overhaul the Makefile for more structure
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 9f1920c2c6
Give the project a name
🦩
3 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.
3 years ago
Andre Richter 2f90304149
Add color and verbosity to Makefile 3 years ago
Andre Richter a5884321a7
Fix rustdoc warnings 3 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.
3 years ago
Andre Richter 44bb3f8942
Update copyright year 3 years ago
Andre Richter b30bc518c4
Switch to GCC objdump and nm
The GCC versions of `objdump` and `nm` seem to have better out-of-the-box
support (for AArch64). Demangling works better, and instructions in objdump are
presented as 4 bytes instead of 4 * 1 bytes, which helps a lot.

Hence, switch to the GCC versions for now until LLVM has caught up.
4 years ago
Andre Richter 8fc250fc08
Streamline READMEs 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 f46c742289
Update README.md 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 4 years ago
Andre Richter 98d5d79acf
Don't check in binaries anymore 4 years ago
Andre Richter a4266ba978
More Makefile fixes 4 years ago
Andre Richter 474f58ced0
Add README diffs 4 years ago
Andre Richter 175d72ae8b
Refactor tutorial 03 4 years ago
Andre Richter bb78c779ca
Introducing Minipush, a raspbootcom replacement.
Gets rid of compiled C++, uses Ruby 💎
4 years ago
Andre Richter c64dd1197a
For educational purposes, use own zero_bss(). 4 years ago
Andre Richter a41190e298
Ensure kernel panic starts on newline 4 years ago
Andre Richter e690f8e7e4
Copyright bump to 2020 🎆 4 years ago
Andre Richter f6832bec31
Add ToC 4 years ago
Andre Richter 10090900cc
Add missing source comments 5 years ago
Andre Richter 821c7e2103
QEMU: Don't spawn a VNC session 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 9547bf77af
Fix diff script
Closes #32
5 years ago
Andre Richter 7c92445a64
Update README.md 5 years ago
Andre Richter a507bba9da
Update README.md 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 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 515a96925d
Minor adaptions 5 years ago