Robin Randhawa
4dbfaf3ec1
Nit: Add missing close brace in code comment
2021-01-27 17:19:37 +00:00
Robin Randhawa
1462fe8638
aarch64: context: Align with x86_64 code
2021-01-27 17:17:59 +00:00
Robin Randhawa
3afa0f0895
aarch64: Basic Floating-point/SIMD support
2021-01-27 17:17:11 +00:00
Robin Randhawa
00723c4ac2
aarch64: Make IRQs use the exception macros
2021-01-26 19:37:23 +00:00
Jeremy Soller
9621c64991
Update syscall
2021-01-26 11:46:09 -07:00
Jeremy Soller
81c33a3f6a
Merge branch 'aarch64-base' into 'aarch64-rebase'
...
Misc exception handling fixups
See merge request redox-os/kernel!163
2021-01-26 18:41:53 +00:00
Robin Randhawa
28dfc0f46b
aarch64: Basic exception handlers
2021-01-26 18:18:19 +00:00
Robin Randhawa
4a215c7c2c
aarch64: exception management and clone fixups
2021-01-26 18:17:09 +00:00
Jeremy Soller
fa62b48285
Merge branch 'fixes-for-grant-maps-and-others' into 'aarch64-rebase'
...
Fixes for grant maps and others
See merge request redox-os/kernel!162
2021-01-22 15:15:08 +00:00
Robin Randhawa
78d1cd1798
syscall: process: empty: Use user-space specific page table
2021-01-21 11:53:35 +00:00
Robin Randhawa
6cacbb47f6
scheme: user: Use user-space specific pagt table
2021-01-21 11:53:07 +00:00
Robin Randhawa
591775874b
ptrace: with_context_memory: use user-space specific page table
2021-01-21 11:50:56 +00:00
Robin Randhawa
65448c2d48
aarch64: context: memory: Grant::map_inactive: Bugfix
...
When mapping one (from) virtual address range to another (to) virtual
address range, be mindful of which mapper type to use for each range.
Before this, the same mapper type was used for both ranges. This meant
that if from and to were different (as in not both kernel virtual
addresses or user virtual addresses) then it would appear that either
from or to was not mapped previously and the kernel would panic.
2021-01-21 11:41:26 +00:00
Robin Randhawa
75870a655f
aarch64: context: Add separate kspace and uspace page table getters
2021-01-21 11:40:02 +00:00
Robin Randhawa
3da345867a
aarch64: paging: Derive Debug, PartialEq for VirtualAddressType
...
This makes asserts on VirtualAddressType equality possible.
2021-01-21 11:38:46 +00:00
Robin Randhawa
452196b81f
aarch64: consts: Use the same USER_TLS_SIZE as x86_64
2021-01-21 11:37:32 +00:00
Jeremy Soller
d76298b3f8
Merge branch 'wip-clone-and-misc-fixes' into 'aarch64-rebase'
...
Wip clone and misc fixes
See merge request redox-os/kernel!161
2021-01-18 23:00:00 +00:00
Robin Randhawa
f1db56f026
aarch64: clone: Further uspace and kspace mods
2021-01-18 21:55:42 +00:00
Robin Randhawa
9429032cec
aarch64: clone: Further clone_ret + tpidr_el0 fixes
2021-01-18 21:53:04 +00:00
Robin Randhawa
fd0336692d
aarch64: clone: Introduce kernel and user space specific mods
...
At present these are done 'wholesale' without any regard for x86_64.
That needs to change eventually.
2021-01-18 21:50:19 +00:00
Robin Randhawa
c188a60871
aarch64: Fix clone_ret
...
FIXME: Explain the magic numbers here later.
2021-01-18 21:47:28 +00:00
Robin Randhawa
95bd8f2013
clone: Make stack manipulation arch specific
2021-01-17 10:26:49 +00:00
Robin Randhawa
ae0aebd036
aarch64: clone: Return from clone syscall
...
No CLONE_STACK functionality yet.
2021-01-17 10:12:42 +00:00
Robin Randhawa
67ec6c23e7
aarch64: Move tpidr_el0 setup from spawn to switch
2021-01-17 10:09:03 +00:00
Robin Randhawa
67d72532a9
aarch64: usermode: Remove tpidr_el0 manipulation
...
Was using the incorrect USER_TLS_OFFSET instead of USER_TCB_OFFSET. In
any case, this is better done in process::clone.
2021-01-17 10:06:04 +00:00
Robin Randhawa
3585f620b0
aarch64: clone: Fix incorrect stack offset in clone_ret
2021-01-17 10:03:50 +00:00
Robin Randhawa
208fb681f4
aarch64: vectors: Manage unhandled exceptions
...
So we can more clearly see when things go wrong.
2021-01-17 10:01:34 +00:00
Jeremy Soller
17fd135017
Merge branch 'pagetabletype-and-misc-fixes' into 'aarch64-rebase'
...
Pagetabletype and misc fixes
See merge request redox-os/kernel!158
2021-01-15 19:50:13 +00:00
Jeremy Soller
e124fa171b
Merge branch 'misc-fixes' into 'aarch64-rebase'
...
Misc fixes
See merge request redox-os/kernel!160
2021-01-15 19:43:23 +00:00
Robin Randhawa
5bc9dea242
aarch64: context::switch: update the CONTEXT_SWITCH_LOCK
2021-01-15 19:03:42 +00:00
Robin Randhawa
6677cfbf1e
aarch64: Make interrupt::pause use nop so we can move ahead before interrupts are enabled
2021-01-15 19:02:43 +00:00
Robin Randhawa
825bc4a02d
aarch64: spawn: split out arch specific mods
2021-01-15 09:12:30 -07:00
Robin Randhawa
14d79927af
aarch64: Add a set_tcb method to setup tpidr_el0
2021-01-15 09:12:30 -07:00
Robin Randhawa
ae3a55f5d1
Introduce a PageTableType enum to help distinguish User and Kernel Tables
2021-01-15 09:12:30 -07:00
Robin Randhawa
76129ddf75
aarch64: Mirror PRESENT and VALID bits in Page and Table descriptors
2021-01-15 15:54:25 +00:00
Robin Randhawa
c5e077546a
aarch64: spawn: split out arch specific mods
2021-01-15 15:51:47 +00:00
Robin Randhawa
e0a7471cf8
aarch64: Add a set_tcb method to setup tpidr_el0
2021-01-15 15:50:00 +00:00
Robin Randhawa
9c3f6e3660
Introduce a PageTableType enum to help distinguish User and Kernel Tables
2021-01-15 15:49:04 +00:00
Jeremy Soller
bdea7f553a
Remove PRESENT flag from aarch64 descriptors
2021-01-15 06:57:02 -07:00
Jeremy Soller
5f8b004476
Fix typo in InterruptStack parameter
2021-01-15 06:56:36 -07:00
Robin Randhawa
252ec24905
aarch64: Use target-feature for NEON insn suppression and tpidr_el1 use
2021-01-15 06:09:42 -07:00
Robin Randhawa
aa3839605f
aarch64: Remove code-model from the JSON spec
...
We use a target-feature for this now.
2021-01-15 06:09:42 -07:00
Robin Randhawa
ea21fba3aa
build.rs: aarch64: Specify target for cc::Build
...
Oddly, not specifying this or using aarch64-unknown-none (which would be
the default that cc gets from the TARGET environment variable) both
fail to invoke the appropriate compiler to build the asm code.
Using aarch64-unknown-redox works but shouldn't really be needed. This
is perhaps because of some odd arrangement of KTARGET, TARGET, the
installed prefix toolchain and the kernel target JSON spec.
The early_init asm code shall be replaced by a pure Rust bootloader
eventually so let's move with this for the moment.
2021-01-15 06:09:42 -07:00
Robin Randhawa
02c37d3fae
WIP: aarch64 rebase
2021-01-15 05:54:42 -07:00
Jeremy Soller
5e10feeaeb
Fix whitespace in linker file
2021-01-12 19:59:05 -07:00
Jeremy Soller
6c4c19a95c
Move consts to arch
2021-01-12 19:57:42 -07:00
Jeremy Soller
ed55b49093
Update aarch64 target to new Rust
2021-01-12 19:57:07 -07:00
Jeremy Soller
ea6b1e7f8b
Update redox_syscall to 0.2.4
2021-01-11 07:01:05 -07:00
Jeremy Soller
334584b3d5
Use rmm::PhysicalAddress and rmm::VirtualAddress directly
2021-01-09 21:16:11 -07:00
Jeremy Soller
ccddabadf7
Make x86 specific dependencies, x86 specific
2021-01-09 20:12:59 -07:00