Sinovoip Banana Pi M3

'''Be aware that the board manufacturer is not cooperative. Despite its name the M3 is incompatible to Banana Pi/M1/M1+/Pro due to a different SoC requiring different boot loaders and drivers.''' It's just another attempt to cash in on the Banana Pi's popularity with another incompatible SBC sharing brand, name, form factor and GPIO header.

= Identification =

It's an SBC with blue PCB silkscreened "BPI-M3" in white where you can easily recognise A83T/AXP813 on the PCB's top side.

= Sunxi support =

Unsupported.

Current status
All OS images the manufacturer provides are based on Allwinner's 3.4.39 kernel. Mainlining efforts for the M3's A83T SoC just started so things won't improve that soon.

Images

 * Official download page with M3 section containing preliminary Linux 3.4.39 images
 * Android 5.1.1 image provided by SinoVoip

Manual build
No support in the community maintained sunxi-3.4 kernel is planned. Allwinner's kernel sources for the A83T can be found now here.

Sunxi/Legacy U-Boot
The manufacturer uses an u-boot.2011-something version without support for script.bin

Mainline U-Boot
Use the  build target.

Sunxi/Legacy Kernel
Since the M3's bsp uses an aging u-boot from 2011 no script.bin support exists therefore you've to adjust display settings in the fex file. Some can be found in SinoVoip's M3 repo.

Mainline kernel
Use the  device-tree binary.

= Tips, Tricks, Caveats =

LEDs
The BPi-M3 features 3 LEDs located between IR receiver and microphone: A red one indicating power that can't be turned off and a green and blue one accessible through sysfs after latest fixes are applied to kernel sources and hardware initialisation.

Both green and blue LED can then be controlled through sysfs and appear below /sys/class/leds/. To show the available triggers do a  and set this to none if the default heartbeat blinking annoys you. Since the timer trigger also exists BananaLEDd should be useable to show disk activity and average load (to be confirmed) since BananaLEDd supports LEDs accessible through sysfs starting with version 1.2

SATA
Be aware that the A83T SoC used on the M3 isn't SATA capable and therefore the SATA port is provided by an USB-to-SATA-bridge. This means you can neither expect SATA performance nor full SATA functionality. While the used GL830 bridge supports S.M.A.R.T. attributes it does not support S.M.A.R.T. status notification (overall health indicator of the disk – instead of PASSED or FAILED you will only get SMART Status not supported: Incomplete response, ATA output registers missing). Fortunately the GL830 seems to have no 2TB limitation.

Expected SATA performance is even worse compared to Orange Pi Plus that relies on the same old GL830 chip since on the M3 all externally available USB host ports and the SATA bridge are connected through the internal hub to one single USB port and therefore have to share bandwidth. First tests don't look that promising: tests done with a fast SSD/ext4 at two different clockspeeds: 13/23 MB/s @ 480 MHz vs 15/30 MB/s @1800 MHz write/read. Using an external Micron JMS567 that is known to get close to 40 MB/s sequential transfer speeds @ 1800 MHz exceeded 35/34 MB/s write/read with same SSD/ext4. It seems the GL830 wasn't the best choice to provide a SATA port on the M3.

FEL mode
The u-boot button triggers FEL mode.

Thermal behaviour
Allwinner's kernel for H3 and A83T seem to implement identical thermal throttling strategies depending on fex settings that can be read out through sysfs: /sys/devices/virtual/thermal/thermal_zone0/trip_point*. If these values are set in incremented order first throttling will occur and only if this still doesn't help CPU cores will dropped. By tuning these settings you might get the opposite of what's intended: a slower system due to less available CPU cores.

With Allwinner's kernel there's also something like fan control implemented. Below /sys/devices/virtual/thermal/cooling_device0/ you can read out cur_state that will be adjusted depending on fex settings between 0 and max_state.

Without a heatsink you won't exceed 1.2GHz when running CPU intensive tasks, when choosing a good one and enough airflow you might get up to 1.6 GHz and everything above needs an annoying fan. The good news: This is still no overvolting/overclocking since it's just about better heat dissipation to avoid throttling.

= Adding a serial port =



The UART header is between u-boot button and the Ethernet port. Just attach some leads according to our UART howto.

= Pictures =

= See also =


 * a so called 'User Manual' and some hardware docs
 * Schematics V1.1