What we do
- Firmware
- new development (BSP, boot loaders)
- porting, adapting to new architectures or devices
- Operating systems
- porting, adapting to new architectures or devices
- drivers (new development, modifications, porting across different operating systems and architectures)
- kernel instrumentation, profiling
- crafting and optimising for specific demand (custom kernels, extensions, modules)
- kernel/user space interfaces (integrating non-standard applications with kernel)
- binary compatibility layers
- high availability middleware, redundancy and fail-over schemes
- Core software development
- binary crafting (compiling, linking, cross-arch building, custom extensions to ABI, code footprint optimisation)
- build environments
- applications profiling
- concurrent, distributed programming
- porting applications across different operating systems and architectures
- algorithms (design and implementation, optimisation)
- Tools
What we know
- Bootloaders
- OpenFirmware
- U-Boot
- others (proprietary)
- UNIX systems
- BSD (FreeBSD, NetBSD, OpenBSD)
- Linux
- OpenSolaris
- Real-Time
- Linux RT extensions (RTAI)
- VxWorks
Architectures
- ARM/XScale
- Intel x86
- MIPS
- PowerPC
- UltraSPARC
Industry standards
- Integrated controllers (AMCC, Freescale, Intel, Marvell and others)
- CompactPCI, VME, PC/104, custom design boards
- PCI, PCI-Express, USB, FireWire, I2C, CAN and others
Hardware
- assisted debugging, tracing (BDI2000, BDM, ICE)
- reading schematics
- operating logic analysers and other helper equipment