User-level C libraries
The following collection of C libraries is useful for prototyping directly on the seL4 API. They are meant for trying things out, not for production code. They are not verified and come with no particular code assurance. They are provided because they might be useful for experimentation.
For production code we recommend the seL4 Microkit, or CAmkES when the Microkit is not applicable, and the Rust libraries for more dynamic systems.
Microkit does not use these libraries and expects a separate development environment for user-level code. Some CAmkES example applications do use the libraries below. Most of the CAmkES applications and also the libraries above use the seL4 port of libmuslc.
The library collections maintained by the seL4 Foundation are util_libs, projects_libs, seL4_libs, seL4_projects_libs, and libplatsupport.
OS independent libraries
OS independent low-level utilities in the repositories util_libs and
projects_libs. New libraries should go into project_libs.
util_libs
Sources: https://github.com/seL4/util_libs
| Components | Description |
|---|---|
|
A library for parsing files in CPIO format. |
|
A library for reading ELF files. |
|
A library for ethernet drivers on selected platforms, supporting lwIP and picoTCP. |
|
A library for PCI drivers. |
|
A library of picoTCP header files. |
|
A library of platform support utilities, interfaces for interacting with drivers, timer drivers, serial drivers and clock drivers. |
|
A library of generic utilities, such as debugging macros and compile time asserts. |
libcpioA library for parsing files in CPIO format.
libelfA library for reading ELF files.
libethdriversA library for ethernet drivers on selected platforms, supporting lwIP and picoTCP.
libpciA library for PCI drivers.
libpicotcpA library of picoTCP header files.
libplatsupportA library of platform support utilities, interfaces for interacting with drivers, timer drivers, serial drivers and clock drivers.
libutilsA library of generic utilities, such as debugging macros and compile time asserts.
projects_libs
Sources: https://github.com/seL4/projects_libs
| Components | Description |
|---|---|
|
A library for generating flattened device trees which can be passed to virtual machines. |
|
A collection of drivers proted from GPL-based sources such as U-Boot and Linux. |
|
A port of the Tegra186 Boot and Power Management Processor (BPMP) interfaces from U-Boot to seL4. |
|
A library implementation of a virtqueue inspired from the virtio specification. |
|
A library implementation of a vswitch, which is designed for providing an interface to manage and route data between components identified by a MAC address. |
libfdtgenA library for generating flattened device trees which can be passed to virtual machines.
libplatsupportportsA collection of drivers proted from GPL-based sources such as U-Boot and Linux.
libtx2bpmpA port of the Tegra186 Boot and Power Management Processor (BPMP) interfaces from U-Boot to seL4.
libvirtqueueA library implementation of a virtqueue inspired from the virtio specification.
libvswitchA library implementation of a vswitch, which is designed for providing an interface to manage and route data between components identified by a MAC address.
seL4-specific libraries
Basic libraries with abstractions for interacting with seL4 from C.
seL4_libs
Sources: https://github.com/seL4/seL4_libs
| Components | Description |
|---|---|
|
An allocator for managing virtual memory, malloc memory and cspaces. |
|
A library of benchmarking utilities on seL4, such as logging and PMU event counters. |
|
A library for debugging userspace applications on seL4. |
|
A library of minimal muslc syscall implementation for seL4. |
|
A wrapper around libplatsupport specificially for seL4. |
|
A library for creating serial servers. A server thread is able to connect to a serial device and act as a multiplexer for writes. |
|
An interface which abstracts over the boot environment of an seL4 application. |
|
An implementation of libsel4simple for the master branch of the seL4 kernel. |
|
A synchronisation library that uses notifications to construct basic locks. |
|
A library for running tests and generating test output in either human readable or xml format. |
|
A library of OS-like utilities for building benchmarks and applications on seL4. |
|
An allocation interface for seL4. |
|
A virtual memory management interface for seL4. |
libsel4allocmanAn allocator for managing virtual memory, malloc memory and cspaces.
libsel4benchA library of benchmarking utilities on seL4, such as logging and PMU event counters.
libsel4debugA library for debugging userspace applications on seL4.
libsel4muslcsysA library of minimal muslc syscall implementation for seL4.
libsel4platsupportA wrapper around libplatsupport specificially for seL4.
libsel4serialserverA library for creating serial servers. A server thread is able to connect to a serial device and act as a multiplexer for writes.
libsel4simpleAn interface which abstracts over the boot environment of an seL4 application.
libsel4simple-defaultAn implementation of libsel4simple for the master branch of the seL4 kernel.
libsel4syncA synchronisation library that uses notifications to construct basic locks.
libsel4testA library for running tests and generating test output in either human readable or xml format.
libsel4utilsA library of OS-like utilities for building benchmarks and applications on seL4.
libsel4vkaAn allocation interface for seL4.
libsel4vspaceA virtual memory management interface for seL4.
seL4_projects_libs
Sources: https://github.com/seL4/seL4_projects_libs
| Components | Description |
|---|---|
|
An allocator for managing DMA memory. |
|
A basic keyboard driver. |
|
An interface between seL4 IPC buffers and nanopb. Nanopb is a small code-size Protocol Buffers implementation in ANSI C. |
|
A library for allocating resources over process boundaries. It defines a Protocol Buffer protocol, and contains wrappers for processing RPC messages used by servers. |
libsel4dmaAn allocator for managing DMA memory.
libsel4keyboardA basic keyboard driver.
libsel4nanopbAn interface between seL4 IPC buffers and nanopb. Nanopb is a small code-size Protocol Buffers implementation in ANSI C.
libsel4rpcA library for allocating resources over process boundaries. It defines a Protocol Buffer protocol, and contains wrappers for processing RPC messages used by servers.
Platform support
Drivers for some of the devices on boards that seL4 supports.
The categories below are Serial, Timer, Clock,
I2C, Pinmux, Reset, GPIO,
ltimer, Ethernet, and Other. Not all drivers
are supported on all boards. Serial and Timer/ltimer drivers are necessary to
support the sel4test and sel4bench test suites and are supported on nearly
all boards.
The seL4-independent parts of the libpatsupport libraries live in util_libs,
and the seL4-specific parts in sel4_libs.
Sources:
- https://github.com/seL4/util_libs/tree/master/libplatsupport
- https://github.com/seL4/seL4_libs/tree/master/libsel4platsupport
Serial
| Components | Description | Status |
|---|---|---|
|
rockchip,rk3399-uart driver |
Supported on rockpro64 platform |
|
rpi3 brcm,bcm2835-aux-uart UART driver |
Supported on rpi3 platform |
|
odroidc2 amlogic,meson-gx-uart uart driver |
Supported on odroidc2 platform |
|
am335x ti,am3352-uart serial driver |
Supported on am335x platforms. |
|
fvp arm,pl011 serial driver |
Derived from the pl011 driver for the hikey platform. |
|
hikey arm,pl011 Serial driver |
Supported on Hikey platform. Could likely be extended to other platforms. |
|
qemu-arm-virt arm,pl011 serial driver |
Derived from the pl011 driver for the hikey platform. |
|
hifive sifive,uart0 UART serial driver |
Supported on hifive platform |
|
UART serial driver for the serial devices on the pc99 platform |
Supported on pc99 platform |
|
EGA driver for the EGA (Enhanced Graphics Adapter) device on the pc99 platform |
Supported on pc99 platform |
|
omap3 ti,omap3-uart UART serial driver |
Supported on omap3 platform |
|
UART serial drivers for the UART devices in the i.MX SoCs |
Supported on i.MX SoCs |
|
UART serial driver for the UART devices in the Exynos SoCs |
Supported on Exynos SoCs |
|
UART serial drivers for the UART devices in the ZYNQ SoCs |
Supported on ZYNQ SoCs |
|
UART serial driver to the AXI UART lite device on ZYNQ SoCs |
Suppored on ZYNQ SoCs |
|
Serial drivers for the UART serial devices on the NVIDIA SoCs |
Supported on the NVIDIA SoCs |
plat/rockpro64/serial.crockchip,rk3399-uart driver
plat/bcm2837/serial.crpi3 brcm,bcm2835-aux-uart UART driver
plat/odroidc2/serial.codroidc2 amlogic,meson-gx-uart uart driver
plat/am335x/serial.cam335x ti,am3352-uart serial driver
plat/fvp/serial.cfvp arm,pl011 serial driver
plat/hikey/serial.chikey arm,pl011 Serial driver
plat/qemu-arm-virt/serial.cqemu-arm-virt arm,pl011 serial driver
plat/hifive/uart.chifive sifive,uart0 UART serial driver
plat/pc99/serial.cUART serial driver for the serial devices on the pc99 platform
plat/pc99/ega.cEGA driver for the EGA (Enhanced Graphics Adapter) device on the pc99 platform
plat/omap3/serial.comap3 ti,omap3-uart UART serial driver
mach/imx/serial/serial.cUART serial drivers for the UART devices in the i.MX SoCs
mach/exynos/serial.cUART serial driver for the UART devices in the Exynos SoCs
mach/zynq/serial.cUART serial drivers for the UART devices in the ZYNQ SoCs
mach/zynq/axi_uartlite.cUART serial driver to the AXI UART lite device on ZYNQ SoCs
mach/nvidia/serial.cSerial drivers for the UART serial devices on the NVIDIA SoCs
Timer
| Components | Description | Status |
|---|---|---|
|
Arm generic timer driver. Should be used for debugging or development configurations only as register access is global. |
Requires configuring seL4 to make the Physical timer registers available to user level. |
|
rockchip,rk3399-timer driver |
Supported on rockpro64 platform |
|
rpi3 spt timer driver. The timer is based on a SP804 timer with some modifications. |
Supported on rpi3 platform |
|
rpi3 system timer driver. |
Supported on rpi3 platform |
|
odroidc2 meson timer implementation |
Supported on odroidc2 platform |
|
am335x ti,am335x-timer driver for DMTimer |
Supported on am335x platforms. |
|
fvp arm,sp804 timer driver |
Derived from the sp804 driver for the hikey platform. |
|
hikey arm,pl031 RTC driver |
Supported on Hikey platform. Could likely be extended to other platforms. |
|
hikey arm,sp804 timer driver |
Supported on Hikey platform. Could likely be extended to other platforms. |
|
hifive sifive,pwm0 timer driver |
Supported on hifive platform |
|
PIT driver for the PIT (Programmable Interval Timer) on the pc99 platform |
Supported on pc99 platform |
|
RTC driver for the RTC on the pc99 platform |
Supported on pc99 platform |
|
HPET driver for the HPET (High Precision Event Timer) device on the pc99 platform |
Supported on pc99 platform |
|
GPT driver for the GPT timers in the OMAP SoCs |
Supported on OMAP SoCs |
|
EPIT driver for the EPIT timers in the i.MX SoCs |
Supported on i.MX SoCs |
|
GPT driver for the GPT timers in the i.MX SoCs |
Supported on i.MX SoCs |
|
Exynos platform-common functions to manipulate the clock device in the Exynos SoCs |
Supported on Exynos SoCs |
|
Exynos5422 platform-specific functions to manipulate the clock device in the Exynos5422 SoC |
Supported on Exynos SoCs |
|
Clock subsystem driver for the clock controller in the Exynos SoCs |
Supported on Exynos SoCs |
|
PWM drivers for the PWM timers in the Exynos SoCs |
Supported on Exynos SoCs |
|
TTC driver for the TTC timers in the ZYNQ SoCs |
Supported on ZYNQ SoCs |
|
Timer drivers for the timers on the NVIDIA SoCs |
Supported on the NVIDIA SoCs |
arch/arm/generic_timer.cArm generic timer driver. Should be used for debugging or development configurations only as register access is global.
plat/rockpro64/timer.crockchip,rk3399-timer driver
plat/bcm2837/spt.crpi3 spt timer driver. The timer is based on a SP804 timer with some modifications.
plat/bcm2837/system_timer.crpi3 system timer driver.
plat/odroidc2/meson_timer.codroidc2 meson timer implementation
plat/am335x/timer.cam335x ti,am335x-timer driver for DMTimer
plat/fvp/sp804.cfvp arm,sp804 timer driver
plat/hikey/rtc.chikey arm,pl031 RTC driver
plat/hikey/dmt.chikey arm,sp804 timer driver
plat/hifive/pwm.chifive sifive,pwm0 timer driver
plat/pc99/pit.cPIT driver for the PIT (Programmable Interval Timer) on the pc99 platform
plat/pc99/rtc.cRTC driver for the RTC on the pc99 platform
plat/pc99/hpet.cHPET driver for the HPET (High Precision Event Timer) device on the pc99 platform
mach/omap/gpt.cGPT driver for the GPT timers in the OMAP SoCs
mach/imx/epit/epit.cEPIT driver for the EPIT timers in the i.MX SoCs
mach/imx/gpt.cGPT driver for the GPT timers in the i.MX SoCs
mach/exynos/clock/exynos_common_clock.cExynos platform-common functions to manipulate the clock device in the Exynos SoCs
mach/exynos/clock/exynos_5422_clock.cExynos5422 platform-specific functions to manipulate the clock device in the Exynos5422 SoC
mach/exynos/clock.hClock subsystem driver for the clock controller in the Exynos SoCs
mach/exynos/pwm.cPWM drivers for the PWM timers in the Exynos SoCs
mach/zynq/timer.cTTC driver for the TTC timers in the ZYNQ SoCs
mach/nvidia/timer.cTimer drivers for the timers on the NVIDIA SoCs
Clock
| Components | Description | Status |
|---|---|---|
|
zynq7000 clock subsystem driver |
Supported on zynq7000 platform. |
|
exynos5 clock subsystem driver |
Supported on exynos5 platform. |
|
tk1 nvidia,tegra124-car clock subsystem driver |
Supported on tk1 platform. |
|
exynos4 clock subsystem driver |
Supported on exynos4 platform. |
|
i.MX6 fsl,imx6q-ccm clock subsystem driver |
Supported on sabre platform |
|
libplatsupport clock ID to TX2 BPMP clock ID bindings |
Supported on tx2 platform |
|
Clock driver for the TX2 CAR (Clock And Reset) controller which relies on libtx2bpmp |
Supported on the tx2 platform |
plat/zynq7000/clock.czynq7000 clock subsystem driver
plat/exynos5/clock.cexynos5 clock subsystem driver
plat/tk1/clock.ctk1 nvidia,tegra124-car clock subsystem driver
plat/exynos4/clock.cexynos4 clock subsystem driver
plat/imx6/clock.ci.MX6 fsl,imx6q-ccm clock subsystem driver
src/plat/tx2/clock_bindings.clibplatsupport clock ID to TX2 BPMP clock ID bindings
src/plat/tx2/clock_bindings.cClock driver for the TX2 CAR (Clock And Reset) controller which relies on libtx2bpmp
I2C
| Components | Description | Status |
|---|---|---|
|
Transforms a GPIO interface into an I2C bitbang interface |
Currently used by libusbdrivers. |
|
am335x ti,omap4-i2c driver for I2C. |
Supported on am335x platforms. |
|
tk1 nvidia,tegra124-i2c I2C driver |
Supported on tk1 platform. |
|
i.MX6 fsl,imx6q-i2c driver I2C |
Supported on sabre platform |
|
I2C driver for the I2C devices in the Exynos SoCs |
Supported on the Exynos SoCs |
arch/arm/i2c_bitbang.cTransforms a GPIO interface into an I2C bitbang interface
plat/am335x/i2c.cam335x ti,omap4-i2c driver for I2C.
plat/tk1/i2c.ctk1 nvidia,tegra124-i2c I2C driver
plat/imx6/i2c.ci.MX6 fsl,imx6q-i2c driver I2C
mach/exynos/i2c.cI2C driver for the I2C devices in the Exynos SoCs
Pinmux
| Components | Description | Status |
|---|---|---|
|
tk1 nvidia,tegra124-pinmux pinmux driver |
Supported on tk1 platform |
|
i.MX6 fsl,imx6q-iomuxc IO MUX driver |
Supported on sabre |
|
Pinctrl configurations for the Exynos4xxx SoCs |
Supported on the Exynos4xxx SoCs |
|
Pinctrl configurations for the Exynos5xxx SoCs |
Supported on the Exynos5xxx SoCs |
|
Pinctrl driver for the pinctrl device in the Exynos SoCs |
Supported on the Exynos SoCs |
|
ltimer implementation for the Exynos platforms using the PWM timers |
Supported on the Exynos SoCs |
|
Pin controller driver for the TX2 MUX based off on NVIDIA’s L4T implementation |
Supported on the tx2 platform |
plat/tk1/mux.ctk1 nvidia,tegra124-pinmux pinmux driver
plat/imx6/mux.ci.MX6 fsl,imx6q-iomuxc IO MUX driver
mach/exnyos4/mux.cPinctrl configurations for the Exynos4xxx SoCs
mach/exynos5/mux.cPinctrl configurations for the Exynos5xxx SoCs
mach/exynos/mux.cPinctrl driver for the pinctrl device in the Exynos SoCs
mach/exynos/ltimer.cltimer implementation for the Exynos platforms using the PWM timers
src/plat/tx2/mux.cPin controller driver for the TX2 MUX based off on NVIDIA’s L4T implementation
Reset
| Components | Description | Status |
|---|---|---|
|
i.MX6 fsl,imx6q-src reset controller driver |
Supported on sabre platform |
|
libplatsupport reset ID to TX2 BPMP reset ID bindings |
Supported on the tx2 platform |
|
Reset driver for the TX2 CAR (Clock And Reset) controller which relies on libtx2bpmp |
Supported on the tx2 platform |
plat/imx6/src.ci.MX6 fsl,imx6q-src reset controller driver
src/plat/tx2/reset_bindings.clibplatsupport reset ID to TX2 BPMP reset ID bindings
src/plat/tx2/reset.cReset driver for the TX2 CAR (Clock And Reset) controller which relies on libtx2bpmp
GPIO
| Components | Description | Status |
|---|---|---|
|
tk1 nvidia,tegra124-gpio GPIO driver |
Supported on i2c platform. |
|
i.MX6 fsl,imx6q-gpio GPIO driver |
Supported on sabre platform |
|
GPIO driver for the TX2 GPIO controller based off on U-Boot’s implementation |
Supported on the tx2 platform |
plat/tk1/gpio.ctk1 nvidia,tegra124-gpio GPIO driver
plat/imx6/gpio.ci.MX6 fsl,imx6q-gpio GPIO driver
src/plat/tx2/gpio.cGPIO driver for the TX2 GPIO controller based off on U-Boot’s implementation
ltimer
| Components | Description | Status |
|---|---|---|
|
ltimer implementation for Arm generic timer physical timer. Should be used for debugging or development configurations only as register access is global |
Requires configuring seL4 to make the Physical timer registers available to user level. |
|
Uses an ltimer to provide timeout multiplexing across several clients |
Requires ltimer implementation for the target platform. |
|
rockpro64 ltimer implementation using 2 rk3399-timers |
Supported on rockpro64 platform |
|
rpi3 ltimer implementation using the system timer and spt timer |
Supported on rpi3 platform |
|
odroidc2 ltimer implementation using the meson timer |
Supported on odroidc2 platform |
|
am335x ltimer implementation using 2 DMTimers |
Supported on am335x platforms. |
|
fvp ltimer implementation using 2 sp804 timers. |
Supported on fvp platform. |
|
hikey ltimer implementation using 2 sp804 timers |
Supported on hikey platform. |
|
ltimer implementation for the hifive platform using two PWM timers |
Supported on hifive platform |
|
ltimer implementation for the pc99 platform using either PIT or HPET timers |
Supported on pc99 platform |
|
ltimer implementation for the i.MX platforms using a combination of GPT and EPIT timers |
Supported on i.MX SoCs |
|
ltimer implementation for the ZYNQ platforms using TTC timers |
Supported on ZYNQ SoCs |
|
ltimer implementation for the NVIDIA platforms using the NVIDIA timers |
Supported on the NVIDIA SoCs |
arch/arm/generic_ltimer.cltimer implementation for Arm generic timer physical timer. Should be used for debugging or development configurations only as register access is global
local_time_manager.cUses an ltimer to provide timeout multiplexing across several clients
plat/rockpro64/ltimer.crockpro64 ltimer implementation using 2 rk3399-timers
plat/bcm2837/ltimer.crpi3 ltimer implementation using the system timer and spt timer
plat/odroidc2/ltimer.codroidc2 ltimer implementation using the meson timer
plat/am335x/ltimer.cam335x ltimer implementation using 2 DMTimers
plat/fvp/ltimer.cfvp ltimer implementation using 2 sp804 timers.
plat/hikey/ltimer.chikey ltimer implementation using 2 sp804 timers
plat/hifive/ltimer.cltimer implementation for the hifive platform using two PWM timers
plat/pc99/ltimer.cltimer implementation for the pc99 platform using either PIT or HPET timers
mach/imx/ltimer.cltimer implementation for the i.MX platforms using a combination of GPT and EPIT timers
mach/zynq/ltimer.cltimer implementation for the ZYNQ platforms using TTC timers
mach/nvidia/ltimer.cltimer implementation for the NVIDIA platforms using the NVIDIA timers
Ethernet
| Components | Description | Status |
|---|---|---|
|
Ethernet device interface to connect with the PicoTCP TCP/IP stack |
Supported |
|
Ethernet device interface to connect with the lwIP TCP/IP stack |
Deprecated in favour of the PicoTCP Ethernet device interface |
|
Ethernet driver for the i.MX6 platform based off on U-Boot’s implementation |
Supported on the sabre platform |
|
Ethernet driver for the e1000 Ethernet devices |
Supported on pc99 platform |
|
Ethernet driver for the TX2 platform based off on U-Boot’s implementation |
Supported on the tx2 platform |
|
Ethernet driver for the zynq7000 platform based off on U-Boot’s implementation |
Supported on the zynq7000 platform |
src/pico_dev_eth.cEthernet device interface to connect with the PicoTCP TCP/IP stack
src/lwip.cEthernet device interface to connect with the lwIP TCP/IP stack
src/plat/imx6/*Ethernet driver for the i.MX6 platform based off on U-Boot’s implementation
src/plat/pc99/*Ethernet driver for the e1000 Ethernet devices
src/plat/tx2/*Ethernet driver for the TX2 platform based off on U-Boot’s implementation
src/plat/zynq700/*Ethernet driver for the zynq7000 platform based off on U-Boot’s implementation
Other
| Components | Description | Status |
|---|---|---|
|
x86 busy wait delay driver by spinning on tsc value |
Supported on x86 but currently unused by anything. |
|
Calculates tsc frequency using HPET or PIT |
Supported on x86. It may be better to use the tsc_freq Bootinfo field that seL4 provides. |
|
arm busy wait delay driver by repeatedly performing no-op instructions |
Supported on arm but currently relies on each instruction taking a constant amount of time |
|
devcfg (Device configuration Interface) zynq7000 driver |
Supported only for zynq7000 platform. Only functionality is mapping registers and providing a reference. |
|
Temperature sensor driver for zynq7000 tmu. |
Supported on zynq7000 platform. |
|
zynq7000 XADC driver |
Supported on zynq7000 platform. Currently only used to read values from a temperature monitoring unit. |
|
zynq7000 System Level Control Registers driver |
Supported on zynq7000 platform. Currently used to unlock clock and reset registers only. |
|
exynos5 samsung,exynos5-sysreg system control driver |
Supported on exynos5 platforms. Currently can only be used to enable power for USB PHYs. |
|
tk1 nvidia,tegra124-spi SPI driver |
Supported on tk1 platform. |
|
exynos4 samsung,exynos4-sysreg system control driver |
Supported on exynos4 platforms. Currently can only be used to enable power for USB PHYs. |
|
ltimer implementation for the OMAP platforms using GPT timers |
Supported on OMAP SoCs |
|
TMU driver for the TMU (Thermal Management Unit) device in the Exynos SoCs |
Supported on Exynos SoCs |
|
PMIC driver for the PMIC (Power Management IC) device in the Exynos SoCs |
Supported on the Exynos SoCs |
|
RTC driver for the RTC located inside the PMIC device in the Exynos SoCs |
Supported on the Exynos SoCs |
|
IRQ combiner driver for the IRQ combiner device in the Exynos SoCs |
Supported on the Exynos SoCs |
|
Helper functions for the Ethernet drivers in libethdrivers |
Supported |
|
BPMP driver for the BPMP (Boot and Power Management Processor) co-processor on the TX2 based off on U-Boot’s implementation |
Supported on the tx2 platform |
|
HSP driver for the HSP (Hardware Synchronisation Primitives) module on the TX2 |
Supported on the tx2 platform |
|
IVC implementation for the IVC (Inter-VM Communication) protocol used for communicating with the BPMP |
Supported on the tx2 platform |
arch/x86/delay.cx86 busy wait delay driver by spinning on tsc value
arch/x86/tsc.cCalculates tsc frequency using HPET or PIT
arch/arm/delay.carm busy wait delay driver by repeatedly performing no-op instructions
plat/zynq7000/devcfg.cdevcfg (Device configuration Interface) zynq7000 driver
plat/zynq7000/tmu.cTemperature sensor driver for zynq7000 tmu.
plat/zynq7000/xadc.czynq7000 XADC driver
plat/zynq7000/src.czynq7000 System Level Control Registers driver
plat/exynos5/sysreg.cexynos5 samsung,exynos5-sysreg system control driver
plat/tk1/spi.ctk1 nvidia,tegra124-spi SPI driver
plat/exynos4/src.cexynos4 samsung,exynos4-sysreg system control driver
mach/omap/ltimer.cltimer implementation for the OMAP platforms using GPT timers
mach/exynos/tmu.cTMU driver for the TMU (Thermal Management Unit) device in the Exynos SoCs
mach/exynos/pmic.cPMIC driver for the PMIC (Power Management IC) device in the Exynos SoCs
mach/exynos/pmic_rtc.cRTC driver for the RTC located inside the PMIC device in the Exynos SoCs
mach/exnyos/irq_combiner.cIRQ combiner driver for the IRQ combiner device in the Exynos SoCs
src/helpers.cHelper functions for the Ethernet drivers in libethdrivers
src/bpmp.cBPMP driver for the BPMP (Boot and Power Management Processor) co-processor on the TX2 based off on U-Boot’s implementation
src/hsp.cHSP driver for the HSP (Hardware Synchronisation Primitives) module on the TX2
src/ivc.cIVC implementation for the IVC (Inter-VM Communication) protocol used for communicating with the BPMP