vasilito
e896c0e08b
kernel: add real MSR scheme access
2026-07-08 00:29:43 +03:00
vasilito
ca67b1da37
0.3.0: converge kernel onto upstream master
...
- Rebase all Red Bear kernel changes onto upstream master (4d5d36d4 ).
- Update version to 0.5.12+rb0.3.0 and add Red Bear author attribution.
- Switch redox_syscall direct dependency to local fork path (../syscall).
- Bump rust-toolchain.toml to nightly-2026-05-24.
- Regenerate Cargo.lock for +rb0.3.0 suffixes and path deps.
2026-07-06 18:43:52 +03:00
R Aadarsh
cb88ed59a2
Parse ACPI tables for NUMA information without allocating from the heap
2026-07-03 20:19:46 +05:30
R Aadarsh
a03c545f3c
Fix build failure for ARM
2026-07-01 10:36:07 -06:00
R Aadarsh
a2a3df33c6
Split acpi::init to perform two stage initialisation
2026-07-01 10:36:07 -06:00
4lDO2
c27568e1fe
profiling: allow walking across syscall boundaries
2026-06-03 19:01:35 +02:00
bjorn3
91ab8301f2
Fix warnings after updating rustc
...
Couple of features got stabilized, cpuid was made safe and there is a
new lint for function item to integer casts.
2026-05-27 20:53:10 +02:00
aarch
e80379e6c6
Actually switch to Sv39
2026-04-18 18:49:21 +02:00
bjorn3
38f36d406b
Use cfg!() instead of #[cfg] for most profiling code
...
This makes it less likely that it breaks again in the future as most
code gets checked by the compiler even when profiling support is not
enabled.
2026-04-13 19:43:43 +02:00
Jacob Lorentzon
142871660e
profiling: infer number of CPUs dynamically
2026-04-13 06:44:27 -06:00
bjorn3
2405a7ebb3
Move kmain and kmain_ap to startup/mod.rs
2026-04-12 18:41:00 +02:00
bjorn3
572bb4ce1f
Avoid re-exporting arch specific modules in the crate root
2026-04-12 18:25:52 +02:00
Jacob Lorentzon
141c87650f
Fix profiling and add check to CI
2026-04-12 06:51:26 -06:00
bjorn3
654ee6ca3e
size_of and align_of are part of the prelude nowadays
2026-04-09 15:23:34 -06:00
bjorn3
89a29f4e56
Reduce usage of wildcard imports
2026-04-09 15:23:34 -06:00
bjorn3
b0b0ec2d71
Deduplicate definition of FLAG_SINGLESTEP between x86 and x86_64
2026-04-09 15:23:34 -06:00
Speedy_Lex
ee1260363c
Fix many clippy lints
2026-04-08 19:40:41 +01:00
bjorn3
d029ccfe20
Deduplicate a bunch of serial port initialization between arm64 and riscv
2026-04-04 16:36:30 +02:00
bjorn3
62f220b1b9
Use cfg! rather than #[cfg] for ACPI enabling
2026-04-04 13:49:07 +02:00
bjorn3
7aa7aa463f
Use map_device_memory where possible
2026-04-04 13:10:05 +02:00
bjorn3
dee230ffca
Use map_linearly in many places
2026-04-04 13:10:04 +02:00
bjorn3
1352fafd00
Remove unused InactiveFlusher
2026-04-03 22:15:00 +02:00
bjorn3
ab4abf63c9
Deduplicate Page and other paging related things between architectures
2026-04-03 22:15:00 +02:00
bjorn3
b805336cfc
Fix a bunch of warnings
2026-04-03 22:15:00 +02:00
bjorn3
3cbce1b9ac
Move BSP_READY and AP_READY to platform-independent code
2026-04-02 20:29:36 +02:00
bjorn3
49eb21ce0e
Use KERNEL_OFFSET from linker script
2026-04-02 20:29:36 +02:00
bjorn3
dc7e823f70
Deduplicate kernel page flags
2026-04-02 20:29:36 +02:00
bjorn3
980f1c6af8
Remove unused and deduplicate identical arch specific consts
2026-04-02 20:29:36 +02:00
bjorn3
10b1ae2ecc
Remove unused arch consts
2026-04-02 20:29:36 +02:00
bjorn3
2ce7621a80
Fix a bunch of warnings masked by #[allow(unused)]
2026-04-02 20:29:36 +02:00
bjorn3
c8879531ae
rmm: Add device_memory and uncachable flags to PageFlags
2026-03-30 20:34:45 +02:00
bjorn3
6b00f4ca25
Move MAIR_EL1 initialization to rmm
...
Rmm needs to know the exact MAIR_EL1 configuration to produce the
correct bits in the page table.
2026-03-30 19:26:41 +02:00
bjorn3
6e5c25b7a0
Move PAT initialization to rmm
...
Rmm needs to know the exact PAT configuration to produce the correct
bits in the page table.
2026-03-30 18:59:42 +02:00
bjorn3
c4b064ea44
Move arch specific EntryFlags into rmm
2026-03-30 18:49:15 +02:00
bjorn3
8b217edac0
Fix two unsafe block related warnings
2026-03-30 18:42:38 +02:00
bjorn3
2fc2d5897a
Fix a couple of unused import warnings
2026-03-30 18:38:25 +02:00
bjorn3
c51aa1ef86
rmm: Make a couple of methods safe
2026-03-29 14:16:53 +02:00
bjorn3
abf710b4a2
Move handling of kernel page table entry copying to RMM
...
This way it can ensure those page table entries never get unmapped,
ensuring they are kept in sync between all processes.
2026-03-29 14:16:53 +02:00
bjorn3
604e1729cb
Rustfmt
2026-03-29 14:16:53 +02:00
bjorn3
b5603422be
Check at compile time that KernelMapper is writable if necessary
2026-03-28 23:22:19 +01:00
Philipp Bartsch
5865ec0790
/scheme/sys/cpu: Add aarch64 feature detection
...
This only lists features from ID_AA64ISAR0_EL1 and ID_AA64ISAR1_EL1.
For other features one would have to evaluate more registers.
2026-03-26 22:15:03 +01:00
Philipp Bartsch
2d5e2b39f5
Drop extra debug print
2026-03-26 00:49:33 +01:00
Philipp Bartsch
a60cc25015
Update aarch64 implementers list
...
Two vendors were missing compared to ARM's official list.
https://developer.arm.com/documentation/ddi0601/2025-12/AArch64-Registers/MIDR-EL1--Main-ID-Register
2026-03-26 00:49:11 +01:00
Connor-GH
8f468ec106
syscall: remove comment about test vs bt x86 instructions
...
According to Agner Fog's documentation
(https://agner.org/optimize/instruction_tables.pdf ), the following information
is true:
These instructions have identical latency and throughput, except for Zen
5, which lists `test` as having reciprocal throughput of 0.25 cycles,
and `bt` having reciprocal throughput of 0.33 cycles. This rules out the
`bt` instruction for being the ideal instruction.
The other `test` instructions were removed as candidates because,
regardless of the size of the memory fetched at the address, at least 64
bytes will need to be fetched because it will be stored in the cache
line. The WORD and DWORD cases can be ruled out because we cannot assume
that `rsp + 16` or `rsp + 17` will not be on a 64-byte alignment
boundary, which would cause two cachelines to be essentially filled with
garbage we don't care about. The best case scenario is that we only need
to fill one cache line with garbage, which is what the BYTE version does
every time.
2026-03-12 09:41:29 -05:00
Wildan M
c4e86bfffd
Change time offset to RwLock
2026-03-10 05:58:26 +07:00
auronandace
14b8c2b0c1
enforce two lints and collapse some ifs
2026-03-03 14:51:32 +00:00
auronandace
f7b0f5ec37
eliminate an unwrap in gdt for x86_shared
2026-03-02 10:56:28 +00:00
Wildan M
3c2b1a11c5
Add ordered lock for time offset mutex
2026-02-25 11:42:17 +07:00
bjorn3
858b712df5
Use naked_asm!() instead of global_asm!() where possible
2026-02-09 22:28:38 +01:00
bjorn3
d51fe0c7e0
Avoid concat!() in inline asm
...
It is no longer necessary in modern rustc versions.
2026-02-09 22:12:20 +01:00