42 Commits

Author SHA1 Message Date
karina 2c7396353c Readme and license 2026-05-03 13:05:55 +04:00
karina 038219772e fix(scheduler): yield fixed and dont panic 2026-05-03 12:28:30 +04:00
karina c428097ec6 fix(serial): VMPhysToHHDM 2026-05-03 12:26:46 +04:00
karina 359eaeb405 fix(VMM): use correct APTable encoding for table descriptors
fix(VMM): use correct APTable encoding for table descriptors

fix(vmm): changed flags to match ARMv8
2026-05-03 10:47:15 +04:00
karina 6dd68f8162 fix: plug memory map leak, save sp_el0, dynamic UART, kill loop
- Bootloader: reallocate memory map buffer when ExitBootServices fails,
  so GetMemoryMap doesn't scribble past the old allocation on retry.
- vectors.S: actually store sp_el0 into the exception frame. Previously
  it was read into x24 and then… vanished. EL0 tasks would wake up with
  a corrupted stack pointer. Not great.
- Serial: split hardcoded 0x09000000 into a fallback default; add
  SerialUpdate() so the DTB-parsed UART address actually gets used.
- DTB: add bounds check on reserved[] with PMM's 3 extra slots accounted
  for, so malformed/overstuffed DTBs don't silently corrupt memory.
- PMM.h: bump kVMMaxReservedRegions 128→256, define kPMMReservedRegionCount.
- Types.h: remove `#define loop while(1)`. while(true) is fine.
- Rename IOSerial* → Serial* — the IO prefix was redundant, Serial.c
  already lives under IO/.
2026-05-03 00:32:30 +04:00
karina 7ff9f4ad4c fix: use rounded bitmap size in VMM kernel mapping calculation 2026-05-02 23:17:09 +04:00
karina 5673c44a99 fix: scheduler L0 table confusion, PMM bitmap rounding, dead task handling 2026-05-02 23:01:40 +04:00
karina 272b9c8998 chore: general cleanup in code (removed unused includes and cosmetic stuff 2026-05-02 22:43:32 +04:00
karina b519e69fbd feat(panic): funMessages in panic
feat(rand): also implemented rand
2026-04-30 13:10:07 +04:00
karina e06abbcb23 feat(scheduler): working scheduler 2026-04-29 17:00:11 +04:00
karina 3f51d93a4e fix(timer): fixed warning about implict casting int to UInt64 2026-04-29 09:35:22 +04:00
karina f3e60da11d ref: cleaned debug logs 2026-04-29 08:59:05 +04:00
karina 8d675abae9 fix: changed phyisical timer to virtual timer 2026-04-29 08:56:34 +04:00
karina 7fcb50587e feat: GICv2 and timer
fix: TimerReset in GIC.c now uses kTimerFrequency
2026-04-29 08:49:37 +04:00
karina 7935a6132e ref: cleaned code a bit 2026-04-27 07:02:56 +04:00
karina 5d010f7fb2 fix(vmm): make MMU bring-up and kernel mappings reliable 2026-04-26 23:41:57 +04:00
karina b56b55e4b3 feat(arm64): higher-half kernel, early MMU in boot, and VMM 2026-04-26 21:47:41 +04:00
karina 55335013a9 feat: completely functional PMM 2026-04-26 15:12:04 +04:00
karina 785a61b451 feat: DTB now populates VMBootMemoryMap structure. 2026-04-26 13:32:44 +04:00
karina d0948b9f2b feat: checking bootinfo magic at the start of the kernel 2026-04-26 10:57:01 +04:00
karina 32931021d2 feat: parsing dtb 2026-04-26 10:51:53 +04:00
karina f15a146608 wip: dtb; 2026-04-26 10:51:53 +04:00
karina 7d68e78cb2 wip: dtb: 2026-04-26 10:51:53 +04:00
karina b606fa23d0 feat: OSPanic(message) 2026-04-25 06:55:41 +04:00
karina 730d88f9b0 fix: preserve bootinfo pointer in kernel _start 2026-04-25 06:05:46 +04:00
karina 560bdc8b1d feat: error parse in panic 2026-04-24 18:14:04 +04:00
karina 78dcfdd662 feat: formatter and oslog() 2026-04-24 16:30:02 +04:00
karina 373ee00d04 feat: add kernel exception panic 2026-04-23 23:14:24 +04:00
karina f469da7e0b refactor(kernel): minor refactor. Changed naming convention 2026-04-23 22:22:13 +04:00
karina 93bce5a46d feat(kernel): add vectors.S and Exceptions.h/c as a stub for future exceptions handling 2026-04-23 22:03:18 +04:00
karina 502413b9ab feat(kernel): add PL011 UART console and arch I/O helpers
- Add IOSerial: PL011 (0x0900_0000) TX with FIFO-full polling, yield while waiting
- Add Arch/IO.h (32-bit MMIO with DSB) and Arch/CPU.h (yield, WFI)
- Extend types.h (e.g. ASCII, Address, Int/UInt aliases)
- Wire KernelMain to IOSerialPutString for early boot output
- Drop .sourcekit-lsp config; note IO glob in CMake (commented)
2026-04-23 21:25:15 +04:00
karina cf142ba78e fix: clangd 2026-04-23 06:49:40 +04:00
karina bfa84040b8 wip: bare bones for C in kernel 2026-04-22 23:12:06 +04:00
karina 97538aa098 wip: vectors, panics and lsp fix 2026-04-22 09:32:01 +04:00
karina 0c1585a169 wip: transfer to laptop 2026-04-20 20:51:47 +04:00
karina 8b1105f8e7 fix: added \n to string 2026-04-20 16:34:37 +04:00
sonya 350776d5d1 fix: added arc4random_buf stub
this fixes linking error on aarch64
also _seralPutchar was made public to prevent mangling
2026-04-20 21:30:23 +09:00
karina 635052c8dc feat: added UART support with a basic kprint in kernel
wip: DTB
2026-04-20 16:20:31 +04:00
sonya f3819a5450 Added bridging header for swift
c structures are now exposed to swift using a bridging header.
it is possible to access bootinfo using the structure (as oppossed to doing bytesfifts blind)
tested on aarch64 apple.
please test on other systems
2026-04-20 16:33:41 +09:00
sonya 2261985e7c wip swift in kernel 2026-04-20 15:51:40 +09:00
karina b33f63635b build: CMake toolchain for Kernel
build: moved CMake toolchain for Bootloader from Source folder to root of Bootloader
2026-04-20 09:38:27 +04:00
karina 1ee5dcbd0b feat: working bootloader and basic kernel (just dyes screen green) 2026-04-20 08:31:04 +04:00