Commit Graph

224 Commits

Author SHA1 Message Date
Martin Stein
395e955756 hw: set affinity of core threads
ref #1076
2014-03-14 13:16:05 +01:00
Martin Stein
a586828844 hw: consider affinity location in Platform_thread
ref #1076
2014-03-14 13:16:05 +01:00
Martin Stein
49bf33e404 hw: multiprocessor aware processor scheduling
ref #1076
2014-03-14 13:16:05 +01:00
Martin Stein
f545fa0e36 hw: provide identification of a processor object
ref #1076
2014-03-14 13:16:04 +01:00
Martin Stein
52addb591b hw: multiprocessor aware verbosity on thread start
ref #1076
2014-03-07 17:24:28 +01:00
Martin Stein
ed9c4f4427 hw: get start-thread syscall multiprocessing aware
ref #1076
2014-03-07 17:24:12 +01:00
Martin Stein
194b6b64c1 hw: rename Multiprocessor in Processor_pool
fix #1083
2014-03-04 19:05:21 +01:00
Martin Stein
d2fd00a828 hw: rename files multiprocessor.* in processor.*
ref #1083
2014-03-04 19:05:09 +01:00
Martin Stein
7bdb8c9007 hw: let Processor inherit from Processor_driver
ref #1083
2014-03-04 19:04:50 +01:00
Martin Stein
effeb765b9 hw: rename <spec>::Cpu in <spec>::Processor_driver
ref #1083
2014-03-04 19:04:32 +01:00
Martin Stein
5d444a12dc hw: rename Genode::Cpu in Processor_driver
ref #1083
2014-03-04 19:04:16 +01:00
Martin Stein
108b29d33d hw: adjust defines in processor_driver.h
ref #1083
2014-03-04 19:04:06 +01:00
Martin Stein
f9ea52db9a hw: rename cpu.h in processor_driver.h
ref #1083
2014-03-04 19:03:58 +01:00
Martin Stein
2a503d3599 hw: adjust defines in core/processor_driver/
ref #1083
2014-03-04 19:03:48 +01:00
Martin Stein
e3c262579d hw: rename core/cpu/ in core/processor_driver/
ref #1083
2014-03-04 19:03:13 +01:00
Martin Stein
1335b7b550 hw: rename handle_exception() in exception()
fix #1078
2014-03-04 19:02:30 +01:00
Martin Stein
3a4f7128fd hw: make _processor private to Execution_context
ref #1078
2014-03-04 19:01:45 +01:00
Martin Stein
ce9e43ae51 hw: move handle_interrupt to Execution_context
ref #1078
2014-03-04 19:01:29 +01:00
Martin Stein
7cea03f695 hw: move Thread::_processor to Execution_context
ref #1078
2014-03-04 18:58:51 +01:00
Martin Stein
6a3368ee27 hw_arndale: idle threads on secondary processors
fix #1006
2014-03-04 15:03:43 +01:00
Martin Stein
e83849cf99 hw & arm: clean up core CRT0
ref #1006
2014-03-04 15:01:59 +01:00
Martin Stein
1e7c0c2066 hw: fix assembly alignments
ref #1006
2014-03-04 14:58:50 +01:00
Martin Stein
722154f0a8 hw: kernel initialization in extra function
ref #1006
2014-03-04 14:56:44 +01:00
Martin Stein
c288973bf2 hw & arm: declare every mapping as MP shared
ref #1006
2014-03-04 14:55:04 +01:00
Martin Stein
f0c54a7ca3 hw & arm_v6: clean up TLB driver
ref #1006
2014-03-04 14:54:49 +01:00
Martin Stein
1730e10469 hw & arm_v7: clean up TLB driver
ref #1006
2014-03-04 14:54:27 +01:00
Martin Stein
be7a119deb hw & arm: simplify TLB descriptor-type bits
ref #1006
2014-03-04 14:53:52 +01:00
Martin Stein
6fcdbf5e9e hw & arm: simplify TLB permission bits via bitsets
ref #1006
2014-03-04 14:52:34 +01:00
Stefan Kalkowski
2ed22595ff hw: simplify Page_flags (fix #711)
Instead of using a special bitfield use a compound of boolean
values for the generic page attributes. To reduce copy overhead,
change the corresponding functions, where Page_flags are used as
arguments, to use references.
2014-03-03 14:11:22 +01:00
Stefan Kalkowski
28bb1f8fd7 hw: remove use of float in exynos timer (fix #713) 2014-03-03 13:00:36 +01:00
Stefan Kalkowski
83266db30b hw: disable assertions if release spec is set only
Fix #1071
2014-03-03 12:51:25 +01:00
Stefan Kalkowski
379c6c1cd4 i.MX53: fix incorrect DMA protection settings
Within the central security unit of the i.MX53 SoC, one can set protection
level of various DMA bus master requests, distinguishing them between normal,
and secure access. Although, the access level was meant to be set correctly,
the enumeration values that denoted the kind of access were incorrect. Thereby,
until now every DMA requests was set as being secure. This commit corrects
the enumeration values, and sets all DMA operations as being unsecure, accept
from the graphical subsystem which is controlled by the secure world only.

Thanks to Andrea Barisani and Andrej Rosano from Inverse Path for discovering
this bug, as well as the hardware limitation!
2014-02-28 10:11:13 +01:00
Martin Stein
13b1aab044 hw & arm7: prepare CPU driver for -O0 2014-02-25 14:58:08 +01:00
Martin Stein
0b64328944 base: setup thread object for main thread in CRT0
For a main thread a thread object is created by the CRT0 before _main gets
called so that _main can already run in a generic environment that, e.g.,
catches stack overflows as a page-fault instead of corrupting the BSS.
Additionally dynamic programs have only one CRT0 - the one of the LDSO -
which does the initialization for both LDSO and program.

ref #989
2014-02-25 14:58:05 +01:00
Martin Stein
901b3e2bb4 hw: ease usage of the kernel log
ref #989
2014-02-25 14:58:02 +01:00
Christian Helmuth
3234e4f775 Make Deallocator::need_size_for_free() pure virtual 2014-01-30 10:05:43 +01:00
Stefan Kalkowski
5447c406e5 thread: rearrange thread context management
Use a bit allocator for the allocation management of thread contexts,
instead of holding allocation information within the Thread_base objects,
which lead to race conditions in the past.

Moreover, extend the Thread_base class interface with the ability to
to add additional stacks to a thread, and associate the context they're
located in with the corresponding Thread_base object. Additional stacks
can be used to do user-level scheduling with stack switching, without breaking
Genode's API.

Fixes #1024
Fixes #1036
2014-01-27 18:54:09 +01:00
Martin Stein
49eeb485d9 hw: mark caller when printing an activity-table
ref #989
2013-12-20 14:48:06 +01:00
Martin Stein
906b4dc90a hw: format fix in activity table
ref #989
2013-12-20 14:48:06 +01:00
Martin Stein
8eef91f2ac hw: do not block on destruction of signal receiver
As synchronization of signal contexts is now the users business instead of
cores and the signal framework ensures that every context of a receiver gets
synchronously destructed before the destruction of the receiver itself
synchronization and thus blocking at the destruction of a kernel
receiver-object isn't necessary anymore.

ref #989
2013-12-20 14:48:06 +01:00
Martin Stein
1c8c30e1f4 hw: sync signal contexts directly as user
Kernel::signal_context_kill can be used by any program to halt the processing
of a signal context synchronously to prevent broken refs when core destructs
the according kernel object. In turn, Kernel::bin_signal_context doesn't block
anymore and destructs a signal context no matter if there are unacknowledged
signals. This way, cores entrypoint doesn't depend on signal acks of a
untrustworthy client anymore.

ref #989
2013-12-20 14:48:06 +01:00
Martin Stein
2bdf0e70e9 hw: fix bug in Kernel::Thread::_print_activity
ref #989
2013-12-20 14:48:06 +01:00
Martin Stein
3bdf70f771 hw: rename kill_* functions in bin_*
In the future bin_* means the direct destruction of a kernel object
without any blocking. kill_* in contrast is used for bringing a
kernel object such as signal contexts synchronized into a sleeping
state from where they can be destructed without the risk of getting
broken refs in userland.

ref #989
2013-12-20 14:48:06 +01:00
Martin Stein
6aa0ab1bf9 hw: communicate UTCB dataspace through start info
To remap its UTCB to its context area later, a main thread needs
to know the according dataspace capability. This is done through
the start-info it receives from its creator at startup.

ref #989
2013-12-20 14:48:05 +01:00
Martin Stein
42f51cd802 hw: use core-PD class to prevent singleton clashes
ref #989
2013-12-20 14:48:05 +01:00
Martin Stein
77130a9404 hw: replace unsynchronized by unmanaged singleton
ref #989
2013-12-20 14:48:05 +01:00
Stefan Kalkowski
7b49dbf2f3 hw: basic support for ODROID XU board (Fix #991) 2013-12-03 11:30:07 +01:00
Martin Stein
31b4062688 hw: optionally provide activity table on RM faults
ref #964
2013-12-03 08:33:25 +01:00
Martin Stein
f356ad2bdf hw: print activity table via Kernel::print_char(0)
ref #964
2013-12-03 08:33:25 +01:00
Martin Stein
e35d7c979f hw: IPC nodes provide protected accessors
ref #964
2013-12-03 08:33:25 +01:00