40 Commits

Author SHA1 Message Date
9b2c2f6b29 x86_64: start the kernel bootstrap heap above 16MiB
this will keep the memory area below 16MiB free for DMA memory allocations.
2026-02-21 11:24:36 +00:00
6019c9307d kernel: separate headers into kernel and user headers
all kernel headers have been moved from include/mango to include/kernel
and include definitions that are only relevant to kernel-space.

any definitions that are relevant to both kernel- and user-space
(i.e. type definitions, syscall IDs) have been moved to
include/mango within libmango.
2026-02-19 18:54:48 +00:00
da611ab070 x86_64: find, record, and reserve the memory location of the bsp 2026-02-08 11:52:33 +00:00
00ea2b1b3b x86_64: adjust formatting 2026-02-08 11:36:16 +00:00
af0d97d6f5 misc: changes from a long time ago 2026-02-03 21:28:15 +00:00
62ec4c93ab meta: rename 2024-11-02 11:31:51 +00:00
d29b955ee8 x86_64: re-enable legacy PIC and PIT initialisation 2024-09-17 17:48:26 +01:00
3f992d84fb kernel: remove everything that is related to device/fs management
this is now a microkernel.
2024-09-17 17:47:50 +01:00
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
8af6670b0d x86_64: move serial port code to serialcon kext 2023-12-29 20:35:26 +00:00
53e756eca0 kernel: add boot argument parsing 2023-12-27 17:34:59 +00:00
9a2ac25343 x86_64: don't call early_vgacon_init() if fbcon kext is not compiled in 2023-07-19 19:02:00 +01:00
abe4af093e tty: implement read/write support 2023-06-11 09:23:57 +01:00
4cd9ebcb4f kexts: add generic vga/fb tty driver 2023-06-10 21:41:46 +01:00
27387aa080 x86_64: move ACPI driver to kext 2023-06-09 19:31:30 +01:00
f83ecca490 dev: boot framebuffer support 2023-06-08 20:46:43 +01:00
b7b0691b8f dev: implement driver objects to organise and identify devices 2023-06-02 19:35:07 +01:00
2638b8c27a x86_64: initialise device subsystem during boot 2023-05-08 18:18:59 +01:00
aaad77aea5 x86_64: zero-init BSP and AP CPU cpu_data before use 2023-05-07 21:40:30 +01:00
96e695704a x86_64: allow serial port baud rate to be configured 2023-05-07 12:22:47 +01:00
a9e95db39b x86_64: write printk messages to COM1 serial port 2023-05-06 21:33:36 +01:00
72d8facd47 kernel: add standard clock system 2023-04-28 20:51:51 +01:00
b6f8c1ccaa kernel: don't use typedef for enums or non-opaque structs 2023-04-13 11:40:52 +01:00
e0e6f4a9ae acpi: calibrate local APIC timer on BSP 2023-03-28 21:38:47 +01:00
864362ba82 acpi: add APIC irq ack and legacy vector remapping 2023-03-24 14:38:53 +00:00
8e9127cd6a x86_64: init local apic on boot, or legacy pic/pit as fallback 2023-03-19 20:36:36 +00:00
57eaf4e01c kernel: implement cpu IDs and per-cpu variables 2023-03-18 19:35:00 +00:00
1a413189ab kernel: move object_bootstrap() call to kernel_init() 2023-03-06 11:08:02 +00:00
d41ea0cd52 kernel: implement initcalls and a testing system 2023-02-26 10:05:39 +00:00
ef10ed5cd2 kernel: add initial object manager definitions 2023-02-17 19:36:14 +00:00
ddb00acd31 x86_64: add a basic ACPI driver 2023-02-09 19:09:07 +00:00
5e10f566a4 x86_64: add basic interrupt handling 2023-02-08 20:24:40 +00:00
e96da32cd5 x86_64: check for failure in alloc test 2023-02-08 18:48:01 +00:00
b13907f3bc x86_64: initialise vm subsystem 2023-02-07 16:00:45 +00:00
625eac9ca7 x86_64: implement bootstrap function for pmap interface 2023-02-06 20:50:38 +00:00
b9b3794aee x86_64: initialise memblock using e820 2023-02-05 10:50:13 +00:00
1abc7a4f6c x86_64: move non-ML headers to include/arch/ 2023-02-05 09:45:17 +00:00
17b90a484a kernel: print version banner on boot 2023-02-04 19:19:48 +00:00
31cb7aab8b kernel: add basic console registration system and printk() 2023-02-04 19:03:45 +00:00
c65f034e0e kernel: x86_64: add machine init function called by kernel_init 2023-02-03 20:24:27 +00:00