ASUS Transformer Prime (asus-tf201)

Contributors

 * Clamor
 * Ion Agorria

Unlocking
The first step to do anything with the device is unlocking, with this device its done by sideloading the unlock apk from ASUS and clicking a few buttons in the app. The apk can be found on the ASUS support page.

Bootloader unlock fails with Unknown error
Contact ASUS tech support, describe the issue and provide them with information they'll request. Bootloader unlock may become available within 1-2 days after the request.

Android kernel

 * 3.1 kernel based on ASUS sources with updates till Oreo support (Morpheus kernel)
 * 3.4 kernel as a part of Unlegacy Android Project (Unlegacy kernel)

Mainline (Grate)

 * Baseline kernel sources on master: https://github.com/grate-driver/linux
 * Proper dts for TF201 is added
 * Version: 6.1.0-stable
 * Status: Boots. Almost full support.

How to enter flash modes
Turn tablet off if it is in the system. Then press POWER and VOL DOWN buttons till you feel the vibration. Then release the POWER only. You will enter the bootloader/fastboot. In bootloader you can navigate with VOL DOWN button and to choose option use VOL UP button.

Bootloader version
Latest bootloader for TF201 was 10.4.2.18 and to use pmOS you need bootloader version of 10.6.1.27.5 to reach this you can use flashable via TWRP bootloader packages.

Installation process
Preparing rootfs and flashing kernel:

Flashing rootfs to eMMC
You should proceed very carefully here.

Rootfs should be flashed to the /userdata partition.

Prerequisites: TWRP, at least version 3.3.1-0, binaries for 10.6.1.27.5 bootloader are here.

First, start TWRP (go to bootloader and choose RCK) and then continue with these instructions

U-Boot

 * legacy android boot.img stuck when loaded via u-boot (u-boot can not establish TrustZone)

Kernel

 * emmc vio voltage is 3.3v when proper should be 1.8v (setting 1.8v brakes emmc); MicroSD vdd supply is always on and MicroSD frequency is limited - all 3 are ASUS bootloader bugs, u-boot does not have this bugs;
 * BCM4751 GPS is commonly used in devices of this age, although it still does not have proper implementation (nor kernel, nor userspace);

Userspace

 * add missing indicators for multimedia keys like for brightness
 * bind /prop touchpad toggle to userspace indication

Desktop environment
Since 3D acceleration is not available yet, all DE which use it will be painfully slow and laggy.

Currently xfce4 or mate are recommended.

U-Boot
Current U-Boot status on Asus Transformer Prime TF201

Primary, you need to build a u-boot from this source (github) on master branch and transformer_t30_defconfig tf201.config. Use same GCC as for kernel. When build is finished, you will get a file with name u-boot-dtb-tegra.bin. This is new bootloader.

Place u-boot-dtb-tegra.bin into your nvflash folder. Set your device into APX mode and perform

And wait till tablet reboots.

If you need to restore Asus bootloader, you can find one in stock firmware blob and flash it with same method.

USB Extension Kit
As there are signal issues due to the design of the TF201 back-shell, ASUS supplied a GPS Extension Kit for use at the dock-port.

(TODO: add picture)

Inside the GPS ExtensionKit is u-blox 6 usb-gps receiver, wich is well supported by gpsd.

If connected it will show up as /dev/ttyACM0 (typically), dmesg output:

To automatically update gpsd on the u-blox receiver availability, create a new .rules file unde r/etc/udev/rules.d:

Serial console
Asus Transformers have serial port both on motherboard and in 40 pin connector.

MOTHERBOARD
On motherboard serial console can be organized via J0801 according to enclosed scheme. UART is UART-A (serial@70006000; 115200n8) and uses 3.3v. This method requires disassembling tablet.

UART CABLE
Serial console can be additionally made from standard charging cable, but in process cable will be destroyed.

You would need:

- Asus charging cable;

- UART to USB (like CP2102);

- 3 wires with pin plugs on end;

- Soldering iron, a bit of skill;



First of all you need to cut both ends of charging cable and prepare any 3 of cable wires for further soldering on both sides. Then solder your wires with pin plugs to prepared wires of Asus cable on ONE SIDE.

Now we need to prepare 40 pin plug. It's cover is solid, but there is a plastic rubber around metal plug, it needs to be cut, then metal plug can be carefully extracted. Controller board is covered with black silicon, it needs to be teared as well. Then you need to unsolder ground (black wire), it holds board to metal plug. After board can be unsoldered or gently pulled and it will come out with pins. Then you have to remove all remaining pins, find where 6 and 7 pins are on shorter side (!) and make their holes a bit bigger (holes from board side!). Insert pins from board(I've inserted mine with 90°, they insert easier and work fine; additionally you may try straightened stapler clip). Now you can solder wires on other side of Asus cable to pins and to metal connector. Additionally, I have fixed pins with super glue, before fixing pins check is they reach almost end of its groove.

6th pin is RX of device and 7th pin is TX of device, GND is on metal connector.

Connect RX (6th pin wire) to TX of CP2102, TX (7th pin wire) to RX of CP2102 and GND to GND respectively. Plug your USB adapter, configure it and you are ready to take UART logs.