Commit Graph

547 Commits

Author SHA1 Message Date
Stefan Kalkowski
d4922f9071 cli_monitor: consider instance count in quota check
In the start command when checking, whether the quota is enough to create
the new instance, consider the count of instances that should be started.
2013-10-22 08:00:17 +02:00
Norman Feske
f82e1a7092 nitpicker: Late allocation of virtual framebuffer
This patch changes the interface of Nitpicker to support dynamically
dimensioned virtual frame buffers. This solves two problems:

First, it enables a client to create a connection to nitpicker without
donating much session quota in advance. The old interface required each
screen-size-dependent client to donate as much memory as needed to
allocate a screen-sized virtual framebuffer. For clients that are
interested int the screen size but cover just a small portion of the
screen (e.g., a banner, a menu, an applet that sits in the screen
corner), this overprovisioning is painful. The new interface allows such
clients to upgrade the session quota for an existing session as needed.

Second, because each nitpicker session used to have a virtual frame
buffer with a fixed size over the lifetime of the session, a client that
wanted to implement a variable-sized window had to either vastly
overprovide resources (by opening a session as large as the screen just
in order to be prepared for the worst case of a maximized window), or it
had to replace the session by a new one (thereby discarding the stacking
order of the old views) each time the window changes its dimensions. The
new interface accommodates such clients much better.
2013-10-22 08:00:16 +02:00
Christian Prochaska
cf040e2833 Ring_buffer: make synchronization optional
With this patch, the 'Ring_buffer' class can be made unsynchronized by
setting the 'Ring_buffer_unsynchronized' policy as third template
argument.

Fixes #922.
2013-10-22 08:00:16 +02:00
Christian Prochaska
dc8fc1a33c Ring_buffer: add 'avail_capacity()' function
The 'avail_capacity()' function returns how many more elements would
currently fit into the ring buffer.

Fixes #921.
2013-10-22 08:00:15 +02:00
Norman Feske
7296735816 cli_monitor: Init Ram::_resource_avail_sigh
Thanks to Stefan Kalkowski for the report.
2013-10-22 08:00:15 +02:00
Martin Stein
5fa98361c2 demo: support exynos5
fix #796
2013-10-22 08:00:15 +02:00
Martin Stein
4196b9bc5c fb & exynos5: avoid USB HID problems with FOC
USB HID gets stuck due to strange kernel error
as HDMI starts simulatnously. This workaround
delays HDMI init by a second (only in case we
build for Exynos5 & FOC with USB) to let
scenarious like demo get their USB HID started
without much CPU load.

ref #796
2013-10-22 08:00:15 +02:00
Martin Stein
abbb03555d fb test: view multiple pictures
ref #796
2013-10-22 08:00:15 +02:00
Martin Stein
7057a12304 fb test: support exynos5
ref #796
2013-10-22 08:00:15 +02:00
Martin Stein
515f4cff1e framebuffer: support HDMI@1920x1080p on exynos5
ref #796
2013-10-22 08:00:15 +02:00
Martin Stein
92b3171765 platform_drv & exynos5: provide HDMI switches
ref #796
2013-10-22 08:00:15 +02:00
Alexander Boettcher
f14213b5f4 base/os: catch Ipc_error messages in Service class
Fixes #910
2013-10-22 08:00:15 +02:00
Stefan Kalkowski
3fc962b539 i.MX53: add config lib to GPIO driver (fix #915) 2013-10-22 08:00:14 +02:00
Stefan Kalkowski
81e69dc8da i.MX53 tablet: complete IOMUX routes for display
For the framebuffer driver of the i.MX53 platform to work even when u-boot
didn't prepared the display previously, there were some IOMUX routes missing.

Fixes #914
2013-10-22 08:00:14 +02:00
Stefan Kalkowski
ebbd721278 i.MX53 tablet: handle >1 button events concurrently
By now, only one button press/release event per IRQ was handled correctly.
Pressing and/or releasing several buttons concurrently could bring the input
driver into an inconsistent state.

Fixes #913
2013-10-22 08:00:14 +02:00
Stefan Kalkowski
8f0c789ed4 Make NIC RX/TX buffer sizes configureable in libc
* Remove far too low default values from Nic::Connection constructor
* Extend lwip initialization function with desired TX/RX buffer sizes
* Add configuration possibility to libc_lwip_dhcp plugin to define
  buffer sizes, like the following:

  '<libc tx_buf_size="1M" tx_buf_size="1M"/>'

Fixes #892
2013-10-22 08:00:14 +02:00
Martin Stein
ee5d213c1f base: do not allow unnamed threads
fix #901
2013-10-22 08:00:07 +02:00
Josef Söntgen
341290a266 trace: implement timestamp also for ARMv6
Fixes #894.
2013-10-17 11:05:41 +02:00
Josef Söntgen
4d2b349380 os: don't close the Rm_connection in ldso
At this point we cannot close the connection anymore because all
mappings are gone and the needed stack is invalid. This is not a
problem since process will be discarded anyway.

Fixes #909.
2013-10-17 11:05:29 +02:00
Norman Feske
11e628714d Build trace policies with -std=gnu++11 enabled 2013-10-16 09:26:11 +02:00
Norman Feske
a903049a1a cli_monitor: Resource-balancing support
This patch introduces new commands for dynamically balancing RAM between
subsystems. The 'status' command prints a table with the RAM status of
each subsystem. The 'ram' command changes the quota or a quota limit of
a given subsystem. The quota limit can be defined to allow the on-demand
expansion of the quota. Finally, the 'yield' command can be used to
instruct a subsystem to yield a specified amount of resources.

For trying out the new commands, a so-called 'ram_eater' example has
been added to the 'terminal_mux.run' scenario. This program simulates a
subsystem with a growing demand for resources, yet with the capability
to yield resources when instructed by the parent (i.e., cli_monitor).

Besides implementing the new features, the patch splits the
implementation of 'cli_monitor' into multiple files.
2013-10-16 09:26:09 +02:00
Norman Feske
d78ba43f64 Test for yielding resources 2013-10-16 09:26:08 +02:00
Norman Feske
9cf677cb0a os: Add resource balancing-support to 'Slave'
In order to be able to dynamically balance resources of slaves, we need
to provide an accessor to the slave's RAM session and a way to issue
yield requests.
2013-10-15 16:13:45 +02:00
Norman Feske
f80c0500af Test for 'Parent::resource_request' interface 2013-10-15 16:13:45 +02:00
Norman Feske
5caed68fe4 init: Transfer slack memory to children on demand 2013-10-14 09:45:14 +02:00
Norman Feske
b459f4384d demo.run: Don't delete 'launchpad.config'
Deleting the generated 'launchpad.config' file is a bad idea because in
contrast to most base platforms, on Linux, we merely create symlinks
from the 'var/run/demo/' directory to the 'bin/' directory instead of
copying the files.
2013-09-26 14:28:25 +02:00
Norman Feske
45d0157d87 thread_join.run: Put success message on new line
This patch makes sure that a line break is printed before the test
finishes. This way, the "Test succeeded" message is printed on a new
line, which was not always the case (i.e., on Pistachio) otherwise.
2013-09-23 15:50:47 +02:00
Christian Helmuth
3620d889ac nic bridge: Increase entry-point stack size
4K stack on 32 bit does not suffice for G++ exception handling.
2013-09-23 14:26:02 +02:00
Norman Feske
9a7ed1de21 Remove Fiasco-UX input driver
The switch to C++11 breaks it. Because the driver remains unused for
years, it is not worth fixing it.
2013-09-23 14:26:02 +02:00
Christian Helmuth
5299dc4ab8 ldso: fix compiler errors with C++11
The warning

  error: expected unqualified-id before ‘STRING_USERDEF’ token

was caused by a missing whitespace in 'extern "C"int'.
2013-09-23 14:26:02 +02:00
Christian Helmuth
3056c718c8 nic bridge: connect to backend NIC on startup
After announcing the NIC service, the bridge connects to the driver to
ensure to see any incoming traffic in case the client itself only reacts
on connects from LAN (e.g., the netperf server).

Also, some styling issues were fixed.
2013-09-23 14:26:01 +02:00
Norman Feske
f1dcaa746d Enable C++11 by default 2013-09-23 14:26:01 +02:00
Norman Feske
fb2998e534 Move generic platform_session parts to os/include
Both 'platform_session/capability.h' and 'platform_session/connection.h'
do not contain platform-specific information. By moving them from
'include/platform/imx53/platform_session/' to 'include/platform_session/',
this patch enables other platforms to reuse them.
2013-09-23 14:26:01 +02:00
Norman Feske
c9194a2af4 attached_mmio: Support sub-page MMIO resources 2013-09-23 14:26:01 +02:00
Josef Söntgen
35118f0a32 trace: use new trace frontend in test-trace 2013-09-23 14:26:01 +02:00
Norman Feske
31d2730c9a dde_kit: Allow re-scheduling from timer handler
Prior this change, the attempt to re-schedule a timer from its timer
handler resulted in a clear '_pending' flag. This caused the timer event
to disappear from the scheduling queue without the handler being called
ever again. By resetting the '_pending' value before calling the hander,
we prevent a re-scheduled '_pending' flag to be cleared immediately
after calling the handler.
2013-09-23 14:26:00 +02:00
Norman Feske
29eeedf064 launchpad: Update config syntax, remove defaults
This patch updates the launchpad config to use XML attributes and
removes the built-in default configuration (which is only meaningful
for demo.run anyway).
2013-09-23 14:25:59 +02:00
Norman Feske
6cd5407ed9 nitpicker: Dynamic config of session policies 2013-09-23 14:25:59 +02:00
Norman Feske
6575856624 os: Split Session_label from Session_policy
By splitting Session_policy into two classes, we make it more flexible.
Originally, the constructor accepted solely an args string, which made it
unusable for situations where we already have extracted the session
label (e.g., stored in the session meta data of a server). Now, the
extraction of the label from the args string is performed by the new
Session_label class instead, which, in turn, can be passed to the
constructor of Session_policy.

This change causes a minor API change. The following code

  Session_policy policy(session_args);

Must be turned into

  Session_label  label(session_args);
  Session_policy policy(label);
2013-09-23 14:25:59 +02:00
Norman Feske
f371aef346 nitpicker: Use server skeleton library 2013-09-23 14:25:59 +02:00
Norman Feske
518a71ccf5 nitpicker: Simplify internal file structure 2013-09-23 14:25:59 +02:00
Norman Feske
602e36394d nitpicker: New signal handling, bg color config
This patch overhauls the signal handling of nitpicker to clear the way
towards dynamic reconfiguration. Furthermore, it moves the
implementation of the global-keys handling and input utilities to
separate files.
2013-09-23 14:25:59 +02:00
Norman Feske
430582c060 nitpicker: Remove local list.h 2013-09-23 14:25:59 +02:00
Norman Feske
74242c0906 nitpicker: Remove local string.h 2013-09-23 14:25:59 +02:00
Norman Feske
a6c019e0c6 nitpicker: Remove unmaintained TODO file 2013-09-23 14:25:59 +02:00
Norman Feske
ab3bc1bb58 nitpicker: Use signals for main loop 2013-09-23 14:25:58 +02:00
Norman Feske
fa34b79b2c nitpicker: Add const qualifiers 2013-09-23 14:25:58 +02:00
Norman Feske
7e35388336 os: Skeleton for server implementations 2013-09-23 14:25:58 +02:00
Norman Feske
94bcd3f1bf os: New Signal_rpc_dispatcher utility
The so-called Signal_rpc_dispatcher delegates the handling of signals to
the context of an RPC entrypoint.
2013-09-23 14:25:58 +02:00
Norman Feske
8243329ad4 os: Move Genode::Config into 'config' library
Originally, the convenience utility for accessing a process
configuration came in the form of a header file. But this causes
aliasing problems if multiple compilation units access the config while
the configuration gets dynamically updated. Moving the implementation of
the accessor to the singleton object into a library solves those
problems.
2013-09-23 14:25:58 +02:00
Norman Feske
a1effc5ad8 make Attached_ram_dataspace::local_addr const 2013-09-18 14:58:55 +02:00
Norman Feske
21462cdbd2 base: Add const qualifiers to 'util/list.h'
This patch adds support for iterating through a const list. This allows
users of lists to be more rigid with regard to constness. Furthermore,
the patch adds the function 'List::insert_at' for inserting an element
at a specified position. By adding this function, we can remove code
duplication in nitpicker.
2013-09-18 14:58:55 +02:00
Norman Feske
664aff2a56 os: Add const qualifiers to blit library 2013-09-18 14:58:55 +02:00
Norman Feske
20daeb6d16 nitpicker: Support for global keys 2013-09-18 14:58:54 +02:00
Norman Feske
afbd7ea50e Reflection support for input/keycodes.h
To enable the specification of key names in configuration files parsed
at runtime, we need the association between key-code values and their
respective names.
2013-09-18 14:58:54 +02:00
Norman Feske
d4c8b41bcc File permissions for os/run/framebuffer.run 2013-09-06 12:16:38 +02:00
Norman Feske
511a655efb init: Do not abort on invalid (re-)configurations 2013-09-04 22:37:06 +02:00
Norman Feske
cc975f26c4 ldso.run: Do not match escape sequences
Color escape sequences do not need to be considered when using
grep_output in run scripts.
2013-09-04 22:37:06 +02:00
Christian Prochaska
3e8e55ec16 CPU affinity configuration fixes
- if no affinity was set for a new thread before calling
  Cpu_session::start(), the CPU session's affinity gets set for this
  thread
- documentation fix: <affinity_space> -> <affinity-space>

Fixes #873.
2013-09-02 19:43:36 +02:00
Stefan Kalkowski
ca0f677da9 Increase default NIC session's queue size (fix #870) 2013-09-02 19:42:26 +02:00
Stefan Kalkowski
6484edb657 nic_bridge: cache card's MAC address (Fixes #869) 2013-09-02 19:42:06 +02:00
Stefan Kalkowski
4254cb04e1 Reduce IPC with timer service in timed semaphore
Instead of using msleep to sleep periodically, and then increase jiffies
counter in the alarm scheduler implementation of the timed semaphore
use the 'trigger_periodic' call introduced by the change of the timer session
interface into an asynchronous one. Thereby, we can reduce the necessary IPC
communication with the timer service effectively.

Ref #35
2013-08-30 13:38:21 +02:00
Josef Söntgen
d2f7c7bec4 os: reenable -fPIC and fix policy linkerscript
As it turns out using -fPIC was not the issue but discarding certain
sections. The policy_module_table is now located in .data.rel which
needs to be at the beginning of the binary.

Fixes #849.
2013-08-30 13:36:25 +02:00
Stefan Kalkowski
5afb5fcc12 Explicitly specify compile rule for tracing policy
Otherwise we might get conflicts e.g. like -fPIC flag on Fiasco.OC platform.

Fixes #849
2013-08-30 13:36:01 +02:00
Alexander Boettcher
35a96e1101 acpi: parse RMRR structures and print DMA regions
The regions reported by the RMRR structure are used by legacy devices for DMA
requests. Theses would need to be added to the device_pd to avoid DMAR faults
when used in legacy mode.

For now parse and print them, so that one has a clue about why we get DMAR
faults.

Issue #683
2013-08-30 13:34:14 +02:00
Alexander Boettcher
39f32b5bd6 device_pd: survive failing attachment request
Be more robust. If the attachment fails continue to operate and just print a
error message. Before the commit the device_pd stopped to operate if an
attachment did not succeed.

Issue #683
2013-08-30 13:33:44 +02:00
Stefan Kalkowski
ae87f50ce3 Implement timestamp function for tracing for ARM
Use Armv7 performace counters for this.

Fixes #850
2013-08-30 13:31:47 +02:00
Martin Stein
e272264cb2 regulator & arndale: prevent invalid array index
fix #831
2013-08-30 13:28:12 +02:00
Alexander Boettcher
b1fe2b5ab9 acpi: skip parameters of DefName
Fixes #415
2013-08-30 13:23:28 +02:00
Martin Stein
fa047f4dda signal test: let sender yield CPU when idle
ref #574
2013-08-23 11:23:47 +02:00
Alexander Boettcher
bab1663ea2 ldso: be quiet by default 2013-08-22 15:13:12 +02:00
Christian Helmuth
a478213872 pci: no parsing errors if no config file 2013-08-19 10:59:50 +02:00
Norman Feske
a652cb5110 Apply affinity subspacing to session requests 2013-08-15 09:22:50 +02:00
Josef Söntgen
17eb342156 os: example trace policy-modules 2013-08-15 09:22:50 +02:00
Christian Prochaska
97374cf57e ldso: increase 'MEM_SIZE' in 'mmap()'
Fixes #838.
2013-08-15 09:22:49 +02:00
Norman Feske
149356f7ab core: TRACE service interface and implementation 2013-08-15 09:22:47 +02:00
Christian Prochaska
f0b5c5eca5 Rename 'oss_drv' to 'audio_out_drv'
Fixes #829.
2013-08-13 17:27:40 +02:00
Christian Prochaska
5b0a8e54f9 ldso: increase size of managed ELF dataspace
The size needs to be increased for Qt5 libraries.

Issue #345.
2013-08-13 17:08:26 +02:00
Norman Feske
c4627fab44 Update os/doc/init.txt with affinity information 2013-08-13 17:08:25 +02:00
Norman Feske
5ec07614e8 init: Read affinity assignments from config
The assignment of affinities consists of two parts, the definition
of the affinity space dimensions as used for the init process, and
the association sub systems with affinity locations (relative to the
affinity space). The affinity space is configured as a sub node of the
config node. For example, the following declaration describes an
affinity space of 4x2:

<config>
  ...
  <affinity_space width="4" height="2" />
  ...
</config>

Subsystems can be constrained to parts of the affinity space using
the '<affinity>' sub node of a '<start>' entry:

<config>
  ...
  <start name="loader">
    <affinity xpos="0" ypos="1" width="2" height="1" />
    ...
  </start>
  ...
</config>
2013-08-13 17:08:25 +02:00
Norman Feske
9111f060f5 Shortcut for 'Xml_node::Attribute::value()'
Also provide accessor function 'has_attribute'.
2013-08-13 17:08:25 +02:00
Norman Feske
6d837c9e26 Attach affinity information to session requests
This patch extends the 'Parent::session()' and 'Root::session()'
functions with an additional 'affinity' parameter, which is inteded to
express the preferred affinity of the new session. For CPU sessions
provided by core, the values will be used to select the set of CPUs
assigned to the CPU session. For other services, the session affinity
information can be utilized to optimize the locality of the server
thread with the client. For example, to enable the IRQ session to route
an IRQ to the CPU core on which the corresponding device driver (the IRQ
client) is running.
2013-08-13 17:08:25 +02:00
Alexander Boettcher
071ca39407 run: make bomb test ready for auto tests 2013-08-13 17:08:24 +02:00
Stefan Kalkowski
03538a1c3b Disable run test for base-hw as long as it fails
Ref #801
2013-07-11 16:40:42 +02:00
Sebastian Sumpf
2dce04618e atapi_drv: Implement LBA48 specific block count
Use NATIVE MAX ADDRESS EXT to retrieve last block for LBA48. Also check not only
for enabled LBA48 support but for the 'host protected area' bit before using the
LBA48 version. This is because the high order byte (HOB) data retrieval is
broken in Qemu.

Fixes #761.
2013-07-11 12:44:18 +02:00
Alexander Boettcher
861bbc81a3 run: check size of reported disc in part_blk
Triggers bug if LBA48 mode is used.

Issue #761
2013-07-11 12:40:19 +02:00
Christian Prochaska
02c0fa85cf nic_bridge: increase entrypoint stack size
Issue #782
2013-07-05 12:37:43 +02:00
Christian Prochaska
c962240922 crt0 cleanup
- use the generic 'crt0.s' for Linux
- move the read-only '__dso_handle' definition into the '.text' section
- move the '__initial_sp' definition into the '.bss' section
- remove the '_main_utcb' definition

Part of #766.
2013-07-05 12:37:43 +02:00
Norman Feske
b7e553d4db nic_bridge: Documentation update 2013-07-05 12:37:41 +02:00
Martin Stein
0613e52a49 ahci & exynos5: adjust ouput format in ahci_bench 2013-06-28 17:23:31 +02:00
Martin Stein
4fe093b01b ahci & exynos5: opt-in app and part in ahci_bench 2013-06-28 17:23:25 +02:00
Martin Stein
118ca20a2f ahci & exynos5: do test repetitions in ahci_bench 2013-06-28 17:23:17 +02:00
Stefan Kalkowski
acc24b5905 Switch off regulators when closing session 2013-06-28 14:24:34 +02:00
Martin Stein
198f8b65a4 ahci & exynos5: compliant exceptions on creation
Use Root::Unavailable exceptions instead of driver specific ones
on session construction.
2013-06-26 16:02:30 +02:00
Martin Stein
9d23cdc27f part_blk: raise max packet size to 1 MiB
This is because the old packet size of 128 KiB slowed
down l4linux AHCI benchmark on arndale with large block sizes.
2013-06-26 15:05:20 +02:00
Martin Stein
3fb7e74287 ahci & exynos5: avoid large DMA buf in AHCI bench
Normally this bench has read all data to one large buffer and
than written it back to the drive but for SATA 3 (6 Gbps) benchmarks
we would need a buffer of approximately 1.2 GB to do it this way
and reach 2 seconds bench time. Thus we use a buffer of SATA request size
and override it with every request.
2013-06-26 15:05:20 +02:00
Martin Stein
ad3427e857 ahci & exynos5: allow 6 Gbps port speed 2013-06-26 15:05:15 +02:00
Martin Stein
da930d146f ahci & exynos5: enable SSDs like OCZ Agility 3
Declare ATA device-register structure and check it with more detail.

Fasten error recovery about 9 ms.
2013-06-26 15:05:11 +02:00
Stefan Kalkowski
664d0036c8 Use cpu regulator in cli_monitor only on Arndale
This commit splits the Fiasco.OC-specific extension for the cli_monitor
into one for the Arndale platform, and one for all others. On Arndale
we add the cpu_frequency command beside the ones defined on all platforms.
2013-06-26 11:29:26 +02:00
Martin Stein
ada408d2f7 ahci & exynos5: enable HDDs like Seagate Barracuda
Initialize and limit port speed to 3 Gbps in general because the Seagate
Barracuda 1TB throws much errors with 6 Gbps by now.

Try all port speeds from the highest to the lowest as long as debouncing fails
and try them all again in this order when falling back to slower debouncing.

Try to recover from all types of interface error.

When a port was recovered from an error during a NCQ command
get the last LBA that was accessed successfully and continue command from
this point.

Use a platform driver through the 'Regulator' service to do CMU and PMU config.

Switch off verbosity by default.
2013-06-25 16:35:22 +02:00
Martin Stein
686c551b66 ahci & exynos5: driver internal benchmark
To raise expressiveness of the benchmark it dynamically adjusts the
transfer amount at any test to get a result that was measured
over a transfer time of 2000 ms at least and 2300 ms at a max.
2013-06-25 15:08:33 +02:00
Martin Stein
6ae5d3a04b ahci & exynos5: basic recovery from NCQ errors
Fix little bugs in scatter/gather-list setup, FIS creation, and
command-slot creation of Exynos5 AHCI driver.
2013-06-25 15:00:52 +02:00
Martin Stein
53b186fe01 ahci & exynos5: enable SSDs like Samsung 840 Pro
* Retry debouncing first with a higher trial time and if this also doesn't
  work with lower link speed additionaly.
* Ignore DevSlp feature because it isn't needed anyway as far as i can see.
* Relax some restrictions according the feedback of the drive as far as it
  seem to have no effect in Linux too

Fix #753
2013-06-25 15:00:42 +02:00
Martin Stein
c93e770316 ahci & exynos5: use platform driver in AHCI test 2013-06-25 15:00:35 +02:00
Stefan Kalkowski
e23f24505b Add platform_drv to relevant run-scripts (fix #778) 2013-06-25 14:37:03 +02:00
Stefan Kalkowski
ae49f6216d Add regulators for EHCI controller on Arndale
Fix #780
2013-06-25 14:36:57 +02:00
Stefan Kalkowski
a73dc1b581 Fix coding style in regulator interface (fix #777) 2013-06-25 11:10:59 +02:00
Stefan Kalkowski
5a3c2c33b7 Add 'cpu_frequency' command to cli_monitor (fix #776)
This commit extends the Fiasco.OC specific extensions of the cli_monitor
to enable the user to interactively change or show current CPU frequency
2013-06-25 11:10:58 +02:00
Stefan Kalkowski
a4eb4bfa07 Arndale: save power by default (Fix #774)
* Use regulator interface in eMMC driver to enable its clock
2013-06-24 11:50:53 +02:00
Stefan Kalkowski
f7034369b2 Extend clock and power units in platform driver
* Add clock and power management for SATA and USB3.0 for Arndale

Fix #771
2013-06-24 11:48:37 +02:00
Stefan Kalkowski
1d34589f84 Implement cpu frequency scaling for Arndale
* Implements platform driver for Arndale providing Regulator for CPU clock
* Implements a cpu frequency scaling test using the affinity test
* Fixes #770
2013-06-24 11:48:36 +02:00
Stefan Kalkowski
8fb8cf1c8b Implement abstract regulator session interface
Ref #770
2013-06-24 11:48:36 +02:00
Stefan Kalkowski
c61d832ae3 Fix nic_loopback, after recent NIC session changes
Commit c464ee2e6673fe328a8717342dca30f3b0204cb8 removed the RX_BUF_SIZE from
the NIC session interface. Mistakenly, the nic_loopback server was missed
when doing this change.
2013-06-12 11:35:13 +02:00
Stefan Kalkowski
853d541340 Let the nic_bridge work event driven (fix #749) 2013-06-12 11:35:13 +02:00
Stefan Kalkowski
153429268e Simplify use of custom data-flow signal handlers
This is analogue to the changes done in packet_stream_tx in commit:
cb9b2724de
2013-06-12 11:35:13 +02:00
Stefan Kalkowski
8fae7131c8 Unify buffer sizes of RX and TX in nic_session
In fact, the sizes were the same the whole time, but by using
the same enum in both cases to instantiate the Packet_stream_tx
and Packet_stream_rx members of the e.g. RPC object, it allows
for more flexible generalization between e.g. source or, sink
objects, when programming event-driven, and implementing generic
handlers for their signals.
2013-06-12 11:35:13 +02:00
Stefan Kalkowski
973efe945b Add sd_card drivers to some run scripts (fix #757)
Moreover, extend l4android script to run on OMAP4 and Exynos5.
2013-06-12 11:35:12 +02:00
Stefan Kalkowski
125d55ce71 Don't abort when reading config in OMAP4 fb driver
Just use configuration values when existent, otherwise when no configuration
is given use the default values. When an incomplete configuration is given,
take the supplied ones, and for the rest the default ones. Fix #762
2013-06-12 11:35:12 +02:00
Stefan Kalkowski
37856a0ad0 Add print-only dummy UART driver for Exynos5 SoC
Fix #759
2013-06-12 11:35:12 +02:00
Christian Helmuth
b355897f53 update x86emu to 1.20
+ document x86emu move from os -> libports

Fixes #456
2013-06-12 11:35:12 +02:00
Christian Prochaska
4a9b1c6aab base-linux: add ARM support
This patch introduces a new platform 'linux_arm' for building and running
Genode/Linux on an ARM device.

Known limitations:

- libc 'setjmp()'/'longjmp()' doesn't currently save/restore floating
  point registers

Fixes #746.
2013-05-24 14:55:37 +02:00
Alexander Tarasikov
3cb6de2e69 Implement LCD output and config parsing for omap4
Fixes #743
2013-05-22 18:58:51 +02:00
Stefan Kalkowski
89a8c2c211 Update run scripts using usb_drv (fix #744)
Updates all run scripts, which use the usb_drv to enable the appropriated
USB host controllers.
2013-05-22 18:52:54 +02:00
Martin Stein
e164671cd1 ahci_drv: basic support for exynos 5
This is a first version of the AHCI driver. It supports SATA HDDs
with UDMA-133 only, up to 6 Gbps and native command queueing.
The more blocks one transfers with one command, the higher is the
chance that the driver produces a fatal handshake error. Nevertheless
the driver is stable with one block per ATA command. Although NCQ is
used the driver doesn't queue multiple commands simultanously.

The driver was tested with a western digital HDD "WDC WD2500BEVS-08VAT1
13.01A13" (250 GB) with hw_arndale (run/ahci) and foc_arndale
(run/ahci, run/l4linux: dd). SSDs were not tested.

Fix #706
2013-05-22 18:36:55 +02:00
Martin Stein
1a7efc0df1 os: helper Attached_mmio
Genode::Attached_mmio is the fusion of Genode::Attached_io_mem_dataspace
and Genode::Mmio.

Ref #706
2013-05-22 18:32:05 +02:00
Martin Stein
37c2f101b1 ahci_drv: separate PCI specifics from the rest
Ref #706
2013-05-22 18:32:05 +02:00
Martin Stein
a0d182e25a hw_arndale: userland timer driver
Ref #706
2013-05-22 18:32:05 +02:00
Stefan Kalkowski
1dc9ab9a95 Adapt i.MX53 fb driver to GPIO session changes 2013-05-21 10:10:43 +02:00
Norman Feske
78204b8f49 Utility for synchronizing interface calls 2013-05-17 12:04:45 +02:00
Norman Feske
8ac6d8c96c base-hw: Support for Raspberry Pi 2013-05-15 20:48:07 +02:00
Stefan Kalkowski
ef4a4ea654 Implement input driver for i.MX53 tablet (fix #724)
The input driver implements support for the Egalaxy touchscreen and
for Freescale's MPR121 capacitative touch buttons.
2013-05-10 11:16:13 +02:00
Stefan Kalkowski
ca92984bcc Simplify GPIO session interface (fix #707)
Changes GPIO session interface to a one-GPIO-pin-per-session style. Moreover,
this commit introduces a generic driver interface for GPIO drivers. Thereby
generalizes root- and session component for GPIO.
2013-05-10 11:16:12 +02:00
Alexander Boettcher
d1f40b86d9 fix use-after-free bug in loader 2013-05-10 11:16:12 +02:00
Alexander Boettcher
94629ad493 run: adjust lwip pingpong test for x86 2013-05-10 11:16:11 +02:00
Alexander Boettcher
b5d3be9c85 run: add nic driver performance test
A run script which sends raw ethernet packets from the host machine to the
target machine. Three tests are implemented:
- The network_stat instrumented driver of usb_drv and net_drv
  are used to get the raw receive performance of the network driver.
- A simple nic_session client is receiving from the un-instrumented network
  driver raw ethernet packets.
- A bridge is added between driver and simple nic_session client.
2013-05-10 11:16:10 +02:00
Alexander Boettcher
0920e322c2 net: nic session client using net_stat lib
A simple nic session client using the performance measurement library.
2013-05-10 11:16:10 +02:00
Alexander Boettcher
a36813cf6f net: add library for performance measurements 2013-05-10 11:16:09 +02:00
Norman Feske
0b660eb033 Blacklist failsafe.run test on L4/Fiasco 2013-05-08 09:38:32 +02:00
Norman Feske
2aa22a25ee Adapt chroot.run to changed timer 2013-05-07 21:56:07 +02:00
Norman Feske
1589820d05 Add missing route to chroot_loader test
Additionally, we do the cleanup of the remains of a previously failed
run prior creating the run directory. Otherwise, the directly creation
may fail because of a pending bindmount.
2013-05-07 21:56:07 +02:00
Christian Prochaska
ea3adfef9a Create the context area RM session at startup
With this patch, the thread context area RM session gets created at
program startup to have the thread context area's virtual address range
reserved right from the beginning.

Fixes #734.

This patch implies that all Genode processes try to create an RM
session. So a route to the RM service must be present even for processes
that have only a single thread. Hence, the patch contains an update of
affected components.
2013-05-07 21:56:07 +02:00
Norman Feske
cc5fddb0a2 Loader: Free entries of parent-service registry
The parent-service registry is populated on demand by the
'Loader::Child' whenever a prior unknown service is requested. Since the
number of parent services is limited, we expect the registry to settle
after a while. However, each loader session has a private instance of
a parent-service registry. So when creating and destroying loader
sessions, parent registries will be populated again and again. We
have to make sure to discard the entries along with the destruction
of a loader session to avoid the leakage of memory.

Issue #717
2013-05-07 21:56:06 +02:00
Stefan Kalkowski
511cab6192 Remove superfluous pl11x target.mk file (fix #722) 2013-05-07 21:56:06 +02:00
Stefan Kalkowski
cddd69a122 Double buffering for i.MX53 fb driver (fix #721)
Enable optinal support for double buffering in the i.MX53 framebuffer
driver. This prevents flickering in certain scenarios, where applications
directly render in the framebuffer dataspace given by the driver.
2013-05-07 21:56:06 +02:00
Stefan Kalkowski
0950b2f340 Rework i.MX53 framebuffer driver
* Simplify IPU register definitions using templates
* Distinguish between i.MX53 QSB and SMD board in driver
* Support IPU specific overlay mechanism by framebuffer session extension
2013-05-07 21:56:06 +02:00
Stefan Kalkowski
4fe158a320 Implement platform driver for i.MX53 platform
Move clock and reset controller functionality out of framebuffer driver
into platform driver.
2013-05-07 13:04:30 +02:00
Nikolay Golikov
d2f5deaf33 Implement i.MX53 framebuffer driver 2013-05-07 13:04:30 +02:00
Stefan Kalkowski
a5d236475a Unify GPIO driver binary names to 'gpio_drv'
Introduce 'gpio' SPEC variable to easily support a corresponding driver within
run scripts.
2013-05-07 13:04:30 +02:00
Nikolay Golikov
1d1081c910 Implement i.MX53 gpio driver 2013-05-07 13:04:30 +02:00
Stefan Kalkowski
8e9e866161 Unify framebuffer driver binary names (fix #720)
Introduce 'framebuffer' SPEC variable to distinguish hardware framebuffer
drivers furthermore from the SDL framebuffer driver used by Genode/Linux.
2013-05-07 13:04:30 +02:00
Stefan Kalkowski
8aad441ef0 Remove obsolete Fiasco UX framebuffer driver 2013-05-06 18:50:35 +02:00
Christian Prochaska
411d736d04 ldso: increase 'MEM_SIZE' in 'mmap()'
Fixes #728.
2013-05-06 11:11:03 +02:00
Alexander Boettcher
30927f68a7 check wakeup situation in rx() after dequeuing
Issue #593
2013-04-26 16:48:54 +02:00
Alexander Boettcher
b85447c602 run scripts: add "Test succeeded" message
Issue #679
2013-04-12 10:56:27 +02:00
Stefan Kalkowski
ba9e7185a8 Omap4 sd_card driver: fix recursive usleep loop
This commit removes an endless loop, that occurred when the sd_card driver
called usleep, or msleep on its Timer_delayer object. Fixes #705

Also fixes the same problem for the Omap4 GPIO driver.
2013-04-12 10:51:45 +02:00
Christian Prochaska
1500d59d0d nic_bridge: drop 'gratuitous ARP' messages
'Gratuitous ARP' broadcast messages are used to announce newly created
IP<->MAC address mappings to other hosts. nic_bridge-internal hosts
would expect a nic_bridge-internal MAC address in this message, whereas
external hosts would expect the NIC's MAC address in this message.
The simplest solution to this problem is to just drop those messages,
since they are not really necessary.

Fixes #709.
2013-04-08 18:48:40 +02:00
Martin Stein
dc814ff0f1 timer: bugfix and test trigger_periodic (run/timer)
Fix #699
2013-04-05 12:51:30 +02:00
Sebastian Sumpf
bdc15a4f28 sd_card: Support multiple DMA descriptors 2013-03-26 12:21:45 +01:00
Christian Prochaska
ff3b73825d terminal: Add escape handling for CUB
This VT102 command is triggered by busybox when pressing the 'pos1' key.
2013-03-26 12:21:44 +01:00
Christian Prochaska
cae79d30b8 cli_monitor: Support dynamically linked binaries 2013-03-26 12:21:44 +01:00
Norman Feske
b06cc3250a Coding style fixes 2013-03-23 13:37:57 +01:00
Norman Feske
c56525f264 cli_monitor: Add reboot command for Fiasco.OC
In addition to the new reboot command, this patch tries to reduce the
artifacts caused by the interplay of the kernel debugger and
terminal_mux.
2013-03-22 21:41:50 +01:00
Sebastian Sumpf
c27364f2df sd_card: Enable 8-bit/52Mhz mode for eMMC 2013-03-22 16:35:31 +01:00
Norman Feske
3b71a9c986 Add missing licensing headers 2013-03-22 15:31:16 +01:00
Sebastian Sumpf
a3afb3dae4 sd_card: Exynos5/MMC support
Added MMC specific parts to Sd-card implemntation. Read/Write takes advantage of
DMA. Currently we leave card in one bit mode.
2013-03-22 15:28:52 +01:00
Sebastian Sumpf
95a16adb6f sd_card: Make OMAP4 'sd_card.h' default 2013-03-22 15:26:13 +01:00
Norman Feske
e1d0839e19 terminal: Check bounds of cursor position
Thanks @cproc for the fix.
2013-03-22 15:24:29 +01:00
Norman Feske
c36909e5dc acpi: Adjust device_pd quota for 64bit machines 2013-03-22 12:45:31 +01:00
Norman Feske
dfe4fd177d cli_monitor: Add foc-specific kdebug command 2013-03-21 15:50:32 +01:00
Norman Feske
022e762a40 timer: Remove debug message 2013-03-21 15:49:27 +01:00
Norman Feske
05027c7935 Simple CLI for managing Genode subsystems 2013-03-21 11:44:34 +01:00
Norman Feske
22f65d1afe Move gems/include/terminal to os/include/terminal
The terminal utilities provided under 'include/terminal' depend on the
base API and the 'os' repository only. So we can incorporate them into
'os'.
2013-03-21 11:44:34 +01:00
Christian Prochaska
452624e1a6 Fiasco(.OC) KDB UART driver
The KDB UART driver uses the Fiasco(.OC) kernel debugger console as backend
for input and output. This is useful in the case that only one UART is
available.

Fixes #665.
2013-03-18 15:28:16 +01: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
352f58b94b core: New utilities for object lifetime management 2013-03-12 21:53:08 +01:00
Ivan Loskutov
33b59a6276 atapi_drv: Add LBA48 support
Fixes #678
2013-03-08 12:14:38 +01:00
Alexander Boettcher
415b50032e dde_kit: support to allocate DMA buffer per device 2013-02-26 18:24:12 +01:00
Alexander Boettcher
be0fa1f63a dde_kit: enable pci lookup by device_class
Instead of trying all PCI devices by a specific PCI driver, now the device or
the device class can be limited to the one actually supported by the specific
driver.
2013-02-26 18:24:03 +01:00
Martin Stein
571f8fb2f3 omap_fb_drv: use usleep in 'Timer_delayer'
fix #670
2013-02-25 22:14:22 +01:00
Alexander Boettcher
430d4064b8 acpi: free mapping of rsdp before using rsdt/xsdt
Fix #635
2013-02-25 22:14:22 +01:00
Alexander Boettcher
439315d918 timer: Don't set default cap as custom cap
Without the patch the signal cap was ever transferred to the timer session
when a usleep/msleep was called, even when unneeded. On base-nova this
causes the allocation of new capability indexes which are not freed up.
So the timer service run quickly out of indexes and get out of order...

Related to issue #1
2013-02-25 16:45:49 +01:00
Torsten Hilbrich
257cf4800d Fixed some unused parameters warnings
They cause problems when using -Werror in your compilation.
2013-02-25 16:45:49 +01:00
Alexander Boettcher
5f90b93f80 ahci: adjust run script to run with new pci_drv 2013-02-22 20:28:27 +01:00
Alexander Boettcher
7e7fa81c8f acpi: reserve 2MB for ACPI and rest is for PCI_DRV 2013-02-22 20:28:27 +01:00
Alexander Boettcher
d447910520 ahci: use pci_drv with class code/mask 2013-02-22 20:28:26 +01:00
Alexander Boettcher
3a85d16597 pci: support to lookup dev via class code/mask 2013-02-22 20:28:26 +01:00
Alexander Boettcher
e05adecfab pci: add device_pd functionality 2013-02-22 20:28:26 +01:00
Alexander Boettcher
2123f3f7e8 ahci: allocate dma-able memory via pci_drv 2013-02-22 20:28:26 +01:00
Alexander Boettcher
d58439ca56 pci: provide dma-able memory via pci_drv 2013-02-22 20:28:26 +01:00
Alexander Boettcher
c374f294c8 pci: add support to provide PCI ECMA config 2013-02-21 11:52:02 +01:00
Alexander Boettcher
822b4f2d96 acpi: provide pci express style configs to pci_drv
Parse the mcfg table and  provide the extended PCI config space data via
the config file to the pci_drv.
2013-02-21 11:52:02 +01:00
Alexander Boettcher
ba566a1530 acpi: add MCFG table parsing 2013-02-21 11:52:02 +01:00
Norman Feske
002ea7cfc4 uart_drv: Mechanism for detecting terminal size 2013-02-20 22:10:32 +01:00
Martin Stein
2a9a653b2b timer & hw & omap4: compile bug in Platform_timer
fix #652
2013-02-20 19:29:24 +01:00
Norman Feske
34ec65f2a8 timer & foc: use KIP->clock as curr_time 2013-02-20 15:20:38 +01:00
Norman Feske
b618c9343e Remove os/config
This patch moves the os/config examples to their respective run scripts,
removes some of them, and moves the priority example to the src/init
directory (where other examples are located).

Additionally, this patch adapts the OKL4-specific priority.run test to
the recent changes of the timer interface.
2013-02-20 14:49:16 +01:00
Norman Feske
ce67b73dca Update example configurations
With the change of the Timer::Session interface, all scenarios that use
the timer use core's SIGNAL service. So we need to route sessions
accordingly.

In addition to the adaptation to the changed timer, this patch removes
some stale examples that predate the run tool and are no longer used.
2013-02-19 14:45:55 +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
165bb96cd3 Increase timeout of signal.run test 2013-02-14 13:26:43 +01:00
Norman Feske
14b9589780 xvfb: Adaptation to timer and framebuffer changes 2013-02-14 13:23:37 +01:00