Commit Graph

77 Commits

Author SHA1 Message Date
Norman Feske d339eb734f base-hw: Fix error message in run env 2013-04-10 14:33:47 +02:00
Martin Stein 4b224dd67e base-hw: store Platform_pd pointer in Kernel::Pd
This enables the kernel to print out the label of the program
a thread belongs to.

fix #662
2013-04-09 14:24:25 +02:00
Martin Stein ea7ed5947a base: hand over Pd_connection label to Platform_pd
fix: #656
2013-04-08 11:42:24 +02:00
Stefan Kalkowski ce58a63fb6 Remove 'epit' from generic i.MX platform spec
Remove the 'epit' variable from the generic imx31 and imx53 specification,
and only add it to base-hw specific i.MX specs. Thereby the EPIT timer
library gets build for base-hw only.
Moreover, fix some const-ness issues in the platform_timer implementation
for the EPIT timer.
Fixes #688.
2013-03-14 11:27:51 +01:00
Norman Feske 21de42c45d core: Introduce 'Address_space' interface
The new core-internal 'Address_space' interface enables cores RM service
to flush mappings of a PD in which a given 'Rm_client' thread resides.
Prior this patch, each platform invented their own way to flush mappings
in the respective 'rm_session_support.cc' implementation. However, those
implementations used to deal poorly with some corner cases. In
particular, if a PD session was destroyed prior a RM session, the RM
session would try to use no longer existing PD session. The new
'Address_space' uses the just added weak-pointer mechanism to deal with
this issue.

Furthermore, the generic 'Rm_session_component::detach' function has
been improved to avoid duplicated unmap operations for platforms that
implement the 'Address_space' interface. Therefore, it is related to
issue #595. Right now, this is OKL4 only, but other platforms will follow.
2013-03-12 21:53:08 +01:00
Christian Prochaska a99193ad90 Rework the internal lock interface
With this patch, the 'futex' syscall gets used for blocking and unblocking
of threads in the Linux-specific lock implementation.

The 'Native_thread_id' type, which was previously used in the
lock-internal 'Applicant' class to identify a thread to be woken up,
was not suitable anymore for implementing this change. With this patch,
the 'Thread_base*' type gets used instead, which also has the positive
effect of making the public 'cancelable_lock.h' header file
platform-independent.

Fixes #646.
2013-02-25 22:14:21 +01:00
Martin Stein 438b8be2fa base-hw: destroy signal contexts, generic signal.h
fix #641
2013-02-22 20:28:28 +01:00
Martin Stein 79d5f9c565 base-hw: Adaptation to new base library layout
This is a follow-up fix of fae63f4fa9

Fix #18
2013-02-20 19:41:49 +01:00
Martin Stein 251d08d511 base-hw: useless default assignment in syscalls.h
fix #588
2013-02-20 19:41:21 +01:00
Martin Stein 96fbd9e832 base-hw: provide SIGNAL service in nested_init.run
ref #601
2013-02-20 19:40:58 +01:00
Martin Stein 5d8a43dd08 base-hw: rework 'run/env', enable '--target uboot'
ref #601
ref #598
2013-02-20 19:40:46 +01:00
Martin Stein 60fbbc1fd1 hw_arndale: enable nested init test
fix #601
2013-02-20 19:39:16 +01:00
Martin Stein 86785e70e6 base-hw & arm_v7: fix CPU initialization bug
ref #601
2013-02-20 19:37:36 +01:00
Martin Stein 02fccf5cb2 base-hw: fix bug in 'Platform_thread::pager()' 2013-02-20 19:37:25 +01:00
Martin Stein 3047e32dfd base-hw & arm: bugs when zero-filling BSS
fix #654
2013-02-20 19:29:00 +01:00
Norman Feske fae63f4fa9 Merge base libraries into a single library
This patch simplifies the way of how Genode's base libraries are
organized. Originally, the base API was implemented in the form of many
small libraries such as 'thread', 'env', 'server', etc. Most of them
used to consist of only a small number of files. Because those libraries
are incorporated in any build, the checking of their inter-dependencies
made the build process more verbose than desired. Also, the number of
libraries and their roles (core only, non-core only, shared by both core
and non-core) were not easy to capture.

Hereby, the base libraries have been reduced to the following few
libraries:

- startup.mk contains the startup code for normal Genode processes.
  On some platform, core is able to use the library as well.
- base-common.mk contains the parts of the base library that are
  identical by core and non-core processes.
- base.mk contains the complete base API implementation for non-core
  processes

Consequently, the 'LIBS' declaration in 'target.mk' files becomes
simpler as well. In the most simple case, only the 'base' library must
be mentioned.

Fixes #18
2013-02-19 14:45:55 +01:00
Norman Feske 1ab0ae908b base-hw: Adaptation to signal API change
This patch is an interim fix for building base-hw until the signal
implementation is revisited on this platform.
2013-02-14 13:23:37 +01:00
Norman Feske bcdc706f42 Unify 'ipc.h' and 'ipc_generic.h' across platforms
The distinction between 'ipc.h' and 'ipc_generic.h' is no more. The only
use case for platform-specific extensions of the IPC support was the
marshalling of capabilities. However, this case is accommodated by a
function interface ('_marshal_capability', '_unmarshal_capability'). By
moving the implementation of these functions from the headers into the
respective ipc libraries, we can abandon the platform-specific 'ipc.h'
headers.
2013-02-14 13:23:37 +01:00
Norman Feske bbca9912e2 Remove 'Native_lock' type from 'native_types.h' 2013-02-14 13:23:36 +01:00
Alexander Boettcher 9453d319cb base: add remove_client to rm_session
Fixes #13
2013-02-11 12:01:25 +01:00
Norman Feske 73ab30c22c Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
Alexander Boettcher c2d3543e62 base: replace obj_by_* by lookup_and_lock
Add functionality to lookup an object and lock it. Additional the case is
handled that a object may be already in-destruction and the lookup will deny
returning the object.

The object_pool generalize the lookup and lock functionality of the rpc_server
and serve as base for following up patches to fix dangling pointer issues.
2013-01-10 11:13:13 +01:00
Martin Stein 0d7c6efa84 base-hw: Platform_thread::cancel_blocking
Ref #589
2013-01-08 11:36:52 +01:00
Martin Stein 1f340cbdd4 base-hw: use Genode::memcpy in kernel.cc
Fix #583
2013-01-08 11:36:52 +01:00
Martin Stein 19398159e1 base-hw: use Genode::memcpy in base/ipc.cc
Ref #583
2013-01-08 11:36:52 +01:00
Martin Stein e6ca122fe3 base-hw & arm: write-through cache on uncached RAM
Fix #473
2013-01-08 11:36:52 +01:00
Martin Stein 4fb5c23a3c base-hw: don't use 'long' unnecessarily
Fix #581
2013-01-08 11:36:52 +01:00
Martin Stein f2e462266e base-hw & cortex_a9: use caches in pagetable walks
Fix #472
2013-01-08 11:36:52 +01:00
Martin Stein 5f7ffe619b base-hw & imx31: use generic EPIT timer in core
Ref #577
2013-01-08 11:36:52 +01:00
Stefan Kalkowski edb48873c1 base-hw & imx53: enable nested init
Fix #575
2013-01-08 11:36:52 +01:00
Martin Stein 7f2f2d9120 base-hw: ease core build
Merge core only libs into the target make-files.

Use base-hw specific Board drivers that inherit
from generic Board_base.

Use Page_flags::access_t instead of additional
page_flags_t.

Fix #570
2013-01-08 11:36:52 +01:00
Martin Stein ee6f25a028 base-hw: reorganize core-driver headers
Ref #570
2013-01-08 11:36:51 +01:00
Martin Stein f1d599ae8a base: rename generic Board drivers Board_base
To enable a repo to name its specific board driver 'Board'.

Fix #569
2013-01-08 11:36:51 +01:00
Martin Stein 8b568a6029 base-hw: env bug that caused missing boot modules
Fixes #420
2013-01-08 11:36:51 +01:00
Martin Stein 9946f2b42f base-hw: fix clean- and alignment-bugs in env
Ref #420
2013-01-08 11:36:51 +01:00
Martin Stein 37864972b3 base-hw: build vea9x4 libs only with vea9x4 spec
Fix #561
2013-01-08 11:36:51 +01:00
Norman Feske dfaecfb5ab Make quota-upgrading message more clear
Fixes #592
2012-12-22 13:04:04 +01:00
Martin Stein e7bdae62ea base-hw: remove unused library startup_core
Fix #560
2012-12-21 14:54:22 +01:00
Ivan Loskutov 5b8a0e5423 Add OMAP4 UART driver
Fixes #444
2012-12-20 14:40:18 +01:00
Martin Stein 240f1e334f base: Don't complete line breaks in UART drivers. 2012-12-07 08:55:16 +01:00
Martin Stein bec35bb4b1 base-hw & imx31: compile error in kernel_support.h
Fix #548
2012-12-05 14:00:06 +01:00
Martin Stein bc24a21658 base-hw: embed kernel space into platform thread
Instead of allocating and freeing the space that is needed for the
kernel thread objects from core, wich is not convenient with the
quota system, platform thread now holds the space as array by
itself.

Unfortunately we cannot measure the space size by a static function
anymore, so kernel thread had to be moved from kernel.cc into its
own header. This way platform thread can use sizeof().

Fix #543
2012-11-30 16:23:16 +01:00
Martin Stein 8037277447 base-hw: reply to IPC without awaiting the next
Fix #544
2012-11-30 16:23:16 +01:00
Martin Stein 1258126986 base_hw: Enable ldso test
Fix #527, fix #350
2012-11-28 22:51:13 +01:00
Norman Feske 0dbb5e1696 Propagate 'Range_allocator::alloc_aligned' errors
This patch reflects eventual allocation errors in a more specific way to
the caller of 'alloc_aligned', in particular out-of-metadata and
out-of-memory are considered as different conditions.

Related to issue #526.
2012-11-28 22:51:09 +01:00
Norman Feske 4c01f261d3 base-hw: add 'Thread_base::join' to core
In the recent change of the RPC-entrypoint destruction, the
'~Rpc_entrypoint' calls 'Thread_base::join'. Hence, we need to provide
an implementation wherever RPC entrypoints are used.
2012-11-27 20:32:06 +01:00
Martin Stein 88b370bda2 base-hw: Full quota upgrading in signal receiver.
Fix #518
2012-11-26 20:58:10 +01:00
Stefan Kalkowski 88316abca1 Merge panda_a2 and panda SPEC (fix #505, fix #506)
There is no obvious reason for having two different SPEC variables, definitions,
and pathes for the Pandaboard platform. It even lead to problems regarding the
omap4 framebuffer driver (look at issue #505 and #506).
2012-11-23 12:20:27 +01:00
Martin Stein 1b73f80350 base-hw: Fix bug in 'thread_resume' syscall. 2012-11-23 12:20:26 +01:00
Martin Stein 05f5999e71 cpu_session: Access thread state by value 2012-11-23 12:20:22 +01:00