doc: update components, porting guide, README

This commit is contained in:
Christian Helmuth 2015-08-28 15:33:41 +02:00
parent f4cadb8406
commit 41be88667f
3 changed files with 30 additions and 30 deletions

View File

@ -28,7 +28,7 @@ of them is briefly characterized as follows:
via core's IO_MEM, IO_PORT, and IRQ services. The functionality of via core's IO_MEM, IO_PORT, and IRQ services. The functionality of
the driver is made available to other system components by announcing the driver is made available to other system components by announcing
one of Genode's device-independent session interfaces, which are one of Genode's device-independent session interfaces, which are
'pci_session', 'framebuffer_session', 'input_session', 'block_session', 'platform_session', 'framebuffer_session', 'input_session', 'block_session',
'audio_out_session', 'log_session', 'nic_session', and 'timer_session' 'audio_out_session', 'log_session', 'nic_session', and 'timer_session'
(see 'os/include/' for the interface definitions). Those interfaces are (see 'os/include/' for the interface definitions). Those interfaces are
uniform across hardware platforms and kernel base platforms. Usually, uniform across hardware platforms and kernel base platforms. Usually,
@ -67,20 +67,17 @@ repositories. The most predominant repositories hosting device drivers are
Platform devices Platform devices
================ ================
:'os/src/drivers/platform/': Platform drivers for various ARM boards. :'os/src/drivers/platform/': Platform drivers for various platforms.
On x86, the platform driver uses the PCI controller as found on x86 PC
:'os/src/drivers/pci': hardware. A client can probe for a particular device and request information
Implements the PCI-session interface using the PCI controller as found on about physical device resources (using the 'platform_device' interface). I/O
x86 PC hardware. Using this interface, a client can probe for a particular resources for MMIO regions, I/O ports, and interrupts can be requested by the
device and request information about physical device resources (using the provided device abstraction.
'pci_device' interface). I/O resources for MMIO regions, I/O ports, and
interrupts can be requested by the provided PCI device abstraction.
:'os/src/drivers/acpi': :'os/src/drivers/acpi':
On x86 platforms that use the APIC (namely Fiasco.OC, NOVA, and hw_x86_64) On x86 platforms that use the APIC (namely Fiasco.OC, NOVA, and hw_x86_64)
this simple ACPI parser traverses the ACPI tables and updates interrupt line this simple ACPI parser traverses the ACPI tables and reports device-resource
information of PCI devices within the PCI config space. It uses the pci_drv as information (e.g., interrupt lines of PCI devices).
a utility started as a child and exports its interface.
UART devices UART devices
@ -180,16 +177,17 @@ provided by the kernel, or a pseudo time source (busy):
:'linux': nanosleep as time source :'linux': nanosleep as time source
Audio output drivers Audio drivers
==================== =============
All audio-output drivers implement the audio session interface defined at Audio drivers implement the Audio_out session interface defined at
'os/include/audio_out_session/'. 'os/include/audio_out_session/' for playback and optionally the audio_in
interface for recording.
:'os/src/drivers/audio_out/linux': :'os/src/drivers/audio/linux':
Uses ALSA as back-end on the Linux base platform. Uses ALSA as back-end on the Linux base platform and supports only playback.
:'dde_bsd/src/drivers/audio_out': :'dde_bsd/src/drivers/audio':
Sound drivers ported from OpenBSD. Currently, the repository Sound drivers ported from OpenBSD. Currently, the repository
includes support for Intel HD Audio as well as for Ensoniq AudioPCI includes support for Intel HD Audio as well as for Ensoniq AudioPCI
(ES1370) compatible sound cards. (ES1370) compatible sound cards.
@ -262,6 +260,9 @@ General-purpose I/O drivers
:'os/src/drivers/gpio/imx53': :'os/src/drivers/gpio/imx53':
Driver for accessing the GPIO pins of i.MX53 platforms. Driver for accessing the GPIO pins of i.MX53 platforms.
:'os/src/drivers/gpio/rpi':
Driver for accessing the GPIO pins of Raspberry Pi platforms.
Resource multiplexers Resource multiplexers
##################### #####################

View File

@ -396,7 +396,7 @@ at _ports/run/dosbox.run_.
First, we specify the components that need to be built First, we specify the components that need to be built
! set build_components { ! set build_components {
! core init drivers/audio_out drivers/framebuffer drivers/input ! core init drivers/audio drivers/framebuffer drivers/input
! drivers/pci drivers/timer server/tar_fs app/dosbox ! drivers/pci drivers/timer server/tar_fs app/dosbox
! } ! }
! build $build_components ! build $build_components
@ -429,7 +429,7 @@ Nextm we provide the scenario's configuration 'config':
! <default-route> ! <default-route>
! <any-service> <parent/> <any-child/> </any-service> ! <any-service> <parent/> <any-child/> </any-service>
! </default-route> ! </default-route>
! <start name="audio_out_drv"> ! <start name="audio_drv">
! <resource name="RAM" quantum="6M"/>} ! <resource name="RAM" quantum="6M"/>}
! <provides><service name="Audio_out"/></provides> ! <provides><service name="Audio_out"/></provides>
! </start> ! </start>
@ -466,7 +466,7 @@ components and application of the scenario, including DosBox.
Thereafter we declare all boot modules: Thereafter we declare all boot modules:
! set boot_modules { ! set boot_modules {
! core init timer audio_out_drv fb_drv ps2_drv ld.lib.so ! core init timer audio_drv fb_drv ps2_drv ld.lib.so
! libc.lib.so libm.lib.so ! libc.lib.so libm.lib.so
! lwip.lib.so libpng.lib.so stdcxx.lib.so sdl.lib.so ! lwip.lib.so libpng.lib.so stdcxx.lib.so sdl.lib.so
! pthread.lib.so zlib.lib.so dosbox dosbox.tar ! pthread.lib.so zlib.lib.so dosbox dosbox.tar
@ -1137,7 +1137,7 @@ Even though Genode encourages writing native device drivers, this task sometimes
becomes infeasible. Especially if there is no documentation available for a becomes infeasible. Especially if there is no documentation available for a
certain device or if there are not enough programming resources at hand to certain device or if there are not enough programming resources at hand to
implement a fully fledged driver. Examples of ported drivers can be found in implement a fully fledged driver. Examples of ported drivers can be found in
the 'dde_linux', 'dde_oss', and 'dde_ipxe' repositories. the 'dde_linux', 'dde_bsd', and 'dde_ipxe' repositories.
In this chapter we will exemplary discuss how to port a Linux driver for an ARM In this chapter we will exemplary discuss how to port a Linux driver for an ARM
based SoC to Genode. The goal is to execute driver code in user land directly on based SoC to Genode. The goal is to execute driver code in user land directly on

View File

@ -61,10 +61,9 @@ but build upon of each other:
Codezero microkernel developed by B-Labs Codezero microkernel developed by B-Labs
See [http://genode.org/documentation/platforms/codezero] See [http://genode.org/documentation/platforms/codezero]
:'host': :'sel4':
Pseudo platform documenting the interface between the generic and seL4 microkernel developed at NICTA/General Dynamics
platform-specific parts of the base framework. This is not a functional See[https://sel4.systems/]
base platform.
:'os': :'os':
@ -102,10 +101,10 @@ but build upon of each other:
This source-code repository contains the device-driver environment for This source-code repository contains the device-driver environment for
executing drivers of the iPXE project. executing drivers of the iPXE project.
:'dde_oss': :'dde_bsd':
This source-code repository contains the device-driver environment for the This source-code repository contains the device-driver environment for
audio drivers of the Open Sound System (OSS). drivers of the OpenBSD operating system.
:'dde_rump': :'dde_rump':