Commit Graph
193 Commits
Author SHA1 Message Date
Daniel Samson debe815a5c keep the AP trampoline inert between wakes, and retry failed cores
Arm the low frame (copy blob, make executable) only while a core climbs, then zero it and restore RW+NX; the frame stays reserved so cores can be re-woken. startSecondary is one re-runnable attempt; boot retries a non-responding core 3x. Validated the retry path by forcing a first-attempt failure.
2026-07-08 13:32:34 +01:00
Daniel Samson dba3939a0f add an SMP lock-stress test case
Four pairs push 400k sequenced messages through small channels; checks FIFO order and cross-core execution. Verified to fail with the lock disabled.
2026-07-08 12:45:02 +01:00
Daniel Samson 43afe6bf2e schedule tasks across all cores
Per-core GDT/TSS and AP scheduler entry; fix AP SSE + single_threaded.
2026-07-08 12:35:30 +01:00
Daniel Samson ed7f542006 wake application processors to long mode
INIT-SIPI-SIPI plus a self-relocating real-mode trampoline.
2026-07-08 12:35:30 +01:00
Daniel Samson 36c29d2d6d move the running task into per-CPU state
PerCpu.current via the GS base; ready queues stay global.
2026-07-08 12:35:30 +01:00
Daniel Samson 941ab091db add a big kernel lock for SMP
Guards the scheduler and IPC; held across the context switch.
2026-07-08 12:35:30 +01:00
Daniel Samson cf7c6df41c enumerate usable CPU cores from the MADT
Keep each Local APIC's id and expose platform.cpus().
2026-07-08 12:35:30 +01:00
Daniel Samson 26d2f5259c document the multi-sink logging model 2026-07-08 10:41:47 +01:00
Daniel Samson cb63d2e31b add multi-sink diagnostic log; make framebuffer optional 2026-07-08 10:40:22 +01:00
Daniel Samson 7d3417fe86 refactor kernel to use device platform discovery 2026-07-08 10:06:46 +01:00
Daniel Samson 2ee898a91e add device platform module with ACPI support 2026-07-08 09:23:41 +01:00
Daniel Samson 53a33a7332 fix debug typos 2026-07-05 19:07:22 +01:00
Daniel Samson 3f17ebf175 rename sched to scheduler 2026-07-05 19:03:07 +01:00
daniel 6f6ccc8bc9 moving kernel code to kernel/ 2026-07-05 10:19:11 +01:00
daniel 7c3cffb337 moving efi code to boot 2026-07-05 10:01:01 +01:00
daniel ae1552414d printing debug messages to serial only 2026-07-05 09:48:06 +01:00
daniel 6cd6669a8d Add RAM and VRAM footprint 2026-07-05 09:10:59 +01:00
daniel d055de7141 documenting things to research 2026-07-03 21:40:59 +01:00
daniel a6de418e42 documenting smp and scheduling to research 2026-07-03 21:24:44 +01:00
daniel f9f0511ac2 documenting research for arm and device discovery 2026-07-03 20:22:48 +01:00
daniel 99d6bf5ce3 renaming run-efi to run-x86-64 2026-07-03 19:45:44 +01:00
daniel 21b9691486 reclaiming uefi memory 2026-07-03 19:31:32 +01:00
Daniel Samson 50f3610768 Update build to run qemu on MacOS 2026-07-03 16:43:00 +01:00
daniel 31bf86af56 IPC 2026-07-03 15:09:16 +01:00
daniel df774691c8 Fixed-priority preemptive scheduler 2026-07-03 14:30:33 +01:00
daniel e80043b611 Calibrated timer / clock 2026-07-03 14:17:00 +01:00
daniel 9a834c91ff Pin zig version to 0.16 LTS 2026-07-03 13:49:47 +01:00
daniel 269729f2f2 Built heap allocation 2026-07-03 13:41:55 +01:00
daniel 20b4661ff3 Hardened paging into a real VMM 2026-07-03 13:29:34 +01:00
daniel d910e6261a Documenting sysv 2026-07-03 13:06:43 +01:00
daniel 56219b4050 Documenting sysv 2026-07-03 13:06:27 +01:00
daniel 5ea521d054 Built device interrupts 2026-07-03 12:57:40 +01:00
daniel c8e89e8115 Cross-architecture test suite 2026-07-03 12:39:26 +01:00
daniel 9cf135302d Built paging / the kernel's own page tables (with a TSS+IST) 2026-07-03 12:23:55 +01:00
daniel 0cc71ec8aa Built GDT + IDT + exception handlers 2026-07-03 12:05:41 +01:00
daniel 6312e84262 added physical memory manager 2026-07-03 11:43:14 +01:00
daniel cb2f49cb48 added physical memory manager 2026-07-03 11:24:26 +01:00
daniel 628c4f6d57 Move to multi arch support and added memory map 2026-07-03 11:11:19 +01:00
daniel c2435760c4 Add README file in docs 2026-07-03 10:31:08 +01:00
daniel 6a08081bfe selecting the displays native resolution 2026-07-03 10:07:51 +01:00
daniel 21cc0c87e4 setup framebuffer with console 2026-07-03 09:32:15 +01:00
daniel ca3c3d131c booting into the kernel 2026-07-01 19:51:06 +01:00
daniel 3c8656fb25 started project with basic efi setup 2026-07-01 18:32:56 +01:00