bjorn3
a7165f822f
Switch from the memoffset crate to the offset_of feature
...
The memoffset crate requires const_refs_to_cell to work in const
contexts. This feature has some known issues around it's semantics. The
offset_of feature however is currently on track for stabilization.
2023-12-12 20:21:31 +00:00
bjorn3
6b1c154847
Use kernel_executable_offsets on AArch64 and x86
2023-12-12 15:01:29 +00:00
bjorn3
017702d3d2
Remove a lot of dead code
2023-12-12 15:01:29 +00:00
Jeremy Soller
4e3103a48a
x86: fix enter/exit gs and usercopy asm
2023-12-11 15:25:54 -07:00
Ivan Tan
1f1a57e1f7
support userspace program ioremapping device memory
2023-12-11 16:07:53 +00:00
Ivan Tan
9b6197d686
aarch64: code clean up
2023-12-11 16:07:53 +00:00
Ivan Tan
a8329956ca
support raspi3b+ serial && uart interrupt
2023-12-11 16:07:53 +00:00
Ivan Tan
44b14f994a
fix qemu-arm64 run error
2023-12-11 16:07:53 +00:00
Ivan Tan
1c1c541f0e
bringup raspi3b+, add device memory, disable uart init
2023-12-11 16:07:53 +00:00
Ivan Tan
bfbf435546
draft: aarch64: add irq_bcm2835. Need refactoring
2023-12-11 16:07:53 +00:00
Ivan Tan
9a5b9798ca
remove qemu-aarch64-virt hard code
2023-12-11 16:07:53 +00:00
Ivan Tan
ed68c98b42
aarch64: add irq-bcm2836 for raspi3b+ && refactor irq module
2023-12-11 16:07:53 +00:00
Ivan Tan
b65a7e9103
move gic into irqchip module
2023-12-11 16:07:53 +00:00
Ivan Tan
01d0e9a4b5
aarch64: add irqchip module to initialize all irq chip.
2023-12-11 16:07:53 +00:00
4lDO2
6f6f69c728
Fix test instruction reg length in paranoid swapgs.
2023-10-08 11:21:23 +02:00
Enver Balalic
750e566a27
Get aarch64 to compile
...
Fixes enough errors to get the kernel to compile
2023-10-01 23:55:24 +02:00
Jeremy Soller
e794f2fe9b
Fix panic when there is no xsave support
2023-09-18 15:01:39 -06:00
Ivan Tan
eb0d48ac81
aarch64: add dtb scheme
2023-09-18 20:45:23 +00:00
Ivan Tan
a76cbc9f31
aarch64: trap msr, mrs or system instruction
2023-09-18 20:45:23 +00:00
4lDO2
5eace9997a
Compile successfully on i686 as well.
2023-09-16 10:48:25 +02:00
4lDO2
0b9c5bbf49
Pass both original and padded length in altrelocs.
2023-09-16 10:33:09 +02:00
4lDO2
ed3d2d7832
Allow disabling overwrite-based optimizations.
2023-09-14 16:44:12 +02:00
4lDO2
ce0d474cb9
Fail if a feature is force-enabled but unsupported.
2023-09-14 16:28:14 +02:00
4lDO2
dfc372d241
Replace with rdgsbase dynamically in paranoid ISRs.
2023-09-14 14:43:46 +02:00
4lDO2
d90aeef62e
Fix nop-filling code.
2023-09-14 14:34:04 +02:00
4lDO2
dde8f78903
Support XSAVE, XSAVEOPT, and AVX2.
2023-09-14 10:54:30 +02:00
4lDO2
38e669c807
Dynamic fsgsbase support, enable by default.
2023-09-14 09:25:30 +02:00
4lDO2
f581c71c7c
Allow code-overwriting optimizations, use for smap.
2023-09-14 08:38:49 +02:00
4lDO2
e005619b78
Add alternative! macro.
2023-09-12 21:43:37 +02:00
4lDO2
f028b77412
Use config.toml instead of x86_* Cargo feature.
2023-09-12 21:19:06 +02:00
4lDO2
9fd2488d64
Use a compact push+jump table for IRQs.
2023-09-10 21:42:02 +02:00
Jeremy Soller
4cd76ea9e3
arch/x86: sync LogicalCpuId changes
2023-09-09 12:31:04 -06:00
4lDO2
eeb0d8c1e6
Unify Interrupt{,Error}Stack.
2023-09-06 22:45:29 +02:00
4lDO2
3b725b2c27
Add logical CPU ID newtype, switch to u32.
2023-09-04 21:27:48 +02:00
4lDO2
45e1eb7ba4
Set IA32_TSC_AUX if present.
2023-09-04 21:07:30 +02:00
4lDO2
303c96494c
Improve sysretq checks.
2023-09-03 15:50:28 +02:00
Jeremy Soller
da6e9fd8d1
Merge branch 'ivan/raspi3b' into 'master'
...
aarch64: init serial port by parsing dtb file
See merge request redox-os/kernel!241
2023-08-12 13:40:24 +00:00
Ivan Tan
ca6699a11e
aarch64: init serial port by parsing dtb file
2023-08-12 12:45:50 +08:00
4lDO2
cbd02a8489
Set relocation-model=static
2023-08-12 00:57:45 +00:00
4lDO2
ca92eda5e6
Remove TLS on aarch64 too.
2023-08-08 12:01:42 +02:00
4lDO2
ed2febb289
Disable thread-local storage entirely.
2023-08-08 12:01:42 +02:00
4lDO2
a78d6e42f8
Stop using #[thread_local] on x86_*.
2023-08-08 12:01:42 +02:00
4lDO2
bdd5c954dc
Move PIT_TICKS to context::switch.
2023-08-08 12:01:42 +02:00
4lDO2
2070fa44b7
Fix warnings.
2023-08-02 13:07:49 +02:00
4lDO2
e28fef09e3
Improve aarch64 debugger.
2023-07-28 13:23:44 +02:00
4lDO2
d16569110e
Don't mess up x18 in aarch64 exc handler.
2023-07-28 12:56:55 +02:00
4lDO2
ce35deed4b
Support aarch64 page consistency checking.
2023-07-28 12:38:25 +02:00
4lDO2
ec9c24f841
WIP: aarch64
2023-07-27 19:05:33 +02:00
4lDO2
8b7fc8a468
Compile and mostly run properly on i686.
2023-07-27 16:45:36 +02:00
4lDO2
25d26b3b93
Arch-independent x86-modeled page fault handler.
2023-07-27 15:56:45 +02:00