Commit Graph

153 Commits

Author SHA1 Message Date
Berkus Decker 79f859b576 wip: nucleus builds! 2023-12-10 04:44:36 +02:00
Berkus Decker 7c76dbded1 sq: refactor build system 2023-11-20 02:40:17 +02:00
Berkus Decker 1ad51993d0 chore(build): Add emoji to command output 2023-11-18 23:15:03 +02:00
Berkus Decker c6e466e914 wip: refactor build system
Reduce redundancy, make naming more clear.
Add ttt target.
2023-11-18 14:29:39 +02:00
Berkus Decker 8c3b7d3d0f build(deps): 🛠 Bump dependencies 2023-11-12 01:15:32 +02:00
Berkus Decker 134d7c530f feat: Update linker script
* Add MMIO remap region
* Move script to appropriate place
2023-08-12 03:29:02 +03:00
Berkus Decker a656a9bdd7 feat: Add kernel and MMIO mapping support
Not all the memory is mapped now, only kernel
sections and MMIO remap space
are mapped on the go.
2023-08-12 03:29:02 +03:00
Berkus Decker decdd0c56d refactor: 📦 Prepare exception handling code 2023-08-08 00:44:31 +03:00
Berkus Decker 0f30bf00aa refactor: 📦 Restructure code
All modules are modified to unified model
(mod.rs file in module directory).
Arch imports use modules from arch/ namespace
explicitly as arch_xxx.
2023-08-08 00:44:31 +03:00
Berkus Decker 577b0b74ee build(deps): 🛠 Bump dependencies 2023-08-08 00:44:31 +03:00
Berkus Decker f4e13be125 chore: ♻️ Update snafu features 2023-08-01 16:59:42 +03:00
Berkus Decker d0e4334afe refactor(cleanup): 📦 Remove unused code 2023-08-01 16:59:42 +03:00
Berkus Decker c3f23108b9 feat: Print more boot info
Temporarily play around with time, loop with
1 second delays.
2023-08-01 16:59:42 +03:00
Berkus Decker 0f435d7152 feat: Add info!/warn! to plain println!
These functions additionally log current time.
2023-08-01 16:59:42 +03:00
Berkus Decker b1d54d3b44 chore: ♻️ Disable asm output in QEMU runner
But keep it for qemu-gdb.
2023-08-01 16:59:42 +03:00
Berkus Decker ebb73e5cb0 chore: ♻️ Fix rustfmt and clippy complaints 2023-07-29 04:08:18 +03:00
Berkus Decker 13d6b2a037 chore: ♻️ Add QEMU tracing options for aarch64
Disabled for now, need to try them out.
2023-07-29 04:08:18 +03:00
Berkus Decker d37495bc01 fix: 🐛 Synchronise used features 2023-07-29 04:08:18 +03:00
Berkus Decker 0e1c6669ac refactor: 📦 Use better code structure
As inspired by andre-richter's tutorials.
2023-07-29 04:08:18 +03:00
Berkus Decker 46d0c4cffc fix: 🐛 Add missing exception vectors start symbol 2023-07-29 04:08:18 +03:00
Berkus Decker 5356de7cbb fix: 🐛 Disable some make tasks
Allows running gdb and hopper tasks.
Enable QEMU task.
2023-07-29 04:08:18 +03:00
Berkus Decker 45e18de842 refactor: 📦 Rearrange kernel_main 2023-07-29 04:08:18 +03:00
Berkus Decker b1bbdf087a feat: Use gdbgui for debug 2023-07-29 04:08:18 +03:00
Berkus Decker 94d23a6a47 refactor: 📦 kernel_main should be the main entry point 2023-07-29 04:08:18 +03:00
Berkus Decker d6887bccee refactor(build): 📦 Use single gdb-config command 2023-07-29 04:08:18 +03:00
Berkus Decker 1bcbe3271a refactor: 📦 Replace cortex-a with aarch64-cpu 2023-07-29 04:08:18 +03:00
Berkus Decker b1bf9dc09d fix: 🐛 Restore libmachine tests
To make unit tests work we build libmachine as a
binary with test-runner.
2023-07-29 04:08:18 +03:00
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 526d9fa46d build(deps): 🛠 Bump dependencies 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 568fdcb649 build(deps): 🛠 Bump dependencies 2023-07-29 04:08:18 +03:00
Berkus Decker 886cd0a18d fix: 🐛 Allow executing gdb from cargo-make
It was failing before because no tty was available.
2022-06-11 00:25:21 +03:00
Berkus Decker fc90fde4f0 feat: Add qemu-cb-gdb target 2022-06-11 00:25:21 +03:00
Berkus Decker b52c63796c fix: 🐛 Set GDB breakpoints by physical address 2022-06-11 00:25:21 +03:00
Berkus Decker 67db178c6f fix: 🐛 Invoke nm properly 2022-05-08 23:21:33 +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 113b4abbc5 feat: Add UnsafeCell trick
It replaces old "C" style linker symbol references.
2022-05-08 12:11:12 +03:00
Berkus Decker 0b3973f58d build(deps): 🛠 bump dependencies 2022-03-27 21:33:54 +03:00
Berkus Decker d22eb31d10 build: 🛠 add `chainofcommand` target 2022-03-01 01:11:58 +02:00
Berkus Decker 637304bdb3 feat: Add better nm output
Demangle and sort by symbol address.
2022-02-10 02:16:28 +02:00
Berkus Decker cfe4a230de feat: Add chainboot boot loader 2022-02-10 02:15:57 +02:00
Berkus Decker 3c57c6e2df fix: 🐛 Calculate PL011 divisors, fix PullUp/Down init
Rename registers in an attempt to make them more
readable.
2022-02-10 02:15:18 +02:00
Berkus Decker e5a3ea6998 refactor: 📦 Update Mailbox code 2022-02-10 02:15:18 +02:00
Berkus Decker 8f26c6fa44 refactor: 📦 Clean up code
Debugging with jtag.
Explicitly default to no features.
Allow unused allocator code.
Add board selection.
Add RPi4 datasheet.
Add explanation on bss alignment type.
2022-02-10 02:15:18 +02:00
Berkus Decker f76fab3fff chore: ♻️ Use different DTB files for rpi3 and rpi4 2022-02-10 02:14:07 +02:00
Berkus Decker 61eb2f9538 feat!: Update ConsoleOps
Split ConsoleOps vs SerialOps, rename console
methods, make them saner. Add docs.
Add clear_rx() fn.

Drop default trait impls for safety.
2022-02-10 02:14:07 +02:00
Berkus Decker 33dbf79041 feat!: Add shared MMIODerefWrapper instead of per-module ones 2022-02-10 02:14:07 +02:00
Berkus Decker 1e17e03a8d build: 🛠 Support per-binary linker scripts 2022-02-10 02:14:07 +02:00
Berkus Decker 721af870bf build: 🛠 Make image prepare steps more verbose 2022-02-10 02:14:07 +02:00