Commit Graph

1396 Commits

Author SHA1 Message Date
Christian Helmuth da2076e52a usb: fix support for HID keyboard
This fixes issues with several HID keyboards by implementing
get_unaligned_le16(), which obviously may also fix other not-yet-known
issues. Hint: I had to look out for suspicious lines like follows in the
verbose log.

  [init -> usb_drv] get_unaligned_le16 called, not implemented

Also, quirks for cherry keyboards are now applied.
2013-03-26 12:21:44 +01:00
Alexander Boettcher 9a1d13c32d panda: add route to timer in run script
Fix #700
2013-03-25 11:21:32 +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
Norman Feske 26710729a3 Suppress warnings in release mode
Fixes #698
2013-03-22 17:28:07 +01:00
Norman Feske 613d980ff4 Remove debug message 2013-03-22 17:23:52 +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 839c0263c9 Fix warning on 64bit
Because the template instantiation rules of C++ do not deal well with
null pointers specified as '0', the constructor of 'Local_addr' was
instantiated for [T = int], which does not make sense. To avoid the
warning "cast to pointer from integer of different size", we need to
explicitly state that '0' is a pointer. In C++11, there is the 'nullptr'
keyword, but until we switch to this version, we have to state (void *)0.
2013-03-22 12:41:21 +01:00
Alexander Boettcher 1730132ef1 usb: fix linux header include setup phase
In usb.inc all required Linux include files of the Linux code are looked up
by 'sed'ing through the files of SRC_C and SRC_CC. The Linux include files
are then added as dependency to the SRC_C and SRC_CC files and during dependency
resolution symbolic links to the lx_emul.h will be created.

In the platform specific usb.mk file there are the Linux driver files
added, but unfortunately after including usb.inc. So, for them no dependency
to any Linux include header file is generated and so no symbolic files are
generated.

If the driver code file is compiled as first, as for asix.c, the symbolic links
of the include files are missing and compilation fails.

Add the Linux driver code files to SRC_C before including usb.inc in the
platform specific usb.mk files.
2013-03-21 17:09:08 +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 e38983a8fa Simple thread-affinity test 2013-03-21 12:54:02 +01:00
Norman Feske 297538678e foc: Create thread at core at construction time
Originally, a thread was created at core not before calling the 'start'
function. In order to configure the thread affinity before starting the
thread, we have to make the thread known at core right at construction
time. This patch moves the needed thread-creation sequence from the
'start' function to the '_init_platform_thread' function.
2013-03-21 12:47:42 +01:00
Norman Feske d7f85ef81f Add cli_monitor to terminal_mux.run 2013-03-21 11:44:34 +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
Norman Feske 4498a6b6a0 terminal: Add support for EL0 2013-03-21 11:44:34 +01:00
Norman Feske 764a3656a1 cxx: Decouple C++ runtime from 'env()->heap()' 2013-03-21 11:04:56 +01:00
Christian Prochaska 82aa092dac terminal_mux: increase RAM quota in run script
Fixes #694.
2013-03-20 14:22:43 +01:00
Christian Prochaska 570156b38c l4lx: allocate memory in chunks
When L4Linux tries to allocate a dataspace of the size of its physical
memory, this allocation can fail, because the 'l4re_ma_alloc()' function
in the 'l4lx' library always tries to allocate a contiguous dataspace of
the given size and there might be no contiguous free area left.

With this patch, memory gets allocated in chunks: if the size to be
allocated exceeds the configured chunk size, a managed dataspace gets
created and filled with multiple memory chunks of at most the chunk size.

The chunk size is 16M by default and can be configured in an l4linux
config node:

<config args="...">
	<ram chunk_size="16M"/>
</config>

Fixes #695.
2013-03-20 14:22:04 +01:00
Sebastian Sumpf 3ae2c1712e base-foc: Do not touch memory during map operation
Don't do anything in Mapping::prepare_map_operation.  At this point and in the
current implementation, the memory has been mapped and cleared already. Touching
the memory may only pollute the cache causing data corruption in DMA memory.

Fixes issue #452
2013-03-20 10:06:16 +01:00
Alexander Boettcher c95a6c54ea usb: grab urb sizes from driver
Instead of hardcoding the values, ask the driver for the supported sizes and
allocate the skb allocators accordingly.
2013-03-20 10:06:16 +01:00
Alexander Boettcher 9abf88c195 usb: add network support for arndale board 2013-03-20 10:06:16 +01:00
Sebastian Sumpf 78c752b1c7 usb: Rewrote back-end allocators
Allocate back-end memory dynamically.
2013-03-20 10:06:16 +01:00
Torsten Hilbrich 87f83c1cff build.mk: Fix dependency on $(LIB_DEP_FILE)
The previous fix in 6b33757154 was
invalid.
2013-03-20 10:02:34 +01:00
Alexander Boettcher ac9c8c769c remove obsolete port target 2013-03-20 10:00:54 +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
Markus Partheymüller 4bb0a8231e vancouver: calculate STACK_SIZE from addr_t size.
This is necessary on 64bit host.
2013-03-18 13:10:29 +01:00
Alexander Boettcher 8bc719ee1d nova: show badge as name during page fault message 2013-03-18 13:10:21 +01:00
Alexander Boettcher e85e11bec1 vmm: try to reserve lower virtual address space
It's not guaranteed to be robust and will break in the future - I told you.

Related to issue #365, issue #519, issue #666
2013-03-18 13:10:03 +01:00
Markus Partheymüller 40e27b2379 vancouver: correct framebuffer size. 2013-03-18 13:09:53 +01:00
Markus Partheymüller b8eb9b534d Switch to Seoul VMM repository instead of NUL
In this version of the transition the Hip structure from Genode is reused,
@nfeskes seoul_libc_support is used for the string functions and the
nul/config.h is replaced by just using a constant value in the one place where
the file was needed.

Related to #666.
2013-03-18 13:09:45 +01:00
Norman Feske 9d0a377efe Add 'seoul_libc_support' library
This library contains the subset of the libc that is needed for the
Seoul VMM.

Related to issue #666.
2013-03-18 13:09:16 +01:00
Alexander Boettcher 0c8b996fa4 base: calculate initial junk based on 32/64 host
Issue #666
2013-03-18 13:07:22 +01:00
Christian Prochaska b38fee2867 L4Linux stability improvements
- search for alternative virtual address regions upwards, starting from
  the given start address, in the 'l4re_rm_attach()' and
  'Region_manager::reserve_range()' functions

- don't treat memory locations above 0x80000000 in l4linux's virtual
  address space as device memory

- align the start address of the vmalloc area according to the assumption
  in 'devicemaps_init()'

Fixes #414.
2013-03-18 13:06:06 +01:00
Christian Prochaska a59b2e3f16 terminal: 'ED' command fix
Fixes #691.
2013-03-18 13:02:21 +01:00
Christian Prochaska 0530ff3241 terminal: weaken color argument order requirement
With this patch, the escape sequence decoder can handle a two-argument
'SGR' command with the attribute/color arguments in any order.

Fixes #690.
2013-03-18 13:02:02 +01:00
Norman Feske 171aa332b7 foc: Extend irq mode heuristics
Explicitly set default mode for legacy interrupts to not rely on kernel
default settings. This patch fixes the constantly busy IRQ threads for
IRQ 1 and 12 as soon as the PS/2 driver was loaded until the point when
the first IRQ occurred.
2013-03-14 19:24:52 +01:00
Norman Feske 91b0578446 foc: Select "thread-ready" bit in pause function 2013-03-14 16:37:29 +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
Stefan Kalkowski 0f38335188 base-foc: remove links to obsolete initrd archives
Fix #686
2013-03-14 10:50:33 +01:00
Stefan Kalkowski 0bc02b439a L4Linux: fix usage of l4_touch_xx (fix #682)
Use size in bytes, when touching memory via l4_touch_ro or l4_touch_rw, instead
of log2 size.
2013-03-14 10:50:14 +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
Norman Feske 352f58b94b core: New utilities for object lifetime management 2013-03-12 21:53:08 +01:00
Norman Feske 989f662f46 base-host: Adaptation to changed lock-internal API 2013-03-12 21:53:08 +01:00