Commit Graph

80 Commits

Author SHA1 Message Date
Sebastian Sumpf 5f0843082a usb_drv: XHCI support for x86-architectures
USB 3.0 support on x86 (64/32) platforms, as well as pci support for XHCI
controllers.

Issue #1084
2014-03-06 14:56:52 +01:00
Sebastian Sumpf dd974f00f7 usb_drv: Fix implicit declaration warnings
Issue #1050
2014-02-28 10:11:08 +01:00
Sebastian Sumpf 481a8ede5f lxip: Fix implicit declaration warning
Issue #1050
2014-02-25 14:58:06 +01:00
Stefan Kalkowski eeb2d95b1f block: prevent from dereferencing invalid pointers
Until now, block drivers had to deal with a pointer to the client
session component, e.g.: to acknowledge block packets already processed.
When a session was closed, the driver object wasn't informed explicitly,
which leads to defensive programming, or lastly to a race-condition in
test-blk-srv. To prevent from this class of errors, the pointer is now
private to the generic block driver base class, and not accessible to
the concrete driver implementation. Moreover, the driver gets explicitly
informed when a session got invalidated.

Ref #113
2014-02-25 14:58:02 +01:00
Stefan Kalkowski 7876dfcb5e block: free packet stream dataspace on destruction
Fixes #1033
2014-01-30 10:05:44 +01:00
Christian Helmuth 3234e4f775 Make Deallocator::need_size_for_free() pure virtual 2014-01-30 10:05:43 +01:00
Christian Helmuth 32f6d75cdb Fix compiler warnings 2014-01-28 09:27:09 +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
Stefan Kalkowski 6a076ff621 block: use new server framework in block drivers
As a side effect, the entrypoints in the USB driver are merged into one thread.

Fixes #1027
2014-01-27 18:53:52 +01:00
Sebastian Sumpf 880930cb4f lxip: support configuration of libc plugin
Added support for the 'ip_addr', 'gateway', and 'netmask' configuration
parameter.

Issue #984
2014-01-16 18:34:06 +01:00
Stefan Kalkowski 56a7d00a44 block: extend generic driver API (Ref #750)
* allow to handle a maximum of packets in parallel
  that fits free slots in the ack queue
* stop processing packets, when the driver can't handle
  more requests in parallel, and resume packet handling,
  when the driver is ready again
2013-12-19 11:34:04 +01:00
Stefan Kalkowski b10b9e20a2 block: support for block number >32 bit (Fix #968) 2013-12-19 11:34:04 +01:00
Stefan Kalkowski 277ca33988 usb block: use generic block driver API (Fix #966) 2013-12-09 10:49:16 +01:00
Christian Helmuth 1ba4e033a7 lxip: fake get_random_bytes() 2013-12-03 10:40:22 +01:00
Martin Stein 062aa2851c usb & panda: move EHCI-interrupt to board spec
ref #981
2013-11-28 08:22:24 +01:00
Sebastian Sumpf 54667241f7 usb_drv: Use GPIO driver on PandaBoard
Also updated run scripts.

Issue #708
2013-11-26 14:32:06 +01:00
Sebastian Sumpf 5e17fef898 lxip: Port of the Linux TCP/IP stack 2013-11-26 14:32:05 +01:00
Stefan Kalkowski 50d73e7890 block_session: extend interface with sync() call
To support components, which implement the block session's server side
rpc object, and which doesn't write data to their device backend immediately,
an additional synchronization call is needed. Thereby, clients like for
instance a file system can tell these components, when a synchronization is
required.

Ref #113
2013-11-25 12:12:31 +01:00
Norman Feske b7b8d22bc3 dde_linux/rpi: Enable USB power on startup
Needed when booting Genode directly from SD card w/o u-boot.
2013-11-25 09:46:09 +01:00
Norman Feske 93c7e852e9 dde_linux: USB networking for rpi
Even though the network adaptor gets initialized, networking is not
functional yet.
2013-11-25 09:46:09 +01:00
Norman Feske 435bdd5755 dde_linux: Support for Raspberry Pi
At the current stage, the USB HID and storage drivers are prinicpally
working but not stable. If interrupts are not processed fast enough,
devices will get sporadically disconnected.

The USB host-controller driver is not part of the normal Linux kernel.
For this reason, we need to download it separately. There exists a
'prepare_rpi' rule in the 'dde_linux/Makefile' to automate this process.
2013-11-25 09:46:09 +01:00
Norman Feske 0db203fb75 dde_linux: Limit number of merged IRQs
This change makes Irq_context::_handle_one robust against misbehaving
IRQ handlers that always return IRQ_HANDLED, specifically dwc_otg.
2013-11-25 09:46:09 +01:00
Martin Stein ba1a82b485 arndale: centralize spec of interrupt names
ref #874
2013-11-14 19:56:39 +01:00
Sebastian Sumpf 5774a864b1 usb_drv: Fix PHY initialization for DWC3 XHCI
Make high speed (HS) and super speed (SS) hub use the same reference clock.
Also upgrade some quotas in USB run scripts.

Fixes #929.
2013-10-24 15:21:36 +02:00
Martin Stein ee5d213c1f base: do not allow unnamed threads
fix #901
2013-10-22 08:00:07 +02:00
Josef Söntgen e1ed832ac1 USB-storage: free Packet_descriptor after ACK
Fixes #903.
2013-10-17 11:04:25 +02:00
Alexander Boettcher d1c0258301 usb: fix storage with IOMMU enabled
Fixes #747
2013-10-16 09:26:09 +02:00
Norman Feske 7f86eb3805 dde_linux: Fix MAC validity check 2013-09-23 14:26:01 +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
Christian Prochaska 5059f2e0b6 usb_drv: initialize '_tx_alloc' variable
Fixes #867.
2013-09-02 19:44:19 +02:00
Alexander Boettcher b142939d14 usb: fix usb stack when used with IOMMU
Fixes #683
2013-08-30 13:34:01 +02:00
Stefan Kalkowski b3dd45942e usb_drv: change Driver_context to Signal_dispatcher
Fixes #861
2013-08-30 13:26:29 +02:00
Christian Prochaska a0a91475d1 dde_linux: remove superfluous 'msleep()' calls
Fixes #860.
2013-08-30 13:21:17 +02:00
Sebastian Sumpf dae8ca2952 usb_drv: Remove wait events for Nic
'alloc_skb' might now fail, the Nic component will then send a 'packet
available' signal and return. Fix broken SKB list implementation as well as
completely bogus initialization of SKBs.

Related to #778.
2013-07-15 17:11:06 +02:00
Christian Helmuth 4807d469ca Revert "usb_drv: Wait for IRQ on SKB exhaustion"
The fix overly influences gigabit ethernet performance (~200 MBit), so,
we need to investigate further.

This reverts commit aacb91f22a.

Reopen #788.
2013-07-08 15:55:31 +02:00
Sebastian Sumpf aacb91f22a usb_drv: Wait for IRQ on SKB exhaustion
Do not use 'wait_event' when SKB-backend allocation fails, explicitly wait for
an interrupt, which in turn frees SKBs, instead.

Fixes issue #788
2013-07-02 08:50:40 +02:00
Stefan Kalkowski 9263079f70 USB 3.0 & exynos5: don't close regulator session
When leaving constructor of EHCI & XHCI driver don't close the regulator session,
otherwise it'll power down the device.
2013-06-28 14:27:27 +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
Sebastian Sumpf cc0f4bc9d2 usb_drv: Fix performance of ASIX AX88772
Caused by #773
2013-06-24 11:48:37 +02:00
Sebastian Sumpf 71490e131b usb_drv: Dimension queues for usbnet
+ Some code cleanup

Ref #773
2013-06-24 11:48:37 +02:00
Sebastian Sumpf c3537d175c usb_drv: Use platform drivers and regulator
Ref #773
2013-06-24 11:48:37 +02:00
Sebastian Sumpf 231d92f88a usb: Fix AX88179 receive CRC errors
Call 'set_multicast' and 'link_reset' during card startup. Increase TX skb
buffer allocator.

Ref #773
2013-06-24 11:48:36 +02:00
Sebastian Sumpf fbbd2018bb usb: Storage support for ARM 2013-05-22 21:01:14 +02:00
Sebastian Sumpf cda25a481b usb: Make host controller types configurable
The host controller type (u/e/xhci) usded by the drivers can be configured
through attributes of the config node. See: README
2013-05-18 11:23:02 +02:00
Sebastian Sumpf 6d07fff07c usb: ASIX AX88179 Gigabit-Ethernet Adapter support 2013-05-18 11:23:02 +02:00
Sebastian Sumpf 6928821f52 usb: DWC3 and XHCI support
Arndale platform only.
2013-05-18 11:23:02 +02:00
Sebastian Sumpf 5c78ef20a2 usb: Upgrade to Linux-3.9.0-rc8 stack 2013-05-18 11:23:02 +02:00
Sebastian Sumpf 529e791d66 usb: Upgrade to Linux-3.8.6 stack 2013-05-18 11:23:02 +02:00
Alexander Boettcher 901439211c net: net_stat instrumented version of usb_drv 2013-05-10 11:16:10 +02:00