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
|
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
|
||||||
#####################
|
#####################
|
||||||
|
|
|
@ -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
|
||||||
|
|
13
repos/README
13
repos/README
|
@ -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':
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue