Documentation/Maemo 5 Developer Guide/Architecture/Core Domain

(categorise)
(wikify slightly, reformat tables as definitions)
Line 1: Line 1:
-
=Core components=
 
-
 
-
 
[[Image:core_top_level_decomposition.png|500px]]
[[Image:core_top_level_decomposition.png|500px]]
-
 
==Nolo bootloader==
==Nolo bootloader==
-
{|cellspacing="0" border="1" width="70%"
+
;Name
-
|'''Name'''||'''NoLo (Nokia Loader)'''
+
: NoLo (Nokia Loader)
-
|-
+
;Purpose
-
|'''Purpose'''||The bootloader does basic configuration of the HW, loads the kernel into memory, and passes control to the kernel. In addition to this basic task the NoLo boot loader has many features to support R&D. (The capability to flash the device is currently implemented in NoLo but it will become an R&D feature once flashing is moved to user space.)
+
: The bootloader does basic configuration of the HW, loads the kernel into memory, and passes control to the kernel. In addition to this basic task the NoLo boot loader has many features to support R&D. (The capability to flash the device is currently implemented in NoLo but it will become an R&D feature once flashing is moved to user space.)
-
|-
+
;Responsibilities
-
|'''Responsibilities'''||*Load kernel into memory <br>*Initialize HW so that kernel is able to boot <br>*Pass ATAGs to the kernel and transfer execution to the kernel <br>*Production line flashing functionality <br>*Creates partitions
+
: <ul><li>Load kernel into memory</li><li>Initialize HW so that kernel is able to boot</li><li>Pass ATAGs to the kernel and transfer execution to the kernel </li><li>Production line flashing functionality</li><li>Creates partitions</li></ul>
-
|-
+
;Package / License
-
|'''Package / License'''||nolo / Nokia
+
: nolo / Nokia
-
|}
+
-
 
+
==Linux Kernel==
==Linux Kernel==
-
{|cellspacing="0" border="1" width="70%"
+
;Purpose
-
|Name||Linux kernel
+
: The function of the kernel code is to provide all the basic services and hardware interfaces of the Linux operating system for the underlying programs. The kernel also passes the control to the chosen user space program (usually <code>/sbin/init</code>) after initializing its own structures and drivers. When the kernel starts up, it checks a lot of the available subsystems and initializes everything according to the kernel configuration chosen at compile time. Some subsystems will be left uninitialized by the boot loader, for example, the display subsystem.
-
|-
+
;Responsibilities
-
|Purpose||The function of the kernel code is to provide all the basic services and hardware interfaces of the Linux operating system for the underlying programs. The kernel also passes the control to the chosen user space program (usually /sbin/init) after initializing its own structures and drivers. When the kernel starts up, it checks a lot of the available subsystems and initializes everything according to the kernel configuration chosen at compile time. Some subsystems will be left uninitialized by the boot loader, for example, the display subsystem.
+
: The operating system kernel
-
|-
+
;Notes
-
|Responsibilities||The operating system kernel
+
: Maemo specific functionality is in OMAP3 & Rover HW specific code. OMAP3 support is developed, generally speaking, in the linux-omap tree, from which code is pulled into Maemo kernel.
-
|-
+
;Package / License
-
|Notes||Maemo specific functionality is in OMAP3 & Rover HW specific code. OMAP3 support is developed, generally speaking, in the linux-omap tree, from which code is pulled into Maemo kernel.
+
: kernel / GPL2
-
|-
+
;Public interfaces provided
-
|Package / License||kernel / GPL2
+
: Linux kernel API: Linux system calls accessed through the C library
-
|-
+
-
|Public interfaces provided||Linux kernel API: Linux system calls accessed through the C library.
+
-
|}
+
-
 
+
===Kernel core services===
===Kernel core services===
-
{|cellspacing="0" border="1" width="70%"
 
-
|'''Name'''||'''Kernel core services'''
 
-
|-
 
-
|'''Purpose'''||The Linux core services comprise generic, hardware independent code.
 
-
|-
 
-
|'''Responsibilities'''||*memory management <br>*process management <br>*device management <br>*inter-process communication…
 
-
|-
 
-
|'''Notes'''||Used as is.
 
-
|-
 
-
|'''Package / License'''||kernel / GPL2
 
-
|}
 
 +
;Purpose
 +
: The Linux core services comprise generic, hardware independent code.
 +
;Responsibilities
 +
: <ul><li>memory management</li><li>process management</li><li>device management</li><li>inter-process communication…</li></ul>
 +
;Notes
 +
: Used as is.
 +
;Package / License
 +
: kernel / GPL2
===ARM architecture support===
===ARM architecture support===
-
{|cellspacing="0" border="1" width="70%"
+
;Purpose
-
|'''Name'''||'''ARM architecture support'''
+
: The ARM architecture subsystem in the kernel provides mainly ARM specific implementations of necessary core mechanisms.
-
|-
+
;Responsibilities
-
|'''Purpose'''||The ARM architecture subsystem in the kernel provides mainly ARM specific implementations of necessary core mechanisms.
+
: ARM specific implementations of kernel mechanisms.
-
|-
+
;Notes
-
|'''Responsibilities'''||ARM specific implementations of kernel mechanisms.
+
: Used as is.
-
|-
+
;Package / License
-
|'''Notes'''||Used as is.
+
: kernel / GPL2
-
|-
+
-
|'''Package / License'''||kernel / GPL2
+
-
|}
+
-
 
+
===Kernel framework===
===Kernel framework===
-
{|cellspacing="0" border="1" width="70%"
+
;Purpose
-
|'''Name'''||'''Kernel frameworks (virtual services & subsystems)'''
+
: The low level HW drivers provide the concrete implementation that is bound to the virtual services in the Linux kernel to provide the complete functionality.  
-
|-
+
;Responsibilities
-
|'''Purpose'''||The low level HW drivers provide the concrete implementation that is bound to the virtual services in the Linux kernel to provide the complete functionality.  
+
: <ul><li>ALSA & Video for Linux 2 (V4L2) APIs,Networking stack, BlueZ (Bluetooth), mac80211 (WLAN), USB core</li><li>Virtual File System, file systems, block devices, MTD</li><li>Frame buffer, serial port, input layer (keyboard, touch screen)</li></ul>
-
|-
+
;Package / License
-
|'''Responsibilities'''||*ALSA & Video for Linux 2 (V4L2) APIs,Networking stack, BlueZ (Bluetooth), mac80211 (WLAN), USB core <br> *Virtual File System, file systems, block devices, MTD <br>*Frame buffer, serial port, input layer (keyboard, touch screen)
+
: kernel / GPL2
-
|-
+
;Public interfaces provided
-
|'''Package / License'''||kernel / GPL2
+
: <ul><li>ALSA: Advanced Linux Sound Architecture, de facto Linux sound API.</li><li>V4L2: Video for Linux 2, de facto video capture API + Maemo specific ioctls</li><li>Camera ioctls: Extensions to V4L2 interface used by the camera daemon.</li><li>File systems: FAT16/32, EXT3 and UBIFS file systems are currently supported on the platform.</li><li>Frame buffer: The raw frame buffer interface is used in early stages of the boot.</li><li>Input layer: The input layer events are routed via X to applications.</li><li>Serial port: Available for R&D use.</li></ul>
-
|-
+
-
|'''Public interfaces provided'''||*ALSA: Advanced Linux Sound Architecture, de facto Linux sound API. <br>*V4L2: Video for Linux 2, de facto video capture API + Maemo specific ioctls<br>*Camera ioctls: Extensions to V4L2 interface used by the camera daemon.<br>*File systems: FAT16/32, EXT3 and UBIFS file systems are currently supported on the platform. <br>*Frame buffer: The raw frame buffer interface is used in early stages of the boot. <br>*Input layer: The input layer events are routed via X to applications. <br>*Serial port: Available for R&D use.
+
-
|}
+
-
 
+
===OMAP3 support===
===OMAP3 support===
-
{|cellspacing="0" border="1" width="70%"
+
;Purpose
-
|'''Name'''||'''OMAP3 support'''
+
: OMAP specific code implements the device drivers and bus support for the specific hardware included in the OMAP3430 chip. The supported OMAP3 subsystems are described in the following subsections.
-
|-
+
;Responsibilities
-
|'''Purpose'''||OMAP specific code implements the device drivers and bus support for the specific hardware included in the OMAP3430 chip. The supported OMAP3 subsystems are described in the following subsections.
+
: <ul><li>DMA: OMAP3 has a 32 channel general purpose DMA controller, display DMA, HS USB DMA, and IVA 2.2 DMA (not supported).</li><li>Interrupt handling:OMAP3 has an interrupt controller (MPU INTC) with 96 synchronous interrupt lines.</li><li>OMAP3 specific power management functionality: The power management functionality is built on top of idle, sleep, suspend, resume, and dynamic voltage & frequency scaling functionalities [SystemSW].</li><li>DSP Bridge, ioMMU, OMAP watchdog, GPIOs, timers, Muxing framework</li><li>Gpmc (OneNAND driver), hsmmc (MMC/SD)</li><li>Bus drivers: spi, i2c, McBSP, uart, SSI</li></ul>
-
|-
+
;Package / License
-
|'''Responsibilities'''||*DMA: OMAP3 has a 32 channel general purpose DMA controller, display DMA, HS USB DMA, and IVA 2.2 DMA (not supported). <br>*Interrupt handling:OMAP3 has an interrupt controller (MPU INTC) with 96 synchronous interrupt lines. <br>*OMAP3 specific power management functionality: The power management functionality is built on top of idle, sleep, suspend, resume, and dynamic voltage & frequency scaling functionalities [SystemSW]. <br>*DSP Bridge, ioMMU, OMAP watchdog, GPIOs, timers, Muxing framework
+
: kernel / GPL2
-
<br>*Gpmc (OneNAND driver), hsmmc (MMC/SD)
+
-
<br>*Bus drivers: spi, i2c, McBSP, uart, SSI
+
-
|-
+
-
|'''Package / License'''||kernel / GPL2
+
-
|}
+
-
 
+
===DSP Bridge===
===DSP Bridge===
-
{|cellspacing="0" border="1" width="70%"
+
;Purpose
-
|'''Name'''||'''DSP bridge'''
+
: OMAP's integrated DSP allows offloading tasks to the DSP from the ARM processor.  This is exposed with the DSP bridge component.
-
|-
+
;Responsibilities
-
|'''Purpose'''||OMAP's integrated DSP allows offloading tasks to the DSP from the ARM processor.  This is exposed with the DSP bridge component.
+
: Interface to the OMAP3’s DSP which is used for codec acceleration.
-
|-
+
;Package / License
-
|'''Responsibilities'''||Interface to the OMAP3’s DSP which is used for codec acceleration.
+
: kernel / GPL2
-
|-
+
-
|'''Package / License'''||kernel / GPL2
+
-
|}
+
-
 
+
===OMAP3 bus drivers===
===OMAP3 bus drivers===
-
{|cellspacing="0" border="1" width="70%"
+
;Responsibilities
-
|'''Name'''||'''OMAP3 bus drivers'''
+
: Drivers for the following buses: SPI, SSI, McBSP, GPIOs, HS MMC/SD, UART, I2C/I2S, RFBI, CBUS, Flash BUS, (STI/XTI debugging interfaces)
-
|-
+
;Package / License
-
|'''Responsibilities'''||Drivers for the following buses: SPI, SSI, McBSP, GPIOs, HS MMC/SD, UART, I2C/I2S, RFBI, CBUS, Flash BUS, (STI/XTI debugging interfaces)
+
: kernel / GPL2
-
|-
+
-
|'''Package / License'''||kernel / GPL2
+
-
|}
+
-
 
+
-
 
+
===OMAP3 specific HW drivers===
===OMAP3 specific HW drivers===
-
{|cellspacing="0" border="1" width="70%"
+
;Responsibilities
-
|'''Name'''||OMAP specific HW drivers
+
: Drivers for following HW components:SGX, OMAP framebuffer & LCD & TV-out, Camera & ISP, HS USB Host & HS USB OTG, SDRAM memory controller, GPMC NAND/NOR flash&SRAM controller, and PRCM
-
|-
+
;Package / License
-
|'''Responsibilities'''||Drivers for following HW components:SGX, OMAP framebuffer & LCD & TV-out, Camera & ISP, HS USB Host & HS USB OTG, SDRAM memory controller, GPMC NAND/NOR flash&SRAM controller, and PRCM
+
: kernel / GPL2
-
|-
+
-
|'''Package / License'''||kernel / GPL2
+
-
|}
+
-
 
+
===Specific hardware drivers===
===Specific hardware drivers===
-
{|cellspacing="0" border="1" width="70%"
+
;Responsibilities
-
|'''Name'''||'''Specific HW drivers'''
+
: The following components external to OMAP are supported: USB transceiver, USB charging, FM RX/TX, WLAN, OneNAND flash, touch screen, audio, stereo IHF, earphone, digital mics, LEDs, HW keys, ALS, Accelerometer, Vibrator, Proximity sensor, Miscellaneous Sensors, LCD backlight, Bluetooth, WLAN, CMT, Ethernet (R&D use).
-
|-
+
;Package / License
-
|'''Responsibilities'''||The following components external to OMAP are supported: USB transceiver, USB charging, FM RX/TX, WLAN, OneNAND flash, touch screen, audio, stereo IHF, earphone, digital mics, LEDs, HW keys, ALS, Accelerometer, Vibrator, Proximity sensor, Miscellaneous Sensors, LCD backlight, Bluetooth, WLAN, CMT, Ethernet (R&D use).
+
: kernel / GPL2
-
|-
+
-
|'''Package / License'''||kernel / GPL2
+
-
|}
+
-
 
+
==X Window System==
==X Window System==
-
{|cellspacing="0" border="1" width="70%"
+
;Purpose
-
|'''Name'''||X Window System
+
: Graphical User Interface framework
-
|-
+
;Responsibilities
-
|'''Purpose'''||Graphical User Interface framework
+
: <ul><li>XServer – GUI framework & resource management</li><li>Xv – Video playback interface</li><li>XRandR – Support for rotation & output configuration</li><li>XRender, XComposite – Support for composited UI</li><li>XInput – Routing of input events to applications</li></ul>
-
|-
+
;Package/ License
-
|'''Responsibilities'''||*XServer – GUI framework & resource management <br>*Xv – Video playback interface <br>XRandR – Support for rotation & output configuration <br>*XRender, XComposite – Support for composited UI <br>*XInput – Routing of input events to applications
+
: Several/ MIT
-
|-
+
;Public interfaces provided
-
|'''Package/ License'''||Several/ MIT
+
: <ul><li>X protocol: Interface to the X window system</li><li>DRI2: Direct Rendering Infrastructure 2, OpenGL ES 2.0</li></ul>
-
|-
+
-
|'''Public interfaces provided'''||*X protocol: Interface to the X window system <br>*DRI2: Direct Rendering Infrastructure 2, OpenGL ES 2.0
+
-
|}
+
 +
=== OpenGL ES 2.0 ===
-
{|cellspacing="0" border="1" width="70%"
+
;Purpose
-
|'''Name'''||OpenGL ES 2.0
+
: Accelerated 3D rendering
-
|-
+
;Responsibilities
-
|'''Purpose'''||Accelerated 3D rendering
+
: <ul><li>Accelerated 3D rendering</li><li>Acceleration of XRender</li></ul>
-
|-
+
;Notes
-
|'''Responsibilities'''||*Accelerated 3D rendering <br>*Acceleration of XRender
+
: The user space GLES components are licensed from Imagination.
-
|-
+
;Package/ License
-
|'''Notes'''||The user space GLES components are licensed from Imagination.
+
: opengles2-sgx-img, opengles2-sgx-img-modules, libgles2(-sgx-img) / Nokia
-
|-
+
;Public interfaces provided
-
|'''Package/ License'''||opengles2-sgx-img, opengles2-sgx-img-modules, libgles2(-sgx-img) / Nokia
+
: EGL: Khronos API for OpenGL ES application for interacting with the native graphics framework.
-
|-
+
-
|'''Public interfaces provided'''||EGL: Khronos API for OpenGL ES application for interacting with the native graphics framework.
+
-
|}
+
-
 
+
==C library==
==C library==
-
{|cellspacing="0" border="1" width="70%"
+
;Purpose
-
|'''Name'''||'''C library'''
+
: Posix C library functionality
-
|-
+
;Responsibilities
-
|'''Purpose'''||Posix C library functionality
+
: System call interfaces <br>*Posix functionalities
-
|-
+
;Package/ License
-
|'''Responsibilities'''||*System call interfaces <br>*Posix functionalities
+
: glibc / LGPL2
-
|-
+
-
|'''Package/ License'''||glibc / LGPL2
+
-
|}
+
-
 
+
==Essential tools==
==Essential tools==
-
{|cellspacing="0" border="1" width="70%"
+
;Purpose
-
|'''Name'''||'''Essential tools (busybox)'''
+
: The essential tools provide tools needed in system scripts. The role is similar to the Debian essentials (tools that are always installed in a Debian system).
-
|-
+
;Responsibilities
-
|'''Purpose'''||The essential tools provide tools needed in system scripts. The role is similar to the Debian essentials (tools that are always installed in a Debian system).
+
: system tools like: shell, grep, find, dpkg, …
-
|-
+
;Notes
-
|'''Responsibilities'''||system tools like: shell, grep, find, dpkg, …
+
: Many tools have many limitations compared to the Debian versions. Not all Debian essentials are supported.
-
|-
+
;Package/ License
-
|'''Notes'''||Many tools have many limitations compared to the Debian versions. Not all Debian essentials are supported.
+
: busybox / GPL2
-
|-
+
;Public interfaces provided
-
|'''Package/ License'''||busybox / GPL2
+
: <ul><li>Posix shell</li><li>Subset of Debian essentials</li></ul>
-
|-
+
-
|'''Public interfaces provided'''||*Posix shell <br>*Subset of Debian essentials
+
-
|}
+
-
 
+
==Sysinfod==
==Sysinfod==
-
{|cellspacing="0" border="1" width="70%"
+
;Purpose
-
|'''Name'''||'''Sysinfod'''
+
: Provide interface for accessing device information
-
|-
+
;Responsibilities
-
|'''Purpose'''||Provide interface for accessing device information
+
: Provide a DBUS interface to device specific information (HW id, WLAN MAC, …)
-
|-
+
;Package / License
-
|'''Responsibilities'''||Provide a DBUS interface to device specific information (HW id, WLAN MAC, …)
+
: sysinfod / Nokia
-
|-
+
;Public interface provided
-
|'''Package / License'''||sysinfod / Nokia
+
: Sysinfod DBUS interface
-
|-
+
-
|'''Public interface provided'''||Sysinfod DBUS interface
+
-
|}
+
==Softupd==
==Softupd==
-
{|cellspacing="0" border="1" width="70%"
+
;Purpose
-
|'''Name'''||'''Softupd'''
+
: Program for flashing the eMMC contents
-
|-
+
;Responsibilities
-
|'''Purpose'''||Program for flashing the eMMC contents
+
: <ul><li>Unpacks a FIASCO image fed to it</li><li>Copies the unpacked contents to eMMC</li></ul>
-
|-
+
;Package / License
-
|'''Responsibilities'''||*Unpacks a FIASCO image fed to it <br>*Copies the unpacked contents to eMMC
+
: softupd / Nokia
-
|-
+
-
|'''Package / License'''||softupd / Nokia
+
-
|}
+
-
 
+
-
 
+
==Fiasco-flasher==
==Fiasco-flasher==
-
{|cellspacing="0" border="1" width="70%"
+
;Purpose
-
|'''Purpose'''||Tool for updating the kernel flashed to the device
+
: Tool for updating the kernel flashed to the device
-
|-
+
;Responsibilities
-
|'''Responsibilities'''||*Flash kernel image into the kernel partition <br>*Reboot the device
+
: <ul><li>Flash kernel image into the kernel partition</li><li>Reboot the device</li></ul>
-
|-
+
;Package / License
-
|'''Package / License'''||fiasco-flasher / Nokia
+
: fiasco-flasher / Nokia
-
|-
+
;Public interface provided
-
|'''Public interface provided'''||Fiasco-flasher: The tool can be used to flash a new kernel image into the kernel partition.
+
: Fiasco-flasher: The tool can be used to flash a new kernel image into the kernel partition.
-
|}
+
[[Category:Development]]
[[Category:Development]]
[[Category:Documentation]]
[[Category:Documentation]]
[[Category:Fremantle]]
[[Category:Fremantle]]

Revision as of 10:19, 16 July 2010

Contents

Nolo bootloader

Name
NoLo (Nokia Loader)
Purpose
The bootloader does basic configuration of the HW, loads the kernel into memory, and passes control to the kernel. In addition to this basic task the NoLo boot loader has many features to support R&D. (The capability to flash the device is currently implemented in NoLo but it will become an R&D feature once flashing is moved to user space.)
Responsibilities
  • Load kernel into memory
  • Initialize HW so that kernel is able to boot
  • Pass ATAGs to the kernel and transfer execution to the kernel
  • Production line flashing functionality
  • Creates partitions
Package / License
nolo / Nokia

Linux Kernel

Purpose
The function of the kernel code is to provide all the basic services and hardware interfaces of the Linux operating system for the underlying programs. The kernel also passes the control to the chosen user space program (usually /sbin/init) after initializing its own structures and drivers. When the kernel starts up, it checks a lot of the available subsystems and initializes everything according to the kernel configuration chosen at compile time. Some subsystems will be left uninitialized by the boot loader, for example, the display subsystem.
Responsibilities
The operating system kernel
Notes
Maemo specific functionality is in OMAP3 & Rover HW specific code. OMAP3 support is developed, generally speaking, in the linux-omap tree, from which code is pulled into Maemo kernel.
Package / License
kernel / GPL2
Public interfaces provided
Linux kernel API: Linux system calls accessed through the C library

Kernel core services

Purpose
The Linux core services comprise generic, hardware independent code.
Responsibilities
  • memory management
  • process management
  • device management
  • inter-process communication…
Notes
Used as is.
Package / License
kernel / GPL2

ARM architecture support

Purpose
The ARM architecture subsystem in the kernel provides mainly ARM specific implementations of necessary core mechanisms.
Responsibilities
ARM specific implementations of kernel mechanisms.
Notes
Used as is.
Package / License
kernel / GPL2

Kernel framework

Purpose
The low level HW drivers provide the concrete implementation that is bound to the virtual services in the Linux kernel to provide the complete functionality.
Responsibilities
  • ALSA & Video for Linux 2 (V4L2) APIs,Networking stack, BlueZ (Bluetooth), mac80211 (WLAN), USB core
  • Virtual File System, file systems, block devices, MTD
  • Frame buffer, serial port, input layer (keyboard, touch screen)
Package / License
kernel / GPL2
Public interfaces provided
  • ALSA: Advanced Linux Sound Architecture, de facto Linux sound API.
  • V4L2: Video for Linux 2, de facto video capture API + Maemo specific ioctls
  • Camera ioctls: Extensions to V4L2 interface used by the camera daemon.
  • File systems: FAT16/32, EXT3 and UBIFS file systems are currently supported on the platform.
  • Frame buffer: The raw frame buffer interface is used in early stages of the boot.
  • Input layer: The input layer events are routed via X to applications.
  • Serial port: Available for R&D use.

OMAP3 support

Purpose
OMAP specific code implements the device drivers and bus support for the specific hardware included in the OMAP3430 chip. The supported OMAP3 subsystems are described in the following subsections.
Responsibilities
  • DMA: OMAP3 has a 32 channel general purpose DMA controller, display DMA, HS USB DMA, and IVA 2.2 DMA (not supported).
  • Interrupt handling:OMAP3 has an interrupt controller (MPU INTC) with 96 synchronous interrupt lines.
  • OMAP3 specific power management functionality: The power management functionality is built on top of idle, sleep, suspend, resume, and dynamic voltage & frequency scaling functionalities [SystemSW].
  • DSP Bridge, ioMMU, OMAP watchdog, GPIOs, timers, Muxing framework
  • Gpmc (OneNAND driver), hsmmc (MMC/SD)
  • Bus drivers: spi, i2c, McBSP, uart, SSI
Package / License
kernel / GPL2

DSP Bridge

Purpose
OMAP's integrated DSP allows offloading tasks to the DSP from the ARM processor. This is exposed with the DSP bridge component.
Responsibilities
Interface to the OMAP3’s DSP which is used for codec acceleration.
Package / License
kernel / GPL2

OMAP3 bus drivers

Responsibilities
Drivers for the following buses: SPI, SSI, McBSP, GPIOs, HS MMC/SD, UART, I2C/I2S, RFBI, CBUS, Flash BUS, (STI/XTI debugging interfaces)
Package / License
kernel / GPL2

OMAP3 specific HW drivers

Responsibilities
Drivers for following HW components:SGX, OMAP framebuffer & LCD & TV-out, Camera & ISP, HS USB Host & HS USB OTG, SDRAM memory controller, GPMC NAND/NOR flash&SRAM controller, and PRCM
Package / License
kernel / GPL2

Specific hardware drivers

Responsibilities
The following components external to OMAP are supported: USB transceiver, USB charging, FM RX/TX, WLAN, OneNAND flash, touch screen, audio, stereo IHF, earphone, digital mics, LEDs, HW keys, ALS, Accelerometer, Vibrator, Proximity sensor, Miscellaneous Sensors, LCD backlight, Bluetooth, WLAN, CMT, Ethernet (R&D use).
Package / License
kernel / GPL2

X Window System

Purpose
Graphical User Interface framework
Responsibilities
  • XServer – GUI framework & resource management
  • Xv – Video playback interface
  • XRandR – Support for rotation & output configuration
  • XRender, XComposite – Support for composited UI
  • XInput – Routing of input events to applications
Package/ License
Several/ MIT
Public interfaces provided
  • X protocol: Interface to the X window system
  • DRI2: Direct Rendering Infrastructure 2, OpenGL ES 2.0

OpenGL ES 2.0

Purpose
Accelerated 3D rendering
Responsibilities
  • Accelerated 3D rendering
  • Acceleration of XRender
Notes
The user space GLES components are licensed from Imagination.
Package/ License
opengles2-sgx-img, opengles2-sgx-img-modules, libgles2(-sgx-img) / Nokia
Public interfaces provided
EGL: Khronos API for OpenGL ES application for interacting with the native graphics framework.

C library

Purpose
Posix C library functionality
Responsibilities
System call interfaces
*Posix functionalities
Package/ License
glibc / LGPL2

Essential tools

Purpose
The essential tools provide tools needed in system scripts. The role is similar to the Debian essentials (tools that are always installed in a Debian system).
Responsibilities
system tools like: shell, grep, find, dpkg, …
Notes
Many tools have many limitations compared to the Debian versions. Not all Debian essentials are supported.
Package/ License
busybox / GPL2
Public interfaces provided
  • Posix shell
  • Subset of Debian essentials

Sysinfod

Purpose
Provide interface for accessing device information
Responsibilities
Provide a DBUS interface to device specific information (HW id, WLAN MAC, …)
Package / License
sysinfod / Nokia
Public interface provided
Sysinfod DBUS interface

Softupd

Purpose
Program for flashing the eMMC contents
Responsibilities
  • Unpacks a FIASCO image fed to it
  • Copies the unpacked contents to eMMC
Package / License
softupd / Nokia

Fiasco-flasher

Purpose
Tool for updating the kernel flashed to the device
Responsibilities
  • Flash kernel image into the kernel partition
  • Reboot the device
Package / License
fiasco-flasher / Nokia
Public interface provided
Fiasco-flasher: The tool can be used to flash a new kernel image into the kernel partition.