MSI Primo81

Jump to navigation Jump to search
MSI Primo81
MSI Primo81 front.jpg
Manufacturer MSI
Dimensions 200mm x 135mm x 7.8mm
Release Date November 2013
Website Device Product Page
SoC A31s @ 1Ghz
DRAM 1GiB DDR3 @ 360MHz (2x NT5CC256M16CP
Power USB, 3500mAh 3.7V Li-Ion battery
LCD 768x1024 (7.85" 4:3), using SSD2825
Touchscreen 5-finger capacitive (Goodix GT911)
Video HDMI (Type C - mini)
Audio 3.5mm headphone plug, HDMI, internal speaker, internal microphone
Network WiFi 802.11 b/g/n (RTL8188ETV)
Storage µSD
Camera 0.3MP (640x480) front, 2.0MP (1600x1200) rear
Other Accelerometer (Freescale MMA8452)
Headers Camera, capacitive touch panel, MIPI DSI LCD

This page needs to be properly filled according to the New Device Howto and the New Device Page guide.

This is a brand name tablet from a reputable hardware vendor, so no problems with identification are expected. The tablet has a nice slim, but sturdy aluminium frame and a high quality 1024x768 IPS screen. A Mini-HDMI connector is also available.

This device is perfectly unbrickable because it effectively has a hardware FEL button. Also the manufacturer helpfully provides recovery images for the original Android system, so that the tablet can be always restored to the factory state after any crazy experiments.


There is a clearly visible MSI Primo81-216 label on the back of the tablet. It simply can't be mistaken with anything else.

Information about the Android firmware:

Sunxi support

Current status

The FEX file can be found in sunxi-boards as msi_primo81.fex

Feature Mainline u-boot + mainline kernel Allwinner SDK sunxi-3.4 kernel
WLAN Works (kernel 4.4rc1 or newer / u-boot v2015.04 or newer). The Android kernel from the Allwinner SDK may potentially work with GNU/Linux, but nobody has tested it on this device yet. Feel free to try SDK build howto No plans to support this kernel on A31s hardware
HDMI Works with simplefb (kernel 4.4rc1 or newer / u-boot v2015.04 or newer).
LCD Works with simplefb (kernel 4.4rc1 or newer / u-boot v2015.04 or newer).
USB OTG Works in host-only mode (support was added in kernel 4.3).
Touchscreen A goodix touchscreen driver exists in the mainline Linux kernel since v3.19, but devicetree support has only been added in kernel v4.1. Basic functionality (cursor positioning and "left-button" click emulation) works.
Accelerometer A driver exists, but is currently untested.
Camera Unsupported
Audio Unsupported




Manual build

No support in the community maintained sunxi-3.4 kernel is planned. Please skip to the next Mainline U-Boot/Mainline kernel sections.

Mainline U-Boot

Basic support in mainline u-boot (SPL and console output on the LCD) is available since u-boot v2015.04. Host mode support for the USB OTG port and console input with a USB keyboard is possible with the current mainline u-boot git 'master' branch and will probably be enabled by default in u-boot v2015.07.

For building mainline u-boot, use the MSI_Primo81 board name.

Mainline kernel

Use the sun6i-a31s-primo81.dtb device-tree file for the mainline kernel.

Tips, Tricks, Caveats

FEL mode

The VOL+ button triggers FEL mode. The button is directly connected to the UBOOT_SEL pin and drives it low when pressed, as can be easily verified by reading the BOOT_SEL_PAD_STA bits from SRAM_VER_REG. This makes the device unbrickable even in the worst case scenario of NAND corruption.


MSI Primo81 and LCD support in u-boot

The tablet is using a high quality B079XAN01/LP079X01 7.85" 768x1024 IPS LCD display (the same as in the 1st generation iPad Mini). This LCD display is using MIPI DSI interface, but the A31s SoC does not have native support for it. So a separate SSD2825 bridge chip converts parallel LCD interface into MIPI DSI for this display to work. Such setup is somewhat more complicated than a regular LCD display and needs a special code path in the u-boot display driver.

Attempt to do software identification of the LCD panel with the help of issuing MIPI DCS commands via SSD2828:

Trying standard MIPI DSI commands to identify LCD panel:
DCS command 0x04 returned  1 bytes: 00
DCS command 0xA1 returned  1 bytes: 00
Trying nonstandard MIPI DSI commands to identify LCD panel:
DCS command 0xB1 returned 15 bytes: A1 95 19 19 00 00 00 00 00 00 00 00 37 10 00
DCS command 0xDA returned  1 bytes: 00
DCS command 0xDB returned  1 bytes: 00
DCS command 0xDC returned  1 bytes: 00

Unfortunately neither of the standard MIPI_DCS_GET_DISPLAY_ID (0x04) and/or MIPI_DCS_READ_DDB_START (0xA1) commands is supported. The non-standard 0xB1 command returns some sequence of bytes, but we are yet to figure out whether this is actually anything meaningful. It does not look like AUO or LG codes from the MIPI Alliance Manufacturer ID Page :-)

The LCD's orientation is upside down, portrait mode, meaning the origin (0,0) point is in the bottom right corner if held upright, or the corner closed to the headphone jack.


The touchpanel is a capacitive touchpanel, supported by a Goodix GT911 CTP IC. The touchpanel has a different orientation than the LCD. It has a landscape orientation, with the origin point in the same corner as the LCD, the corner closed to the headphone jack.

MicroSD breakout for debugging

It is possible to temporarily abandon the SD card slot and instead gain UART serial console by using a MicroSD Breakout accessory. This is useful for low level u-boot/kernel debugging without any need to dismantle the device. Even without the SD card, the system (u-boot + kernel + initramfs) still can be booted over a MicroUSB cable by using the FEL/USBBoot mode provided by BROM.

Use as a GNU/Linux desktop machine

A MiniHDMI cable can be used to connect a big desktop monitor. Something like a USB OTG Charging Hub accessory allows using USB peripherals (keyboard, mouse, ethernet adapter, etc.) and supplying power to the tablet at the same time.

Adding a serial port (voids warranty)


This section explains how to attach a serial port to the device. Make sure it refers to our UART howto. For a development board, you can just mention how to find the header with the pins and include a picture, and you can remove the warranty voiding warning.

Device disassembly

The tablet has a one-piece aluminum bezel/back. It is fastened to the LCD by 5 equally spaced plastic clips on both long sides. Since the aluminum is quite stiff, you should use a Plastic_tool to pry it apart. Using a metal tool is likely to warp the aluminum back.

Locating the UART

Describe how to find the RX,TX,GND signals here, and mention the UART howto.


Display quality comparison with MSI Primo73

Also known as

See also

  • MSI Primo73 (has the same WLAN, touchscreen, accelerometer and camera, but different SoC and LCD screen)
  • ICOU Fatty I (also uses SSD2828 for driving a MIPI LCD display)

Manufacturer images

The manufacturer provides a PhoenixSuite recovery image at