Commit Graph

373 Commits

Author SHA1 Message Date
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
4lDO2 7a3b453fbb Declare __usercopy_{start,end} as functions. 2023-07-27 15:34:33 +02:00
4lDO2 4d2cd6ce0f Remove redundant log msg. 2023-07-27 15:25:51 +02:00
4lDO2 954a8d00fe Make page fault handler recursive.
This is probably a bad idea, but it works for now, and can only cause
problems, if grants that borrow grants that borrow grants etc., are
used.
2023-07-25 10:52:21 +02:00
4lDO2 da6f6a316c Return only one grant, External, for Grant::borrow. 2023-07-25 10:52:21 +02:00
4lDO2 7aca53753e Call init_mm from correct function. 2023-07-25 10:52:19 +02:00
4lDO2 760fc2ba5a WIP: Global page info structs. 2023-07-25 10:52:19 +02:00
4lDO2 11fdb3bb46 Copy on writes to CoW pages. 2023-07-25 10:52:19 +02:00
4lDO2 8cfbc39b9f Get further in userspace. 2023-07-25 10:52:18 +02:00
4lDO2 e7d94ddff5 WIP: Lazy zeroed mapping and page fault handler. 2023-07-25 10:52:18 +02:00
4lDO2 8dfa73db35 Post-refactor fixes. 2023-07-25 10:52:18 +02:00
4lDO2 34b4512dbd Refactor Grants.
Page alignment is now verified at compile time, for example.
2023-07-25 10:52:13 +02:00
bjorn3 e73e42be66 Replace intrinsics::abort() call in switch_finish_hook with safer abort mechanism
abort will still run the illegal instruction interrupt handler which may
not be safe.
2023-07-10 17:03:36 +02:00
bjorn3 174e38a851 Remove all uses of concat_idents!() 2023-07-10 17:03:34 +02:00
bjorn3 0d01f7be57 Use core::ptr wrappers instead of the unstable volatile_* intrinsics 2023-07-10 17:02:01 +02:00
4lDO2 3ded84c945 Simplify x86_64 percpu and GSBASE calculation 2023-07-10 14:13:12 +00:00
Jeremy Soller 5c99d73bbe Merge branch 'no_static_mut_thread_local' into 'master'
Avoid static mut thread locals

See merge request redox-os/kernel!228
2023-07-10 14:03:41 +00:00
4lDO2 56f88e80c2 Usercopy migration 2023-07-06 13:03:21 +00:00
bjorn3 56b16ce897 Avoid static mut thread locals
Instead use UnsafeCell inside the thread locals.
2023-07-05 14:50:17 +02:00
bjorn3 13733fb943 Move IDTR thread local to a stack variable 2023-07-04 12:17:52 +02:00
4lDO2 416269eeaf Always clear DF when entering the kernel. 2023-06-18 14:47:00 +02:00
uuuvn a5d4ccba57 More aarch64 stuff 2023-06-13 10:15:47 +00:00
Jeremy Soller 2849510892 Copy HPET divide by zero workaround to x86 arch 2023-06-12 09:19:34 -06:00