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
b3957b311a
x86_64: remove printk call from isr/irq handlers
2023-05-10 20:22:51 +01:00
add48f8a83
x86_64: acpi: create acpi bus device
2023-05-08 18:19:12 +01:00
2638b8c27a
x86_64: initialise device subsystem during boot
2023-05-08 18:18:59 +01:00
482e65d13d
x86_64: irq: add array of asm irq entry points
2023-05-08 08:08:33 +01:00
55c8918d28
x86_64: serial: enable interrupts and announce incoming data
2023-05-07 21:44:03 +01:00
ab4eeb8e16
x86_64: expand IDT to 256 entries
2023-05-07 21:43:04 +01:00
3435c2bffe
x86_64: acpi: add dest CPU parameter to io_apic::map_irq()
2023-05-07 21:42:22 +01:00
aaad77aea5
x86_64: zero-init BSP and AP CPU cpu_data before use
2023-05-07 21:40:30 +01:00
9f3c080e41
vm: minimum and maximum zone IDs are now defined in arch/../vm.h
2023-05-07 21:39:31 +01:00
ad2ce0b2ab
build: add rule to run kernel under Bochs
2023-05-07 21:36:53 +01:00
96e695704a
x86_64: allow serial port baud rate to be configured
2023-05-07 12:22:47 +01:00
d8de0ddfe4
build: add rules to build and run iso images
2023-05-06 22:20:28 +01:00
6239b09e8e
x86_64: panic on general protection fault
2023-05-06 22:19:55 +01:00
6cf8f4234a
x86_64: print stack trace during panic
2023-05-06 22:18:40 +01:00
a9e95db39b
x86_64: write printk messages to COM1 serial port
2023-05-06 21:33:36 +01:00
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
2ca1bd0b06
x86_64: acpi: only mask pit irq line during bsp init
2023-05-05 15:20:20 +01:00
3f91c96050
x86_64: smp: flag cpu as online during bootstrap
2023-05-04 21:41:39 +01:00
5611fce641
x86_64: smp: query CPU ID using CPUID during bootstrap
2023-05-04 21:04:17 +01:00
cd257e41cf
x86_64: smp: reset __this_ap_ok to 0 before starting AP
2023-05-03 20:20:22 +01:00
4bcd00fc3c
x86_64: smp: set AP idle thread ID to CPU ID
2023-05-03 20:19:56 +01:00
d0371d9204
x86_64: create idle thread and initialise runqueue during AP bootstrap
2023-05-03 19:27:39 +01:00
ad58693dfb
x86_64: panic: fix printk formatting specifiers for cpu registers
2023-05-03 19:26:19 +01:00
a52571eb19
kernel: add panic() function that accepts a cpu_context
2023-05-03 19:26:09 +01:00
390fe86657
x86_64: enable NX protection during AP bootstrap
2023-05-03 19:20:07 +01:00
4677c881e1
x86_64: acpi: bring up other APs in long mode
2023-05-01 18:13:44 +01:00
654e54653c
x86_64: pmap: implement pmap_add()
2023-05-01 18:12:07 +01:00
8a0291c9b3
sched: add timer tasks and schedule_timeout()
2023-04-30 21:09:36 +01:00
085c3d2a89
sched: add kernel-mode context switching
2023-04-30 14:27:57 +01:00
2cb2d9100a
x86_64: define struct offsets for access from assembly
2023-04-30 14:26:37 +01:00
f349e4963c
x86_64: charge clock cycles to threads when handling IRQs
...
Clock cycles that are used to handle the IRQ itself are *not*
charged to the thread.
2023-04-28 21:06:59 +01:00
72d8facd47
kernel: add standard clock system
2023-04-28 20:51:51 +01:00
995e364b21
x86_64: acpi: fix bad local APIC register offset
2023-04-28 20:49:46 +01:00
e7fe5a8f8e
kernel: add function to query CPU clock cycle count
2023-04-22 21:07:34 +01:00
b6f8c1ccaa
kernel: don't use typedef for enums or non-opaque structs
2023-04-13 11:40:52 +01:00
b1b16ba19c
kernel: reduce log message spam during boot
2023-04-09 17:14:19 +01:00
da415c7f6d
kernel: implement panic()
2023-04-09 16:35:15 +01:00
9b75ca8b8c
kernel: enumerate internal kexts during boot
2023-04-08 09:27:21 +01:00
e0e6f4a9ae
acpi: calibrate local APIC timer on BSP
2023-03-28 21:38:47 +01:00
9828f35d36
x86_64: fix optimised var read in pit_wait()
2023-03-28 21:37:24 +01:00
e1634de1b4
kernel: C++ read_once() and write_once() functions
2023-03-25 20:37:37 +00:00
864362ba82
acpi: add APIC irq ack and legacy vector remapping
2023-03-24 14:38:53 +00:00
2bfb6bcd78
kernel: add c++ support
2023-03-20 20:41:39 +00:00
a4d850cc03
x86_64: more local and i/o apic configuration
2023-03-20 20:21:44 +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