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.

Typical tasks we have performed
  • Bootloader porting
  • Porting of custom drivers from Windows CE or Linux 2.4 to Linux 2.6 kernel
  • Optimization of boot-time
  • Customized API development for specific customer needs
  • Feature enhancements for existing board support packages
  • 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.