aboutsummaryrefslogtreecommitdiff
path: root/website/content/en/platforms/arm.adoc
blob: 1140e73c3f67ccca12f3d224f8e0ce5c26643f32 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
---
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 List>>
* <<todo,What Needs To Be Done>>
* <<links,FreeBSD/ARM Related Links>>
* <<miniinst,Mini-Install Guide>>
* <<list,FreeBSD/ARM mailing list>>

[[status]]
== Status

32-bit ARMv6 and ARMv7 is officially a link:{committers-guide}#archs[Tier 2] architecture, as the link:../../[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 supported ARMv4 and ARMv5 processors, and is deprecated as of 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, https://wiki.freebsd.org/FreeBSD/arm[the FreeBSD/arm Wiki pages], and also 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)

Note that 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]
* http://www.netbsd.org/ports/#ports-by-cpu[NetBSD Arm projects]

[[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].