Support for all the below is done on a volunteer basis. New devices are added all the time. However, from time to time certain older devices will be dropped unless new developers volunteer to maintain them.
FreeBSD supports the following Allwinner SoCs:
| Name | Type | Cores | Width | Family | FreeBSD | Comments | Example Boards |
|---|---|---|---|---|---|---|---|
| Allwinner A10 | sun4i | 1 | 32 | Cortex-A8 | armv7 | supported | Cubieboard |
| Allwinner A13/R8 | sun5i | 1 | 32 | Cortex-A8 | armv7 | supported | OLinuXino |
| Allwinner A20 | sun7i | 2 | 32 | Cortex-A7 | armv7 | supported | Banana Pi |
| Allwinner A31 & A31s | sun6i | 4 | 32 | Cortex-A7 | armv7 | supported | Banana Pi M2 |
| Allwinner A64 | sun50i | 4 | 64 | Cortex-A53 | aarch64 | supported | Pine64 |
| Allwinner A83T | sun8i | 8 | 32 | Cortex-A7 | armv7 | supported | Banana Pi M3 |
| Allwinner H3 & H2+ | sun8i | 4 | 32 | Cortex-A7 | armv7 | supported | Orange Pi One |
| Allwinner H5 | sun50i | 4 | 64 | Cortex-A53 | aarch64 | supported | NanoPI K1 Plus |
| Allwinner H6 | sun50i | 4 | 64 | Cortex-A53 | aarch64 | supported | Pine H64 |
These SoCs are found in a large number of development boards and other devices. FreeBSD has support for some of these boards, including (but not limited to) the following:
Note: A10 support is now in an “only as needed” basis as of 20180620. It is reasonably similar to the more-popular A20, however.
Note: A13 support is now in an “only as needed” basis as of 20180620. It is reasonably similar to the more-popular A20, however.
Note: A31 support is being considered for deprecation as of 20180612.
Boards known to boot FreeBSD:
For the quickest of quick-starts without understanding, follow these steps:
dd if=FreeBSD-13.0-RELEASE-arm64-aarch64-ROCK64.img \ of=/dev/da0 bs=1M conv=notrunc dd if=/usr/local/share/u-boot/u-boot-pine-h64/u-boot-sunxi-with-spl.bin \ of=/dev/da0 bs=128k seek=1 conv=sync
Legend
| Supported |
| Should work |
| Work in progress |
| Untested |
| Not working |
| Not supported |
| Not applicable |
| A10 | A13 | A20 | A31 | A31S | A64 | A83T | H3 | H5 | H6 | |
| Audio (analog) | YES | YES | YES | |||||||
| Audio (HDMI) | YES | |||||||||
| cpufreq / DVFS | YES | YES | YES | YES | YES | YES | ||||
| crypto | YES | |||||||||
| DMA | YES | YES | YES | |||||||
| Ethernet | r262710 | YES | YES | YES | r305134 | YES | YES | YES | YES | |
| Framebuffer | YES | efifb | efifb | |||||||
| GPIO | r246342 | YES | YES | YES | YES | r305134 | YES | YES | YES | |
| HDMI video | YES | |||||||||
| I2C | r295626 | YES | YES | YES | YES | r305134 | YES | YES | ||
| IR (RX) | YES | YES | YES | |||||||
| SATA | 285090 | YES | ||||||||
| SD/MMC | r283253 | YES | YES | YES | YES | r305134 | YES | YES | YES | YES |
| Thermal | YES | YES | YES | YES | YES | YES | YES | |||
| UART | YES | YES | YES | YES | YES | r305134 | YES | YES | YES | YES |
| USB Host | r246057 | YES | YES | YES | YES | r305134 | YES | YES | YES | |
| USB DRD | YES | YES | YES | YES | YES | YES | YES | |||
| Watchdog | YES | YES | YES | YES | YES | r305134 | YES | YES | YES | |
| SPI | YES | YES | YES | YES | YES | YES | YES | YES | YES |
The following SoC interfaces are not yet supported by FreeBSD:
The following features are not directly related to Allwinner SoCs but are often implemented on Allwinner boards:
Most Allwinner systems use U-Boot as the boot program. Please see this page for details.
There are several different ways to build an image.
Install the xorg and xf86-video-scfb packages, and add the following to /etc/X11/xorg.conf:
Section "InputDevice"
Identifier "Keyboard1"
Driver "kbd"
EndSection
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/sysmouse"
EndSection
Section "Monitor"
Identifier "Monitor"
EndSection
Section "Device"
Identifier "Generic FB"
Driver "scfb"
EndSection
Section "Screen"
Identifier "Screen"
Device "Generic FB"
Monitor "Monitor"
DefaultDepth 24
SubSection "Display"
Depth 24
EndSubsection
EndSection
Section "ServerLayout"
Identifier "layout"
Screen 0 "Screen" 0 0
InputDevice "Mouse1" "CorePointer"
InputDevice "Keyboard1" "CoreKeyboard"
EndSection