FreeBSD supports both 32-bit and 64-bit ARM chips.
On 32-bit, FreeBSD supports ARMv5, ARMv6 and ARMv7, called arm, armv6 and armv7.
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.
Which Board Do I Have?
The arm market varies from boards mostly oriented to system developers, to unsuccessful product ideas, to designs that have shipped many millions of units.
Of the latter, 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.
Raspberry Pis that came 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, are 64-bit CPUs and can run either of the above, or aarch64. On FreeBSD, the former is more well-tested.
Other boards are less common.
Most arm boards are 32-bit boards. Notable exceptions are Pine64 and Cavium, which are 64-bit.
All of these boards are based on particular System-On-Chip families (commonly termed SoC). A lot of the available documentation (both inside and outside FreeBSD) refers to specific SoCs, leading to confusion.
FreeBSD arm support can be thought of as being related to an SoC 'family':
For other boards, some development work may be necessary.
However, FreeBSD has preexisting support for U-Boot on many popular boards.
Well supported boards
The following boards are well supported, however some drivers may be missing. Multiple developers are regularly developing and testing new code on these boards.
Allwinner SoC: Banana pi, Cubieboard 1/2, Orange Pi PC/PC2, and many others
i.MX6 systems: Wandboard, CuBox, Hummingboard, and others
TI AM3359-based systems: Beaglebone White, Beaglebone Black
Raspberry Pi family
Boards with unknown support
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
ArndaleBoard (Samsung Exynos5250)
BeagleBoard and BeagleBoard-xM (TI OMAP3) - GSoC 2012, stable - aleek@
Genesi Efika MX Smarttop
Genesi Efika MX Smartbook
Globalscale Technologies OpenRD platform
- Marvell DB-88F5182, DB-88F5281, DB-88F6281, RD-88F6281, DB-78100 (ARMv5)
- Marvell DB-88F6781 (ARMv6)
- Marvell DB-78460 (ARMv7)
Odroid-C1 (Amlogic aml8726-m8b)(Work in progress)
Phytec Cosmic Board (Freescale Vybrid Family)
Radxa Rock (Work in progress)
RockChip (in progress as of 20180616)
Technologic Systems TS-7800
Visson ATV-102 (Amlogic aml8726-m6)(Work in progress)
Zedboard (Xilinx Zynq)
Well supported SoCs
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.
SoCs with unknown support
CPUs that are supported at an unknown level or currently in the works:
- Amlogic aml8726-m6 (used in Visson ATV-102) and aml8726-m8b (Hardkernel Odroid-C1)
Freescale Vybrid Family
- Marvell Armada 500 (ARMv6)
- Marvell Armada XP (ARMv7)
NXP LPC32x0 arm/lpc
- Qualcomm Snapdragon
Texas Instruments DaVinci Digital Media system-on-chip
- Xilinx Zynq7 family
A variety of information useful to people interested in development on or for ARM systems is available on the FreeBSD ARM Developer Resources page.
The following HOWTO guides have been contributed by the user community: