Stefan Kalkowski
c70bc350e8
tz_vmm: make scenario reproducible by everyone
2013-11-28 08:22:25 +01:00
Stefan Kalkowski
23ce6dad50
hw_vea9x4: re-enable TrustZone support
2013-11-28 08:22:25 +01:00
Stefan Kalkowski
7bf73fb0c1
hw_imx53: use same link address with or without TZ
2013-11-28 08:22:25 +01:00
Martin Stein
2124b4b9c2
hw_panda: provide EHCI interrupt for USB driver
...
fix #981
2013-11-28 08:22:24 +01:00
Martin Stein
9bca6bfb0d
hw: provide Signal_context::submit
...
fix #980
2013-11-28 08:22:24 +01:00
Martin Stein
4697e0e07d
hw: make bootstrap save against multiple calls
...
In programs with dynamic linker, _main and thus also platform_main_bootstrap
are called twice. By now, platform_main_bootstrap tried to always access the
startup message in the UTCB of the main thread that gets overridden till the
second call.
fix #967
2013-11-26 14:32:07 +01:00
Martin Stein
5b90113d86
hw: no default values for kernel-call args
...
ref #967
2013-11-26 14:32:07 +01:00
Martin Stein
07aa56fffb
hw: re-add priority down-scaling
...
This is a follow-up commit for "hw: beautify scheduling-priority code".
ref #960
2013-11-25 09:50:27 +01:00
Norman Feske
1d5c11c7af
rpi: Allow the access to videocore memory as MMIO
2013-11-25 09:46:09 +01:00
Norman Feske
62019be6d3
rpi: Change link address to support larger images
2013-11-25 09:46:09 +01:00
Norman Feske
5b5ea76039
hw_rpi: Hand out IRQ for USB host controller
2013-11-25 09:46:08 +01:00
Stefan Kalkowski
ae5e5cefc1
hw: initialize sctrl register appropriately
...
Fixes #916
2013-11-25 09:46:08 +01:00
Stefan Kalkowski
6f136bef7a
hw: add TrustZone support for i.MX53 (ref #954 )
2013-11-25 09:46:08 +01:00
Stefan Kalkowski
238430a362
hw: save MMU registers for TrustZone VMM (ref #954 )
...
When saving/resuming translation table base registers, and data fault register
a VMM is able to translate the VM's virtual addresses, and to analyse aborts
it has generated.
2013-11-25 09:46:08 +01:00
Martin Stein
b694045bd9
hw: get rid of Kernel::current_thread_id
...
Every thread receives a startup message from its creator through the initial
state of its userland thread-context. The thread-startup code remembers the
kernel name of the new thread by reading this message before the userland
thread-context gets polluted. This way, Kernel::current_thread_id becomes
unnecessary.
fix #953
2013-11-25 09:46:08 +01:00
Martin Stein
b5e92653bf
hw: adjust expected serial start-message in run
...
ref #953
2013-11-25 09:46:08 +01:00
Martin Stein
fde150b052
hw: rename delete_thread in kill_thread
...
ref #953
2013-11-25 09:45:31 +01:00
Martin Stein
f054b70e33
hw: spelling fix in kernel/thread.cc
...
ref #953
2013-11-25 09:45:31 +01:00
Martin Stein
84e05e0653
hw: don't provide thread base via platform thread
...
ref #953
2013-11-25 09:45:31 +01:00
Martin Stein
99c649c42f
hw: simplify Kernel::new_thread
...
Don't set priority and label in platform thread and then communicate this
core object via Kernel::new_thread but communicate priority and label directly.
This way kernel doesn't need to know anymore what a platform thread is.
ref #953
2013-11-25 09:45:31 +01:00
Martin Stein
210216e5e1
hw: simplify Kernel::start_thread
...
Instead of writing initial thread context to the platform-thread members
and then communicating this core object to kernel, core calls
Kernel::access_thread_regs first to initialize thread context and then
Kernel::start_thread without a platform-thread pointer. This way
the frontend as well as the backend of Kernel::start_thread loose
complexity and it is a first step to remove platform thread from the
vocabulary of the kernel.
ref #953
2013-11-25 09:45:31 +01:00
Martin Stein
77f55232fd
hw: remove Kernel::get_thread
...
ref #953
2013-11-25 09:45:31 +01:00
Martin Stein
3b2590b65a
hw: identify core threads through stack pointer
...
ref #953
2013-11-25 09:45:30 +01:00
Martin Stein
87da21d967
hw: use platform-thread pointer as pager badge
...
ref #953
2013-11-25 09:45:30 +01:00
Martin Stein
e0419b2401
hw: clearer naming scheme in kernel API
...
Rename kernel syscall in kernel call and the kernel-API
files in kernel/interface* .
ref #953
2013-11-25 09:45:30 +01:00
Alexander Boettcher
a6af6c80ab
base: count caps replied by a rpc function
...
Issue #905
2013-11-18 11:01:45 +01:00
Martin Stein
e450602196
hw: missing initialization in signal handler
...
fix #951
2013-11-18 11:01:45 +01:00
Martin Stein
653e14b74f
hw: adjust SIGNAL SLAB sizes to new conditions
...
fix #950
2013-11-18 11:01:45 +01:00
Martin Stein
909ab8dcd0
hw: communicate page faults via signals
...
Enable routing of thread events to signal contexts via
Kernel::route_thread_event.
Replace Kernel::set_pager by Kernel::route_thread_event.
In base-hw a pager object is a signal context and a pager activation
is a signal receiver. If a thread wants to start communicating its page
faults via a pager object, the thread calls Kernel::route_thread_event with
its thread ID, event ID "FAULT", and the signal context ID of the pager object.
If a pager activation wants to start handling page faults of a pager object,
the pager activation assigns the corresponding signal context to its signal
receiver. If a pager activation wants to stop handling page faults of a pager
object, the pager activation dissolves the corresponding signal context from
its signal receiver. If a thread wants to start communicating its page faults
via a pager object, the thread calls Kernel::route_thread_event with its
thread ID, event ID "FAULT", and the invalid signal context ID.
Remove Kernel::resume_faulter.
Move all page fault related code from generic kernel sources to CPU
specific cpu_support.h and cpu_support.cc.
fix #935
2013-11-14 19:57:31 +01:00
Martin Stein
ba52529bd6
hw: beautify scheduling-priority code
...
ref #935
2013-11-14 19:57:31 +01:00
Martin Stein
da49f86f5b
hw: provide placement via dedicated header
...
ref #935
2013-11-14 19:57:30 +01:00
Martin Stein
15a56bd682
hw: provide and use syscall access_thread_regs
...
ref #935
2013-11-14 19:57:30 +01:00
Martin Stein
20e91d0b60
base: individual implementations of pager-object
...
ref #935
2013-11-14 19:57:30 +01:00
Martin Stein
d24ed9783b
hw: get rid of kernel_support.cc
...
ref #935
2013-11-14 19:57:30 +01:00
Martin Stein
f4b46fe55c
hw: move kernel.cc to core/kernel/
...
ref #935
2013-11-14 19:57:30 +01:00
Martin Stein
9c1ae1f149
hw: no overloading of Signal_context constructor
...
ref #935
2013-11-14 19:57:30 +01:00
Martin Stein
47744e0019
hw: handle interrupts via signals
...
fix #874
2013-11-14 19:57:30 +01:00
Martin Stein
002a5b8978
hw: distinct pagefault and IPC message type
...
ref #874
2013-11-14 19:56:39 +01:00
Martin Stein
6f935af278
hw: communicate message type through UTCB
...
ref #874
2013-11-14 19:56:38 +01:00
Martin Stein
1e7eb4512e
hw: manage UTCB through use-case specific structs
...
ref #874
2013-11-14 19:56:38 +01:00
Martin Stein
96bbca6191
hw: send reply size & receive request size by UTCB
...
ref #874
2013-11-14 19:56:38 +01:00
Martin Stein
45d37e275d
hw: send request size through UTCB
...
ref #874
2013-11-14 19:56:38 +01:00
Martin Stein
6b9376bb01
hw: clean up interface of Kernel::Thread
...
ref #874
2013-11-14 19:56:38 +01:00
Martin Stein
ffb26eb501
hw: make syscall backend private to Kernel::Thread
...
ref #874
2013-11-14 19:56:38 +01:00
Martin Stein
5cd2f6ee0b
hw: make Kernel::mtc() global
...
ref #874
2013-11-14 19:56:38 +01:00
Martin Stein
0bb6ffa98d
hw: header and source file for Kernel::Vm
...
ref #874
2013-11-14 19:56:38 +01:00
Martin Stein
22d61c241e
hw: remove useless function handle_invalid_excpt
...
ref #874
2013-11-14 19:56:38 +01:00
Martin Stein
059aba0916
hw: remove unused function handle_invalid_syscall
...
ref #874
2013-11-14 19:56:38 +01:00
Stefan Kalkowski
265ec48c20
hw: implement priority-based scheduling ( fix #945 )
2013-11-12 15:01:54 +01:00
Stefan Kalkowski
c95f11418a
i.MX53: fit into u-boot's memory layout on tablet
...
Fixes #917
2013-10-22 08:00:14 +02:00
Martin Stein
c56927b76e
hw: differ ID allocators even with same size
...
Previously, if two ID allocators for different kernel objects had the
same size, the kernel-object framework managed both objects types
through the same allocator instance. This is caused by the use of
unsynchronized singletons in the accessor functions and can be avoided
by creating new types through inheritance instead of using typedefs.
Anyways, this fix is a little bit ugly and should replaced by avoiding
the use of unsynchronized singletons in the future.
fix #906
2013-10-22 08:00:14 +02:00
Josef Söntgen
afdabe9df8
hw: enable performance counter on ARMv6 and ARMv7
...
To actually enable the performance counter 'perf_counter' has to be
added to the SPECS make variable.
Fixes #893 .
2013-10-17 11:05:53 +02:00
Martin Stein
c117516296
hw: relax signal limits for resource_request test
...
ref #912
2013-10-16 09:26:11 +02:00
Martin Stein
f88fd35f22
hw: avoid upgrade need of 8192 in signal session
...
ref #912
2013-10-16 09:26:11 +02:00
Martin Stein
b5c6f2c260
hw: avoid generic exceptions in signal framework
...
ref #912
2013-10-16 09:26:11 +02:00
Martin Stein
bb9fa16a5e
hw: throw expressive exceptions in signal session
...
ref #912
2013-10-16 09:26:11 +02:00
Martin Stein
0ad655f4be
hw: return error code on IPC replies
...
ref #899
2013-10-16 09:26:10 +02:00
Martin Stein
ae76e441b1
hw: fix bug in Kernel::Thread::resume
...
ref #899
2013-10-16 09:26:10 +02:00
Martin Stein
b85126a638
hw: enable verbose thread starts
...
ref #899
2013-10-16 09:26:10 +02:00
Martin Stein
d961b9ae1e
hw: enable multiple compilation units in kernel
...
ref #899
2013-10-16 09:26:10 +02:00
Martin Stein
d6d4938916
hw: fix bug in Kernel::yield_thread
...
ref #899
2013-10-16 09:26:10 +02:00
Martin Stein
6912e638fb
hw: kill signal receivers
...
ref #899
2013-10-16 09:26:10 +02:00
Martin Stein
26db598fc0
hw: cancel waiting for IPC requests
...
ref #899
2013-10-16 09:26:10 +02:00
Martin Stein
327cdfdf36
hw: always remove RM client on thread destruction
...
ref #589
2013-09-26 16:09:56 +02:00
Martin Stein
36111587be
hw: don't use assertions in Kernel::get_thread
...
ref #589
2013-09-26 16:09:56 +02:00
Martin Stein
e5ea660e2e
hw: enable to destruct thread after its RM client
...
ref #589
2013-09-26 16:09:55 +02:00
Martin Stein
d86bf3db64
hw: destruct protection domains
...
ref #589
2013-09-26 16:09:55 +02:00
Martin Stein
a4f52bec19
hw: enable direct unmap
...
ref #589
2013-09-26 16:09:55 +02:00
Martin Stein
4f4738427d
hw: release pagers from faulting threads
...
ref #589
2013-09-26 16:09:55 +02:00
Martin Stein
c3be0b417a
hw: fix bug in Kernel::Thread::crash
...
ref #589
2013-09-26 16:09:55 +02:00
Martin Stein
a596fa56a6
hw: destruct scheduling contexts
...
ref #589
2013-09-26 15:58:05 +02:00
Martin Stein
52ec56c060
hw: destruct abstract interfaces of signal backend
...
ref #589
2013-09-26 15:58:05 +02:00
Martin Stein
611cd95eb3
hw: destruct IPC end-nodes
...
ref #589
2013-09-26 15:58:05 +02:00
Martin Stein
de87fa1b5c
hw: avoid address overflow in Tlb::remove_region()
...
ref #589
2013-09-26 15:58:05 +02:00
Martin Stein
909c2dbc95
hw: remove note feature from IPC framework
...
ref #589
2013-09-26 15:58:04 +02:00
Martin Stein
349262a655
hw: handle pagefaults via IPC request/reply
...
ref #589
2013-09-26 15:58:04 +02:00
Martin Stein
6d03292a1e
hw: destruct signal sessions
...
ref #589
2013-09-26 15:58:04 +02:00
Martin Stein
84c31a7ea1
hw: destruct signal receivers
...
ref #589
2013-09-26 15:58:04 +02:00
Martin Stein
e07781dc1c
base: destruct signal receiver platform specific
...
This is made for future signal framework in base-hw
wich needs a platform specific hook in the signal-
receiver destruction.
ref #589
2013-09-26 15:58:04 +02:00
Martin Stein
e33ea2a8b7
hw: completely release signal-context resources
...
ref #589
2013-09-26 15:58:04 +02:00
Martin Stein
2223e72c7f
hw: no assert checks by default, enable opt-in
...
fix #528
2013-09-26 15:58:04 +02:00
Martin Stein
3070af9194
hw: thread in extra header with asserts reviewed
...
ref #528
2013-09-26 15:58:04 +02:00
Martin Stein
1843f10c62
hw: PD in extra header with asserts reviewed
...
ref #528
2013-09-26 15:58:04 +02:00
Martin Stein
5f64411ad7
hw: add missing include in singleton header
...
ref #528
2013-09-26 15:58:04 +02:00
Martin Stein
48f831af3c
hw: signal receiver in extra header without assert
...
ref #528
2013-09-26 15:58:04 +02:00
Martin Stein
bf37159eb9
base: provide class Genode::Fifo_element
...
ref #528
2013-09-26 15:58:04 +02:00
Martin Stein
9826294e6c
hw: IPC node in extra header
...
ref #528
2013-09-26 15:58:03 +02:00
Martin Stein
01e8ee2752
hw: IRQ receiver in extra header & reviewed
...
ref #528
2013-09-26 15:58:03 +02:00
Martin Stein
2c357a4f04
hw: scheduler in extra header & asserts reviewed
...
ref #528
2013-09-26 15:58:03 +02:00
Martin Stein
4a1c218fd0
hw: object in extra header & asserts reviewed
...
ref #528
2013-09-26 15:58:03 +02:00
Martin Stein
e67016ca08
hw: kernel configuration in dedicated header
...
ref #528
2013-09-26 15:58:03 +02:00
Martin Stein
a4ab2a4f30
hw: avoid syscall fptr. array + threads can crash
...
ref #528
2013-09-26 15:58:03 +02:00
Martin Stein
f7fd7b0b11
hw: no assertions in pagers
...
ref #528
2013-09-26 15:58:03 +02:00
Martin Stein
2afa25be1d
hw: no asserts in platform PD
...
ref #528
2013-09-26 15:58:03 +02:00
Martin Stein
36c453aa17
hw: no mandatory asserts in platform thread
...
ref #528
2013-09-26 15:58:03 +02:00
Martin Stein
e27c43acc0
hw: no implicit uint-to-int cast in signal submit
...
ref #528
2013-09-26 15:58:03 +02:00
Martin Stein
545a397fa6
hw: avoid mandatory function calls in assertions
...
ref #528
2013-09-26 15:58:03 +02:00
Christian Helmuth
f763e5ec2a
Move main bootstrap to platform-specific object
...
To prevent multiple execution of main-bootstrap, I moved the code to a
statically initialized object. The reason for this change is that
_main() is exeuted twice when starting dynamic binaries. Now, the object
is part of the base-common library which is linked with ld.lib.so.
2013-09-26 15:00:16 +02:00
Norman Feske
f1dcaa746d
Enable C++11 by default
2013-09-23 14:26:01 +02:00
Norman Feske
0f663991c1
base-hw: Pic::mask for rpi
2013-09-23 14:26:00 +02:00