Arm Community
Arm Community
  • Site
  • User
  • Site
  • Search
  • User
Arm Community blogs
Arm Community blogs
Architectures and Processors blog Semihalf's ARM64 blog #1: The FreeBSD on the 96 CPU ARMv8 SoC
  • Blogs
  • Mentions
  • Sub-Groups
  • Tags
  • Jump...
  • Cancel
More blogs in Arm Community blogs
  • AI blog

  • Announcements

  • Architectures and Processors blog

  • Automotive blog

  • Embedded and Microcontrollers blog

  • Internet of Things (IoT) blog

  • Laptops and Desktops blog

  • Mobile, Graphics, and Gaming blog

  • Operating Systems blog

  • Servers and Cloud Computing blog

  • SoC Design and Simulation blog

  • Tools, Software and IDEs blog

Tell us what you think
Tags
  • AArch64
  • freebsd
  • Armv8
  • open_source_platform
  • multi-core
  • Arm64
Actions
  • RSS
  • More
  • Cancel
Related blog posts
Related forum threads

Semihalf's ARM64 blog #1: The FreeBSD on the 96 CPU ARMv8 SoC

Rafal Jaworowski
Rafal Jaworowski
October 27, 2015
2 minute read time.

Semihalf is happy to present the first blog post from the planned series of topics covering interesting facts about porting FreeBSD to ARMv8 architecture.

We're glad to announce that the Cavium ThunderX system has become the first ARMv8 hardware that runs FreeBSD.

Motivations and goals

FreeBSD is undoubtedly the most popular BSD operating system available.

Unlike Linux, it is released under a permissive BSD license and as a complete system distribution (this includes not only kernel but also base root file system and development tools).

One of the main areas of FreeBSD deployment is server market. It is therefore substantial for the FreeBSD community (developers and users) to keep up with growing interest in ARM-based servers. This idea was a motivation for Semihalf to pick up the gauntlet and bring FreeBSD to one of the most exciting ARMv8 platforms out there.

The newly introduced support was based on initial foundational work submitted by Andrew Turner and Robin Randhawa, with emulation as the primary target and is a joint work of Semihalf team, Andrew Turner, ARM Ltd., Cavium and The FreeBSD Foundation.

About the hardware platform

The Cavium ThunderX is currently the most advanced implementation of ARMv8 architecture. A single chip incorporates all features that are crucial for  modern server applications:

  • SMP scalability up to 48 cores per socket (2-socket configuration gives as many as 96 cores)
  • fast DDR3 ECC memory controllers with up to 128GB per socket
  • top-performing network interfaces, configurable to support 1/10/20/40GbE over fiber or copper links
  • variety of fast IO interfaces: PCIe 3.0, SATA 3.0

Semihalf contribution

Semihalf focus and responsibility was making FreeBSD work on ThunderX as the best performing chip in the FreeBSD/ARM64 world. From the beginning, our goal was to create a user-accessible support that could be taken from the FreeBSD-HEAD branch and utilized on the actual, ARM server.The work done includes:

  • Stabilizing the machine dependent kernel parts to work on an actual hardware. Before, all development was done in virtualized environment, like QEMU or ARM FastModels. Interacting with the hardware allowed to find a full variety of very nasty bugs within the ARMv8 base system.
  • Providing support for “extreme” SMP (Symmetric Multi-Processing) on ARM FreeBSD. ThunderX is the first machine that offers up to 96 CPU cores for the operating system. Previous ARM devices did not exceed 8 core count. Pushing it to its limit appeared to be a very interesting task.
  • Implementing or enhancing existing drivers for basic subsystems. The most interesting are:
    • GICv3 and ITS (Interrupt Translation Services) - provide the FreeBSD with support for completely new approach to interrupt controllers and message signalled interrupts.
    • PCIe - add support for Cavium implementation of PCIe controller
    • Virtualized Networking Interface (VNIC).

The platform offers ultra-fast, virtualized networking interfaces (1Gbps, 10Gbps, 20Gbps, 40Gbps) with a richful set of functionalities, including SR-IOV with up to 128 virtual functions.

Future of FreeBSD on ARMv8

The ARMv8 architecture and ThunderX system is intended to be the Tier-1 platform for the FreeBSD. This means that FreeBSD will maintain the ongoing support for ARM64 and will provide application packages, etc. in a manner known from the other Tier-1 platforms (I386, AMD64).

All integrations are targeted to FreeBSD-11- STABLE which is going to be released in 2016. By that time all work done by Semihalf will be fully integrated into the FreeBSD tree.

About Semihalf

Semihalf creates software for advanced solutions in the areas of platform infrastructure (operating systems, bootloaders), virtualization, networking and storage.  We make software tightly coupled with the underlying hardware to achieve maximum system capacity.

Technologies developed by Semihalf power a wide range of products, from consumer electronics to cloud data center elements and carrier-grade networking gear.

Anonymous
Architectures and Processors blog
  • Introducing GICv5: Scalable and secure interrupt management for Arm

    Christoffer Dall
    Christoffer Dall
    Introducing Arm GICv5: a scalable, hypervisor-free interrupt controller for modern multi-core systems with improved virtualization and real-time support.
    • April 28, 2025
  • Getting started with AARCHMRS Features.json using Python

    Joh
    Joh
    A high-level introduction to the Arm Architecture Machine Readable Specification (AARCHMRS) Features.json with some examples to interpret and start to work with the available data using Python.
    • April 8, 2025
  • Advancing server manageability on Arm Neoverse Compute Subsystem (CSS) with OpenBMC

    Samer El-Haj-Mahmoud
    Samer El-Haj-Mahmoud
    Arm and 9elements Cyber Security have brought a prototype of OpenBMC to the Arm Neoverse Compute Subsystem (CSS) to advancing server manageability.
    • January 28, 2025