1 Mar 2013
Working with Linaro Enterprise Group (LEG).
Semihalf expertise is brought to the Linaro engineering team.
26 Feb 2013
FreeBSD/arm transparent superpages.
Semihalf has been awarded with the FreeBSD Foundation grant to carry out the development.
29 Apr 2012
EBV Preferred Third Party.
Semihalf joins EBV Elektronik Design Solutions network as a preferred third party.
1 Mar 2012
NAND framework for FreeBSD.
Semihalf supported by the FreeBSD Foundation and Juniper Networks release the NAND framework to the community.
30 Sep 2011
FreeBSD for the latest embedded processors.
Semihalf keeps bringing FreeBSD for the most powerful embedded processors on the market.
4 Apr 2011
Semihalf company video.
Please take a few moments to get to know Semihalf, our latest projects and technologies.
8 Mar 2011
TI Netra DM8168 system.
Semihalf designed one of the world's first commercial platform featuring the brand new TI digital media system-on-chip.
30 Sep 2010
Semihalf at Electronica 2010.
Please visit us this November at the Munich Trade Fair, Hall A6 Booth 613.
6 Jul 2010
Moving to the new office
Semihalf is expanding rapidly so on August 1st we are moving to a new facility to fit our increasing design and development needs.
18 Jun 2010
meetBSD 2010 coming soon!
The technical conference, co-organized by Semihalf is only two weeks away, www.meetbsd.org
15 Feb 2010
Semihalf at Embedded World 2010.
Please enjoy the demo of our technologies at Texas Instruments booth: Hall 12 Stand 436.
10 Feb 2010
TI DaVinci DM6446 @810MHz system.
Semihalf brings world's first commercial platform based on the new version of the chip.
19 Jan 2010
Co-organizing meetBSD 2010 conference.
Semihalf is a co-organizer of the meetBSD 2010 technical conference in Kraków.
26 Nov 2009
FreeBSD 8.0 Release.
Featuring new functionality and enhancements for the embedded FreeBSD support developed by Semihalf.
13 Nov 2009
Embedded systems talk.
November 24th 2009, Kraków
Please join our talk hosted at the Jagiellonian University.
21 Oct 2009
Flattened device tree for FreeBSD.
Semihalf has been awarded with the FreeBSD Foundation grant to carry out the development.
25 Aug 2009
FreeBSD for Marvell SheevaPlug device.
The port developed by Semihalf is now available from the FreeBSD SVN repository.
26 May 2009
Joining Texas Instruments DSP Third Party Network
Semihalf joins Texas Instruments DSP Third Party Network.
18 May 2009
Moving to the new office
We have moved to bigger and more comfortable offices. See the contact section for all details.
24 Apr 2009
Joining ARM Connected Community
Semihalf joins the ARM Connected Community partnership program.
11 Feb 2009
Lectures on embedded systems
February-May 2009, Kraków
Hosted at the University of Science and Technology (AGH).
8 Jan 2009
Joining Freescale Alliance Program
Semihalf joins the Freescale Alliance Program with embedded FreeBSD for the PowerQUICC.
15 Dec 2008
Joining AMCC Partner Program
Semihalf joins the AMCC Partner Program with embedded FreeBSD offering for the PPC440 and 460 PowerPC systems.
14 Oct 2008
FreeBSD for Marvell Orion, Kirkwood and Discovery chips.
The port developed by Semihalf is now available from the FreeBSD SVN repository.
07 Jul 2008
FreeBSD for Freescale PowerQUICCIII MPC8572
The port covers SMP, security engine, pattern maching engine and other peripherals support.
portfolio
Semihalf has completed several innovative projects, fielded in commercial products and installations. Please review some selected examples below (click on the [+] to see additional details).
FreeBSD
[+] Port to ARM Cortex-A15 Fast models <NEW>
- platform
- ARMv7 Cortex-A15
- ARM Fast Models (simulation)
- Cortex-A15 CPU core complex support
- low-level ARMv7 infrastructure, cache, MMU, exceptions
- SMP (dual-core)
- implementation of device drivers for on-chip peripherals
- Generic interrupt controller (GIC)
- Primecell UART serial console
- Generic MPCore Timer
- single user operation
[+] NAND Flash Framework
- Implementation of a comprehensive NAND Flash environment for FreeBSD
- NAND framework (drivers harness for NAND controllers and NAND chips)
- NAND simulator (NANDsim)
- NAND file system (NAND FS)
- Companion tools and utilities
- Documentation (manual pages)
- The NAND FS has the following major features
- Hard links
- Symbolic links
- Case-sensitive, case-preserving
- Snapshots
- Redundant super block
- POSIX file permissions
- Checksum / ECC
[+] Port to Freescale DPAA QorIQ
- platform
- PowerPC E500mc (up to quad-core), E5500 (up to dual-core)
- QorIQ P2041, P3041, P5020 system-on-chip
- Freescale reference systems (DS, RDB)
- U-Boot firmware
- adaptation of the in-tree toolchain (binutils, gcc) for E500mc
- E500mc, E5500 core complex support
- low-level infrastructure, CoreNet fabric, L1/L2/L3 cache, MMU, exceptions
- extensions and improvements of SMP support for FreeBSD/powerpc on E500mc cores
- implementation of device drivers for on-chip peripherals
- basic support (UART, interrupts controller)
- USB 2.0 (EHCI)
- PCI-Express
- Data Path Acceleration Architecture (DPAA) infrastructure
- BMAN, FMAN, QMAN
- Ethernet (using DPAA)
- I2C
- DMA
- presented at the AsiaBSDCon'12 conference
- presented at the BSDCan'12 conference
[+] Port to AppliedMicro APM86290
- platform
- PowerPC PPC465 core
- AppliedMicro development board (Serengeti)
- U-Boot firmware
- adaptation of the in-tree toolchain (binutils, gcc) for PPC4xx
- implementation of low-level kernel initialization routines
- rework and extensions of low-level MMU support layer to fit PPC4xx specifics
- interrupts, exceptions handling
- non-coherent DMA handling
- implementation of device drivers for on-chip peripherals
- Bus drivers (PLB5, HBF, AHB, APB)
- USB (OHCI + EHCI)
- I2C
- RTC
- GPIO
- Queue Manager/Traffic Manager
- Ethernet
- PCI-Express
- multi user operation
- presented at the EuroBSDCon'12 conference
[+] Port to Marvell Armada XP
- platform
- MV-78130, MV-78460 (quad-core)
- Marvell development board
- U-Boot firmware
- PJ4B CPU core complex support
- low-level ARMv6/v7 infrastructure, cache, MMU, exceptions
- design and implementation of SMP support for FreeBSD/arm on PJ4B cores
- development of new interrupt controller (MPIC) driver
- adaptation and integration of device drivers for on-chip peripherals
- Timers, watchdog
- Ethernet, including advanced features (polling, interrupts coalescing, VLAN tagging etc.)
- USB 2.0 (EHCI) controller
- PCI-Express
- Security engine
- SATA
- I2C (TWSI)
- GPIO, MPP
[+] Port to Freescale dual-core QorIQ P2020
- platform
- PowerPC E500 (dual-core)
- Freescale reference system (DS)
- U-Boot firmware
- extensions and adjustments of the MPC85xx platform support code to accommodate the new QorIQ chips family
- implementation of device drivers
- on-chip USB 2.0 (EHCI)
- on-chip SD/MMC
- companion ULi M1575 PCIE-PCI bridge
- extensions and adaptations of device drivers for on-chip peripherals
- PCI-Express
- Security Engine
[+] Port to Marvell RAID-On-Chip family
- platform
- 88RC8180 (LokiPlus), ARMv5 based
- 88RC9580 (Frey), ARMv6/v7 based
- Marvell development board
- U-Boot firmware
- extension and integration of low-level ARMv5 routines (LokiPlus)
- adjustment and extension of low-level ARMv6/v7 support, cache, MMU (Frey)
- adaptation and integration of device drivers for on-chip peripherals
- Interrupt controller
- Timers, watchdog
- Ethernet, including advanced features (polling, interrupts coalescing, VLAN tagging etc.)
- PCI-Express (Root Complex and End Point)
- Doorbells and messages
- I2C (TWSI)
- GPIO, MPP
[+] Flattened Device Tree support
- adaptation and integration of libfdt library and device tree compiler components
- development of low-level support code for FDT in the FreeBSD loader(8) and kernel
- design and development of infrastructure merging FreeBSD newbus scheme and FDT, including fdtbus(4) and simplebus(4) drivers
- conversion of Marvell ARM platforms to FDT convention
- DB-78100
- DB-88F5182
- DB-88F5281
- DB-88F6281
- SheevaPlug
- conversion of Freescale PowerPC platforms to FDT convention
- MPC8555CDS
- MPC8572DS
- presented at the BSDCan'10 conference
[+] Port to Texas Instruments DaVinci
- platform
- TMS320DM6446
- Semihalf HASE-1 video analytics platform
- U-Boot firmware
- adaptation and integration of low-level ARM9 initialization routines
- implementation of device drivers for on-chip peripherals
- Interrupt controller
- Timers
- Ethernet
- SD/MMC
[+] Port to Marvell Dove (Armada 500)
- platform
- 88AP510 (88F6781)
- Marvell development board
- U-Boot firmware
- implementation of the very first ARMv6 support for the FreeBSD/arm
- implementation of low-level Sheeva2 CPU initialization routines, L1/L2 PIPT cache support routines, MMU set-up, interrupts and exceptions handling
- adaptation and integration of device drivers for on-chip peripherals
- Interrupt controller
- Timers, watchdog
- Ethernet, including advanced features (polling, interrupts coalescing, VLAN tagging etc.)
- Security engine
- PCI-Express
- XOR engine
- I2C (TWSI)
- SATA
- GPIO, MPP
- SD/MMC
- USB 2.0 (EHCI) controller
[+] Port to AMCC PPC440/PPC460
- platform
- PowerPC PPC440 core
- AMCC development boards (Glacier 460GT, Canyonlands 460EX)
- U-Boot firmware
- adaptation of the in-tree toolchain (binutils, gcc) for PPC440
- implementation of low-level kernel initialization routines
- rework of low-level MMU support layer to fit PPC440 specifics
- interrupts, exceptions handling
- non-coherent DMA handling
- implementation of device drivers for on-chip peripherals
- interrupt controller driver
- USB (OHCI + EHCI) controller driver
- Ethernet (MAC/MAL)
- multi user operation
[+] Port to Freescale MPC5121
- platform
- PowerPC E300
- U-Boot firmware
- non-coherent DMA handling
- implementation of device drivers for on-chip peripherals
- MPC5121 integrated interrupt controller
- PSC/FIFO serial console driver
- USB 2.0 (EHCI) controller
- Ethernet (FEC)
- multi user operation
[+] Port to Freescale MPC5200
- platform
- PowerPC E300
- Genesi EFIKA board
- SmartFirmware (IEEE 1275 i.e. Open Firmware implementation)
- adaptation of existing patches for real mode Open Firmware and TLB exceptions handling
- implementation of device drivers for on-chip peripherals
- MPC5200 integrated interrupt controller
- hardware specific layer for the PSC serial console driver
[+] Port to Marvell Orion, Kirkwood and Discovery Innovation
- platform
- 88F5181, 88F5182, 88F5281
- 88F6281, 88F6192
- MV-78100, MV-78200
- Marvell development board, reference design, SheevaPlug
- U-Boot firmware
- adaptation and integration of FreeBSD native last-stage loader with firmware API
- implementation of low-level Feroceon CPU initialization routines, MMU set-up, interrupts and exceptions handling all the way up to the machine-independent kernel layers
- implementation of low-level Sheeva CPU initialization routines, L2 VIPT cache support routines
- implementation of device drivers for on-chip peripherals
- Interrupt controller
- Timers, watchdog
- Ethernet, including advanced features (polling, interrupts coalescing, VLAN tagging etc.)
- Security engine
- PCI, PCI-Express
- General purpose DMA engine
- XOR engine
- I2C
- SATA
- GPIO
- SD/MMC
- USB 2.0 (EHCI) controller
- TDM (VoIP)
- instrumentation of FreeBSD/arm debugging facilities
- gdbserver
- kernel mini dump support
- presented at the BSDCan'08 conference
[+] Port to Freescale dual-core MPC8572
- platform
- PowerPC E500 (dual-core)
- Freescale reference system (DS)
- U-Boot firmware
- design and implementation of SMP support for FreeBSD/powerpc on E500 cores
- implementation of low-level PowerPC glue for the ULE scheduler
- rework and extension of the low-level MMU layer, exceptions and interrupts areas to handle multiple processor environment
- implementation of device drivers for on-chip peripherals
- PCI-Express
- Pattern Matching Engine
- Security Engine
- General-purpose DMA Engine
- I2C
- extension of MPC85xx Ethernet driver with enhanced functionality support (jumbo frames, VLAN tagging, hardware checksum calculation)
- extension of Local Bus Controller driver to take advantage of new features found on the MPC8572
- presented at the AsiaBSDCon'09 conference
[+] Port to Freescale MPC8548, MPC8555 and other single-core MPC85xx family members
- platform
- PowerPC E500
- Freescale reference system (CDS)
- U-Boot firmware
- integration of FreeBSD native last-stage loader with firmware
- low-level kernel initialization routines for the E500 core
- design and implementation of low-level MMU support layer
- interrupts, exceptions handling
- implementation of device drivers for on-chip peripherals
- Ethernet, including advanced features (polling, interrupts coalescing etc.)
- Security engine
- presented at the BSDCan'07 conference
[+] Port to Freescale MPC750-based carrier-grade system
- platform
- PowerPC MPC750
- CompactPCI frame
- PPCBug firmware
- adaptation and integration of FreeBSD native last-stage loader with firmware API
- implementation of low-level kernel initialization routines, MMU set-up, all the way up to the machine-independent kernel layers
- PCI/host bridge
NetBSD
[+] Port to Marvell Armada XP <NEW>
- platform
- MV-78460
- Marvell development board
- U-Boot firmware
- PJ4B CPU core complex support
- low-level ARMv6/v7 infrastructure, cache, MMU, exceptions
- development of new interrupt controller (MPIC) driver
- adaptation and integration of device drivers for on-chip peripherals
- Timers
- Ethernet (NETA)
- USB 2.0 (EHCI) controller
- PCI-Express
- SATA
- I2C (TWSI)
- SPI
- RTC
[+] Port to AppliedMicro APM86290
- platform
- PowerPC PPC465 core
- AppliedMicro development board (Serengeti)
- U-Boot firmware
- implementation of low-level kernel initialization routines
- rework and extensions of low-level MMU support layer to fit PPC4xx specifics
- interrupts, exceptions handling
- non-coherent DMA handling
- implementation of device drivers for on-chip peripherals
- Bus drivers (PLB5, HBF, AHB, APB)
- USB (OHCI + EHCI)
- I2C
- RTC
- GPIO
- Queue Manager/Traffic Manager
- Ethernet
- PCI-Express
- multi user operation
- presented at the EuroBSDCon'12 conference
UEFI
[+] Port to Marvell Armada 370 (ARMv7)
- platform
- 88F6710 (ARMv7)
- Marvell development board
- compliant with Unified Extensible Firmware Interface 2.3
- implementation of low-level framework and support for the new platform (SEC, PEI, DXE and BDB of the UEFI specification)
- implementation of device drivers for on-chip peripherals as DXE services
- Interrupt controller
- Timers
- Ethernet
- SPI Flash
- Serial Port
- RTC
[+] Port to Marvell Armada XP (ARMv7 quad-core)
- platform
- MV-78460 (ARMv7 quad-CPU)
- Marvell development board
- compliant with Unified Extensible Firmware Interface 2.3
- implementation of low-level framework and support for the new platform (SEC, PEI, DXE and BDB of the UEFI specification)
- implementation of device drivers for on-chip peripherals as DXE services
- Interrupt controller
- Timers
- Ethernet
- SPI Flash
- Serial Port
- RTC
[+] Port to Marvell Armada 500 (ARMv7)
- platform
- 88AP510 (ARMv7 CPU)
- Marvell development board
- compliant with Unified Extensible Firmware Interface 2.3
- implementation of low-level framework and support for the new platform (SEC, PEI, DXE and BDB of the UEFI specification)
- implementation of device drivers for on-chip peripherals as DXE services
- Interrupt controller
- Timers
- Ethernet
- NAND Flash
- Serial Port
- RTC
Linux
[+] Ports and adaptations of embedded Linux to numerous systems
- MPC5121
- MPC5200
- MPC82xx
- MPC83xx
- MPC85xx
- PA6T-1682M
- PPC405, PPC440/460
U-Boot
[+] Ports and adaptations of U-Boot to numerous systems
- ARM v4, v5, v6, v7 implementations from different vendors (EP93xx, Feroceon/Sheeva, DaVinci, OMAP and others)
- MCF52xx
- MPC5121
- MPC5200
- MPC83xx
- MPC85xx
- PPC440
[+] Modern API for U-Boot standalone applications
- design, development and maintenance of the modern API for standalone applications in U-Boot (apart from general applicability, this allows for booting FreeBSD using its native last-stage loader on embedded systems running U-Boot)
- presented at the BSDCan'08 conference
[+] Next generation U-Boot images format (FIT)
- design and development of the next generation U-Boot images format, based on the Flattened Device Tree scheme (FIT)
[+] Miscellaneous features
- development of functional extensions like a reliable mechanism for firmware auto-update, extending U-Boot build infrastructure with the ability to keep object files in a separate directory, ECC diagnostic susbsystem for the MPC834x, and others
- many other extensions and improvements to U-Boot, several device drivers, various bug fixes (covering USB, memory controllers, PCI, FLASH, Ethernet controllers, exceptions, cache handling and other areas)