This is an old revision of the document!


FreeBSD ARM

FreeBSD supports both 32-bit and 64-bit ARM chips.

  • On 32-bit, FreeBSD supports ARMv6 and ARMv7, termed arm, armv6 and armv7, respectively.
    • Support for ARMv5 was dropped because it was slowing down other development.
  • Our 64-bit port is called arm64 (alternatively, aarch64).

Almost all 32-bit implementations are single boards. Some 64-bit implementations are single boards, but a few are full servers. The servers are better documented here.

The rest of this page applies to single boards.

The arm market varies from boards mostly oriented to system developers, to unsuccessful product ideas, to designs that have shipped many millions of units. The selection is bewildering.

Most people are familiar with the Raspberry Pi and its derivatives:

  • If you have an old Raspberry Pi (e.g. Rasperry Pi B), you have a 32-bit board that can only run the armv6 code.
  • The Raspberry Pis that came right after that are generally 32-bit boards, and they can run either armv6 or armv7 code.
  • Some of the latest Raspberry Pis, including Raspberry Pi 3 and 4, are 64-bit CPUs and can run either of the above, or aarch64. On FreeBSD, the former is more well-tested.

You may instead have an Allwinner-based board, such as the Orange Pi, Pine64, and so forth; or a RockChip-based board.

Other boards are less common.

Many arm boards are 32-bit boards. Notable exceptions are Cavium, Pine64, and recent Raspberry Pis, which are 64-bit: see arm64 for more information.

All of these boards are based on particular System-On-Chip families (commonly termed SoC). Much of the available documentation (both inside and outside FreeBSD) refers to specific SoCs rather than board names, leading to confusion.

FreeBSD arm support can be thought of as being related to an SoC 'family':

FreeBSD Release Engineering builds specific images for various popular 32-bit boards including rpi-b and rpi2, and various popular 64-bit boards including pine64 and rpi-3.

Alternatively, images for many boards can be built by crochet or using FreeBSD's release build infrastructure.

For other boards, some development work may be necessary.

However, FreeBSD has preexisting support for U-Boot on many popular boards.

Also see notes about the prebuilt images.

The following boards are well supported, however some drivers may be missing. Multiple developers are regularly developing and testing new code on these boards.

These are boards that are supported at an unknown level or currently in the works. For more information on the current state of support for any of these, please send an email to FreeBSD ARM Mailing List

The following SoCs (CPUs) are well supported, however some drivers may be missing. Multiple developers are regularly developing an testing new code on these SoCs.

CPUs that are supported at an unknown level or currently in the works:

A variety of information useful to people interested in development on or for ARM systems is available on the FreeBSD ARM Developer Resources page.

  • arm.1606415573.txt.gz
  • Last modified: 2020/11/26 18:32
  • by martinfilla