Contents
FreeBSD/ARM on the Bananapi family (R64/R2/R3/R4)
What is Bananapi-R64 Pi?
SoC: MediaTek MT7622 (Dual-core ARM Cortex-A53)
- RAM: 1GB DDR3
- Storage: microSD, eMMC
Network: 5x Gigabit Ethernet, onboard WiFi (MT7615), miniPCIe slot
- USB: 1x USB 3.0
- UART: 3x serial ports
- GPIO, I2C, SPI, PWM support
Peripherals Support Table
Peripheral |
Status |
Notes |
SD Card (mmc0) |
Working |
|
eMMC |
Not supported |
|
Ethernet (LAN) |
Working |
|
Ethernet (WAN) |
Not supported |
|
Ethernet switch 7531 |
Working |
Driver WIP, needs more testing |
WiFi (MT7615) |
Not supported |
No driver in FreeBSD yet (mt76 missing) |
USB 3.0 |
Not supported |
|
USB 2.0 |
Not supported |
|
UART0 (console) |
Working |
Default console |
UART1/2 |
Disabled |
|
GPIO |
Partial |
Basic gpio WIP, need test |
Pinctrl |
Working |
Basic pinctrl |
SPI |
Not supported |
|
I2C |
Not supported |
|
PWM |
Not supported |
|
SATA |
Not supported |
|
miniPCIe |
Not supported |
Use for extra WiFi cards, not tested |
RTC |
Partial |
Internal RTC supported |
Watchdog |
Working |
Driver WIP, needs more testing |
Xhci |
Working |
Driver WIP, needs more testing |
Clocks + clocks pll |
Working |
Driver WIP, needs more testing |
What is Bananapi-R2 Pro?
Peripherals Support Table
Peripheral |
Status |
Notes |
SD Card (mmc0) |
Working |
|
eMMC |
Not supported |
|
Ethernet (LAN) |
Working |
only ChaosBSD |
Ethernet (WAN) |
Working |
only ChaosBSD |
WiFi (MT7615) |
Not supported |
No driver in FreeBSD yet (mt76 missing) |
USB 3.0 |
Broken |
not working |
UART0 (console) |
Working |
Default console |
UART1/2 |
Disabled |
|
GPIO |
Working |
Basic gpio WIP, need test |
Pinctrl |
Working |
Basic pinctrl |
SPI |
Not supported |
|
I2C |
Working |
|
PWM |
Not supported |
|
Sata |
Developing |
not tested |
miniPCIe |
Working |
Use for extra WiFi cards, not tested |
RTC |
Working |
Internal RTC supported |
Watchdog |
Working |
|
Clocks |
Working |
|
- For bananapi-r2-pro, there is a bug in AHCI
- For bananapi-r2-pro, there is a bug in PCIE (freeze, but wait for .dts patch)
Support for the Ethernet MT7531 switch has been merged into ChaosBSD
What is Bananapi-R3?
Peripherals Support Table
Device Tree Node |
Compatible |
Function |
Status |
Notes |
watchdog@1001c000 |
mediatek,mt7986-wdt |
Watchdog Timer |
No driver attached |
Watchdog driver missing |
apmixedsys@1001e000 |
mediatek,mt7986-apmixedsys |
PLL / Clock Controller |
No driver attached |
Required for clock framework |
pinctrl@1001f000 |
mediatek,mt7986a-pinctrl |
Pin Multiplexing / GPIO |
No driver attached |
Critical dependency for GPIO and peripherals |
pwm@10048000 |
mediatek,mt7986-pwm |
PWM Controller |
No driver attached |
PWM output support missing |
rng@1020f000 |
mediatek,mt7986-rng |
Hardware Random Generator |
No driver attached |
Entropy source |
crypto@10320000 |
inside-secure,safexcel-eip97 |
Crypto Accelerator |
No driver attached |
Hardware AES/SHA/IPsec offload |
serial@11002000 |
mediatek,mt7986-uart |
UART1 |
No driver attached |
Clock dependency unresolved |
serial@11003000 |
mediatek,mt7986-uart |
UART2 |
No driver attached |
Clock dependency unresolved |
serial@11004000 |
mediatek,mt7986-uart |
UART3 |
No driver attached |
Clock dependency unresolved |
i2c@11008000 |
mediatek,mt7986-i2c |
I²C Controller |
No driver attached |
Required for sensors and PMICs |
spi@1100a000 |
mediatek,mt7986-spi-ipm |
SPI Controller 0 |
No driver attached |
Flash and peripheral support |
spi@1100b000 |
mediatek,mt7986-spi-ipm |
SPI Controller 1 |
No driver attached |
Flash and peripheral support |
thermal@1100c800 |
mediatek,mt7986-thermal |
Thermal Sensor |
No driver attached |
Temperature monitoring |
adc@1100d000 |
mediatek,mt7986-auxadc |
ADC |
Disabled / No driver |
Analog input support |
usb@11200000 |
mediatek,mt7986-xhci |
USB 3.0 XHCI |
No driver attached |
USB host controller |
mmc@11230000 |
mediatek,mt7986-mmc |
SD/eMMC Controller |
Disabled / No driver |
Storage support |
pcie@11280000 |
mediatek,mt7986-pcie |
PCIe Host Bridge |
No driver attached |
PCIe subsystem support |
t-phy |
mediatek,mt7986-tphy |
USB/PCIe PHY |
No driver attached |
PHY framework required |
efuse@11d00000 |
mediatek,mt7986-efuse |
eFuse Controller |
No driver attached |
Calibration and MAC address storage |
t-phy@11e10000 |
mediatek,mt7986-tphy |
PHY Controller |
No driver attached |
PHY framework required |
ethernet@15100000 |
mediatek,mt7986-eth |
Ethernet MAC + DMA |
No driver attached |
Core networking functionality |
wifi@18000000 |
mediatek,mt7986-wmac |
Integrated Wi-Fi 6 MAC |
No driver attached |
Wireless subsystem |
pwm-fan |
pwm-fan |
PWM Fan Controller |
No driver attached |
Depends on PWM support |
gpio-keys |
gpio-keys |
GPIO Buttons |
No driver attached |
Depends on GPIO framework |
i2c-gpio-0 |
i2c-gpio |
GPIO Bitbang I²C |
No driver attached |
Depends on GPIO support |
i2c-gpio-1 |
i2c-gpio |
GPIO Bitbang I²C |
No driver attached |
Depends on GPIO support |
sfp-1 |
sff,sfp |
SFP Cage |
No driver attached |
Optical module support |
sfp-2 |
sff,sfp |
SFP Cage |
No driver attached |
Optical module support |
Additional Issues
Component |
Issue |
OFW Resource Allocation |
ofwbus0: no default resources for rid = 4, type = 1 |
ARM Generic Timer |
could not allocate irq for optional interrupt 'hyp-virt' |
UART Clock Framework |
uart0: Cannot get UART clock: 6 |
GPIO LED Support |
failed to map pin |
Pinctrl Framework |
Likely root cause of GPIO LED failures |
Clock Framework |
Required by UART, Ethernet, USB, PCIe, GPIO and other peripherals |
Suggested Driver Implementation Order
- MT7986 Clock Framework (apmixedsys / topckgen / infracfg)
- MT7986 Pinctrl
- MT7986 GPIO
- MT7986 Ethernet
- MT7986 XHCI USB
- MT7986 PCIe
- MT7986 I²C
- MT7986 SPI
- MT7986 Wi-Fi (WMAC)
- Remaining drivers (Thermal, RNG, Crypto, PWM, Watchdog)
Notes
The missing clock framework appears to be the primary blocker. Multiple subsystems already fail due to unresolved clock dependencies, including UART devices.
The missing pinctrl driver is also critical because GPIO-based devices (LEDs, GPIO keys, I²C-GPIO) cannot function correctly without proper pin mapping and mux configuration.
Once clock and pinctrl support are available, a significant portion of the currently unattached devices should become functional or at least probe successfully.