summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* bump: 0.1.0 → 0.2.0 — working interrupt handlingsalmonik2026-07-313-5/+5
| | | | | | Interrupts are functional: PIT timer (~100 Hz), PS/2 keyboard IRQ with lock-free SPSC ring buffer, PIC remapped, IDT with 64-bit interrupt gates. Kernel runs cleanly with no exceptions.
* fix: ISR dispatch calling convention + PS/2 interrupt enablesalmonik2026-07-312-48/+112
| | | | | | | | | | | | Root cause: x86_64-unknown-uefi uses the Microsoft x64 calling convention where the first argument is passed in rcx, not rdi. The ISR stub was setting rdi = rsp, but isr_dispatch() read the frame pointer from rcx, getting garbage → triple fault. Also: - Enable PS/2 keyboard IRQ via controller config byte (bit 0). - Expose read_scancode() and TICKS from interrupt module. - ps2::poll_key() uses 'sti; hlt' race-free sleep pattern.
* interrupts: IDT, PIC remap, PIT timer, PS/2 keyboard IRQsalmonik2026-07-315-37/+414
| | | | | | | | | | | | | - IDT with 256 entries, loaded via lidt (CS read from current context) - PIC 8259A remapped to vectors 32-47, timer+keyboard IRQs unmasked - PIT channel 0 at ~100 Hz (mode 2, rate generator) - PS/2 keyboard IRQ (IRQ1 → vector 33): reads port 0x60, pushes byte to lock-free SPSC ring buffer - Timer IRQ (IRQ0 → vector 32): sends EOI, increments tick counter - ps2::poll_key() now reads from ring buffer with cli/sti+hlt for race-free sleep (instead of busy-polling the data port) - build.rs: use idiomatic Result<_, Box<dyn Error>> return type - tools/qemu.sh: fix SC2207 shellcheck warning
* Initial commit: raisernics toy kernelsalmonik2026-07-3119-0/+2218
- Bare-metal x86_64 UEFI kernel (PE32+, no libc) - GOP framebuffer + 8x16 bitmap font - PS/2 keyboard (polling, scancode set 1) - UART 16550 serial driver (COM1, 115200 8N1) - Bump allocator as #[global_allocator] (alloc::String, Vec, format!) - UEFI memory map capture (static buffer, ADR 0001) - Shell with 7 commands (help, echo, clear, hello, info, mem, halt) - Dual output: GOP framebuffer + serial console - Makefile: run, run-gui, debug, release, image targets - tools/: qemu.sh, boot-image.sh, debug-kernel.py