d37495bc01 
								
							 
						 
						
							
							
								
								fix:  🐛  Synchronise used features  
							
							
							
						 
						
							2023-07-29 04:08:18 +03:00  
				
					
						
							
							
								 
						
							
								0e1c6669ac 
								
							 
						 
						
							
							
								
								refactor:  📦  Use better code structure  
							
							... 
							
							
							
							As inspired by andre-richter's tutorials. 
							
						 
						
							2023-07-29 04:08:18 +03:00  
				
					
						
							
							
								 
						
							
								46d0c4cffc 
								
							 
						 
						
							
							
								
								fix:  🐛  Add missing exception vectors start symbol  
							
							
							
						 
						
							2023-07-29 04:08:18 +03:00  
				
					
						
							
							
								 
						
							
								45e18de842 
								
							 
						 
						
							
							
								
								refactor:  📦  Rearrange kernel_main  
							
							
							
						 
						
							2023-07-29 04:08:18 +03:00  
				
					
						
							
							
								 
						
							
								94d23a6a47 
								
							 
						 
						
							
							
								
								refactor:  📦  kernel_main should be the main entry point  
							
							
							
						 
						
							2023-07-29 04:08:18 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								dae26262bc 
								
							 
						 
						
							
							
								
								feat(boot):  ✨  Replace r0 dependency  
							
							... 
							
							
							
							Use pointer provenance to guarantee absence of UBs. 
							
						 
						
							2023-07-29 04:08:18 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								113b4abbc5 
								
							 
						 
						
							
							
								
								feat:  ✨  Add UnsafeCell trick  
							
							... 
							
							
							
							It replaces old "C" style linker symbol references. 
							
						 
						
							2022-05-08 12:11:12 +03:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								e5a3ea6998 
								
							 
						 
						
							
							
								
								refactor:  📦  Update Mailbox code  
							
							
							
						 
						
							2022-02-10 02:15:18 +02:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								33dbf79041 
								
							 
						 
						
							
							
								
								feat!:  ✨  Add shared MMIODerefWrapper instead of per-module ones  
							
							
							
						 
						
							2022-02-10 02:14:07 +02:00  
				
					
						
							
							
								 
						
							
								4cdeeb8556 
								
							 
						 
						
							
							
								
								refactor:  📦  Split kernel into machine and nucleus  
							
							... 
							
							
							
							Move openocd task to upper level and remove kernel
build dependency - the qemu runner doesn't really
depend on it. 
							
						 
						
							2022-02-10 02:14:07 +02:00  
				
					
						
							
							
								 
						
							
								af3dc82c76 
								
							 
						 
						
							
							
								
								docs(readme):  📚  Fix kernel type terminology  
							
							... 
							
							
							
							While Vesper strives to be as thin as possible
it's not exactly an exokernel, but it's a very
thin microkernel, dubbed nanokernel here. 
							
						 
						
							2022-01-23 16:03:03 +02:00  
				
					
						
							
							
								 
						
							
								ca263b33a1 
								
							 
						 
						
							
							
								
								fix: Add missing #[must_use] attributes  
							
							... 
							
							
							
							Clippy was very unhappy. 
							
						 
						
							2021-12-20 21:46:09 +02:00  
				
					
						
							
							
								 
						
							
								90389705a7 
								
							 
						 
						
							
							
								
								feat: Stabilise asm/global_asm  
							
							... 
							
							
							
							Requires rust 1.59.0 or later. 
							
						 
						
							2021-12-20 21:46:09 +02:00  
				
					
						
							
							
								 
						
							
								36b2d92515 
								
							 
						 
						
							
							
								
								Import interfaces only when used  
							
							... 
							
							
							
							Fixes clippy noserial check deny(unused_imports). 
							
						 
						
							2021-07-11 20:27:41 +03:00  
				
					
						
							
							
								 
						
							
								7af16897ec 
								
							 
						 
						
							
							
								
								Relax several clippy checks  
							
							
							
						 
						
							2021-07-11 19:58:57 +03:00  
				
					
						
							
							
								 
						
							
								155ae413b4 
								
							 
						 
						
							
							
								
								Replace wildcard imports with specific ones  
							
							
							
						 
						
							2021-07-11 17:00:00 +03:00  
				
					
						
							
							
								 
						
							
								e4b12e2c45 
								
							 
						 
						
							
							
								
								Update to latest versions of dependencies  
							
							
							
						 
						
							2021-07-10 03:27:47 +03:00  
				
					
						
							
							
								 
						
							
								1644f299fe 
								
							 
						 
						
							
							
								
								Make long hex constants readable in align tests  
							
							
							
						 
						
							2021-01-27 20:10:32 +02:00  
				
					
						
							
							
								 
						
							
								82d44a9c62 
								
							 
						 
						
							
							
								
								Add ASID type  
							
							
							
						 
						
							2021-01-27 20:10:32 +02:00  
				
					
						
							
							
								 
						
							
								856c4a9e68 
								
							 
						 
						
							
							
								
								Fix PhysAddr test  
							
							
							
						 
						
							2021-01-27 19:55:52 +02:00  
				
					
						
							
							
								 
						
							
								6281204062 
								
							 
						 
						
							
							
								
								Split addr module  
							
							
							
						 
						
							2021-01-27 19:55:52 +02:00  
				
					
						
							
							
								 
						
							
								d3f561d214 
								
							 
						 
						
							
							
								
								Implement shifts for PhysAddr  
							
							
							
						 
						
							2021-01-27 19:55:52 +02:00  
				
					
						
							
							
								 
						
							
								50e955c6a7 
								
							 
						 
						
							
							
								
								Print test names in test_runner  
							
							... 
							
							
							
							Based on os.phil-opp.com Testing chapter. 
							
						 
						
							2021-01-27 19:22:48 +02:00  
				
					
						
							
							
								 
						
							
								601cf7a784 
								
							 
						 
						
							
							
								
								Add documentation target  
							
							... 
							
							
							
							Type `just doc` to see documentation in browser.
Improve doc comments in code to support
rustdoc links format. 
							
						 
						
							2021-01-27 19:22:48 +02:00  
				
					
						
							
							
								 
						
							
								20363a7e25 
								
							 
						 
						
							
							
								
								Fix wasteful empty loop  
							
							... 
							
							
							
							Thanks, clippy! 
							
						 
						
							2020-12-29 18:12:38 +02:00  
				
					
						
							
							
								 
						
							
								a53ede11af 
								
							 
						 
						
							
							
								
								Rename nightly allocator API fns  
							
							
							
						 
						
							2020-12-29 18:01:07 +02:00  
				
					
						
							
							
								 
						
							
								f3103126ab 
								
							 
						 
						
							
							
								
								Add simple serial menu for playing with kernel  
							
							
							
						 
						
							2020-11-20 04:35:06 +02:00  
				
					
						
							
							
								 
						
							
								b4205f5ce6 
								
							 
						 
						
							
							
								
								Revert “Adjust for nightly rustfmt bug”  
							
							... 
							
							
							
							367ad5bbb2https://github.com/rust-lang/rustfmt/issues/4528 
is now fixed. 
						
							2020-11-20 03:09:43 +02:00  
				
					
						
							
							
								 
						
							
								d85d824bfd 
								
							 
						 
						
							
							
								
								Switch on MMU immediately to avoid unaligned access  
							
							... 
							
							
							
							Since enabling armv6 unaligned access bit U in CP15 C1
requires AArch32 assembly and I don't want to introduce
yet another boot stub, I'll just initialize MMU right away
- this causes CPU to treat SCTLR_EL1.A differently and not
cause any alignment faults.
In the future, a small AArch32 boot stub that uses
now commented out fn enable_armv6_unaligned_access()
should be used to set U=1 and A=0 for full unaligned
access even when MMU is off. See ARM documentation
linked from that fn. 
							
						 
						
							2020-11-20 03:09:43 +02:00  
				
					
						
							
							
								 
						
							
								1de52fa109 
								
							 
						 
						
							
							
								
								Disable stack align checks  
							
							... 
							
							
							
							As with data align checks lets not fault on this yet. 
							
						 
						
							2020-11-20 03:09:00 +02:00  
				
					
						
							
							
								 
						
							
								696307f30c 
								
							 
						 
						
							
							
								
								Improve traps printing  
							
							
							
						 
						
							2020-11-20 03:08:40 +02:00  
				
					
						
							
							
								 
						
							
								4cb6f29e0d 
								
							 
						 
						
							
							
								
								Clean up boot-order  
							
							... 
							
							
							
							Extract shared code, fix comments. 
							
						 
						
							2020-11-20 03:08:40 +02:00  
				
					
						
							
							
								 
						
							
								43d5e4ea21 
								
							 
						 
						
							
							
								
								Suppress clippy warning  
							
							... 
							
							
							
							For now, no api change. 
							
						 
						
							2020-11-19 14:50:52 +02:00  
				
					
						
							
							
								 
						
							
								3147e5327a 
								
							 
						 
						
							
							
								
								Add display demo in main  
							
							
							
						 
						
							2020-11-19 04:05:52 +02:00  
				
					
						
							
							
								 
						
							
								e72fac01b0 
								
							 
						 
						
							
							
								
								Add Display output  
							
							
							
						 
						
							2020-11-19 04:05:52 +02:00  
				
					
						
							
							
								 
						
							
								2ac804793b 
								
							 
						 
						
							
							
								
								Add minimal RPi power management  
							
							... 
							
							
							
							* Turn the board off
* Reboot the board 
							
						 
						
							2020-11-18 02:29:09 +02:00  
				
					
						
							
							
								 
						
							
								367ad5bbb2 
								
							 
						 
						
							
							
								
								Adjust for nightly rustfmt bug  
							
							... 
							
							
							
							See https://github.com/rust-lang/rustfmt/issues/4528 
for the bug description, namely rustfmt removes
this comment completely if it's left in the
extern block. 
							
						 
						
							2020-11-17 22:56:56 +02:00  
				
					
						
							
							
								 
						
							
								5dffa9eb8e 
								
							 
						 
						
							
							
								
								Add PL011 UART  
							
							
							
						 
						
							2020-11-14 22:15:52 +02:00  
				
					
						
							
							
								 
						
							
								d124b02e7c 
								
							 
						 
						
							
							
								
								Add set_clock_rate mailbox command  
							
							
							
						 
						
							2020-11-14 22:15:52 +02:00  
				
					
						
							
							
								 
						
							
								09003a7da2 
								
							 
						 
						
							
							
								
								Traps: print more detailed exception report  
							
							
							
						 
						
							2020-11-14 17:33:43 +02:00  
				
					
						
							
							
								 
						
							
								373f4753dc 
								
							 
						 
						
							
							
								
								Disable alignment checks right on boot  
							
							... 
							
							
							
							Specifically, before we print any numbers - rust
core fmt_u64 uses a little optimisation that
ldrh/strh to unaligned addresses. 
							
						 
						
							2020-11-14 17:33:43 +02:00  
				
					
						
							
							
								 
						
							
								482c62d341 
								
							 
						 
						
							
							
								
								Change mmu detail printer formatting  
							
							... 
							
							
							
							Print mmu features before and after init. 
							
						 
						
							2020-11-14 17:33:43 +02:00  
				
					
						
							
							
								 
						
							
								df0510266e 
								
							 
						 
						
							
							
								
								Fix formatting  
							
							
							
						 
						
							2020-11-14 17:33:43 +02:00  
				
					
						
							
							
								 
						
							
								dc2a73f6c6 
								
							 
						 
						
							
							
								
								Provide memory intrinsics via compiler builtins  
							
							... 
							
							
							
							Use unstable feature to remove rlibc crate dependency. 
							
						 
						
							2020-11-14 17:33:43 +02:00  
				
					
						
							
							
								 
						
							
								aac05a8776 
								
							 
						 
						
							
							
								
								Increase stack print buffer size to print test panics  
							
							... 
							
							
							
							Tests may write pretty long messages in panic output. 
							
						 
						
							2020-11-14 17:33:43 +02:00  
				
					
						
							
							
								 
						
							
								50d9caa5f6 
								
							 
						 
						
							
							
								
								Set stack pointer immediately upon boot  
							
							
							
						 
						
							2020-11-14 17:33:43 +02:00