Commit Graph

46 Commits

Author SHA1 Message Date
Zhang Junyang eb69aa4fb9 Unify address and size APIs for memory objects 2025-09-02 17:53:55 +08:00
Chen Chengjun fc5a12356a Fix LOONGARCH clippy warnings 2025-08-19 19:20:54 +08:00
Chen Chengjun 9507475102 Fix RISCV clippy warnings 2025-08-19 19:20:54 +08:00
jiangjianfeng 2e09957ef9 Fix documentation check errors 2025-07-01 17:07:28 +08:00
Ruihan Li a18e72b495 Implement `apic::get_or_init` using `Once` 2025-05-21 21:00:02 +08:00
Ruihan Li 0a27a1f37b Don't treat APIC IDs as CPU IDs 2025-05-21 09:27:25 +08:00
Ruihan Li d7cd0244ff Use Rust types to store `PerApRawInfo` 2025-05-21 09:27:25 +08:00
Ruihan Li 8c30b4b942 Rewrite `trap/gdt.rs` 2025-04-22 20:52:15 +08:00
Ruihan Li e06509e380 Make some `unsafe` blocks shorter 2025-04-22 20:52:15 +08:00
Ruihan Li 396ead6fbd Fix safety reasoning about `get_on_cpu` 2025-04-03 10:50:22 +08:00
Ruihan Li 5651b93af0 Turn `GS.base` validity into a global invariant 2025-04-03 10:50:22 +08:00
Ruihan Li b52d841ac1 Revise safety comments for booting APs 2025-04-03 10:50:22 +08:00
Zhang Junyang 09a8ab8800 Respect local X2Apic MADT entry 2025-03-31 22:11:04 +08:00
Ruihan Li 58980d4c55 Revise code under `arch/x86/boot` 2025-03-27 09:13:41 +08:00
Ruihan Li ea724f4529 Remove the time handler to flush TLBs 2025-03-24 15:30:22 +08:00
Zhang Junyang 4f0acddfd4 Strict TLB coherence 2025-03-21 21:19:50 +08:00
Hsy-Intel 49e6cd2712 Use macro to handle TDX-related code 2025-03-20 17:25:22 +08:00
Hsy-Intel 148695194f Support TDX SMP 2025-03-20 17:25:22 +08:00
Zhang Junyang 6ed38f5cb0 Mark all physical memory metadata with memory region info 2025-03-14 08:37:37 +08:00
Zhang Junyang 8a6c8c44e9 Refactor `MemoryRegionArray::into_non_overlapping` 2025-03-14 08:37:37 +08:00
Ruihan Li 0dca168717 Use `#[expect(lint)]`, not `#[allow(lint)]` 2025-02-08 15:10:04 +08:00
Zhang Junyang 7676f8ec95 Reorder heap initialization 2025-01-02 10:41:51 +08:00
Zhang Junyang 5ea366bced Move kcmdline parsing out of OSTD 2025-01-02 10:41:51 +08:00
Zhang Junyang 397ce9652f Refactor boot modules to make heap allocation explicit 2025-01-02 10:41:51 +08:00
Zhang Junyang 51349a3da1 Heapless memory region initialization 2025-01-02 10:41:51 +08:00
Zhang Junyang cdac59beda Implement a new set of physical page APIs 2024-12-27 12:12:51 +08:00
Zhang Junyang c9a37ccab1 Renaming concepts around pages and frames
This commit renames `Frame` -> `UntypedFrame` and `Page` -> `Frame`.
So do other concepts in the following list:
 - `Segment` -> `UntypedSegment`,
 - `ContPages` -> `Segment`,
 - `DynPage` -> `AnyFrame`,
 - `PageMeta` -> `FrameMeta`,
 - `FrameMeta` -> `UntypedMeta`.

This commit also re-organized the source in the `mm/page` and `mm/frame`
module to accommodate the changes.
2024-12-27 12:12:51 +08:00
Zhang Junyang 60365a818a Use pointer metadata for page metadata 2024-12-16 13:22:05 +08:00
Ruihan Li 5233827160 Don't preempt without good reason 2024-11-06 21:53:55 +08:00
Zhang Junyang 131a25c15c Provide the way to override the panic handler. 2024-10-20 13:24:58 +08:00
Qingsong Chen c2f7a10b84 Implement cpu_local with GS and ensure GS points to TSS 2024-09-19 13:00:36 +08:00
Zhang Junyang 326ec09169 Initialize local APICs on every processors 2024-09-13 20:10:03 +08:00
Zhang Junyang 5feb8f5de8 Refactor the boot PT initialization for SMP 2024-08-27 17:22:47 +08:00
Zhang Junyang aeba7bec52 Fix SoftIRQ initialization requirements for SMP 2024-08-27 17:22:47 +08:00
Zhang Junyang f7a9510be0 Refactor the `this_cpu` API with `PinCurrentCpu` 2024-08-25 20:14:06 +08:00
Zhang Junyang be3492d7f0 Extract the OSTD test runner as a kernel 2024-08-23 23:37:50 +08:00
Yuke Peng 49692c2068 Fix several warnings when ktest is enabled 2024-08-16 10:43:55 +08:00
jellllly420 f5464e82c0 Implement new scheduling API in OSTD 2024-08-15 23:06:18 +08:00
Zhang Junyang 491e4325fa Enable IRQs before leaving the OSTD boot routine 2024-08-13 20:34:26 +08:00
Zhang Junyang fe68b4b510 Generalize single instruction CPU local operations by `cpu_local_cell` 2024-08-08 19:21:03 +08:00
Zhang Junyang 393c9019c0 Boot application processors into spin loops
Co-authored-by: Chuandong Li <lichuand@pku.edu.cn>
2024-07-30 10:24:09 +08:00
Jianfeng Jiang f86583dbce Make essential changes for publishing OSTD 2024-07-18 18:18:05 +08:00
Zhang Junyang 9e5f3123e1 Log messages to the serial atomically and rename `arch::serial`
Co-authored-by: Chuandong Li <lichuand@pku.edu.cn>
2024-07-09 21:56:03 +08:00
Yuke Peng cf56bce57c Pass kernel command line option to logger 2024-07-04 10:56:55 +08:00
Jianfeng Jiang fe7251c413 Rename aster_main as ostd::main 2024-06-27 15:45:49 +08:00
Jianfeng Jiang 59350a8578 Rename aster-frame to ostd 2024-06-27 15:45:49 +08:00