Commit Graph

88 Commits

Author SHA1 Message Date
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
e1e897c953 kernel: add per-cpu data section to kernel image 2023-03-17 20:07:19 +00:00
22743edeb7 pmap: add get_kernel_pmap() 2023-03-09 19:50:22 +00:00
1a413189ab kernel: move object_bootstrap() call to kernel_init() 2023-03-06 11:08:02 +00:00
eecc4c5c1a user: replace x86_64 definitions with stubs 2023-03-06 11:06:59 +00:00
d41ea0cd52 kernel: implement initcalls and a testing system 2023-02-26 10:05:39 +00:00
eed73e2414 build: add a "user" arch to allow the kernel to run as a program on the host machine 2023-02-25 17:58:23 +00:00
ef10ed5cd2 kernel: add initial object manager definitions 2023-02-17 19:36:14 +00:00
81ca98c952 x86_64: acpi: add minimal SMP core startup 2023-02-09 21:39:20 +00:00
d960909d1b x86_64: pmap: enable NX protection during bootstrap 2023-02-09 21:38:50 +00:00
ddb00acd31 x86_64: add a basic ACPI driver 2023-02-09 19:09:07 +00:00
a206b640e9 build: write VM serial output to log file 2023-02-09 19:08:24 +00:00
b0b557d919 x86_64: add temporary serial driver for printk 2023-02-08 21:28:20 +00:00
56578dda38 build: x86_64: write printk output to file via qemu serial port 2023-02-08 21:27:47 +00:00
cb6b400fae x86_64: build: add rule to debug using ncurses 2023-02-08 20:24:49 +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
ad63f0b251 x86_64: pmap: map all of physical memory starting at VM_PAGEMAP_BASE 2023-02-07 15:38:18 +00:00
e939aae775 x86_64: pmap: fix typos 2023-02-07 12:10:12 +00:00