MSI Primo81

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.

= Identification = 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: http://www.androiddevice.info/submission/18755/show

= Sunxi support =

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

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.

LCD


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.

Touchpanel
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 may allow using USB peripherals (keyboard, mouse, ethernet adapter, etc.) and supplying power to the tablet at the same time.

Note that the USB OTG support is still not ready in the mainline kernel at the moment.

= Adding a serial port (voids warranty) =



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
= Pictures =

= 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 http://www.msi.com/support/windpad/Primo_81.html#down-firmware