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. |
libcpio
A library for parsing files in CPIO format.
libelf
A library for reading ELF files.
libethdrivers
A library for ethernet drivers on selected platforms, supporting lwIP and picoTCP.
libpci
A library for PCI drivers.
libpicotcp
A library of picoTCP header files.
libplatsupport
A library of platform support utilities, interfaces for interacting with drivers, timer drivers, serial drivers and clock drivers.
libutils
A 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. |
libfdtgen
A library for generating flattened device trees which can be passed to virtual machines.
libplatsupportports
A collection of drivers proted from GPL-based sources such as U-Boot and Linux.
libtx2bpmp
A port of the Tegra186 Boot and Power Management Processor (BPMP) interfaces from U-Boot to seL4.
libvirtqueue
A library implementation of a virtqueue inspired from the virtio specification.
libvswitch
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.
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. |
libsel4allocman
An allocator for managing virtual memory, malloc memory and cspaces.
libsel4bench
A library of benchmarking utilities on seL4, such as logging and PMU event counters.
libsel4debug
A library for debugging userspace applications on seL4.
libsel4muslcsys
A library of minimal muslc syscall implementation for seL4.
libsel4platsupport
A wrapper around libplatsupport specificially for seL4.
libsel4serialserver
A library for creating serial servers. A server thread is able to connect to a serial device and act as a multiplexer for writes.
libsel4simple
An interface which abstracts over the boot environment of an seL4 application.
libsel4simple-default
An implementation of libsel4simple for the master branch of the seL4 kernel.
libsel4sync
A synchronisation library that uses notifications to construct basic locks.
libsel4test
A library for running tests and generating test output in either human readable or xml format.
libsel4utils
A library of OS-like utilities for building benchmarks and applications on seL4.
libsel4vka
An allocation interface for seL4.
libsel4vspace
A 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. |
libsel4dma
An allocator for managing DMA memory.
libsel4keyboard
A basic keyboard driver.
libsel4nanopb
An interface between seL4 IPC buffers and nanopb. Nanopb is a small code-size Protocol Buffers implementation in ANSI C.
libsel4rpc
A 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.c
rockchip,rk3399-uart driver
plat/bcm2837/serial.c
rpi3 brcm,bcm2835-aux-uart UART driver
plat/odroidc2/serial.c
odroidc2 amlogic,meson-gx-uart uart driver
plat/am335x/serial.c
am335x ti,am3352-uart serial driver
plat/fvp/serial.c
fvp arm,pl011 serial driver
plat/hikey/serial.c
hikey arm,pl011 Serial driver
plat/qemu-arm-virt/serial.c
qemu-arm-virt arm,pl011 serial driver
plat/hifive/uart.c
hifive sifive,uart0 UART serial driver
plat/pc99/serial.c
UART serial driver for the serial devices on the pc99 platform
plat/pc99/ega.c
EGA driver for the EGA (Enhanced Graphics Adapter) device on the pc99 platform
plat/omap3/serial.c
omap3 ti,omap3-uart UART serial driver
mach/imx/serial/serial.c
UART serial drivers for the UART devices in the i.MX SoCs
mach/exynos/serial.c
UART serial driver for the UART devices in the Exynos SoCs
mach/zynq/serial.c
UART serial drivers for the UART devices in the ZYNQ SoCs
mach/zynq/axi_uartlite.c
UART serial driver to the AXI UART lite device on ZYNQ SoCs
mach/nvidia/serial.c
Serial 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.c
Arm generic timer driver. Should be used for debugging or development configurations only as register access is global.
plat/rockpro64/timer.c
rockchip,rk3399-timer driver
plat/bcm2837/spt.c
rpi3 spt timer driver. The timer is based on a SP804 timer with some modifications.
plat/bcm2837/system_timer.c
rpi3 system timer driver.
plat/odroidc2/meson_timer.c
odroidc2 meson timer implementation
plat/am335x/timer.c
am335x ti,am335x-timer driver for DMTimer
plat/fvp/sp804.c
fvp arm,sp804 timer driver
plat/hikey/rtc.c
hikey arm,pl031 RTC driver
plat/hikey/dmt.c
hikey arm,sp804 timer driver
plat/hifive/pwm.c
hifive sifive,pwm0 timer driver
plat/pc99/pit.c
PIT driver for the PIT (Programmable Interval Timer) on the pc99 platform
plat/pc99/rtc.c
RTC driver for the RTC on the pc99 platform
plat/pc99/hpet.c
HPET driver for the HPET (High Precision Event Timer) device on the pc99 platform
mach/omap/gpt.c
GPT driver for the GPT timers in the OMAP SoCs
mach/imx/epit/epit.c
EPIT driver for the EPIT timers in the i.MX SoCs
mach/imx/gpt.c
GPT driver for the GPT timers in the i.MX SoCs
mach/exynos/clock/exynos_common_clock.c
Exynos platform-common functions to manipulate the clock device in the Exynos SoCs
mach/exynos/clock/exynos_5422_clock.c
Exynos5422 platform-specific functions to manipulate the clock device in the Exynos5422 SoC
mach/exynos/clock.h
Clock subsystem driver for the clock controller in the Exynos SoCs
mach/exynos/pwm.c
PWM drivers for the PWM timers in the Exynos SoCs
mach/zynq/timer.c
TTC driver for the TTC timers in the ZYNQ SoCs
mach/nvidia/timer.c
Timer 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.c
zynq7000 clock subsystem driver
plat/exynos5/clock.c
exynos5 clock subsystem driver
plat/tk1/clock.c
tk1 nvidia,tegra124-car clock subsystem driver
plat/exynos4/clock.c
exynos4 clock subsystem driver
plat/imx6/clock.c
i.MX6 fsl,imx6q-ccm clock subsystem driver
src/plat/tx2/clock_bindings.c
libplatsupport clock ID to TX2 BPMP clock ID bindings
src/plat/tx2/clock_bindings.c
Clock 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.c
Transforms a GPIO interface into an I2C bitbang interface
plat/am335x/i2c.c
am335x ti,omap4-i2c driver for I2C.
plat/tk1/i2c.c
tk1 nvidia,tegra124-i2c I2C driver
plat/imx6/i2c.c
i.MX6 fsl,imx6q-i2c driver I2C
mach/exynos/i2c.c
I2C 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.c
tk1 nvidia,tegra124-pinmux pinmux driver
plat/imx6/mux.c
i.MX6 fsl,imx6q-iomuxc IO MUX driver
mach/exnyos4/mux.c
Pinctrl configurations for the Exynos4xxx SoCs
mach/exynos5/mux.c
Pinctrl configurations for the Exynos5xxx SoCs
mach/exynos/mux.c
Pinctrl driver for the pinctrl device in the Exynos SoCs
mach/exynos/ltimer.c
ltimer implementation for the Exynos platforms using the PWM timers
src/plat/tx2/mux.c
Pin 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.c
i.MX6 fsl,imx6q-src reset controller driver
src/plat/tx2/reset_bindings.c
libplatsupport reset ID to TX2 BPMP reset ID bindings
src/plat/tx2/reset.c
Reset 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.c
tk1 nvidia,tegra124-gpio GPIO driver
plat/imx6/gpio.c
i.MX6 fsl,imx6q-gpio GPIO driver
src/plat/tx2/gpio.c
GPIO 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.c
ltimer implementation for Arm generic timer physical timer. Should be used for debugging or development configurations only as register access is global
local_time_manager.c
Uses an ltimer to provide timeout multiplexing across several clients
plat/rockpro64/ltimer.c
rockpro64 ltimer implementation using 2 rk3399-timers
plat/bcm2837/ltimer.c
rpi3 ltimer implementation using the system timer and spt timer
plat/odroidc2/ltimer.c
odroidc2 ltimer implementation using the meson timer
plat/am335x/ltimer.c
am335x ltimer implementation using 2 DMTimers
plat/fvp/ltimer.c
fvp ltimer implementation using 2 sp804 timers.
plat/hikey/ltimer.c
hikey ltimer implementation using 2 sp804 timers
plat/hifive/ltimer.c
ltimer implementation for the hifive platform using two PWM timers
plat/pc99/ltimer.c
ltimer implementation for the pc99 platform using either PIT or HPET timers
mach/imx/ltimer.c
ltimer implementation for the i.MX platforms using a combination of GPT and EPIT timers
mach/zynq/ltimer.c
ltimer implementation for the ZYNQ platforms using TTC timers
mach/nvidia/ltimer.c
ltimer 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.c
Ethernet device interface to connect with the PicoTCP TCP/IP stack
src/lwip.c
Ethernet 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.c
x86 busy wait delay driver by spinning on tsc value
arch/x86/tsc.c
Calculates tsc frequency using HPET or PIT
arch/arm/delay.c
arm busy wait delay driver by repeatedly performing no-op instructions
plat/zynq7000/devcfg.c
devcfg (Device configuration Interface) zynq7000 driver
plat/zynq7000/tmu.c
Temperature sensor driver for zynq7000 tmu.
plat/zynq7000/xadc.c
zynq7000 XADC driver
plat/zynq7000/src.c
zynq7000 System Level Control Registers driver
plat/exynos5/sysreg.c
exynos5 samsung,exynos5-sysreg system control driver
plat/tk1/spi.c
tk1 nvidia,tegra124-spi SPI driver
plat/exynos4/src.c
exynos4 samsung,exynos4-sysreg system control driver
mach/omap/ltimer.c
ltimer implementation for the OMAP platforms using GPT timers
mach/exynos/tmu.c
TMU driver for the TMU (Thermal Management Unit) device in the Exynos SoCs
mach/exynos/pmic.c
PMIC driver for the PMIC (Power Management IC) device in the Exynos SoCs
mach/exynos/pmic_rtc.c
RTC driver for the RTC located inside the PMIC device in the Exynos SoCs
mach/exnyos/irq_combiner.c
IRQ combiner driver for the IRQ combiner device in the Exynos SoCs
src/helpers.c
Helper functions for the Ethernet drivers in libethdrivers
src/bpmp.c
BPMP driver for the BPMP (Boot and Power Management Processor) co-processor on the TX2 based off on U-Boot’s implementation
src/hsp.c
HSP driver for the HSP (Hardware Synchronisation Primitives) module on the TX2
src/ivc.c
IVC implementation for the IVC (Inter-VM Communication) protocol used for communicating with the BPMP