zephyr/arch/arc/core
Wayne Ren f81dee0b2b arch: arc: add user space support for arc
* add the implementation of syscall
  * based on 'trap_s' intruction, id = 3
* add the privilege stack
  * the privilege stack is allocted with thread stack
  * for the kernel thread, the privilege stack is also a
    part of thread stack, the start of stack can be configured
    as stack guard
  * for the user thread, no stack guard, when the user stack is
    overflow, it will fall into kernel memory area which requires
    kernel privilege, privilege violation will be raised
* modify the linker template and add MPU_ADDR_ALIGN
* add user space corresponding codes in mpu
* the user sp aux reg will be part of thread context
* When user thread is interruptted for the 1st time, the context is
  saved in user stack (U bit of IRQ_CTLR is set to 1). When nest
  interrupt comes, the context is saved in thread's privilege stack
* the arc_mpu_regions.c is moved to board folder, as it's board
  specific
* the above codes have been tested through tests/kernel/mem_protect/
  userspace for MPU version 2

Signed-off-by: Wayne Ren <wei.ren@synopsys.com>
2018-02-16 12:20:16 +01:00
..
mpu arch: arc: add user space support for arc 2018-02-16 12:20:16 +01:00
offsets arch: arc: add user space support for arc 2018-02-16 12:20:16 +01:00
atomic.S linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
cache.c kernel: include: rename nano_internal.h to kernel_internal.h 2018-01-31 10:07:21 -06:00
CMakeLists.txt arch: arc: add user space support for arc 2018-02-16 12:20:16 +01:00
cpu_idle.S linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
fast_irq.S arch: arc: add user space support for arc 2018-02-16 12:20:16 +01:00
fatal.c arch: arc: add user space support for arc 2018-02-16 12:20:16 +01:00
fault.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
fault_s.S arch: arc: add user space support for arc 2018-02-16 12:20:16 +01:00
irq_manage.c cleanup: Move #include directives 2017-09-11 12:41:07 -04:00
irq_offload.c license: Replace Apache boilerplate with SPDX tag 2017-01-19 03:50:58 +00:00
isr_wrapper.S arch: arc: add user space support for arc 2018-02-16 12:20:16 +01:00
prep_c.c kernel: include: rename nano_internal.h to kernel_internal.h 2018-01-31 10:07:21 -06:00
regular_irq.S arch: arc: add user space support for arc 2018-02-16 12:20:16 +01:00
reset.S cleanup: remove commented #include 2017-09-11 12:41:07 -04:00
swap.S arch: arc: add user space support for arc 2018-02-16 12:20:16 +01:00
sys_fatal_error_handler.c linker: move all linker headers to include/linker 2017-06-18 09:24:04 -05:00
thread.c arch: arc: add user space support for arc 2018-02-16 12:20:16 +01:00
thread_entry_wrapper.S arch: arc: add user space support for arc 2018-02-16 12:20:16 +01:00
timestamp.c kernel: tickless: Add tickless kernel support 2017-04-27 13:46:28 +00:00
userspace.S arch: arc: add user space support for arc 2018-02-16 12:20:16 +01:00
vector_table.c arch: convert to using newly introduced integer sized types 2017-04-21 12:08:12 +00:00