mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-24 07:46:42 +00:00
doc: update components, porting guide, README
This commit is contained in:
parent
f4cadb8406
commit
41be88667f
@ -28,7 +28,7 @@ of them is briefly characterized as follows:
|
||||
via core's IO_MEM, IO_PORT, and IRQ services. The functionality of
|
||||
the driver is made available to other system components by announcing
|
||||
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'
|
||||
(see 'os/include/' for the interface definitions). Those interfaces are
|
||||
uniform across hardware platforms and kernel base platforms. Usually,
|
||||
@ -67,20 +67,17 @@ repositories. The most predominant repositories hosting device drivers are
|
||||
Platform devices
|
||||
================
|
||||
|
||||
:'os/src/drivers/platform/': Platform drivers for various ARM boards.
|
||||
|
||||
:'os/src/drivers/pci':
|
||||
Implements the PCI-session interface using the PCI controller as found on
|
||||
x86 PC hardware. Using this interface, a client can probe for a particular
|
||||
device and request information about physical device resources (using the
|
||||
'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/platform/': Platform drivers for various platforms.
|
||||
On x86, the platform driver uses the PCI controller as found on x86 PC
|
||||
hardware. A client can probe for a particular device and request information
|
||||
about physical device resources (using the 'platform_device' interface). I/O
|
||||
resources for MMIO regions, I/O ports, and interrupts can be requested by the
|
||||
provided device abstraction.
|
||||
|
||||
:'os/src/drivers/acpi':
|
||||
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
|
||||
information of PCI devices within the PCI config space. It uses the pci_drv as
|
||||
a utility started as a child and exports its interface.
|
||||
this simple ACPI parser traverses the ACPI tables and reports device-resource
|
||||
information (e.g., interrupt lines of PCI devices).
|
||||
|
||||
|
||||
UART devices
|
||||
@ -180,16 +177,17 @@ provided by the kernel, or a pseudo time source (busy):
|
||||
:'linux': nanosleep as time source
|
||||
|
||||
|
||||
Audio output drivers
|
||||
====================
|
||||
Audio drivers
|
||||
=============
|
||||
|
||||
All audio-output drivers implement the audio session interface defined at
|
||||
'os/include/audio_out_session/'.
|
||||
Audio drivers implement the Audio_out session interface defined at
|
||||
'os/include/audio_out_session/' for playback and optionally the audio_in
|
||||
interface for recording.
|
||||
|
||||
:'os/src/drivers/audio_out/linux':
|
||||
Uses ALSA as back-end on the Linux base platform.
|
||||
:'os/src/drivers/audio/linux':
|
||||
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
|
||||
includes support for Intel HD Audio as well as for Ensoniq AudioPCI
|
||||
(ES1370) compatible sound cards.
|
||||
@ -262,6 +260,9 @@ General-purpose I/O drivers
|
||||
:'os/src/drivers/gpio/imx53':
|
||||
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
|
||||
#####################
|
||||
|
@ -396,7 +396,7 @@ at _ports/run/dosbox.run_.
|
||||
First, we specify the components that need to be built
|
||||
|
||||
! 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
|
||||
! }
|
||||
! build $build_components
|
||||
@ -429,7 +429,7 @@ Nextm we provide the scenario's configuration 'config':
|
||||
! <default-route>
|
||||
! <any-service> <parent/> <any-child/> </any-service>
|
||||
! </default-route>
|
||||
! <start name="audio_out_drv">
|
||||
! <start name="audio_drv">
|
||||
! <resource name="RAM" quantum="6M"/>}
|
||||
! <provides><service name="Audio_out"/></provides>
|
||||
! </start>
|
||||
@ -466,7 +466,7 @@ components and application of the scenario, including DosBox.
|
||||
Thereafter we declare all 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
|
||||
! lwip.lib.so libpng.lib.so stdcxx.lib.so sdl.lib.so
|
||||
! 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
|
||||
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
|
||||
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
|
||||
based SoC to Genode. The goal is to execute driver code in user land directly on
|
||||
|
13
repos/README
13
repos/README
@ -61,10 +61,9 @@ but build upon of each other:
|
||||
Codezero microkernel developed by B-Labs
|
||||
See [http://genode.org/documentation/platforms/codezero]
|
||||
|
||||
:'host':
|
||||
Pseudo platform documenting the interface between the generic and
|
||||
platform-specific parts of the base framework. This is not a functional
|
||||
base platform.
|
||||
:'sel4':
|
||||
seL4 microkernel developed at NICTA/General Dynamics
|
||||
See[https://sel4.systems/]
|
||||
|
||||
:'os':
|
||||
|
||||
@ -102,10 +101,10 @@ but build upon of each other:
|
||||
This source-code repository contains the device-driver environment for
|
||||
executing drivers of the iPXE project.
|
||||
|
||||
:'dde_oss':
|
||||
:'dde_bsd':
|
||||
|
||||
This source-code repository contains the device-driver environment for the
|
||||
audio drivers of the Open Sound System (OSS).
|
||||
This source-code repository contains the device-driver environment for
|
||||
drivers of the OpenBSD operating system.
|
||||
|
||||
:'dde_rump':
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user