181 Commits

Author SHA1 Message Date
wash 49a75a1bbe pmap: change pmap_add* virtual pointer parameter to virt_addr_t 2026-02-08 12:08:26 +00:00
wash 720ed75770 x86_64: add invalid pmap pointer constant 2026-02-08 11:59:18 +00:00
wash 880930e917 x86_64: implement functions to jump to userspace 2026-02-08 11:58:27 +00:00
wash da611ab070 x86_64: find, record, and reserve the memory location of the bsp 2026-02-08 11:52:33 +00:00
wash 00ea2b1b3b x86_64: adjust formatting 2026-02-08 11:36:16 +00:00
wash 4051265876 x86_64: implement TSS initialisation and user/kernel stack pointer switching 2026-02-08 11:34:49 +00:00
wash 564d4f9ba0 x86_64: rename struct cpu_context; move to machine/cpu.h 2026-02-08 11:32:09 +00:00
wash c04b33647c x86_64: add kernel and user virtual memory boundary definitions 2026-02-08 11:27:37 +00:00
wash af0d97d6f5 misc: changes from a long time ago 2026-02-03 21:28:15 +00:00
wash c7d4463f7e x86_64: remove redundant header files 2025-05-20 23:14:42 +01:00
wash 675a6de47e build: add build script to configure kernel and tools build systems 2025-05-19 22:01:12 +01:00
wash 62ec4c93ab meta: rename 2024-11-02 11:31:51 +00:00
wash 065fdeec65 build: convert build system to CMake 2024-11-02 11:21:22 +00:00
wash d29b955ee8 x86_64: re-enable legacy PIC and PIT initialisation 2024-09-17 17:48:26 +01:00
wash 3f992d84fb kernel: remove everything that is related to device/fs management
this is now a microkernel.
2024-09-17 17:47:50 +01:00
wash 9b00f83ff1 build: set default qemu display to SDL 2024-01-07 20:04:55 +00:00
wash b0c021d4e9 kernel: add kernel.early-console and kernel.console boot args
kernel.early-console is used to specify which output device the
kernel boot log should be written to. the first thing the kernel
does on boot after initialising the bootstrap processor is initialise
the early console, making it useful for debugging problems that
occur early in the boot process. this arg accepts a list of hard-coded
values for output devices, such as tty0 for the display or ttyS0
for the serial port. the exact values supported will depend on the
platform.

once all drivers are loaded, the kernel switches to the device specified
by kernel.console for output. unlike kernel.early-console, this arg
specifies the name of a tty device in /dev/tty. this means that, not
only are more devices supported (any device provided by a tty driver),
but the kernel can also get input from the user using this console too
(not used by the kernel itself, but will be used by the user to interact
with userspace programs, like the shell).
2023-12-30 09:09:18 +00:00
wash 8af6670b0d x86_64: move serial port code to serialcon kext 2023-12-29 20:35:26 +00:00
wash 53e756eca0 kernel: add boot argument parsing 2023-12-27 17:34:59 +00:00
wash 9a2ac25343 x86_64: don't call early_vgacon_init() if fbcon kext is not compiled in 2023-07-19 19:02:00 +01:00
wash 8463423c10 kernel: add endian conversion functions 2023-07-08 22:14:31 +01:00
wash 2ea509c4dc build: add test AHCI drives to VM 2023-07-08 15:56:20 +01:00
wash d96c549f17 vm: allow pages to be mapped as no-cache 2023-07-08 15:53:06 +01:00
wash abe4af093e tty: implement read/write support 2023-06-11 09:23:57 +01:00
wash 4cd9ebcb4f kexts: add generic vga/fb tty driver 2023-06-10 21:41:46 +01:00
wash 27387aa080 x86_64: move ACPI driver to kext 2023-06-09 19:31:30 +01:00
wash f83ecca490 dev: boot framebuffer support 2023-06-08 20:46:43 +01:00
wash b7b0691b8f dev: implement driver objects to organise and identify devices 2023-06-02 19:35:07 +01:00
wash b3957b311a x86_64: remove printk call from isr/irq handlers 2023-05-10 20:22:51 +01:00
wash add48f8a83 x86_64: acpi: create acpi bus device 2023-05-08 18:19:12 +01:00
wash 2638b8c27a x86_64: initialise device subsystem during boot 2023-05-08 18:18:59 +01:00
wash 482e65d13d x86_64: irq: add array of asm irq entry points 2023-05-08 08:08:33 +01:00
wash 55c8918d28 x86_64: serial: enable interrupts and announce incoming data 2023-05-07 21:44:03 +01:00
wash ab4eeb8e16 x86_64: expand IDT to 256 entries 2023-05-07 21:43:04 +01:00
wash 3435c2bffe x86_64: acpi: add dest CPU parameter to io_apic::map_irq() 2023-05-07 21:42:22 +01:00
wash aaad77aea5 x86_64: zero-init BSP and AP CPU cpu_data before use 2023-05-07 21:40:30 +01:00
wash 9f3c080e41 vm: minimum and maximum zone IDs are now defined in arch/../vm.h 2023-05-07 21:39:31 +01:00
wash ad2ce0b2ab build: add rule to run kernel under Bochs 2023-05-07 21:36:53 +01:00
wash 96e695704a x86_64: allow serial port baud rate to be configured 2023-05-07 12:22:47 +01:00
wash d8de0ddfe4 build: add rules to build and run iso images 2023-05-06 22:20:28 +01:00
wash 6239b09e8e x86_64: panic on general protection fault 2023-05-06 22:19:55 +01:00
wash 6cf8f4234a x86_64: print stack trace during panic 2023-05-06 22:18:40 +01:00
wash a9e95db39b x86_64: write printk messages to COM1 serial port 2023-05-06 21:33:36 +01:00
wash 76919abb10 x86_64: smp: initialise APs in parallel
bring_all_ap_online() now initialises all APs in parallel, and waits
for them all to come online (i.e. reach the end of ap_trampoline_exit,
making them ready to start scheduling threads) before returning.
2023-05-05 15:25:55 +01:00
wash 2ca1bd0b06 x86_64: acpi: only mask pit irq line during bsp init 2023-05-05 15:20:20 +01:00
wash 3f91c96050 x86_64: smp: flag cpu as online during bootstrap 2023-05-04 21:41:39 +01:00
wash 5611fce641 x86_64: smp: query CPU ID using CPUID during bootstrap 2023-05-04 21:04:17 +01:00
wash cd257e41cf x86_64: smp: reset __this_ap_ok to 0 before starting AP 2023-05-03 20:20:22 +01:00
wash 4bcd00fc3c x86_64: smp: set AP idle thread ID to CPU ID 2023-05-03 20:19:56 +01:00
wash d0371d9204 x86_64: create idle thread and initialise runqueue during AP bootstrap 2023-05-03 19:27:39 +01:00