bjorn3
23fd308745
Reduce verbosity of debug logs during booting
...
A bunch of things are now printed a bit more compactly or without
interleaving of logs on a single line. Also a bunch of not that useful
logs are no longer printed by default at all.
2025-03-15 20:52:06 +01:00
4lDO2
f044ffb03b
Remove stable #![feature] and most x86_64 static mut.
2025-02-21 14:16:58 +01:00
Jeremy Soller
4db9673e2a
Support SPCR and clean up device memory allocation
2024-10-31 10:53:58 -06:00
Jeremy Soller
df9db9291a
Fix AP CPU ID on newer Intel CPUs
2024-10-30 21:09:06 -06:00
Jeremy Soller
9b6d1549b5
Support GTDT for aarch64
2024-10-30 18:17:11 -06:00
Jeremy Soller
34a6a441f1
Initial aarch64 ACPI support
2024-10-30 16:16:24 -06:00
Jeremy Soller
4dd6a26742
Make it possible to compile acpi system on any arch
2024-10-30 11:43:21 -06:00
IncompententPirate
fc5d246b30
remove wrapper functions
2024-09-26 22:34:55 +00:00
Andrey Turkin
755694494b
Factor KernelMapper out of arch
...
Same implementation on all the platforms. Also remove mutable Deref as it allowed circumventing RO check
2024-09-25 21:51:39 +03:00
4lDO2
652cdc7ef2
Replace repr(packed) with repr(C, packed).
2024-09-08 20:56:50 +02:00
Andrey Turkin
d2ebc7ff05
Wholesale fix of warnings
...
Pretty straightforward changes. This commit tries to avoid making any non-trivial fixes.
2024-09-04 10:55:01 +03:00
4lDO2
d94baa2712
Run rustfmt.
2024-07-15 17:50:18 +02:00
4lDO2
f3532f4549
Fix static mut ref warnings.
2024-07-15 17:48:46 +02:00
4lDO2
5e7db80285
Fix a bunch of warnings.
2024-07-15 17:48:45 +02:00
4lDO2
9253e16240
Fix kernel stack sizes, other arches.
2024-03-25 16:29:07 +01:00
4lDO2
b5523df187
Only support power-of-two frame allocations.
2024-03-24 14:40:15 +01:00
bjorn3
04f689cee7
Accept a single RSDP from the bootloader
2024-03-15 11:43:27 +01:00
bjorn3
502016815d
Avoid unaligned access in the XsdtIter
...
The pointers in the XSDT table are only 4 byte aligned.
2024-03-15 10:53:45 +01:00
Jeremy Soller
6c6fc18f8e
Format
2024-02-16 21:40:42 -07:00
bjorn3
e5c93ae334
Fix some UB and debug assertions
...
The UB has been found by rustc's new UB checks with debug assertions
enabled.
2024-01-24 13:51:20 +01:00
Jeremy Soller
45f1c4e29e
Add rustfmt from relibc and apply it with cargo fmt
2024-01-17 13:52:01 -07:00
bjorn3
2d065083df
Use HashMap instead of BTreeMap where possible
...
This shrinks the kernel from 905840 bytes to 862408 bytes.
2023-12-13 19:55:20 +01:00
4lDO2
f4bdb5388e
Remove AtomicU64 requirement for starting APs.
2023-07-27 16:44:52 +02:00
bjorn3
437b70838f
Replace uses of atomic_* intrinsics with Atomic* types
2023-07-10 17:02:01 +02:00
bjorn3
0d01f7be57
Use core::ptr wrappers instead of the unstable volatile_* intrinsics
2023-07-10 17:02:01 +02:00
Jeremy Soller
cb58500b68
Update for new Rust
2023-02-11 14:50:55 -07:00
Jeremy Soller
ee6c9f4020
Fix compilation on i686
2022-11-11 13:23:07 -07:00
Jeremy Soller
8e0f54cb31
Clippy fixes
2022-11-11 13:19:14 -07:00
Jeremy Soller
515a03b870
Fix warnings
2022-11-11 12:51:07 -07:00
Jeremy Soller
6dbb85d4c9
Static mapping of some CPU devices outside of physmap
2022-08-26 11:08:13 -06:00
Jeremy Soller
5d55d4eb87
Fix warnings
2022-07-29 18:33:54 -06:00
Jeremy Soller
0c80643077
Make graphical_debug arch independent and fix lots of warnings
2022-07-29 15:56:44 -06:00
4lDO2
5bbfdcda6b
Add mmap-min-addr and support unmapping parent PTs.
2022-07-27 10:52:45 +02:00
4lDO2
b766501896
Fix deadlock while starting APs.
2022-07-27 10:52:29 +02:00
4lDO2
0aec4d3341
Partial: migrate ACPI to RMM.
2022-07-27 10:52:23 +02:00
4lDO2
23f49414bd
Fix phys offset, lock grants correctly.
2022-07-27 10:51:45 +02:00
4lDO2
f7f722f81c
Don't use identity mapping for ACPI.
...
This is so that any process can use pointers to ACPI tables, since they
now point to the universally-accessible KERNEL_OFFSET+physaddr virtual
addresses.
2022-07-27 10:51:44 +02:00
4lDO2
a771ca699a
Move all DMAR parsing to userspace.
...
We may also want to do this with the MADT and the HPET tables, and let
user drivers specify what the tables mean independent of ACPI. That is,
adding an interface for registering new CPUs, and specifying the main
timer IRQ.
2021-05-06 19:49:58 +02:00
4lDO2
e816d4801f
Remove the empty fadt module.
2021-05-06 19:49:58 +02:00
4lDO2
7ac5bdbae0
WIP: Implement userspace-driven shutdown.
2021-05-06 19:49:58 +02:00
4lDO2
bea6747643
Move all AML code to userspace.
...
Currently, there are some things that need to be set up by userspace
that the kernel previously did. These include telling firmware when the
I/O APIC is used, and most importantly, shutting down the system.
The former is not particularly important, but for the latter I think
that we could implement this using a "shutdown pipe". Essentially it
will be a file that triggers an event shutting down, which would be used
to notify to acpid that the kernel is requesting a shutdown.
2021-05-06 19:49:57 +02:00
Jeremy Soller
b9448274fc
Switch to using RMM PageFlags
2021-05-03 17:28:08 -06:00
Jeremy Soller
ff8cb8abe8
Enforce must_use
2021-05-03 15:02:32 -06:00
Jeremy Soller
dd0616cc8f
Use RMM for TLB flushing
2021-05-03 12:42:16 -06:00
Jeremy Soller
f90033e0e1
Use PHYS_OFFSET instead of KERNEL_OFFSET to refer to the physmap
2021-04-13 20:38:54 -06:00
Jeremy Soller
334584b3d5
Use rmm::PhysicalAddress and rmm::VirtualAddress directly
2021-01-09 21:16:11 -07:00
Wren Turkal
5301057324
Convert some println -> log::info!.
...
Signed-off-by: Wren Turkal <wt@penguintechs.org >
2020-08-08 21:18:18 -07:00
Jeremy Soller
c78b69969f
Include trampoline in kernel to fix multi_core on EFI
2020-07-15 21:46:15 -06:00
4lDO2
e7d00d4735
Fix various kernel warnings.
2020-06-11 12:58:03 +02:00
Jeremy Soller
abf971eaee
Only require alignment of 4 bytes for rsdp
2020-04-19 08:49:42 -06:00