FreeBSD/arm64 is the FreeBSD port to the 64-bit ARM architecture, also known as AArch64 or ARMv8. FreeBSD 11.0 includes out-of-the-box support for ARMv8, and over 20,000 packages are available in the 3rd party software collection. Cavium's ThunderX is the initial reference platform for the FreeBSD/arm64 port.
The basic FreeBSD/arm64 support is available in FreeBSD-CURRENT and FREEBSD-11-STABLE. (For reference, also see the history of FreeBSD/arm64 commits).
The standard buildworld sequence works:
export MAKEOBJDIRPREFIX=<path-to-suitable-objdir> make buildworld TARGET=arm64
The build sequence for the kernel is a fairly standard one:
export MAKEOBJDIRPREFIX=<path-to-suitable-objdir> make buildkernel TARGET=arm64
This results in an image called 'kernel' created in:
** See the 'Source' section above for the svn-checkout-path.
ARM Foundation Model
The ARMv8 Foundation Model is available from ARM. You must read and accept a click-through license to obtain it. The Foundation model may be run in a Linux virtual machine, or by using the experimental 64-bit Linux emulation support.
Cavium's ThunderX is the initial reference target platform for FreeBSD/arm64.
FreeBSD 11.0 supports the ThunderX EVB (evaluation board) and CRB (customer reference board) in SMP mode (48 CPU cores). SATA drives, PCIe expansion cards, and the on-chip network interface are fully supported.
The HiKey is a low cost (~$75 - $100 + shipping) ARMv8 board from Linaro.
Pine64 is pretty well supported other than HDMI. jmcneill@ is poking at HDMI.
QEMU now has aarch64 system mode emulation support. It is available by installing the qemu-devel package or emulators/qemu-devel port.
The Release Engineers build periodic snapshots, including for arm64 on QEMU. Instructions on where to find these are sent to the shapshots mailing list.
See arm64/QEMU for further details on booting FreeBSD/arm64 in QEMU, including links to AArch64 EFI firmware files that are not included with the QEMU port.
Raspberry Pi 3 (RPI3)
This section has moved to arm64/rpi3
SoftIron Overdrive 3000
FreeBSD mostly works, other than the internal dual 10G networking, however support for this is being worked on. In the interim PCIe NICs work.
- Userland SDT DTrace probes (usdt) do not work
- The Cavium ThunderX vnic driver has several issues (PRs 204414, 204415, 206310, 223573, 223575) but it's generally functional
- ACPI is not enabled (PR 209072)
- libc does not provide sbrk and some ports have not been updated to cope (PR 213862)
- Modules with per-VNET static variables will panic upon load, when VIMAGE is enabled (PRs 222314, 223670)
- Much profiling and performance work is still needed
Search for open PRs with Hardware = arm64.