LINUX

Amarula Solutions has built its experience in embedded systems for more than a decade studying and developing Linux as the heart of it’s embedded software solutions. We are active daily in developing Board Support Packages (BSPs), device drivers, protocol stacks porting and user space application developing.

User or Kernel level modules developing to support various layers of protocol stacks for embedded applications

Board support packages

A Linux BSP is the entire set of system customizations needed to enable the execution of Linux from boot to applications on a defined hardware environment called target. The Amarula Solutions development team has been involved in several successful BSP customizations tasks, from a single driver optimization to the whole BSP developing from scratch.

Our experience covers the ARM, MIPS, PowerPC and SH processor architectures and on the ARM one we teamed up with several platform vendors, such as: Freescale (i.MX), Texas Instruments (OMAP) and Marvell (PXA).

Subsystems we have been working on

SD/MMC/SDIO host controllers

Compact Flash

Ethernet Controller, PHY devices

Co-processors

Audio codecs

WiFi enhancements

Power management IC

Backlight, Display, LCD Controller

Camera devices

I2C, SPI bus, I2S, UART

Keypad, Touchscreen

USB Host Controller and USB Device

Device driver development

The device driver development can be considered as a subtask of BSP customization. We’ve done multiple driver customizations and/or optimizations and developments from scratch. The list below outlines some of the subsystems we have worked upon:

Kernel core

Other than specific board support code, we have experience in core kernel customizations in the Scheduler and Memory Management area.