History log of /barrelfish-master/kernel/arch/armv7/syscall.c
Revision Date Author Comments
# 9bd8d1d5 03-Apr-2019 Reto Achermann <reto.achermann@inf.ethz.ch>

replacing umlaute and fixing address in headers Haldeneggsteig -> Universitaetsstrasse

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# d12d1287 20-Feb-2019 Lukas Humbel <lukas.humbel@inf.ethz.ch>

armv7: remove gic dist debug

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# 4bccd389 20-Feb-2019 Lukas Humbel <lukas.humbel@inf.ethz.ch>

Turn serial driver into module and fix userspace GIC

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# de574cef 13-Dec-2018 Lukas Humbel <lukas.humbel@inf.ethz.ch>

armv7: Move distributor driver to userspace

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# 9335571c 27-Nov-2018 Adam Turowski <adam.turowski@inf.ethz.ch>

systime: adding a relative timeout function

Signed-off-by: Adam Turowski <adam.turowski@inf.ethz.ch>


# ca8451e9 13-Nov-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel,libbarrelfish: Remove Frame identify and Vnode identify invocation handlers and commands

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 8ff0486c 13-Nov-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

Remove invoke_frame_identify, replaced with frame_identify().

This commit fully removes the Frame_Identify invocation and replaces the
calls with frame_identify().
Additionally, because the KCB is special, this commit introduces a new
invocation kcb_identify() which translates the lvaddr in the KCB
capability into the pysical address of the kernel control block.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# b917f1c1 13-Nov-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

libbarrelfish: endpoints: refactor to make EP management invocations unnecessary.

This commit implements endpoint_identify using cap_direct_identify and
endpoint_set_iftype using cap_mint.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 81781123 01-Nov-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel,monitor: implement reclaiming of previously dropped ram caps.

Until now, if the kernel couldn't return a freed region of physical
memory to the monitor, e.g. because the monitor was not ready yet, or
the monitor's receive slot is already occupied, it would drop the range
and print a diagnostic message.

With this change, the cpu driver has 4 slots per KCB in which it can
store a range that would be dropped. The monitor gets a new kernel cap
invocation which allows it to retrieve one of the stored slots, if any.
The monitor runs a deferred event loop which checks if there's a range
to retrieve every second, and forwards any retrieved ranges to the
memory server.

The retrieval is very similar to a capops delete step, but does not
happen inside the capops machinery because the need for an action are
not coupled to a capability operation.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 5ef61ece 23-Oct-2018 Simon Gerber <simon.gerber@inf.ethz.ch>

libbf: use cap_direct_identify for frame_identify and co and replace calls to debug_cap_identify where appropriate

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 6a267cf0 23-Jul-2018 Roni Häcki <roni.haecki@inf.ethz.ch>

ARMv7: syscall endpoint invoke fixed

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# 76a043ce 19-Jul-2018 Roni Häcki <roni.haecki@inf.ethz.ch>

kernel: adding invoke_endpoint syscalls to armv7 + armv8

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# 916b0881 13-Jun-2018 Roni Häcki <roni.haecki@inf.ethz.ch>

armv7: make armv7 compile again on VF branch

Signed-off-by: Roni Häcki <roni.haecki@inf.ethz.ch>


# 4213f5b8 15-Mar-2018 Reto Achermann <reto.achermann@inf.ethz.ch>

caps: adding endpoint cap type for UMP endpoints

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# 52f0a76b 11-Mar-2018 Reto Achermann <reto.achermann@inf.ethz.ch>

devidcaps: pass all arguemnts to the kernel to fill the cap

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# 7773be69 05-Mar-2018 Reto Achermann <reto.achermann@inf.ethz.ch>

caps: adding invocation handlers for the new captypes to the cpudriver

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# cea6f092 22-Dec-2017 Lukas Humbel <lukas.humbel@inf.ethz.ch>

Kaluga: Make unified irq src caps work on armv7

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# 2a364094 06-Mar-2017 Reto Achermann <reto.achermann@inf.ethz.ch>

ARM: unifying coreboot on ARMv7 and ARMv8

Coreboot:
* use of hwid_t instead of coreid_t to ensure enough size
* adding context id parameter to the start function

ARMv8:
* removing PSCI debug syscall and use ipi_cap instead
* implementaton of platform specific call functions

ARMv7:
* adapting call sites to deal with new argument
* adaption of platform boot function

Signed-off-by: Reto Achermann <reto.achermann@inf.ethz.ch>


# 05f3eb5a 27-Nov-2016 Adam Turowski <adam.turowski@inf.ethz.ch>

systime: introducing system time based on time stamp counter/global timer, removing kernel_now

Signed-off-by: Adam Turowski <adam.turowski@inf.ethz.ch>


# fe9f0035 09-Nov-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

armv7: handle VNodeCmd_Identify

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 80f4ecf3 01-Nov-2016 Lukas Humbel <lukas.humbel@inf.ethz.ch>

Make debug_my_cspace work with new CSpace layout

Signed-off-by: Lukas Humbel <lukas.humbel@inf.ethz.ch>


# f8c54514 04-Oct-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

kernel: arm: fix modify_flags invocation

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# a35f636b 30-Aug-2016 David Cock <david.cock@inf.ethz.ch>

ARMv7: Manual coreboot works on Pandaboard

Module that fact the UMP isn't working properly with ARM caches.

Signed-off-by: David Cock <david.cock@inf.ethz.ch>


# 37dea7fa 25-Aug-2016 David Cock <david.cock@inf.ethz.ch>

ARMv7: Clone CPU driver cmdline correctly.

Signed-off-by: David Cock <david.cock@inf.ethz.ch>


# 9a2f8bd8 15-Aug-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

armv7: kernel: monitor_delete_last: fix argument unmarshalling

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 856487bd 05-Aug-2016 David Cock <david.cock@inf.ethz.ch>

ARMv7: Find and pass the GOT base to the APP core.

Locating it in the source ELF still doesn't quite work.

Signed-off-by: David Cock <david.cock@inf.ethz.ch>


# 6520cfb3 05-Aug-2016 David Cock <david.cock@inf.ethz.ch>

ARMv7: Coreboot makes it into the APP CPU driver.

Signed-off-by: David Cock <david.cock@inf.ethz.ch>


# 784087f0 05-Aug-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T266: armv7: add kernel-side handlers for cnode resizing

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 89cde0ae 03-Aug-2016 David Cock <david.cock@inf.ethz.ch>

ARMv7: CPU driver relocations done.

Signed-off-by: David Cock <david.cock@inf.ethz.ch>


# 10957289 05-Aug-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T258: Delete GPT cspace functionality and rename new functions

This commit deletes all the old GPT cnode code, and renames the new two-level
functions to the "old" names (e.g. caps_lookup_slot() is now a two-level
cspace function).

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 382e1e77 02-Aug-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T276: armv7: Add new monitor invocation for retypeability check

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# be0db1e1 29-Jul-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T273: armv7: Fix monitor invocations for capability retype and creation

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# d3527170 27-Jul-2016 David Cock <david.cock@inf.ethz.ch>

ARMv7: Rewrote serial drivers on ARM.

They're now fairly well compartmentalised on both ARM and x86, and can start
automatically from Kaluga. There's also a 'kernel' serial driver, which uses
the syscall interface to read and write on the kernel console. This avoids
having user level and kernel code racing on access to the UART. Fish works
(minus line editing) on all Versatile Express platforms.

Signed-off-by: David Cock <david.cock@inf.ethz.ch>


# 68e840aa 25-Jul-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T273: armv7: monitor invocation handlers: rename bits to level for cspace level arguments

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 0d0a3446 25-Jul-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T273: fix monitor_retype and adjust arguments in direct retype

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 1d898d1a 25-Jul-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T272: armv7: implement two-level cspace layout

Closes T272.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# 29d13541 07-Jul-2016 David Cock <david.cock@inf.ethz.ch>

ARMv7: Moved MMU initialisation into C

Signed-off-by: David Cock <david.cock@inf.ethz.ch>


# eb4f236c 22-Jun-2016 Simon Gerber <simon.gerber@inf.ethz.ch>

T255: kernel cap invocation and monitor RPC to discover architecture and platform.

Closes T255.

Signed-off-by: Simon Gerber <simon.gerber@inf.ethz.ch>


# a3f2dad0 13-Jun-2016 David Cock <david.cock@inf.ethz.ch>

Rationalised the ARM Platform code.

We now have separate targets for the GEM5 VE and FVP VE, as the GEM5 version
actually simulates an A15, and has a few quirks. The FVP VE and Pandaboard
targets share most of their code. Thus we've got three ARMv7-A targets now,
and it should be easy to add more, as soon as we've got the simulators.

Signed-off-by: David Cock <david.cock@inf.ethz.ch>


# 198249b2 06-Jun-2016 Timothy Roscoe <troscoe@inf.ethz.ch>

Documentation, and cleaner dispatcher mode tracking code. Still bug with yield.

Signed-off-by: Timothy Roscoe <troscoe@inf.ethz.ch>


# 96d27a40 30-May-2016 Timothy Roscoe <troscoe@inf.ethz.ch>

Refactored ARMv7-A code.
Cleaner startup process.
Cleaner cross-platform portability (platform.h).
Removed ARMv5.
Removed ARMv7-m
Removed XScale
Changed kernel device paging interface and fixed bugs.

Signed-off-by: Timothy Roscoe <troscoe@inf.ethz.ch>


# a2e1cb25 21-Nov-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Fixed usage of kernel cap in armboot. Using IPICmd_Send_Start to call Spawn_core for now.


# de30396d 11-Nov-2014 Gerd Zellweger <mail@gerdzellweger.com>

Boot driver for ARM can now boot a pandaboard core.


# 08ceb9c3 10-Nov-2014 Gerd Zellweger <mail@gerdzellweger.com>

Make sure ARM kernels are working agian.


# a94aaba4 25-Feb-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

arm: added missing bits for ID cap creation.


# a68b7848 25-Feb-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Split CPU_ARM into CPU_ARM5 and CPU_ARM7


# 2826c5ea 21-May-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Fixed monitor arm code.


# 368ff2d3 20-May-2014 Kornilios Kourtis <kkourt@inf.ethz.ch>

armv7: use A9 timer functions only in pandaboard

These functions are only defined for pandaboard:
collect2: ld terminated with signal 11 [Segmentation fault]
./armv7/kernel/arch/armv7/syscall.o: In function `sys_syscall':
syscall.c:(.text+0x9ac): undefined reference to `gt_read_high'
syscall.c:(.text+0x9c0): undefined reference to `gt_read_low'

Guard them with an #if for now.


# 4e1deb45 28-Mar-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

temporarily disable argc check in invocation macro.


# dc51fb48 28-Mar-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

armv7: fixed stuff and added missing invocation handlers.


# c549a935 27-Mar-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

armv7: compiles.


# 872377b7 25-Feb-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

arm: added missing bits for ID cap creation.


# 4d675a00 25-Feb-2014 Simon Gerber <simon.gerber@inf.ethz.ch>

Split CPU_ARM into CPU_ARM5 and CPU_ARM7


# c8d0fa0b 04-Feb-2014 Sebastian Wicki <swicki@student.ethz.ch>

Added basic support for the Cortex A9 Global Timer

The Cortex A9 global timer is a 64-bit incrementing counter, which
is memory mapped in the private memory region. Thus, the code for
the timer is currently all in the CPU driver.

To read out the timer in userspace, two system calls are needed,
one for the lower and and one for the upper half of the counter.
The following helper function is provided to correctly read out
the timer value in two 32 bit reads as suggested in the ARM TRM:

errval_t sys_debug_hardware_global_timer_read(uint64_t *ret)


# 0fa35984 24-Sep-2013 Gerd Zellweger <mail@gerdzellweger.com>

Refactoring core boot-up logic in kernel.

Move architecture independent logic into single arch-independent
syscall for all platforms. Handle arch specific boot-up with
specialized function (usually defined in start_aps.c).


# b8d995cb 02-Oct-2013 Simon Gerber <simon.gerber@inf.ethz.ch>

Redesigned hw page table dumping to be an invocation on a dispatcher cap.

This has two benefits over the old design where dumping hw page tables was a
kernel cap invocation and took a dispatcher cap as an argument:
1) This is probably the most common use case, you don't have to go through
the monitor if you just want to dump your own hw page tables.
2) A domain which has the dispatcher cap of another domain (mostly because
it's going to spawn said domain) can dump the hw page tables of the
to-be-spawned domain without capability address contortions.


# a99b6f3f 04-Sep-2013 Claudio Föllmi <foellmic@student.ethz.ch>

timer interrupts enabled

fixed interrupt handler writing to trap area for non-trap interrupts
enabled timer interrupts at reasonable intervals (reasonable for -O2 and no caches)
added system call for restoring a context (just for armv7-m, replacing a x86-specific interrupt),
because the ONLY way to restore an IT block is by exiting handler mode (there is literally no other mechanism)
(will only be called if userspace tries to restore a context that was saved by the kernel, and comes from interrupting an IT block or a ldm/stm instruction)

You may want to use -O2 from now on (because we use interrupts, and thrashing is possible)
The compiler we use will probably complain up to 3 times ("unable to find a register to spill in class 'GENERAL_REGS'")
just retry the faulting compile instruction with -O1, and then restart make


# e1634dc8 29-Aug-2013 Claudio Föllmi <foellmic@student.ethz.ch>

basic armv7-m support

added new hake architecture "armv7-m"
added armv7-m port of kernel and libbarrelfish
fixed small arm_molly issues with parsing paths containing '-'

the port does not actually handle interrupts yet, but scheduling, spawning, and starting processes works
this update does not yet contain the armv7-a code to start the m3 core


# 273384cc 02-Jul-2013 Achermann Reto <retoachermann@student.ethz.ch>

Enable user-level interrupt forwarding on ARM.


# 640a3036 25-May-2013 Reto Achermann <acreto@student.ethz.ch>

IRQ handling with hardcoded IRQ id (ehci interrupt) in monitor.

Interrupt handling on usb_manager level i.e. the host controller interrupt handlers
are called.

--HG--
rename : include/usb/class/usb_hub_request.h => include/usb/class/usb_hub.h
rename : usr/drivers/usb/usb_manager/usb_hub.c => usr/drivers/usb/usb_manager/hub/usb_hub.c
rename : usr/drivers/usb/usb_manager/usb_hub.h => usr/drivers/usb/usb_manager/hub/usb_hub.h


# 413c1d5a 30-Jan-2013 Simon Gerber <simon.gerber@inf.ethz.ch>

armv7: added new modify_flags invocation.


# 01955e78 26-Nov-2012 Simon Gerber <simon.gerber@inf.ethz.ch>

armv7: fixed merge errors and implemented new memory interface for omap44xx.


# e9f16606 08-Nov-2012 Simon Gerber <simon.gerber@inf.ethz.ch>

armv5,armv7: Fix unmarshalling invoke_vbits in handle_invoke().

--HG--
extra : rebase_source : ee2de7b9445cf9deb273d914fb9c6aa4abc4b772


# 299ca4ce 20-Aug-2012 Simon Gerber <simon.gerber@inf.ethz.ch>

Renamed ARM to ARMv5.


# b7aebb7e 16-Aug-2012 Simon Gerber <simon.gerber@inf.ethz.ch>

Renamed arm_gem5 to armv7.

TODO:
* Figure out if the __GEM5__ define actually refers to gem5 or just to ARMv7.