---
title: "FreeBSD/ARM Project"
sidenav: developers
---

include::shared/authors.adoc[]
include::shared/en/urls.adoc[]

= FreeBSD/ARM Project

== Introduction

This page contains information about the FreeBSD port to the 32- and 64-bit ARM architectures and hardware. Discussion of the ARM ports takes place on the https://lists.freebsd.org/archives/freebsd-arm[freebsd-arm] mailing list.

== Table of Contents

* <<status,Status>>
* <<hw,Hardware Notes>>
* <<todo,What Needs to be Done>>
* <<links,Related Links>>
* <<miniinst,Mini-install Guide>>
* <<list,Mailing list>>

[[status]]
== Status

32-bit ARMv7 is officially a link:{committers-guide}#archs[Tier 2] architecture, as link:../../[the FreeBSD Project] does not provide official releases or pre-built packages for this platform due to it primarily targeting the embedded arena. However, FreeBSD/ARM is being actively developed and maintained, is well supported, and provides an excellent framework for building ARM-based systems. FreeBSD/arm previously supported ARMv4 and ARMv5 processors which were deprecated in 13.0. FreeBSD/armv7 includes SMP support.

FreeBSD/arm64 supports 64-bit ARMv8 processors and is a link:{committers-guide}#archs[Tier 1] architecture as of 13.0. 64-bit ARM platforms follow a set of standard conventions, and a single FreeBSD build will work on hardware from multiple vendors. As a result, FreeBSD provides official releases for FreeBSD/arm64 and packages are available.

[[hw]]
== FreeBSD/ARM Hardware Notes

FreeBSD/arm and FreeBSD/armv6 support a large range of ARM CPUs and development boards. Not every peripheral is supported on every CPU or board, though work continues towards this and contributions are always welcome. Conversely, many CPUs and boards not listed may work with only minimal changes needed.

Listing all supported devices on all CPUs and boards is impractical here, however much information can be obtained from the mailing list and archives, the https://wiki.freebsd.org/arm[FreeBSD ARM wiki pages], and from the https://cgit.freebsd.org/src/tree/sys/arm/conf/[kernel configuration files]

=== Cores Supported

* ARM9E
* Most XScale
* Marvel Feroceon
* Marvel Sheeva
* ARM10E
* ARM11J
* Cortex A5
* Cortex A7
* Cortex A8
* Cortex A9
* Cortex A12
* Cortex A15

=== SoCs

* Allwinner A10/A20
* Atmel AT91RM92 and AT91SAM9 families
* Broadcom BCM2835 (used in Raspberry Pi)
* Cavium CNS11xx
* Freescale i.MX51, i.MX53, i.MX6 and Vybrid Family
* Intel XSCALE
* Marvell Orion, Kirkwood and Discovery Innovation families of systems-on-chip
* Marvell Armada 500 (ARMv6) and Armada XP (ARMv7)
* NXP LPC32x0
* Qualcomm Snapdragon
* Rockchip RK3188
* Samsung Exynos5 and S3C24xxx
* Texas Instruments DaVinci Digital Media SoC
* TI OMAP
* Xilinx Zynq7 family

Note that not all peripherals are supported on all CPUs.

=== Boards

* ArndaleBoard (Samsung Exynos5250)
* Atmel AT91RM9200
* BeagleBoard and BeagleBoard-xM (TI OMAP3)
* BeagleBone
* Colibri VF50 Evaluation Board
* Cubieboard(1,2) (Allwinner A10/A20)
* Device Solutions Quartz
* Gateworks Avila GW2348 and Cambria GW2358
* Genesi Efika MX Smarttop and Smartbook
* Globalscale Technologies OpenRD platform
* Google Chromebook
* Kwikbyte KB9202B (as well as the older KB9202 and KB9202A)
* Linksys NSLU2
* Marvell DB-88F5182, DB-88F5281, DB-88F6281, RD-88F6281, DB-78100
* Marvell DB-88F6781 (ARMv6)
* Marvell DB-78460 (ARMv7)
* Marvell Sheeva Plug and Dream Plug
* Pandaboard (OMAP4)
* Phytec Cosmic Board (Freescale Vybrid Family)
* Raspberry Pi
* Radxa Rock (Work in progress)
* SBC6045 with Atmel at91sam9g45
* Technologic Systems TS-7200 and TS-7800
* Wandboard
* Zedboard (Xilinx Zynq)

Not all peripherals are supported on all boards.

[[todo]]
== What Needs to be Done

* SATA support needs to be added for boards currently missing it.
* Other devices, such as watchdog, i2c and bus should be merged from NetBSD.

[[links]]
== FreeBSD/ARM related Links

* http://esd.et.ntust.edu.tw/downloads/2008_Embedded_Programming/2008_ESW/Embedded_3_ARM.pdf[Brief history of ARM]
* Platforms supported by NetBSD: CPU architectures: http://www.netbsd.org/ports/#ports-by-cpu[Ports by CPU architecture]

[[miniinst]]
== Mini-install Guide

{cognet} has written a mini-install guide for the current FreeBSD source. It is https://people.FreeBSD.org/~cognet/arm.html[available here].

[[list]]
== FreeBSD/ARM mailing list

To subscribe to this list, send mail to `<freebsd-arm+subscribe@FreeBSD.org>` or visit the http://lists.FreeBSD.org/subscription/freebsd-arm[web interface].
