Commit Graph

1643 Commits

Author SHA1 Message Date
Sebastian Sumpf
e367c99864 cli_monitor: build for RISC-V 2016-02-26 11:36:52 +01:00
Sebastian Sumpf
11d242de85 rpc_name: don't build
It is an example and does segfault the riscv tool chain
2016-02-26 11:36:52 +01:00
Sebastian Sumpf
1ff7de62f6 muen: remove depenency to ports for make target all 2016-02-26 11:36:52 +01:00
Sebastian Sumpf
d17134baef ldso: Support for RISC-V
issue #1880
2016-02-26 11:36:51 +01:00
Mark Vels
1668983efa base-hw: RISC-V Rocket Core on Zynq
This commit adds rocket core on the Zynq FPGA support to base HW. It also takes
advantage of the new timer infrastructure introduced with the privileged 1.8 and
adds improved TLB flush support.

fixes #1880
2016-02-26 11:36:51 +01:00
Sebastian Sumpf
c246a0d194 base-hw: initial RISC-V support
using the spike instruction emulator

issue #1880
2016-02-26 11:36:51 +01:00
Sebastian Sumpf
8c6e3c6251 riscv: create_builddir support
issue #1880
2016-02-26 11:36:50 +01:00
Sebastian Sumpf
d424134073 cxx: Simplify C++ exception wrapper functions
The wrapper functions (e.g., 'Unwind_*' and friends) now have the same signature
as the original function in 'libgcc', reside in a separate C file which is
archived to cxx.lib.a. In supc++.o we prefix the wrapped functions with '_cxx_'.

This also enables support for riscv.

related to #1880
2016-02-16 14:38:02 +01:00
Sebastian Sumpf
bfe5208e0e base: Align heap/slab allocation to machine word size
required by riscv

related to #1880
2016-02-16 14:38:02 +01:00
Josef Söntgen
6d1d8afa57 usb_block_drv: USB mass storage bulk-only driver
This driver uses the Usb session interface and provides a Block session
to its client. See _repos/os/src/drivers/usb_block/README' for more
information.

Fixes #1885.
2016-02-16 14:03:38 +01:00
Josef Söntgen
35314c8397 linux/audio: set ALSA device in the configuration
Instead of only hardcoding "hw" read 'alsa_device' attribute from the
config node to determine the proper playback device. The default value
is still "hw" in case the attribute is not present.

Fixes #1884.
2016-02-15 18:56:40 +01:00
Sebastian Sumpf
6b1923bbe6 rump_fs: handle non-existing root directory 2016-02-12 09:17:23 +01:00
Norman Feske
3680a79f38 window layouter: omit superfluous resize request
This patch removes a superfluous resize request at the creation time of
a new window, which resulted from _requested_size being initialized with
zero whereas the _geometry was initialized with the actual window
geometry. In some cases, this inconsistency led to the report of a new
resize request for the size 0x0, which is obviously wrong. I.e., it
leads clients to believe that the user has closed the window.
2016-02-10 16:15:53 +01:00
Norman Feske
56d98824e3 window layouter: reset drag state when finalized
This patch resets the part of the window state that is responsible the
dragging of window controls once the drag operation is finalized.
Without it, the window was wrongly positioned when leaving the maximized
state after a previous resize operation.
2016-02-10 15:41:52 +01:00
Norman Feske
2936cbebfd loader,nit_fb,wm: work-around for NOVA's cap revokes 2016-02-09 16:56:50 +01:00
Norman Feske
d198f07890 window layouter: keyboard actions
This patch adds support for manipulating the window layout with keyboard
actions. It supports the toggling of fullscreen (aka maximize), the
raising of the currently focused window, and the focusing the next/previous
window.
2016-02-09 16:06:40 +01:00
Norman Feske
2a916b143d window layouter: key sequence handling
This patch adds the mechanics for detecting key sequences to the window
layouter. Sequences for layouter actions can be expressed in the
layouter configuration. They cannot trigger any real action yet.
2016-02-09 16:06:40 +01:00
Norman Feske
6f27f85c3d wm.run: enable decorator controls 2016-02-09 16:06:40 +01:00
Norman Feske
44e6870e4e window layouter: respond to decorator margins 2016-02-09 15:38:34 +01:00
Norman Feske
54045771c7 window decorator: report decorator margins 2016-02-09 15:28:47 +01:00
Norman Feske
31888c610a wm: propagate nitpicker mode changes to layouter 2016-02-09 14:30:28 +01:00
Norman Feske
752ddc153e window layouter: respond to nitpicker mode changes 2016-02-09 14:30:28 +01:00
Norman Feske
37044eaad8 window layouter: internal restructuring
This patch splits the implementation of the window layouter into several
headers to ease the upcoming addition of new functionality.
2016-02-09 14:30:28 +01:00
Norman Feske
ff8d790f93 themed_decorator: cope with missing pointer info 2016-02-09 14:29:01 +01:00
Norman Feske
c3b415ffe8 wm: omit superfluous window-list updates 2016-02-09 14:28:50 +01:00
Norman Feske
e34f211dc1 themed_decorator: allow skipping of decorations
This patch weakens the themed decorator's demands with respect to the
supplied theme data. It no longer strictly requires the specification of
the '<closer>', '<title>', and '<maximizer>' nodes and the accompanied
png/tff data. Furthermore, the default.png can be left out if both decor
and aura have a size of zero.
2016-02-09 14:28:43 +01:00
Norman Feske
27b71a0876 window layouter: label-dependent window policies
This patch enhances the layouter to apply a label-dependent policy
for the placement of new windows. The policy may contain the
attributes 'xpos', 'ypos', and 'maximized'. If the latter is set
to "yes", the matching window will appear in maximized state.
2016-02-09 14:28:40 +01:00
Norman Feske
101b868cd4 gems: prevent invalid Nitpicker_buffer objects
This patch ensures that we never request a zero-sized virtual
framebuffer from nitpicker even when instantiating the object with zero
width or height. It therebu removes the burden of handling the resulting
invalid framebuffer dataspace from the user of the Nitpicker_buffer
utility.
2016-02-09 14:28:30 +01:00
Christian Helmuth
f3cce99933 Adapt terminal_mux.run to changes in cli_monitor
Subsystems are now configured via .subsystem files in the VFS directory
/subsystems. The adaption uses one <inline> node per subsystem.
2016-02-09 08:01:40 +01:00
Sebastian Sumpf
191cfd2c53 usb_drv: Add Natural Ergonomic 4000 keyboard support
fixes  #1878
2016-02-05 17:06:26 +01:00
Josef Söntgen
c10ad4ff01 ps2_drv: back down after unsucessful AUX access
The driver might end up in an endless loop on systems that do not
contain an i8042 controller when probing the AUX interface. This
leads to busy looping and in the end to not annoucing the Input
service. Components that wait for the announcement of the service
will therefore hang as well.

Normally a service gets announced only if it is usable but in this
case this is inconvient because it renders all scenarios that use
the input_merger non working on x86 systems that only provide USB
input and do not have PS/2 at all.

Ideally, the PS/2 driver should only be started if the system needs it.
That is currently not feasible and for the time being we post-pone the
inevitable and back down after several unsucessful attempts to read
from the AUX interface while initializing the driver.

Fixes #1871.
2016-02-05 10:59:10 +01:00
Alexander Boettcher
f572cf8a05 nova: stop submitting signals on dead sm caps
Fixes #1877
2016-02-05 10:57:04 +01:00
Alexander Boettcher
73de12999d ahci: fix ready status handling of ahci ports
Fixes #1875
2016-02-05 10:52:48 +01:00
Josef Söntgen
46e4c3dc9b usb_drv: release interfaces on Usb session close
Interfaces that have been claimed by a component always have to be
released when the session is closed in case the component
malfunctioned.

Fixes #1869.
2016-02-05 10:47:45 +01:00
Josef Söntgen
245dfc2c08 dde_ipxe: fix probing multiple NICs
Fixes #1870.
2016-02-05 10:47:45 +01:00
Christian Helmuth
81ff63c66b vfs stress: prevent warnings when logging size_t
Thanks @gapry for the observation.

Fixes #1868
2016-02-05 10:47:45 +01:00
Christian Helmuth
4506912f6e dde_ipxe: skip MAC/PHY reset on Intel NICs
Inspired by the mailing-list posting [1], this commit removes the
MAC/PHY reset for all Intel cards and effectively prevents the bandwidth
drop to 10 MBit/s (e.g., on i217lm). I understand it as preliminary fix
for practical reasons - a real fix would be to update the ipxe port and
monitor for more postings like the one mentioned.

[1] http://lists.ipxe.org/pipermail/ipxe-devel/2015-December/004511.html
2016-02-05 10:47:45 +01:00
Christian Helmuth
20c9b02326 Mark Server::Entrypoint noncopyable 2016-02-05 10:47:45 +01:00
Stefan Kalkowski
3bfd2aa3c9 nic_bridge: use the server framework (fix #1865)
Let the Server::Entrypoint do all the work: RPC and signal handling.
Additionally get rid of the Net::Env global environment.
2016-02-05 10:47:45 +01:00
Josef Söntgen
71b621775b vbox: remove USB (OHCI) pass-through support
The usage of the USBProxyDevice is no longer necessary because USB
pass-through is now supported by using the xHCI device model.

Issue #1863.
2016-02-05 10:47:44 +01:00
Josef Söntgen
a62859bb39 vbox: Enable XHCI + usb filter in runscript
Issue #1863.
2016-02-05 10:47:44 +01:00
Josef Söntgen
6a2aa903ca vbox: xHCI device model for USB pass-through
This device model enables USB2 and USB3 device passthrough support
for guests running in VirtualBox. It uses the qemu-usb library.

Fixes #1863.
2016-02-05 10:47:44 +01:00
Sebastian Sumpf
b2a1129bd9 vbox: support unaligned mmio writes
Issue #1863
2016-02-05 10:47:43 +01:00
Sebastian Sumpf
a640be9a24 qemu-usb: xHCI model as library
NEC USB3 controller ported from Qemu 2.4.1. See README for more
details.

Issue #1863.
2016-02-05 10:47:43 +01:00
Josef Söntgen
e233fe0b71 os: add component for filtering USB devices report
The 'usb_report_filter' component takes the devices report from the
USB driver and generates a new devices report after checking each
entry against its device white-list. Before emitting the new report
it changes the configuration of the USB driver to contain the
required policy entries.

See 'repos/os/src/app/usb_report_filter/README' for more details.

Issue #1863.
2016-01-27 16:15:34 +01:00
Sebastian Sumpf
716eab21e3 usb_drv: change Usb session and raw driver
- Use 'label' attribute to identify device instead of
  bus/dev and vendor_id/product_id

- Implement release_interface RPC

- Report 'label' as well as 'bus' and 'dev'

- Add policy handling to raw driver (includes reconfiguration
  at runtime)

- Use own memory backing store for large DMA allocations

Issue #1863.
2016-01-27 16:15:34 +01:00
Christian Helmuth
3daa8a3d04 report_rom: update documentation of policy config 2016-01-26 16:50:20 +01:00
Josef Söntgen
8982bc5843 intel_fb_drv: handle displays with EDID extensions
Fixes #1860.
2016-01-26 16:25:54 +01:00
Christian Helmuth
2a698ffd5f signal: prevent submission of contexts w/o receiver
This prevents a sporadic null-pointer dereference in the nic_loopback
test, which occurred once in 100 runs. I'm not sure if there's still a
race window (we may investigate) with context dissolve.
2016-01-26 16:20:47 +01:00
Stefan Kalkowski
b84a47b4db lxip: do not poll for nic session signals
Instead of polling for new Nic session signals, when waiting for
network packets with a timeout, block on the signal receiver, and
register a timer event beforehand using the same signal receiver.

Fix #1862
Ref #1864
2016-01-26 16:20:47 +01:00
Stefan Kalkowski
5fc9f68941 hw_x86_64: do not reference any muen specifics
Do not build core-muen_on library without the muen soecifier set.
Do not reference files of the muen contrib directory in the first
pass of make's rule analysis, when parding the muen specific kernel
makefile.

Fix #1859
2016-01-26 16:20:47 +01:00
Stefan Kalkowski
c3d4802ac8 hw: re-implement lazy FPU context switch
The new implementation of the FPU and FPU context is taken out to
separate architecture-dependent header files. The generic Cpu_lazy_state
is deleted. There is no hint about the existence of something like an
FPU in the generic non-architexture-dependent code anymore. Instead the
architecture-dependent CPU context of a thread is extended by an FPU
context where supported.

Moreover, the current FPU implementations are enhanced so that threads
that get deleted now release the FPU when still obtaining it.

Fix #1855
2016-01-26 16:20:38 +01:00
Martin Stein
f9ccfe3a04 tz_vmm usb_armory: document guest login data
The login data is otherwise only indirectly documented through the command that configures it in the rootfs tutorial [1].

[1] https://github.com/inversepath/usbarmory/wiki/Preparing-a-bootable-microSD-image#root-file-system

Fixes #1856
2016-01-26 16:20:38 +01:00
Alexander Boettcher
0423369f7f base: Unbound_thread exception in rm::add_client 2016-01-26 16:20:38 +01:00
Alexander Boettcher
7598f09295 nova: check for valid platform_pd pointer 2016-01-26 16:20:38 +01:00
Christian Helmuth
8e50464a1a linux: remove lx_environ symbol from audio_drv 2016-01-26 16:20:38 +01:00
Christian Helmuth
a09172aa7e linux: fix whitespace in nic_drv 2016-01-26 16:20:37 +01:00
Norman Feske
f045b1c680 ports: refined noux_fork test
Thanks to the log_terminal server, we no longer rely on a separate UART
for the noux output. We also skip the indirection of using a tar archive
but rather start the test-noux_form program as a mounted ROM module.
2016-01-26 16:20:37 +01:00
Norman Feske
fc6c2537ee vfs: add Rom_file_system::dataspace
By providing this function, we can start a mounted ROM module as program
under Noux.
2016-01-26 16:20:37 +01:00
Norman Feske
900c795df2 os: add Attached_rom_dataspace::cap accessor
The accessor works analogously to the Attached_dataspace.
2016-01-26 16:20:37 +01:00
Stefan Kalkowski
f539cf1231 hw: adjust core's signal thread's stack size
The stack size should be architecture dependent.

Fix #1854
2016-01-26 16:20:37 +01:00
Stefan Kalkowski
5afad64586 hw: preserve core's context-area (Fix #1853)
Remove core's context-area from its virtual memory allocator
2016-01-26 16:20:37 +01:00
Stefan Kalkowski
b0b4c3c7fa noux: consider stack alignment constraints
The interim stack in a forked noux process has to consider the architecture
dependent stack alignment constraints.

Fix #1852
2016-01-26 16:20:37 +01:00
Stefan Kalkowski
040cd95580 noux: fix context-area re-initialization in fork
With commit e74b53d5dd the fork semantic in noux
changed slightly, and broke platforms like hw & sel4, where the UTCB is mapped
directly into the thread's context area. The change moved the re-initialization
to a point where the new noux process' thread stack-pointer was already switched
back to the context area. But to re-initialize the context area RPC calls must
be done, and the UTCB must be used therefore. On the other side the UTCB is
found implicitly by the stack-pointer, whereby a stack-pointer located in the
context-area refers to a UTCB that is expected to reside in the context-area
as well. But the UTCB gets overlayed inside the context area by the
context-area's re-initialization - we've come round in a circle.

This commit rolls back the move of the re-initialization routine. To preserve
the intention of the original commit, the context-area location is stored in
a static variable, so that the Native_config API is not needed anymore.

Fix #1851
2016-01-26 16:20:36 +01:00
Stefan Kalkowski
e143683196 noux: remove dummy local ram service (Fix #1850) 2016-01-26 16:20:36 +01:00
Christian Helmuth
1616295179 x86emu: download from xorg.freedesktop.org
ftp.x.org has not been available for a week now.
2016-01-26 16:20:36 +01:00
Stefan Kalkowski
7aff1895bf hw: enable SMP for ARM Cortex A9
This commit enables multi-processing for all Cortex A9 SoCs we currently
support. Moreover, it thereby enables the L2 cache for i.MX6 that was not
enabled until now. However, the QEMU variants hw_pbxa9 and hw_zynq still
only use 1 core, because the busy cpu synchronization used when initializing
multiple Cortex A9 cores leads to horrible boot times on QEMU.

During this work the CPU initialization in general was reworked. From now
on lots of hardware specifics were put into the 'spec' specific files, some
generic hook functions and abstractions thereby were eliminated. This
results to more lean implementations for instance on non-SMP platforms,
or in the x86 case where cache maintainance is a non-issue.

Due to the fact that memory/cache coherency and SMP are closely coupled
on ARM Cortex A9 this commit combines so different aspects.

Fix #1312
Fix #1807
2016-01-26 16:20:18 +01:00
Martin Stein
2b2007bc3f hw: add Pl310::Debug register definitions
Ref #1312
2016-01-15 16:42:12 +01:00
Martin Stein
c58de0d80e hw_panda: driver for Cortex-A9 wakeup generator
Ref #1312
2016-01-15 16:42:12 +01:00
Martin Stein
5755245609 hw: end interrupts SMP-safe on ARM (Ref #1312) 2016-01-15 16:42:12 +01:00
Stefan Kalkowski
166672fe16 hw: l2 cache initialization is platform specific
On ARM Cortex A9 platforms the external PL310 L2 cache controller
needs to be initialized dependent on the SoC. For instance on Pandaboard
it needs to call the firmware running in TrustZone's secure world,
on i.MX6 it initializes it directly, on other boards it doesn't need
to be initialized at all, because the bootloader already did so.
Therefore, we should implement the PL310 intialization in board specific
code and not in the base class implementation.

Ref #1312
2016-01-15 16:42:12 +01:00
Stefan Kalkowski
e05d26567d hw: make 'smp' property an aspect (Ref #1312)
This commit separates certain SMP aspects into 'spec/smp' subdirectories.
Thereby it simplifies non-SMP implementations again, where no locking
and several platform specific maintainance operations are not needed.
Moreover, it moves several platform specifics to appropriated places,
removes dead code from x86, and starts to turn global static pointers
into references that are handed over.
2016-01-15 16:42:12 +01:00
Alexander Boettcher
c0a2388978 x86: avoid warning if memory is attached twice
Issue #1848
2016-01-13 14:59:05 +01:00
Alexander Boettcher
cec3ca6a70 x86: use slave label to differentiate device PDs
Issue #1848
2016-01-13 14:59:05 +01:00
Alexander Boettcher
82e35326b7 os: support different binary name for slaves
Issue #1848
2016-01-13 14:59:04 +01:00
Alexander Boettcher
daf67f7baa intel_fb: remove x201 workaround
The workaround is no longer needed as we now propagate the proper device
ID as BDF to the kernel in the platform driver.

Issue #1848
2016-01-13 14:58:01 +01:00
Alexander Boettcher
a258caa7ab nova: propagate bdf for assign_pci properly
Now, the right PCI bus:device:function (BDF) is reported to the kernel
during assign_pci syscall - beforehand it was ever 0:0.0. The BDF is
needed to lookup the correct DMAR unit the kernel has to configure. This
was revealed as the DMAR unit for Intel graphics on x201 is not the same
as for all other PCI devices we have drivers for on this platform.

Fixes #1848
2016-01-13 14:57:02 +01:00
Josef Söntgen
eb16ad3ad9 noux-pkg: port of tar-1.27
Issue #403
2016-01-13 14:49:11 +01:00
Emery Hemingway
9f9510ddb1 libc: implement fstatat by wrapping stat and lstat
Fixes #403
2016-01-13 14:49:11 +01:00
Emery Hemingway
3087b72438 os/path.h: new convenience functions
Infix operators == and !=.
Capacity accessor.

Issue #403
2016-01-13 14:49:11 +01:00
Martin Stein
b63941f456 hw imx53 tz_vmm: fix compiler warnings
There were warnings in tz_vmm/block.cc due to an unitialized variable.

Fixes #1849
2016-01-13 12:28:07 +01:00
Guido Witmond
2e0e767f93 Upgrade lighttpd to 1.4.38
Fixes #1839
2016-01-13 11:14:05 +01:00
Adrian-Ken Rueegsegger
8ab0638be9 platform_drv: report MSI masking capability 2016-01-13 11:14:04 +01:00
Emery Hemingway
b9c234a341 Libc: sigprocmask reports all signals blocked
Fixes #1756
2016-01-13 11:13:52 +01:00
Emery Hemingway
7186c45de6 noux: getdtablesize support
Fixes #1847
2016-01-08 15:07:58 +01:00
Emery Hemingway
976833f171 libc: getdtablesize support
Issue #1847
2016-01-08 15:07:57 +01:00
Emery Hemingway
2d50552522 Remove Genode namespace from File_system
Fixes #1845
2016-01-08 14:48:52 +01:00
Josef Söntgen
9fb08e045a libports: fix delay in SDL audio backend
Instead of using the 'alloc()' method to allocate new packets use
the 'next()' method with the previous packet. This is needed because
the last audio stack changes broke the semantics assumed by 'alloc()'.

We now keep track of the already queued packets by hand.

Fixes #1827.
2016-01-08 14:48:17 +01:00
Emery Hemingway
56c637c1f6 VFS tar: always set dirent type
Assume tar nodes with missing records are directories.

Fixes #1843
2016-01-08 14:37:58 +01:00
Josef Söntgen
b4c5fb2d29 sdl: use Genode::destroy to free framebuffer
Fixes #1838.
2016-01-08 14:37:57 +01:00
Christian Helmuth
a98e9c1822 libc: fix test for libc_block 2016-01-08 14:37:57 +01:00
Norman Feske
948cb3ef0a os: minor whitespace fixes in nic_loopback 2016-01-08 14:37:57 +01:00
Alexander Boettcher
1d5aa4ca7e nova: avoid warnings because of oom handling
Use kernel branch which is more accurate in accounting memory, which avoids
kernel messages of following form:

[0] warning: insufficient resources ...

Fixes #1830
2016-01-08 14:37:57 +01:00
Adrian-Ken Rueegsegger
b1b3c7bf34 doc: Extend Muen tutorial to match new build process 2016-01-08 14:37:57 +01:00
Adrian-Ken Rueegsegger
cb68f9a320 hw: Add kernel/spec/muen/target.mk to build Muen SK
This adds the automated compilation of the Muen Separation Kernel and
the required components to the hw_x86_64_muen build process.
2016-01-08 14:37:56 +01:00
Adrian-Ken Rueegsegger
8d2f2b0101 hw: Add port for Muen Separation Kernel
For additional information about the Muen SK refer to the project page
at [1].

[1] - http://muen.codelabs.ch/
2016-01-08 14:37:56 +01:00
Christian Helmuth
acab2515e1 base-linux: remove get_pid debug helper
Fixes #1829
2015-12-21 09:22:40 +01:00
Alexander Boettcher
7ee3e98551 nova: update kernel to fix assertion
Some special pages (0-page, 1-page) in the kernel must not be freed up
during PD destruction.

Fixes #1828
2015-12-18 15:04:25 +01:00
Christian Helmuth
6699290766 Optional label in Nic::Connection constructor
Fixes #1826
2015-12-17 15:15:24 +01:00
Christian Helmuth
c43bd472ac packet_stream: peek_packet() should be const
This also fixes the wrong return type.

Fixes #1800
2015-12-17 11:12:53 +01:00