Commit Graph

13 Commits

Author SHA1 Message Date
Berkus Decker 78a864c433 refactor(linker): 📦 Share exception handlers 2023-07-29 04:08:18 +03:00
Berkus Decker afbb317403 refactor: 📦 Improve boot code structure
Rename sections to not conflict during link.
Update linker script docs to align on PAGE_SIZE.
2023-07-29 04:08:18 +03:00
Berkus Decker dae26262bc feat(boot): Replace r0 dependency
Use pointer provenance to guarantee absence of UBs.
2023-07-29 04:08:18 +03:00
Berkus Decker 07df330b62 feat: Implement MMU based on Andre Richter's tutorial
As per https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials/tree/master/10_virtual_mem_part1_identity_mapping

Bring better separation of abstract, platform and BSP code.

Init MMU and traps after serial output.
2022-05-08 12:15:21 +03:00
Berkus Decker 20c7c8bd7e Refactor non-DRY boot code 2020-11-14 17:33:43 +02:00
Berkus Decker 2a4eb20131 Add explicit noload flag to BSS section 2020-11-03 14:03:22 +02:00
Berkus Decker 504dcd1f65 Update copyrights 2020-10-15 23:04:01 +03:00
Berkus Decker 2f663f61de Move stack start constant to linker script 2020-10-15 22:36:52 +03:00
Berkus Decker ded53c16a7 Add MMU init code
Switch to cortex-a git version temporarily
(waiting for PR to be merged) with support
for all necessary registers.
2020-10-15 22:36:52 +03:00
Berkus Decker 9fd9612b77 Fix entry point to always start a binary
Keep vectors table.
Do not keep boot data if not referenced.
2020-09-21 04:01:21 +03:00
Berkus Decker f485629fb6 Add boot code for RPi and QEMU 2020-09-21 04:01:17 +03:00
Berkus Decker 57e4b81e1c Implement power-efficient sleep after boot-up
* arch-based crates, inspired by Redox
* Do not burn cpu uselessly.
* Start using cortex-a registers.
* Important: initialise stack pointer!
2020-08-09 22:00:36 +03:00
Berkus Decker cb814b353b Add Raspberry Pi target configuration
* Use rlibc for memset/memcpy
* Create linker script for raspberry pi 3
* Add aarch64 target file inspired by Robigalia
* Force bitcode embedding for LTO
2020-08-09 19:35:09 +03:00