Commit graph

45 commits

Author SHA1 Message Date
Imbus
bccc0b5200 Nasty unfixed bug related to spinlock panics 2025-06-26 14:45:45 +02:00
Imbus
d9896b4229 Purge fancy register macros, use inline assembly instead 2025-06-26 13:51:22 +02:00
Imbus
d855404c01 Revert to legacy mycpu() and cpuid() 2025-06-26 13:51:06 +02:00
Imbus
2aa06778b3 riscv.h, start.c: Some changed and some new machine specific routines 2025-06-26 13:30:45 +02:00
Imbus
b8474a12fc .clang-format: AlignConsecutiveMacros: true 2025-06-26 13:28:43 +02:00
Imbus
00bc2aa300 Use new API 'read_tp()' in proc.c mycpu() 2025-06-26 13:28:08 +02:00
Imbus
bd7959cc6c kalloc.[ch] from xv6, memory.[ch] containing memory probing algorithm and constants 2025-06-26 13:27:35 +02:00
Imbus
58ed873401 New type in types.h: size_t (u64) 2025-06-26 12:04:40 +02:00
Imbus
f2685ce7df Symbol rename in linker.ld: end -> kernel_end 2025-06-26 12:04:11 +02:00
Imbus
e82b75f8f0 Header: endian.h with endianness conversion functions 2025-06-26 12:03:02 +02:00
Imbus
71ff137192 Rename struct: spinlock -> Spinlock 2025-06-26 12:02:41 +02:00
Imbus
521217f2b5 String.[ch]: memset, memcpy, memmove, memcmph and strlen, strnlen 2025-06-26 12:01:53 +02:00
Imbus
be50854251 proc.c: Simplify mycpu(), remove cpuid() for now as it is only a front for r_tp() 2025-06-26 10:29:40 +02:00
Imbus
697a84b370 README: Mention xv6, notes on terminology from xv6 book 2025-06-26 10:28:31 +02:00
Imbus
4e73eee53e Formatting: string.c 2025-06-26 10:07:31 +02:00
Imbus
952eeebb6d Remove trailing extra line 2025-06-26 10:06:51 +02:00
Imbus
5dbcb33726 Some vocabulary in readme 2025-06-26 06:26:25 +02:00
Imbus
58bface3c9 Fix nasty bug related to spinlock panic when lock is already held, because the tread pointer was never set on a per-hart basis. 2025-06-26 06:24:01 +02:00
Imbus
93295eaeb8 Add uart and panic to kernel dependency list 2025-06-26 06:22:59 +02:00
Imbus
74fdd26759 Move uart into its own translation unit 2025-06-26 06:22:16 +02:00
Imbus
f48e74bebe Cosmetic fixes in spinlock 2025-06-26 06:19:58 +02:00
Imbus
f1f480251c Move panic into its own translation unit 2025-06-26 06:19:43 +02:00
Imbus
5948d6c8e8 Some prettier init code 2025-06-26 05:57:35 +02:00
Imbus
a9f7cb8cf7 Some machine specific code for reading and writing registers 2025-06-26 05:57:05 +02:00
Imbus
cda703873b Move some config options from start into config.h 2025-06-26 05:56:41 +02:00
Imbus
ff3ad1e719 Spinlocks and initial proc implementation 2025-06-26 05:56:15 +02:00
Imbus
eb0800c742 Clang format alignment 2025-06-26 05:55:59 +02:00
Imbus
28485acc8f Makefile updated to reflect linker script rename 2025-06-26 05:27:50 +02:00
Imbus
7ca69e391a Moved: link.ld -> kernel.ld 2025-06-26 05:24:09 +02:00
Imbus
ca71791440 Removing debug prints from entry routine. After stacks are set up correctly, this is better handled in C. 2025-06-26 04:25:37 +02:00
Imbus
bdf4228a18 Kernel now links string 2025-06-26 04:23:45 +02:00
Imbus
4512a93249 First draft of a kernel side library, string.h & string.c implementing itoa 2025-06-26 04:23:31 +02:00
Imbus
50a3c8d1d9 riscv.h architecture specific routines, startcode now branches hartid=0 for initialziation and hangs the other cores 2025-06-26 04:21:51 +02:00
Imbus
567e79a4e8 Some shorthand typedef used around the kernel 2025-06-26 04:19:49 +02:00
Imbus
e2a8bf287f UART_BASE is now volatile, preventing unexpected optimizations 2025-06-26 04:05:03 +02:00
Imbus
8959bc87b8 clangd: .clangd file that seems to make clangd behave 2025-06-26 04:04:34 +02:00
Imbus
36cc060411 A simple readme with some help regarding assembly and toolchain setup 2025-06-26 03:25:37 +02:00
Imbus
a0faa469f3 More documentation in start.c 2025-06-26 03:25:22 +02:00
Imbus
d62f9ddd85 Renamed assembly initialization code to _entry instead of _start, to avoid confusing with start() C function 2025-06-26 03:08:28 +02:00
Imbus
dc3de0135e Linker script from upstream ish 2025-06-26 03:07:48 +02:00
Imbus
0c71360d71 Start now lands in an infinite loop 2025-06-26 02:57:54 +02:00
Imbus
2490a4e4df Register clearing as a separate assembly routine in entry.S 2025-06-26 02:57:34 +02:00
Imbus
e101c0910f Extending linker script 2025-06-26 02:57:05 +02:00
Imbus
d90096e177 Fomrat 2025-06-26 02:56:56 +02:00
Imbus
e4d9be3aa7 Minimal viable kernel 2025-06-26 02:43:43 +02:00