https://wiki.postmarketos.org/api.php?action=feedcontributions&user=Clamor&feedformat=atompostmarketOS - User contributions [en]2024-03-28T10:20:22ZUser contributionsMediaWiki 1.39.6https://wiki.postmarketos.org/index.php?title=Device_Wishlist&diff=56141Device Wishlist2024-02-20T16:39:34Z<p>Clamor: /* Mainline Linux Candidate Devices */ Toshiba AC100 has full native support with introduction of common tegra-armv7 device package</p>
<hr />
<div>We have been asked, which devices we would like to see pmOS running on - by people who might specifically buy them (with broken screens etc, to get them cheaper) to help the project. Please list devices here, that you would like to see pmOS running on. Do not list devices, that we already have a port for, or specify a reason why you do.<br />
<br />
== Mainline Linux Candidate Devices ==<br />
<br />
* Asus Zenfone GO ZB500KL/ZB500KG (msm8916 and can be ported from crackling) [https://github.com/D042888-2/android_device_asus_ASUS_X00AD_2/ here dts]<br />
* [https://www.ayn.hk/Odin/ AYN Odin / AYN Odin Pro] (Android handheld game console with [[Qualcomm Snapdragon 845 (SDM845)|SDM845]] and 8GB RAM, [https://github.com/ProjectValhalla/OdinMultiBootGuides/blob/main/pages/odin_dualboot_linux_guide.md Odin dualboot linux guide] )<br />
* Kindle Fire 1st Generation (Model # seems to be D01400) (Free software Bootloader, pretty much a PandaBoard devkit with a screen) [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/omap4-kc1.dts Mainline DTS available]<br />
* Nexus 5X [[Google_Nexus_5X_(lg-bullhead)|WIP Mainline (5.18)]]. [https://invidio.us/watch?v=77tuFtM4gjA Basic support available]<br />
* Nexus 6P [https://invidio.us/watch?v=77tuFtM4gjA Basic support available]<br />
* Nokia N9, N950<br />
* [http://www.noodlepi.com/ Noodle Pi] (Open Hardware, "a full Linux PC in your pocket! With hi-res display, camera, battery, WiFi, Bluetooth, HDMI and USB.") - '''see [[Raspberry Pi]]'''<br />
* OPPO FIND 7a (shares components with the [https://wiki.postmarketos.org/wiki/OnePlus_One_(oneplus-bacon) OnePlus One] which has mainline support)<br />
* Sony Xperia X - Consider the [https://wiki.postmarketos.org/wiki/Sony_Xperia_X_(sony-suzu)#Additional_notes following]<br />
* [https://plus.google.com/102276447148493441479/posts/amRvpE8piSw Sony Xperia Z3]<br />
* [https://developer.sonymobile.com/2016/02/17/work-on-the-mainline-kernel-for-open-xperia-devices/ Sony Xperia Z]<br />
* [[Samsung Galaxy E5 (samsung-e5)]] (Similar to [[Samsung Galaxy E7 (samsung-e7) | E7]] but not tested)<br />
* Samsung Galaxy S Relay 4G (apexqtmo) ([https://cascardo.eti.br/blog/News_on_Debian_on_apexqtmo/ WIP mainline support])<br />
* [https://github.com/PabloPL/linux Samsung Galaxy S S1(?) with panel (s6e63m0) and usb switch (fsa9480)]<br />
* [[Samsung_Galaxy_Tab_2_10.1_(3G_and_Wifi)_(samsung-espresso10)|Samsung Galaxy Tab 2 10.1]] (Has a supported [[Texas_Instruments_OMAP_4_(OMAP44xx)|OMAP Chip]] but it has a PowerVR GPU, which doesn't work with mainline)<br />
* Xiaomi Mi Pad 1 (Nvidia Tegra K1) [[Xiaomi_Mi_Pad_(xiaomi-mocha)|Working but slow for now]]<br />
* Xiaomi Mi Pad 2 (Intel Atom x5-Z8500)<br />
* [[ODROID_N2%2B_(odroid-n2plus)]] (seem to has great mainline support)<br />
* [[ODROID_N2_(odroid-n2)]] (seem to has great mainline support)<br />
<br />
== Candidate Devices ==<br />
<br />
Please keep this list sorted by alphabet for readability.<br />
* Acer Iconia A1-810<br />
* Acer Iconia B1-730HD<br />
* Acer Iconia B1-A71<br />
* ARK Benefit A3 (cheaper Elephone Trunk clone)<br />
* [https://www.asus.com/ca-en/Phone/ZenFone_2_ZE551ML/specifications/ ASUS Zenfone 2 (Z00AD, ZE551ML)]<br />
* ASUS MeMO Pad 7 (ME172V)<br />
* Atrust T66 (Thin Client, based on i.MX6 SoC)<br />
* Ubuntu phones<br />
* BQ Aquaris E4.5<br />
* BQ Aquaris E5<br />
* [[BQ Aquaris M10 (bq-cooler)]]<br />
* BQ Aquaris X2 (Pro)<br />
* [https://www.crosscall.com/fr_FR/core-x4-COX4.MASTER.html Crosscall Core-X4]<br />
* DooGee x5/x5Pro (MediaTek MT6735M) ([https://github.com/SnowCat6/DOOGEE-kernel-3.18 SnowCat Kernel]) (Also requires non-kernel code, firmware & drivers, [https://github.com/SnowCat6?utf8=%E2%9C%93&tab=repositories&q=x5pro see here])<br />
* Elephone Trunk - it has similar hardware as Wileyfox Swift (already supported)<br />
*Eonprix-pentagram tab 7.6 (p5346) (rockchip 3168 armv7 CPU)<br />
* [http://projects.goldelico.com/p/gta04-main/ GTA04] - replacement board for OpenMoko Neo 1973/Freerunner (GTA01/02) with OMAP3 SoC, mainline DTS, supported by Replicant<br />
* [[Google Pixel 2 XL (google-taimen)]]<br />
* HTC Flyer (aka. HTV EVO View 4G)<br />
* Huawei Mate 10 Pro<br />
* Huawei P9 Plus (VIE-L09 (Single SIM); VIE-L29 (Dual SIM))<br />
* Huawei Y3 <br />
* Huawei Y5 II<br />
* [https://gitlab.com/postmarketOS/pmbootstrap/issues/57 Old iPhones] (must be [[OpeniBoot]] compatible to make it feasible)<br />
* iPhones/iPads/iPods compatible with [https://github.com/konradybcio/linux-apple linux-apple]<br />
* Intex Aqua Fish and Other Sailfish running devices<br />
* Lenovo K10a40<br />
* Lenovo TAB 2 A10-70F<br />
* Lenovo TAB 4 8 (TB-8504X) (Different from [[Lenovo Tab 4 8 (lenovo-tb8504f)|TB-8504F]])<br />
*[[Light phone 2]]. Small e-ink device running [[Qualcomm MSM8909 Snapdragon 210]].<br />
* LG Leon<br />
* LG Optimus Black (P970): [https://code.paulk.fr/article20/a-hacker-s-journey-freeing-a-phone-from-the-ground-up-first-part Replicant support and open bootloader]<br />
* Meizu MX4<br />
* [https://en.wikipedia.org/wiki/Motorola_Defy Motorola Defy series] (small, ruggedized, initial OMAP3 and later Qualcomm, [https://forum.xda-developers.com/showthread.php?t=2312349 bootloaders might still be locked])<br />
* Motorola Droid RAZR (spyder)<br />
* Motorola Moto G6 Play<br />
*Motorola Moto G Stylus 2021 (minsk) [https://github.com/MotorolaMobilityLLC/kernel-msm/tree/MMI-RPCS31.Q2-109-16-17 Kernel source] and [https://github.com/MotorolaMobilityLLC/motorola-kernel-modules/tree/MMI-RPCS31.Q2-109-16-17 Kernel Modules Source] on GitHub, I was unable to compile it myself. Bootloader can be unlocked. Runs on a Snapdragon 675 (SM6150). I'm honestly surprised this phone doesn't have better custom ROM support.<br />
* Motorola Xoom (MZ604, MZ605)<br />
* Nintendo 3DS (Old and New, once its [https://github.com/xerpi/linux_3ds/ kernel fork] gets SDMMC write support)<br />
* [[Nokia 3 (nokia-ne1)]]<br />
* [[Nokia 5 (nokia-nd1)]]<br />
* [[Nokia Lumia 520 (nokia-fame)]], 525, 635 and/or other unlocked Lumia devices<br />
* OnePlus 8 (instantnoodle)<br />
* OnePlus 9R<br />
* OnePlus ACE<br />
* OpenPandora handheld games console, mainline DTS<br />
* Pyra handheld games console, mainline DTS<br />
* [https://www.cnx-software.com/2017/06/14/10-smartphone-display-released-for-orange-pi-2g-iot-board Orange Pi + display] - "it costs 20$ and is open hardware" (Ri_ck in #postmarketOS)<br />
* PocketBook Inkpad 3 Pro<br />
* [https://pocketbookstore.com/products/pocketbook-touch-hd-3 PocketBook Touch HD3] Lovely compact e-ink i.MX6 1GHz Cortex-A9 ebook with some ready linux recipes: [https://github.com/c3pio-man/pb-qt-3/tree/6.3.upd2 Official SDK] [https://variwiki.com/index.php?title=VAR-SOM-SOLO/DUAL SoC other kernel sources]<br />
* Samsung 360 H1 - runs originally on LiMO (Linux Mobile), has a bootloader and Android port, see XDA<br />
* Samsung Epic 4G (SPH-D700)<br />
* [[Samsung Galaxy Core Plus (samsung-cs02)]]<br />
* Samsung Galaxy Grand 2<br />
* Samsung Galaxy J7 Prime 2016 (on7xelte)<br />
* Samsung Galaxy Note 8 (Exynos)<br />
* Samsung Galaxy S7 Edge (China Qualcomm) (hero2ltechn)<br />
* [[Samsung Galaxy Spica (GT-I5700)]] (Samsung S3C6410 CPU 800mhz)<br />
* Samsung Galaxy S20/20+ <br />
* Samsung Galaxy Tab Pro 10.1 TM-525/PicassoLTE<br />
* [[Samsung Galaxy Tab A7 Lite (samsung-gta7litewifi)]] (sm-t220) (WiFi)<br />
* [[Samsung Galaxy Tab S5e (gts4lvwifi)]] (SM-T720 & SM-T725)<br />
* Samsung Galaxy Tab S6 Lite WiFi / LTE (gta4xlwifi/gta4xl) (Exynos 9611, 4 GB RAM)<br />
* Samsung Gear S<br />
* Samsung S8500 Wave - runs originally on Bada 2.0, has a bootloader and an Android port, see XDA<br />
* [https://wiki.postmarketos.org/wiki/Sony_Xperia_XZ1_Compact_(sony-lilac) Sony Xperia XZ1 Compact (lilac) yoshino platform] last 4,5 inch compact and powerful smartphone. [https://github.com/whatawurst/android_kernel_sony_msm8998 Downstream kernel] doesn't boot, but its SoC is in mainline process <br />
* Sony Xperia Z Ultra - [https://github.com/NoelMacwan/Kernel-Honami-Togari-14.2.A.1.142 Kernel Source] <br />
* Wooze I5<br />
* Xiaomi Mi Pad 3 (cappu)<br />
* Xiaomi Mi 10T lite 5G (xiaomi-gauguin) <br />
* Xiaomi Redmi 5 (rosy)<br />
* [[Xiaomi Redmi 5A (xiaomi-riva)]]<br />
* Xiaomi Redmi 9 / 9 Prime / Poco M2 (lancelot/lava/shiva)<br />
* [[Xiaomi Redmi 9T NFC (xiaomi-lemon)]]<br />
* Xiaomi Redmi K20 / Mi 9T (davinci)<br />
* Xiaomi Redmi Note 5a (ugglite)<br />
* Xiaomi Redmi K40S / Poco F4<br />
<br />
== Low Priority Devices ==<br />
<br />
* Zipit Z2 (well supported kernels, but runs <code>armv5te</code> which is currently unsupported on Alpine, see also: {{issue|238}})<br />
* Older Nokias (N810, N800, N770) -- should have mainline support, but less than 128MB of memory<br />
* OpenMoko -- less than 128MB of memory<br />
* [[Unsupported Devices]]<br />
<br />
[[Category:Hardware]]<br />
[[Category:Community]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=Nvidia_Tegra&diff=55683Nvidia Tegra2024-02-10T08:45:55Z<p>Clamor: </p>
<hr />
<div>__TOC__<br />
<br />
== SoCs ==<br />
{{Infobox soc<br />
| name = Tegra 2<br />
| manufacturer = Nvidia<br />
| arch = armv7<br />
| image = File:NVIDIA T20 chip.jpg<br />
| imagecaption = NVIDIA T20 chip<br />
| year = 2010<br />
| cpu = 2x 1.0/1.2 GHz ARM Cortex-A9<br />
| community_page = https://github.com/grate-driver<br />
| gpu = Nvidia ULP Geforce<br />
| process = 40<br />
| mainline = yes<br />
| status_cpu = Y<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = P<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_spi = Y<br />
| status_audio = Y<br />
| status_video = P<br />
| status_thermal = Y<br />
| status_wifi = -<br />
| status_bluetooth = -<br />
| status_modem = -<br />
| status_gps = -<br />
| status_camera = N<br />
| status_suspend = Y<br />
| status_npu = -<br />
| status_ethernet = -<br />
}}<br />
{{Infobox soc<br />
| name = Tegra 3<br />
| manufacturer = Nvidia<br />
| arch = armv7<br />
| image = File:NVIDIA T30 chip.jpg<br />
| imagecaption = NVIDIA T30 chip<br />
| year = 2011<br />
| cpu = 4x 1.2/1.4/1.6 GHz ARM Cortex-A9<br />
| community_page = https://github.com/grate-driver<br />
| gpu = Nvidia ULP Geforce<br />
| process = 40<br />
| mainline = yes<br />
| status_cpu = Y<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = P<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_spi = Y<br />
| status_audio = Y<br />
| status_video = P<br />
| status_thermal = Y<br />
| status_wifi = -<br />
| status_bluetooth = -<br />
| status_modem = -<br />
| status_gps = -<br />
| status_camera = N<br />
| status_suspend = Y<br />
| status_npu = -<br />
| status_ethernet = -<br />
}}<br />
{{Infobox soc<br />
| name = Tegra 4<br />
| manufacturer = Nvidia<br />
| arch = armv7<br />
| image = File:NVIDIA T114 chip.png<br />
| imagecaption = NVIDIA T114 chip<br />
| year = 2013<br />
| cpu = 4x 1.8-1.9 GHz Cortex-A15<br />
| community_page = https://github.com/grate-driver<br />
| gpu = Nvidia ULP Geforce 72 cores<br />
| process = 28<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = P<br />
| status_display = Y<br />
| status_gpu = P<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_spi = P<br />
| status_audio = Y<br />
| status_video = P<br />
| status_thermal = Y<br />
| status_wifi = -<br />
| status_bluetooth = -<br />
| status_modem = -<br />
| status_gps = -<br />
| status_camera = N<br />
| status_suspend = Y<br />
| status_npu = -<br />
| status_ethernet = -<br />
}}<br />
=== Tegra 2 ===<br />
<br />
==== Devices with a Tegra 2 Chipset ====<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999 <br />
|where=Devices.chipset like '%Nvidia Tegra 2%'<br />
|more results text=<br />
}}<br />
<br />
==== CPU ====<br />
Tegra 2 uses two A9 cores without NEON instructions.<br />
<br />
=== Tegra 3 ===<br />
<br />
==== Devices with a Nvidia Tegra 3 Chipset ====<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999 <br />
|where=Devices.chipset like '%Nvidia Tegra 3%'<br />
|more results text=<br />
}}<br />
<br />
=== Tegra 4 ===<br />
<br />
==== Devices with a Nvidia Tegra 4 Chipset ====<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999 <br />
|where=Devices.chipset like '%Nvidia Tegra 4%'<br />
|more results text=<br />
}}<br />
<br />
==== List of missing/malfunctioning drivers ====<br />
* DSI driver and MIPI calibration (malfunctioning on TF701T)<br />
* HDMI driver (no evidence that it can work on T114)<br />
* ACTMON driver (is present but has dependency on missing driver)<br />
* SPI driver (fails to detect some spi devices)<br />
* EMC/external-memory-controller driver (missing, required by actmon)<br />
* HDA driver (T30 has T114 support but it fails to work)<br />
* XUSB and XUSB-padctl (missing, T124 may be used as reference)<br />
* CEC driver (present but not tested since HDMI does not work)<br />
* SOCTHERM driver and thermal zones (missing, T124 may be used as reference)<br />
* DFLL driver (missing, T124 may be used as reference)<br />
* cortex-a15-pmu (check if it is used by t114)<br />
* powergates and power-domains (check if it is needed by t114)<br />
<br />
== GPU ==<br />
<br />
Tegra 2/3/4 use grate driver.<br />
<br />
Tegra K1 and newer use nouveau.<br />
<br />
However, all Tegra SoCs share drm driver. <br />
<br />
=== Tegra 2/3/4 ===<br />
<br />
==== Components [https://github.com/grate-driver/ (source)] ====<br />
* Mesa-3D (minimal implementation, not complete enough (GL 1.4) to run XWayland (requires GL 2.1 or GLES2)<br />
* xf86-video-tegra (2D acceleration for X11, EXA)<br />
* libvdpau-tegra<br />
<br />
==== Usability ====<br />
Wayland:<br />
* Phosh works, but UI is accelerated trough llvmpipe (software rendering), thus is slow.<br />
* Plasma mobile not tested (please update)<br />
<br />
X11:<br />
* Xfce4 and Mate desktop will run on 2D acceleration.<br />
* Hildon requires an OpenGL backend.<br />
** As of cogl 1.22.2 the clutter/cogl backend requires stencil buffers (<code>EGL_STENCIL_SIZE</code>). This not yet implemented in the grate-driver.<br />
<br />
=== Tegra K1 and newer ===<br />
<br />
See https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2960<br />
<br />
== Video Decoding ==<br />
<br />
Video Decoder Engine (VDE) was added to mainline kernel v4.16. The grate-driver includes hardware h264 decoding with libvdpau-tegra.<br />
<br />
The vdpau driver does '''not''' support h264 videos encoded with:<br />
* weighted prediction<br />
* CABAC<br />
<br />
Sample video that can be decoded with hardware acceleration:<br />
https://peach.blender.org/trailer-page/<br />
<br />
<syntaxhighlight lang="shell-session"><br />
$ mpv --hwdec=vdpau trailer_720p.mov<br />
Using hardware decoding (vdpau).<br />
VO: [vdpau] 1280x720 vdpau[yuv420p]<br />
</syntaxhighlight><br />
<br />
== APX ==<br />
Nvidia Tegra devices have APX mode which allows to flash/debrick a device even with broken bootloader. It also allows to sideload bootloader which is useful when porting a new bootloader.<br />
<br />
Some devices have a key combination to enter this mode, some devices don't have one. We have a hook which alters two PMC registers which causes device to enter APX mode. It works on the most devices including some of those that don't have a key combination for APX.<br />
<br />
Usage on Android devices:<br />
<br />
<syntaxhighlight lang="shell-session"><br />
$ pmbootstrap initfs hook_add apx<br />
$ pmbootstrap flasher boot<br />
</syntaxhighlight><br />
<br />
On Chrome OS devices and other not supporting <code>fastboot boot</code> command you will have to flash the image with kernel after enabling apx hook.<br />
<br />
== Participate development ==<br />
=== Develop ===<br />
==== Mesa3D Gallium driver ====<br />
https://github.com/grate-driver/mesa<br />
<br />
* Host1x ABI rework (required before mesa implemenetation): [https://docs.google.com/document/d/1hj7-Bup1NtjJVHzGvs92kTkah0EEh_9wDHBsQWUkuwo/edit (G. docs)] <br />
* migrate from TGSI to NIR<br />
* establishing demos that work, where can be seen regression<br />
<br />
==== New Device Trees ====<br />
To generate the correct RAM timings for new Tegra 3 devices from known kernel sources, you can start from the known (downstream) RAM model code, and generate valid timings using this tool by Ion Agorria: https://gitlab.com/IonAgorria/tegra-timings-generator.<br />
<br />
The #postmarketOS-on-transformers:matrix.org chat room will also be an excellent starting point for the porting of any new Tegra 2/3/4 device, also outside strictly the ASUS Transformer series</div>Clamorhttps://wiki.postmarketos.org/index.php?title=User:Clamor&diff=55636User:Clamor2024-02-08T19:23:55Z<p>Clamor: /* Owns Devices */</p>
<hr />
<div><div style="float: right;"><br />
{{User ports|7}} <!-- tf201, tf300t, f300tg, tf700t, chagall, p895 are already in; tf300tl - need a tester --><br />
{{User mainline|11}} <!-- tf101, tf201, tf300t, tf300tg, tf700t, chagall are in linux directly; tf600t, tf300tl, p1801-t and p895 in grate; sl101 and p880 are WIP --><br />
{{User GitLab|clamor-s}}<br />
</div><br />
<br />
Usually I am re-writing some downstream crappy code into more modern looking crappy code.<br />
<br />
Have big experience with nVidia Tegra SoC, especially with older one (T20/T30/T114).<br />
<br />
Can be found in telegram: [https://t.me/Clamor_S Clamor]<br />
<br />
== Owns Devices ==<br />
{{My devices}}<br />
{{Owns device|Google_Nexus_5_(lg-hammerhead)|Running Unlegacy Android Project Oreo ROM}}<br />
{{Owns device|Google_Nexus_7_2013_(asus-flo)|Running Unlegacy Android Project Oreo ROM}}<br />
{{Owns device|Google_Nexus_7_2012_(asus-grouper)| }}<br />
{{Owns device|ASUS_Transformer_Prime_(asus-tf201)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|ASUS_Transformer_Pad_(asus-tf300t)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)|pmOS with Grate kernel and tethered U-Boot}}<br />
{{Owns device|HTC_HD2_(htc-leo)|Runs CM 11 by macs18max}}<br />
{{Owns device|Xiaomi_Poco_F1_(xiaomi-beryllium)|Tianma panel model}}<br />
{{Owns device|HTC_One_X_(htc-endeavoru)|HTC why are you such an ...? U-Boot runs non the less}}<br />
{{Owns device|LG_Optimus_Vu_(lg-p895)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|NVIDIA_Tegra_Note_7_(nvidia-tegratab)|pmOS with Grate kernel and tethered U-Boot}}<br />
{{Owns device|Motorola_Atrix_4G_(motorola-olympus)|Needs a glitch}}</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)&diff=55635ASUS Transformer Pad (TF701T) (asus-tf701t)2024-02-08T19:23:19Z<p>Clamor: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Asus<br />
| name = Transformer Pad (TF701T)<br />
| codename = asus-tf701t<br />
| image = File:asus_tf701t.jpg|200px<br />
| imagecaption = Asus TF701T in its dock, MATE desktop<br />
| releaseyear = 2013<br />
| originalsoftware = Android<br />
| originalversion = 4.2.2<br />
| extendedversion = 4.4.2<br />
| orginalkernel = 3.4.113<br />
| pmoskernel = mainline grate<br />
| chipset = Nvidia Tegra 4 (T114)<br />
| cpu = Quad-core 1.9 GHz Cortex-A15<br />
| gpu = NVIDIA ULP GeForce® GPU 72 cores<br />
| storage = 32/64 GB<br />
| display = 2560x1600 Super IPS+ LCD<br />
| memory = 2 GB (DDR3)<br />
| architecture = armv7<br />
| booting = no<br />
<!-- you can also use these lines if you need to:<br />
| whet_dhry = 0.0<br />
--><br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = N<br />
| status_screen = Y<br />
| status_wifi = P<br />
| status_xwayland = Y<br />
| status_fde =<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio =<br />
| status_bluetooth = Y<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = P<br />
| status_hdmidp =<br />
| status_keyboard = Y<br />
| status_touchpad = N<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = P<br />
| status_uboot_secondary = P<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = Y<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = N<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
}}{{Based on SoC|Nvidia_Tegra_4_(tegra114)|Tegra 4}}<br />
<br />
== Contributors ==<br />
* [[user:Jenneron|Jenneron]]<br />
* [[user:Clamor|Clamor]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
* '''Fastboot''': Power on the device with both {{Button|Power}} and {{Button|Volume Down}} buttons.<br />
* '''APX''': Power on the device with both {{Button|Power}} and {{Button|Volume Up}} buttons.<br />
<br />
== Installation ==<br />
Follow [[Installation guide|Installation Guide]]. <br />
<br />
Note that system partition is only 2 GB, so you probably want to do <code>pmbootstrap flasher flash_rootfs --partition userdata</code>.<br />
<br />
== Hardware status (mainline/grate) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
|Booting<br />
|Boot partition is 8 MiBs so image size should be less than 8 MiBs. Fastboot boot works.<br />
|-<br />
| P<br />
|Panel<br />
|Sharp LQ101R1SX03 panel in split mode. Works if boot from ASUS bootloader, does not work if boot from u-boot.<br />
|-<br />
| Y<br />
|Backlight<br />
|PWM backlight is used. Does not regulate if boot from ASUS bootloader (always max), if boot from u-boot backlight is adjustable.<br />
|-<br />
| N<br />
|HDMI output<br />
|Bindings are present in device tree, but it is broken for now.<br />
|-<br />
| N<br />
|Touchscreen<br />
|Used Raydium RM31081 touchscreen connected via SPI. There is no driver in mainline. Raydium do not answer if they can provide datasheet.<br />
|-<br />
| P<br />
|USB Gadget<br />
|Dies after suspend<br />
|-<br />
| P<br />
|USB Host<br />
|Full size USB 3.0 port and SD slot in dock. Works only in EHCI mode.<br />
|-<br />
| Y<br />
|SD card<br />
|MicroSD card and full sized SD card (recognized as USB drive) in dock.<br />
|-<br />
| Y<br />
|Internal memory<br />
|HS200 eMMC. Works from u-boot but fails if loaded from ASUS bootloader.<br />
|-<br />
| N<br />
|GPS<br />
|There is driver for [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] which is similar to our BCM4752.<br />
|-<br />
| P<br />
|WiFi<br />
|Uses Azurewave BCM43341. Fails silently after loading Broadcom patch.<br />
|-<br />
| P<br />
|Bluetooth<br />
|Uses Azurewave BCM43341. Occasionally works.<br />
|-<br />
| Y<br />
| GPIO keys/switches<br />
|There are 3 GPIO keys: Power, Volume up, Volume down. <br />
And 2 GPIO witches: LID sensor and Audio dock line-out detection.<br />
|-<br />
| Y<br />
| Dock Keyboard<br />
|HID over I2C device. Works correctly. Multimedia keys require separate driver.<br />
|-<br />
| N<br />
| Dock Touchpad<br />
|Looks like a mix of elan i2c touchpad and ps2 elantech mouse. Not working.<br />
|-<br />
| Y<br />
| Dock Battery<br />
|It is handled via Nuvoton NPCE69ALA0DX embedded controller of PAD.<br />
|-<br />
| Y<br />
| Battery/Charger<br />
|Battery status works via Nuvoton NPCE69ALA0DX embedded controller of PAD.<br />
|-<br />
| Y<br />
| PMIC<br />
|Texas Instruments TPS65913B2B5 PMIC.<br />
|-<br />
| N<br />
|Sound<br />
|Sound codec is RT5639 (close relative of RT5640). Not configured yet.<br />
|-<br />
| Y<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer.<br />
|-<br />
| Y<br />
|Inertial measurement unit<br />
|Invensense mpu6500 accelerometer + gyroscope.<br />
|-<br />
| Y<br />
|Magnetometer<br />
|Asahi Kasei ak(m)09911.<br />
|-<br />
| Y<br />
|Light sensor<br />
|Driver Dyna-Image AL3010.<br />
|-<br />
| N<br />
|Front camera<br />
|Aptina mi1040 camera sensor. Grate kernel doesn't support VI yet.<br />
|-<br />
| N<br />
|Rear camera<br />
|OmniVision ov5693. Driver is present, needs setup in device tree. Grate kernel doesn't support VI yet.<br />
|-<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== U-Boot ==<br />
{{note|U-Boot as for now can only be loaded to RAM without permanent replacement of ASUS bootloader}}<br />
<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Feature<br />
! Info<br />
|-<br />
| P<br />
|Primary bootloader<br />
|U-Boot can be booted via fusée gelée exploit, even in locked state. Currently there is no way to replace ASUS bootloader without getting private RSA key from ASUS/nVidia.<br />
|-<br />
| N<br />
|Secondary bootloader<br />
|U-Boot can NOT be chainloaded from /boot or /recovery partitions yet. <br />
|-<br />
| N<br />
|Panel<br />
|DSI bridge of T114 is not supported in u-boot. When chainloaded primary bootloader's panel setup should be reused (simple framebuffer).<br />
|-<br />
| Y<br />
|MicroSD<br />
|Fully functional and detectable. Can be used as boot source. Can be mounted from U-Boot.<br />
|-<br />
| P<br />
|eMMC<br />
|It is correctly detected by u-boot, but should not be used as boot source.<br />
|-<br />
| Y<br />
|Boot kernel<br />
|Yes, and can be highly adjusted with extlinux.conf.<br />
|-<br />
| Y<br />
|Power management<br />
|Offline charging and charging in u-boot both work and are hw configured. Both power off and reboot options work. If no valid kernel is found tablet will turn off.<br />
|-<br />
| P<br />
|Fastboot<br />
|U-Boot loads fastboot by default. Memory writing options are not available.<br />
|-<br />
|}<br />
<br />
== UART location ==<br />
<br />
==== UART pads on motherboard ====<br />
[[File:Tf701t_pad_uart.png|350px]]<br />
<br />
==== UART pads on dock board ====<br />
[[File:Tf701t_dock_uart.png|350px]]<br />
<br />
==== UART pads in connector ====<br />
[[File:Tf701t_connector_uart.png|350px]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=NVIDIA_Tegra_Note_7_(nvidia-tegratab)&diff=55634NVIDIA Tegra Note 7 (nvidia-tegratab)2024-02-08T19:12:03Z<p>Clamor: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Nvidia<br />
| name = Tegra Note 7<br />
| codename = nvidia-tegratab<br />
| image = File:tegratab.jpg<br />
| imagecaption = booting photo<br />
| releaseyear = 2013<br />
| originalsoftware = Android<br />
| originalversion = 4.2.2<br />
| pmoskernel = 3.4.57<br />
| chipset = Nvidia Tegra 4 (T114)<br />
| cpu = 4+1core 1.8 Ghz Cortex-A15<br />
| gpu = GeForce ULP 72core<br />
| storage = 16 GB<br />
| display = 800x1280 7inch LCD<br />
| memory = 1 GB<br />
| architecture = armv7<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = N<br />
| status_flashing = Y<br />
| status_touch = N<br />
| status_screen = Y<br />
| status_wifi = N<br />
| status_xwayland = Y<br />
| status_fde = N<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = <br />
| status_accel =<br />
| status_audio =<br />
| status_bluetooth = N<br />
| status_camera = N<br />
| status_gps = N<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status = <!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" --><br />
| booting = no<br />
<br />
<!-- you can also use these lines if you need to:<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
Is OTG available, not used in wiki<br />
| status_otg = -<br />
--><br />
<!-- U-Boot --><br />
| status_uboot = yes<br />
| status_uboot_primary = P<br />
| status_uboot_secondary = P<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = N<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = Y<br />
| status_uboot_keyboard = -<br />
| status_uboot_buttons = Y<br />
}}<br />
<br />
== OEM Variants ==<br />
* HP Slate 7 Extreme (hp-olive)<br />
* ZOTAC Tegra Note 7<br />
* EVGA Tegra Note 7 ...and more info {{wikipedia|Tegra_Note_7|wikipedia}}<br />
<br />
== Contributors ==<br />
* coffeebeat<br />
<br />
== Maintainer(s) ==<br />
<!-- Only if this device doesn't run on linux-postmarketos yet! --><br />
<!-- This person needs to be willing to answer questions from users of this device --><br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Hold {{Button|Power}} + {{Button|Vol Up}}, enter to <code>fastboot protocol</code><br />
<br />
== Memo ==<br />
Using GCC6, <br />
<br />
Mostly flashing method doesn't work, but <code>pmbootstrap install --sdcard</code> is OK,<br />
<br />
boot to<code>pmbootstrap flasher boot</code><br />
<br />
I'm not recommended <code>flasher flash_kernel</code>, because you can't charging battery!<br />
<br />
<code>tegranote7c</code> is LTE version(Probably). Don't get confused.<br />
<br />
== osk-sdl ==<br />
<br />
<syntaxhighlight lang="shell-session"><br />
# osk-sdl -d a -n a -c /etc/osk.conf -v<br />
INFO: /home/buildozer/aports/community/sdl2/src/SDL2-2.0.12/src/video/directfb/SDL_DirectFB_video.c (239):A general initialization error occured<br />
Segmentation fault<br />
</syntaxhighlight><br />
<br />
== wifi ==<br />
fix to firmware path<br />
<syntaxhighlight lang="shell-session"><br />
$ sudo mkdir -p system/etc<br />
$ cd system/etc<br />
$ sudo ln -s /lib/firmware/ti-connectivity firmware<br />
wl12xx: loaded<br />
</syntaxhighlight><br />
but it's not work<br />
<syntaxhighlight lang="shell-session"><br />
$ ip set wlan0 up<br />
wl12xx: WARNING unsupported chip id: 0x0<br />
SDIO Vendor ID:0097 and SDIO Device ID: 4076<br />
wl12xx: WARNING unsupported chip id: 0x0<br />
SDIO Vendor ID:0097 and SDIO Device ID: 4076<br />
wl12xx: WARNING unsupported chip id: 0x0<br />
wl12xx: ERROR firmware boot failed despite 3 retries<br />
</syntaxhighlight><br />
<br />
== Mainline (Grate) ==<br />
Mainline kernel contains <code>tegra114-tn7.dts</code>.<br />
<br />
It's partial worked <code>linux-postmarketos-grate</code>(5.11.0_rc4), but have some problems.<br />
<br />
I'm '''not''' recommended to test this (Maybe killed sdcard slot).<br />
=== Hardware status (mainline) ===<br />
{|class="wikitable feature-colors"<br />
! <br />
! Status<br />
! info<br />
|-<br />
|Booting<br />
| Y<br />
|<br />
|-<br />
|Xwayland<br />
| Y<br />
|confirmed startup demos<br />
|-<br />
|USB Telnet<br />
| N<br />
|<br />
|-<br />
|Wifi, Bluetooth<br />
| <br />
|wl1271, in mainline <br />
|-<br />
|Touchscreen<br />
| <br />
|maxim_sti, not in mainline<br />
|-<br />
|Battery gauge<br />
| <br />
|max17048, in mainline(max17040)<br />
|-<br />
|}<br />
<br />
== See also ==<br />
* [https://github.com/skoar/android_kernel_nvidia_tegratab/tree/cm-12.1] Using Kernel<br />
* [https://github.com/skoar/android_kernel_nvidia_tegratab/blob/cm-12.1/arch/arm/configs/cyanogenmod_tegratab_defconfig] Using Config<br />
* [https://gitlab.com/postmarketOS/pmaports/-/merge_requests/1605] If you want tested, use this<br />
<!--<br />
Link to related GitLab issues or merge requests like the following (replace CHANGEME with the ID, e.g. 1234):<br />
* {{MR|CHANGEME|pmaports}} Initial merge request<br />
* {{issue|CHANGEME|pmaports}} Some related issue<br />
You can also add normal web links:<br />
* [https://redmine.replicant.us/projects/replicant/wiki/GalaxyS2I9100 Replicant wiki page]<br />
--><br />
<!--<br />
If you manage to get your device packages merged, uncomment links below.<br />
* {{Device package|nvidia-tegratab}}<br />
* {{Kernel package|nvidia-tegratab}}<br />
--></div>Clamorhttps://wiki.postmarketos.org/index.php?title=User:Clamor&diff=55608User:Clamor2024-02-07T19:59:26Z<p>Clamor: /* Owns Devices */</p>
<hr />
<div><div style="float: right;"><br />
{{User ports|7}} <!-- tf201, tf300t, f300tg, tf700t, chagall, p895 are already in; tf300tl - need a tester --><br />
{{User mainline|11}} <!-- tf101, tf201, tf300t, tf300tg, tf700t, chagall are in linux directly; tf600t, tf300tl, p1801-t and p895 in grate; sl101 and p880 are WIP --><br />
{{User GitLab|clamor-s}}<br />
</div><br />
<br />
Usually I am re-writing some downstream crappy code into more modern looking crappy code.<br />
<br />
Have big experience with nVidia Tegra SoC, especially with older one (T20/T30/T114).<br />
<br />
Can be found in telegram: [https://t.me/Clamor_S Clamor]<br />
<br />
== Owns Devices ==<br />
{{My devices}}<br />
{{Owns device|Google_Nexus_5_(lg-hammerhead)|Running Unlegacy Android Project Oreo ROM}}<br />
{{Owns device|Google_Nexus_7_2013_(asus-flo)|Running Unlegacy Android Project Oreo ROM}}<br />
{{Owns device|Google_Nexus_7_2012_(asus-grouper)| }}<br />
{{Owns device|ASUS_Transformer_Prime_(asus-tf201)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|ASUS_Transformer_Pad_(asus-tf300t)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|HTC_HD2_(htc-leo)|Runs CM 11 by macs18max}}<br />
{{Owns device|Xiaomi_Poco_F1_(xiaomi-beryllium)|Tianma panel model}}<br />
{{Owns device|HTC_One_X_(htc-endeavoru)|HTC why are you such an ...? U-Boot runs non the less}}<br />
{{Owns device|LG_Optimus_Vu_(lg-p895)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|NVIDIA_Tegra_Note_7_(nvidia-tegratab)|pmOS with Grate kernel and tethered U-Boot}}<br />
{{Owns device|Motorola_Atrix_4G_(motorola-olympus)|Needs a glitch}}</div>Clamorhttps://wiki.postmarketos.org/index.php?title=User:Clamor&diff=54748User:Clamor2024-01-14T10:45:47Z<p>Clamor: </p>
<hr />
<div><div style="float: right;"><br />
{{User ports|7}} <!-- tf201, tf300t, f300tg, tf700t, chagall, p895 are already in; tf300tl - need a tester --><br />
{{User mainline|11}} <!-- tf101, tf201, tf300t, tf300tg, tf700t, chagall are in linux directly; tf600t, tf300tl, p1801-t and p895 in grate; sl101 and p880 are WIP --><br />
{{User GitLab|clamor-s}}<br />
</div><br />
<br />
Usually I am re-writing some downstream crappy code into more modern looking crappy code.<br />
<br />
Have big experience with nVidia Tegra SoC, especially with older one (T20/T30/T114).<br />
<br />
Can be found in telegram: [https://t.me/Clamor_S Clamor]<br />
<br />
== Owns Devices ==<br />
{{My devices}}<br />
{{Owns device|Google_Nexus_5_(lg-hammerhead)|Running Unlegacy Android Project Oreo ROM}}<br />
{{Owns device|Google_Nexus_7_2013_(asus-flo)|Running Unlegacy Android Project Oreo ROM}}<br />
{{Owns device|Google_Nexus_7_2012_(asus-grouper)| }}<br />
{{Owns device|ASUS_Transformer_Prime_(asus-tf201)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|ASUS_Transformer_Pad_(asus-tf300t)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|HTC_HD2_(htc-leo)|Runs CM 11 by macs18max}}<br />
{{Owns device|Xiaomi_Poco_F1_(xiaomi-beryllium)|Tianma panel model}}<br />
{{Owns device|HTC_One_X_(htc-endeavoru)|HTC why are you such an ...? U-Boot runs non the less}}<br />
{{Owns device|LG_Optimus_Vu_(lg-p895)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|NVIDIA_Tegra_Note_7_(nvidia-tegratab)|pmOS with Grate kernel and U-Boot it boots but without panel and usb}}<br />
{{Owns device|Motorola_Atrix_4G_(motorola-olympus)|Needs a glitch}}</div>Clamorhttps://wiki.postmarketos.org/index.php?title=Renamed_Devices&diff=54551Renamed Devices2024-01-07T18:51:09Z<p>Clamor: /* Renamed */</p>
<hr />
<div>Please keep the lists sorted alphabetically.<br />
<br />
== Renamed ==<br />
{| class="wikitable"<br />
! Old Name<br />
! New Name<br />
! Merge Request<br />
|-<br />
| asus-grouper<br />
| nvidia-tegra-armv7<br />
| {{MR|4606|pmaports}}<br />
|-<br />
| asus-tf101<br />
| nvidia-tegra-armv7<br />
| {{MR|4606|pmaports}}<br />
|-<br />
| asus-tf201<br />
| nvidia-tegra-armv7<br />
| {{MR|4606|pmaports}}<br />
|-<br />
| asus-tf300t<br />
| nvidia-tegra-armv7<br />
| {{MR|4606|pmaports}}<br />
|-<br />
| asus-tf300tg<br />
| nvidia-tegra-armv7<br />
| {{MR|4606|pmaports}}<br />
|-<br />
| asus-tf700t<br />
| nvidia-tegra-armv7<br />
| {{MR|4606|pmaports}}<br />
|-<br />
| asus-tilapia<br />
| nvidia-tegra-armv7<br />
| {{MR|4606|pmaports}}<br />
|-<br />
| bq-picmt<br />
| bq-paella-downstream<br />
| {{MR|1912|pmaports}}<br />
|-<br />
| fujitsu-m532<br />
| pegatron-chagall<br />
| {{MR|1907|pmaports}}<br />
|-<br />
| google-bob<br />
| google-gru<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-burnet<br />
| google-kukui<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-cerise<br />
| google-kukui<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-cozmo<br />
| google-kukui<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-damu<br />
| google-kukui<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-dru<br />
| google-gru<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-druwl<br />
| google-gru<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-dumo<br />
| google-gru<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-elm<br />
| google-oak<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-fennel14<br />
| google-kukui<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-fennel<br />
| google-kukui<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-hana<br />
| google-oak<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-juniper<br />
| google-kukui<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-kakadu<br />
| google-kukui<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-kappa<br />
| google-kukui<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-katsu<br />
| google-kukui<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-kenzo<br />
| google-kukui<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-kevin<br />
| google-gru<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-kodama<br />
| google-kukui<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-krane<br />
| google-kukui<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-makomo<br />
| google-kukui<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-stern<br />
| google-kukui<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-veyron-fievel<br />
| google-veyron<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-veyron-jaq<br />
| google-veyron<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-veyron-jerry<br />
| google-veyron<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-veyron-mickey<br />
| google-veyron<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-veyron-mighty<br />
| google-veyron<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-veyron-minnie<br />
| google-veyron<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-veyron-speedy<br />
| google-veyron<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-veyron-tiger<br />
| google-veyron<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| google-willow<br />
| google-kukui<br />
| {{MR|4252|pmaports}}<br />
|-<br />
| lg-p880<br />
| nvidia-tegra-armv7<br />
| {{MR|4606|pmaports}}<br />
|-<br />
| lg-p895<br />
| nvidia-tegra-armv7<br />
| {{MR|4606|pmaports}}<br />
|-<br />
| mozilla-flame<br />
| t2m-flame<br />
| {{MR|488|pmbootstrap}}<br />
|-<br />
| nokia-rm-696<br />
| nokia-n9<br />
| {{MR|1146|pmbootstrap}}<br />
|-<br />
| nokia-rm846<br />
| nokia-sand<br />
| {{MR|2258|pmaports}}<br />
|-<br />
| nokia-rx51<br />
| nokia-n900<br />
| {{MR|1146|pmbootstrap}}<br />
|-<br />
| pegatron-chagall<br />
| nvidia-tegra-armv7<br />
| {{MR|4606|pmaports}}<br />
|-<br />
| pine-a64lts<br />
| pine64-a64lts<br />
| {{MR|623|pmaports}}<br />
|-<br />
| pine-dontbeevil<br />
| pine64-dontbeevil<br />
| {{MR|623|pmaports}}<br />
|-<br />
| pine-pinephone<br />
| pine64-pinephone<br />
| {{MR|623|pmaports}}<br />
|-<br />
| pine-pinetab<br />
| pine64-pinetab<br />
| {{MR|623|pmaports}}<br />
|-<br />
| samsung-a3lte<br />
| samsung-a3<br />
| {{MR|2431|pmaports}}<br />
|-<br />
| samsung-a3ulte<br />
| samsung-a3<br />
| {{MR|2431|pmaports}}<br />
|-<br />
| samsung-a5lte<br />
| samsung-a5<br />
| {{MR|2431|pmaports}}<br />
|-<br />
| samsung-a5ulte<br />
| samsung-a5<br />
| {{MR|2431|pmaports}}<br />
|-<br />
| samsung-espresso3g<br />
| samsung-espresso7<br />
| {{MR|3627|pmaports}}<br />
|-<br />
| samsung-gprime<br />
| samsung-gprimeltecan<br />
| {{MR|3026|pmaports}}<br />
|-<br />
| samsung-gprimeltecan<br />
| samsung-gprime<br />
| {{MR|2431|pmaports}}<br />
|-<br />
| samsung-gt58lte<br />
| samsung-gt58<br />
| {{MR|2431|pmaports}}<br />
|-<br />
| samsung-gt510wifi<br />
| samsung-gt510<br />
| {{MR|2431|pmaports}}<br />
|-<br />
| samsung-i8190<br />
| samsung-golden<br />
| {{MR|719|pmaports}}<br />
|-<br />
| samsung-i9070<br />
| samsung-janice<br />
| {{MR|2779|pmaports}}<br />
|-<br />
| samsung-i9195<br />
| samsung-serranolte<br />
| {{MR|2175|pmaports}}<br />
|-<br />
| samsung-i9300<br />
| samsung-m0, samsung-m3<br />
| {{MR|2556|pmaports}}<br />
|-<br />
| samsung-i9305<br />
| samsung-i9300<br />
| {{MR|1634|pmaports}}<br />
|-<br />
| samsung-i9505<br />
| samsung-jflte<br />
| {{MR|1668|pmbootstrap}}<br />
|-<br />
| samsung-j3nxlte<br />
| samsung-j3xnlte<br />
| {{MR|1805|pmaports}}<br />
|-<br />
| samsung-j53g<br />
| samsung-j5<br />
| {{MR|2431|pmaports}}<br />
|-<br />
| samsung-j5nlte<br />
| samsung-j5<br />
| {{MR|2431|pmaports}}<br />
|-<br />
| samsung-matissevewifi<br />
| samsung-matisseve<br />
| {{MR|2431|pmaports}}<br />
|-<br />
| samsung-n7100<br />
| samsung-t03g<br />
| {{MR|3077|pmaports}}<br />
|-<br />
| samsung-serranovelte<br />
| samsung-serranove<br />
| {{MR|2431|pmaports}}<br />
|-<br />
| sony-castor-windy<br />
| sony-castor<br />
| {{MR|1199|pmaports}}<br />
|-<br />
| tablet-x64uefi<br />
| generic-x86_64<br />
| {{MR|4554|pmaports}}<br />
|-<br />
| tablet-x86uefi<br />
| generic-x86_64<br />
| {{MR|4554|pmaports}}<br />
|-<br />
| wingtech-wt88047<br />
| xiaomi-wt88047<br />
| {{MR|1604|pmaports}}<br />
|}<br />
<br />
== Removed ==<br />
{| class="wikitable"<br />
! Name<br />
! Merge Request<br />
|-<br />
| chuwi-hi10plus<br />
| {{MR|2989|pmaports}}<br />
|-<br />
| huawei-lua-u22<br />
| {{MR|1592|pmaports}}<br />
|-<br />
| oppo-a51f<br />
| {{MR|3014|pmaports}}<br />
|-<br />
| teclast-x80pro<br />
| {{MR|3528|pmaports}}<br />
|}<br />
<br />
== See also ==<br />
* {{issue|35|pmaports}} Use codename instead of model number<br />
* {{MR|1682}} Check if device was renamed</div>Clamorhttps://wiki.postmarketos.org/index.php?title=LG_Optimus_Vu_(lg-p895)&diff=54409LG Optimus Vu (lg-p895)2024-01-02T20:13:54Z<p>Clamor: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = LG<br />
| name = Optimus Vu<br />
| codename = lg-p895<br />
| image = File:Vu_recursion.jpg<br />
| imagecaption = Optimus Vu in recursion<br />
| releaseyear = 2012<br />
| originalsoftware = Android<br />
| originalversion = 4.0<br />
| chipset = Nvidia Tegra 3 (AP33)<br />
| cpu = Quad-core 1.5 GHz Cortex-A9<br />
| gpu = NVIDIA ULP GeForce GPU 12 cores<br />
| storage = 32 GB<br />
| display = 768×1024 IPS LCD<br />
| memory = 1 GB<br />
| architecture = armv7<br />
| type = handset<br />
| booting = yes<br />
| category = community<br />
| whet_dhry = 1079.2<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or "" (blank) - for untested or unknown --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_fde = Y<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera =<br />
| status_gps =<br />
| status_nfc = Y<br />
| status_mobiledata =<br />
| status_sms =<br />
| status_calls =<br />
| status_otg = P<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = Y<br />
| status_hall = -<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_irrx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_cameraflash = -<br />
| status_dvb = -<br />
| status_usba = -<br />
| status_hdmidp = -<br />
| status_sdcard = -<br />
| status_keyboard = -<br />
| status_touchpad = -<br />
| status_haptics = Y<br />
| status_ethernet = -<br />
| status_stylus = -<br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = P<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = -<br />
| status_uboot_usbhost = -<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = Y<br />
| status_uboot_keyboard = -<br />
| status_uboot_buttons = Y<br />
| pmoskernel = mainline grate<br />
}}{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}<br />
<br />
== Contributors ==<br />
* Clamor<br />
<br />
=== Users owning this device ===<br />
{{Device owners}}<br />
== Unlocking ==<br />
Only known method of unlocking is flashing patched LG bootloader with kernel signature check disabled, but who needs this proprietary stuff with unknown properties (vendor bootloader I mean) if p895 supports open sourced bootloader - U-Boot.<br />
<br />
== Kernel status ==<br />
=== Android kernel ===<br />
* 3.1 kernel based on LG sources with updates till Nougat support ([https://github.com/clamor-s/android_kernel_lge_p895 Kernel])<br />
<br />
=== Mainline (Grate) ===<br />
* Baseline kernel sources on p895: https://github.com/grate-driver/linux<br />
* Proper dts for P895 is added<br />
* Version: 6.4.0-rc6<br />
* Status: Boots. See status below.<br />
<br />
== Installation ==<br />
=== Bootloader replacement ===<br />
{{warning|Bootloader replacement will erase all data on the device!}}<br />
LG bootloader is highly NOT recommended to use with pmOS. To switch to open source booloader you need to use P895 re-crypt zip, it can be found here https://github.com/clamor-s/wheelie/releases/tag/p895 (one with re-crypt in its name) and you MUST use native Linux, virtual machine and WSL will NOT work.<br />
<br />
Unpack zip and cd into it. Plug your P895 to PC and reboot it with holding both {{Button|Volume Down}} and {{Button|Volume Up}}. If all is done correct <code>lsusb</code> should show <code>ID 0955:7130 NVIDIA Corp. APX</code> device. Instructions are in the '''commands''' file or you can see them below.<br />
<br />
Now perform:<br />
<source lang="shell-session"><br />
$ sudo ./wheelie --blob blob.bin<br />
Wheelie 0.2 - Preflight for nvflash.<br />
Copyright (c) 2011-2012 androidroot.mobi<br />
========================================<br />
<br />
Waiting for device in APX mode...<br />
[=] Chip UID: 0x000000000000009<br />
[=] RCM Version: 0x30001<br />
<br />
[=] CPU Model: Tegra 3<br />
[+] Sending bootloader...<br />
Sending file: 100 %<br />
[!] Done - your device should now be ready for nvflash<br />
$ sudo ./nvflash --resume --rawdevicewrite 0 1024 repart-block.bin --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: repart-block.bin<br />
/ 4194304/4194304 bytes sent<br />
repart-block.bin sent successfully<br />
</source><br />
If phone did not reboot automatically, force reboot with holding {{Button|Power}}. This will replace LG bootloader with u-boot. For more deep look into u-boot actions refer to dedicated section below.<br />
<br />
=== postmarketOS installation ===<br />
{{warning|U-Boot mode is heavy power consuming, do not stay in it for prolonged periods of time!}}<br />
Thanks to u-boot you have installed on previous step, entire p895 eMMC can be mounted as a simple storage device.<br />
<br />
Boot into u-boot bootmenu by holding {{Button|Volume Down}} and {{Button|Power}}. Then using volume buttons you can navigate bootmenu and using {{Button|Power}} choose its entries.<br />
<br />
Plug your p895 to PC and choose mount internal storage. Your p895 eMMC should be detected by PC as a simple mass storage. Then it can be flashed as any SD card using [[pmbootstrap]].<br />
<br />
== Hardware status (mainline) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Booting<br />
| Android style boot.img has restriction of approx 4 MB, which is fraction of /boot partition size.<br />
|-<br />
| Y<br />
| Bootloader<br />
| Open source bootloader [https://github.com/clamor-s/u-boot/tree/lg U-Boot] is available as alternative for stock LG bootloader and can replace it. U-Boot can not boot downstream kernel if it has Trusted Foundations enabled.<br />
|-<br />
| Y<br />
| Panel<br />
| KOE/Hitachi TX13D100VM0EAA MIPI DSI LCD IPS panel via Solomon SSD2825 DSI/LVDS bridge.<br />
|-<br />
| Y<br />
| Backlight<br />
| TI LM3533 led controller is used for main backlight. Driver is converted into OF and can be operated by panel.<br />
|-<br />
| N<br />
| HDMI output<br />
| Device supports MHL via SII9244 hdmi bridge on it own i2c-gpio line. Currently not configured. Is similar to SII9234 driver but is not same, requires hw setup look. MHL connection is detected.<br />
|-<br />
| Y<br />
| Touchscreen<br />
| Synaptics RMI4 S3203B touchscreen is used.<br />
|-<br />
| N<br />
| Touch buttons<br />
| Synaptics RMI4 S3204B touchscreen's function 1a is used. It is ported and set, but currently capacitive buttons still do not work.<br />
|-<br />
| Y<br />
| USB<br />
| USB functional is fully implemented. Due to hw design HOST state can work only via OTG-Y cable (with external power). PERIPHERAL works perfectly fine.<br />
|-<br />
| Y<br />
| Internal memory<br />
| eMMC 32 Gb by Hynix model HBG4e.<br />
|-<br />
| P<br />
| GPS<br />
| Some fancy GSD5T GNSS module. Kernel part is ready but there is no way to test it since most of gps processing is made in userspace.<br />
|-<br />
| Y<br />
| WiFi<br />
| Uses BCM4330B1. Wi-Fi should work out of the box (best with IWD daemon: apk add iwd; rc-update del wpa_supplicant; rc-update add iwd). All needed stuff is included. Device may not connect to some networks (in my case it was PC hotspot, to fix this, I have installed IWD on my PC as well). Be aware that WiFi MAC address is not static, though it should not matter for average user.<br />
|-<br />
| Y<br />
| Bluetooth<br />
| BCM4330B1 37.4 MHz Class 1.5 W-ExtLNA PCM-S. Works perfectly fine with included firmware.<br />
|-<br />
| Y<br />
| NFC<br />
| As on most devices of this age PN544 is used. Recognizes NFC tags.<br />
|-<br />
| Y<br />
| GPIO keys/switches<br />
| There are 4 GPIO keys: Power, Volume up, Volume down and Memo keys.<br />
|-<br />
| Y<br />
| GPIO leds<br />
| There are 2 GPIO leds: Power button led and Keypad led bound and work via sysfs. Power led acts as charging indicator but has enormously big delays. Keypad led is not active till capacitive buttons are fixed.<br />
|-<br />
| Y<br />
| Vibro<br />
| Immersion ISA1200 haptic engine. Basic set of modes is implemented via Force Feedback Linux API. <br />
|-<br />
| Y<br />
| Battery<br />
| MAX17040 fuel gauge is used. Fully set up.<br />
|-<br />
| Y<br />
| Charger<br />
| Maxim MAX8971 charger is used. Fully configured, supports both slow and fast charging. Re-plug charger after exit from suspend, else it will charge with 360 mA current.<br />
|-<br />
| Y<br />
| Extcon<br />
| Maxim MAX14526 MUIC is used. Can detect a big range of devices, usb host/peripheral, AC charger, MHL cable etc.<br />
|-<br />
| Y<br />
| PMIC<br />
| Optimus Vu uses Maxim MAX77663 PMIC mfd. Media devices have own sub-PMIC TI LP8720.<br />
|-<br />
| Y<br />
| Sound<br />
| Sound codec is Maxim MAX98089. Fully routed in kernel, UCM's are complete for media and calls. Audio via HDMI should work out of the box.<br />
|-<br />
| Y<br />
| Thermal sensor<br />
| NCT1008 ON Semiconductor LM90 series thermometer and Tegra T sensor. Both work perfectly fine.<br />
|-<br />
| Y<br />
| Power sensor<br />
| Ina230 works fine. Battery has its own tsc2007 ADC to detect battery temperature, works as current sensor.<br />
|-<br />
| Y<br />
| Orientation sensors<br />
| Include mpu6050 imu (accelerometer, gyroscope and thermometer) and ami306 compass.<br />
|-<br />
| Y<br />
| Light and Proximity sensor<br />
| APDS990X - combined AL and proximity sensor is used. Both functions work fine. Proximity function is disabled by default.<br />
|-<br />
| N<br />
| Front camera<br />
| 1.26 MP Aptina 1/6" HD SOC (MT9M114) - mainline driver is available.<br />
|-<br />
| N<br />
| Rear camera<br />
| 8 MP Sony imx111 1/4" BSI sensor with DW9714 lens voice coil and LM3559 flash led. DW9714 and LM3559 both have mainline drivers, imx111 - does not.<br />
|-<br />
| N<br />
| Modem<br />
| Intel XMM6260 modem is used on usb2 line in hsic mode.<br />
|-<br />
| P<br />
| ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== Usability ==<br />
=== Desktop environment ===<br />
Since 3D acceleration is not available yet, all DE which use it will be painfully slow and laggy.<br />
<br />
Currently [https://wiki.postmarketos.org/wiki/Xfce4 xfce4] or [https://wiki.postmarketos.org/wiki/MATE mate] are recommended.<br />
<br />
== U-Boot ==<br />
Current U-Boot status on LG Optimus Vu<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Feature<br />
! Info<br />
|-<br />
| Y<br />
| Primary bootloader<br />
| U-Boot successfully boots when is flashed into EBT partition instead of LG bootloader. Can be additionally booted via fusée gelée exploit.<br />
|-<br />
| P<br />
| Secondary bootloader<br />
| U-Boot can be chainloaded from both /boot and /recovery partitions, though LG bootloader has some conflicts with U-Boot.<br />
|-<br />
| Y<br />
| Panel<br />
| Solomon SSD2825 bridge, Hitachi KOE TX13D100VM0EAA DSI panel, TI lm3533 backlight were all added into U-Boot. Panel is fully functional.<br />
|-<br />
| Y<br />
| eMMC<br />
| Re-partitioned to better fit generic setup. Can be mounted as mass storage on host PC.<br />
|-<br />
| Y<br />
| Boot kernel<br />
| Yes, and can be highly adjusted with '''extlinux.conf'''.<br />
|-<br />
| Y<br />
| Boot menu<br />
| Native u-boot bootmenu works perfectly fine. It can be called with pressing volume down button on boot.<br />
|-<br />
| Y<br />
| Power management<br />
| Offline charging and charging in u-boot both work and are hw configured. Both power off and reboot options work and are available in bootmenu. If no valid kernel is found phone will turn off.<br />
|-<br />
| Y<br />
| Fastboot<br />
| Fastboot option is available in bootmenu. Most functions should work fine.<br />
|-<br />
| P<br />
| Boot Android<br />
| Booting Android kernel can be performed only same way mainline kernel boots. Additionally it must not have '''CONFIG_TRUSTED_FOUNDATIONS = y''' and some additional small patches, it can be booted by u-boot.<br />
|-<br />
| Y<br />
|Self update<br />
|Self update option is implemented and write is done correctly. Bootloader file has to have name '''u-boot-dtb-tegra.bin''' and be placed on 1st partition of eMMC.<br />
|-<br />
|}<br />
<br />
== Gallery ==<br />
<gallery><br />
File:Vu-Mate.jpg|thumb|600px|<br />
File:Vu-Uboot.jpg|thumb|600px|<br />
File:Vu-Bootlogo.jpg|thumb|600px|<br />
File:Vu-simplefb.jpg|thumb|600px|<br />
File:Vu-benchmark.jpg|thumb|600px|<br />
</gallery><br />
<br />
== Serial console ==<br />
[[File:Vu-JTAG.jpg|thumb|mini|left|250px|Red arrow pointing to jtag]]<br />
[[File:Vu-schematic.png|thumb|mini|right|250px|JTAG schematics. Clickable]]<br />
LG Optimus Vu is an interesting device since it has factory soldered jtag directly on motherboard in pretty apposite and easily accessible place. To get to jtag you need only to take off back cover and plastic casing over motherboard. That is it, only one free socket is jtag. UART is UART-D (serial@70006300; 115200n8) and uses 3.3v.<br />
<br />
== See also ==<br />
* More about the device [https://en.wikipedia.org/wiki/LG_Optimus_Vu Wikipedia entry]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=LG_Optimus_Vu_(lg-p895)&diff=53791LG Optimus Vu (lg-p895)2023-12-15T17:49:44Z<p>Clamor: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = LG<br />
| name = Optimus Vu<br />
| codename = lg-p895<br />
| image = File:Vu_recursion.jpg<br />
| imagecaption = Optimus Vu in recursion<br />
| releaseyear = 2012<br />
| originalsoftware = Android<br />
| originalversion = 4.0<br />
| chipset = Nvidia Tegra 3 (AP33)<br />
| cpu = Quad-core 1.5 GHz Cortex-A9<br />
| gpu = NVIDIA ULP GeForce GPU 12 cores<br />
| storage = 32 GB<br />
| display = 768×1024 IPS LCD<br />
| memory = 1 GB<br />
| architecture = armv7<br />
| type = handset<br />
| booting = yes<br />
| whet_dhry = 1079.2<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or "" (blank) - for untested or unknown --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_fde = Y<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera =<br />
| status_gps =<br />
| status_nfc = Y<br />
| status_mobiledata =<br />
| status_sms =<br />
| status_calls =<br />
| status_otg = P<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = Y<br />
| status_hall = -<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_irrx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_cameraflash = -<br />
| status_dvb = -<br />
| status_usba = -<br />
| status_hdmidp = -<br />
| status_sdcard = -<br />
| status_keyboard = -<br />
| status_touchpad = -<br />
| status_haptics = Y<br />
| status_ethernet = -<br />
| status_stylus = -<br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = P<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = -<br />
| status_uboot_usbhost = -<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = Y<br />
| status_uboot_keyboard = -<br />
| status_uboot_buttons = Y<br />
| pmoskernel = mainline grate<br />
}}{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}<br />
<br />
== Contributors ==<br />
* Clamor<br />
<br />
=== Users owning this device ===<br />
{{Device owners}}<br />
== Unlocking ==<br />
Only known method of unlocking is flashing patched LG bootloader with kernel signature check disabled, but who needs this proprietary stuff with unknown properties (vendor bootloader I mean) if p895 supports open sourced bootloader - U-Boot.<br />
<br />
== Kernel status ==<br />
=== Android kernel ===<br />
* 3.1 kernel based on LG sources with updates till Nougat support ([https://github.com/clamor-s/android_kernel_lge_p895 Kernel])<br />
<br />
=== Mainline (Grate) ===<br />
* Baseline kernel sources on p895: https://github.com/grate-driver/linux<br />
* Proper dts for P895 is added<br />
* Version: 6.4.0-rc6<br />
* Status: Boots. See status below.<br />
<br />
== Installation ==<br />
=== Bootloader replacement ===<br />
{{warning|Bootloader replacement will erase all data on the device!}}<br />
LG bootloader is highly NOT recommended to use with pmOS. To switch to open source booloader you need to use P895 re-crypt zip, it can be found here https://github.com/clamor-s/wheelie/releases/tag/p895 (one with re-crypt in its name) and you MUST use native Linux, virtual machine and WSL will NOT work.<br />
<br />
Unpack zip and cd into it. Plug your P895 to PC and reboot it with holding both {{Button|Volume Down}} and {{Button|Volume Up}}. If all is done correct <code>lsusb</code> should show <code>ID 0955:7130 NVIDIA Corp. APX</code> device. Instructions are in the '''commands''' file or you can see them below.<br />
<br />
Now perform:<br />
<source lang="shell-session"><br />
$ sudo ./wheelie --blob blob.bin<br />
Wheelie 0.2 - Preflight for nvflash.<br />
Copyright (c) 2011-2012 androidroot.mobi<br />
========================================<br />
<br />
Waiting for device in APX mode...<br />
[=] Chip UID: 0x000000000000009<br />
[=] RCM Version: 0x30001<br />
<br />
[=] CPU Model: Tegra 3<br />
[+] Sending bootloader...<br />
Sending file: 100 %<br />
[!] Done - your device should now be ready for nvflash<br />
$ sudo ./nvflash --resume --rawdevicewrite 0 1024 repart-block.bin --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: repart-block.bin<br />
/ 4194304/4194304 bytes sent<br />
repart-block.bin sent successfully<br />
</source><br />
If phone did not reboot automatically, force reboot with holding {{Button|Power}}. This will replace LG bootloader with u-boot. For more deep look into u-boot actions refer to dedicated section below.<br />
<br />
=== postmarketOS installation ===<br />
{{warning|U-Boot mode is heavy power consuming, do not stay in it for prolonged periods of time!}}<br />
Thanks to u-boot you have installed on previous step, entire p895 eMMC can be mounted as a simple storage device.<br />
<br />
Boot into u-boot bootmenu by holding {{Button|Volume Down}} and {{Button|Power}}. Then using volume buttons you can navigate bootmenu and using {{Button|Power}} choose its entries.<br />
<br />
Plug your p895 to PC and choose mount internal storage. Your p895 eMMC should be detected by PC as a simple mass storage. Then it can be flashed as any SD card using [[pmbootstrap]].<br />
<br />
== Hardware status (mainline) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Booting<br />
| Android style boot.img has restriction of approx 4 MB, which is fraction of /boot partition size.<br />
|-<br />
| Y<br />
| Bootloader<br />
| Open source bootloader [https://github.com/clamor-s/u-boot/tree/lg U-Boot] is available as alternative for stock LG bootloader and can replace it. U-Boot can not boot downstream kernel if it has Trusted Foundations enabled.<br />
|-<br />
| Y<br />
| Panel<br />
| KOE/Hitachi TX13D100VM0EAA MIPI DSI LCD IPS panel via Solomon SSD2825 DSI/LVDS bridge.<br />
|-<br />
| Y<br />
| Backlight<br />
| TI LM3533 led controller is used for main backlight. Driver is converted into OF and can be operated by panel.<br />
|-<br />
| N<br />
| HDMI output<br />
| Device supports MHL via SII9244 hdmi bridge on it own i2c-gpio line. Currently not configured. Is similar to SII9234 driver but is not same, requires hw setup look. MHL connection is detected.<br />
|-<br />
| Y<br />
| Touchscreen<br />
| Synaptics RMI4 S3203B touchscreen is used.<br />
|-<br />
| N<br />
| Touch buttons<br />
| Synaptics RMI4 S3204B touchscreen's function 1a is used. It is ported and set, but currently capacitive buttons still do not work.<br />
|-<br />
| Y<br />
| USB<br />
| USB functional is fully implemented. Due to hw design HOST state can work only via OTG-Y cable (with external power). PERIPHERAL works perfectly fine.<br />
|-<br />
| Y<br />
| Internal memory<br />
| eMMC 32 Gb by Hynix model HBG4e.<br />
|-<br />
| P<br />
| GPS<br />
| Some fancy GSD5T GNSS module. Kernel part is ready but there is no way to test it since most of gps processing is made in userspace.<br />
|-<br />
| Y<br />
| WiFi<br />
| Uses BCM4330B1. Wi-Fi should work out of the box (best with IWD daemon: apk add iwd; rc-update del wpa_supplicant; rc-update add iwd). All needed stuff is included. Device may not connect to some networks (in my case it was PC hotspot, to fix this, I have installed IWD on my PC as well). Be aware that WiFi MAC address is not static, though it should not matter for average user.<br />
|-<br />
| Y<br />
| Bluetooth<br />
| BCM4330B1 37.4 MHz Class 1.5 W-ExtLNA PCM-S. Works perfectly fine with included firmware.<br />
|-<br />
| Y<br />
| NFC<br />
| As on most devices of this age PN544 is used. Recognizes NFC tags.<br />
|-<br />
| Y<br />
| GPIO keys/switches<br />
| There are 4 GPIO keys: Power, Volume up, Volume down and Memo keys.<br />
|-<br />
| Y<br />
| GPIO leds<br />
| There are 2 GPIO leds: Power button led and Keypad led bound and work via sysfs. Power led acts as charging indicator but has enormously big delays. Keypad led is not active till capacitive buttons are fixed.<br />
|-<br />
| Y<br />
| Vibro<br />
| Immersion ISA1200 haptic engine. Basic set of modes is implemented via Force Feedback Linux API. <br />
|-<br />
| Y<br />
| Battery<br />
| MAX17040 fuel gauge is used. Fully set up.<br />
|-<br />
| Y<br />
| Charger<br />
| Maxim MAX8971 charger is used. Fully configured, supports both slow and fast charging. Re-plug charger after exit from suspend, else it will charge with 360 mA current.<br />
|-<br />
| Y<br />
| Extcon<br />
| Maxim MAX14526 MUIC is used. Can detect a big range of devices, usb host/peripheral, AC charger, MHL cable etc.<br />
|-<br />
| Y<br />
| PMIC<br />
| Optimus Vu uses Maxim MAX77663 PMIC mfd. Media devices have own sub-PMIC TI LP8720.<br />
|-<br />
| Y<br />
| Sound<br />
| Sound codec is Maxim MAX98089. Fully routed in kernel, UCM's are complete for media and calls. Audio via HDMI should work out of the box.<br />
|-<br />
| Y<br />
| Thermal sensor<br />
| NCT1008 ON Semiconductor LM90 series thermometer and Tegra T sensor. Both work perfectly fine.<br />
|-<br />
| Y<br />
| Power sensor<br />
| Ina230 works fine. Battery has its own tsc2007 ADC to detect battery temperature, works as current sensor.<br />
|-<br />
| Y<br />
| Orientation sensors<br />
| Include mpu6050 imu (accelerometer, gyroscope and thermometer) and ami306 compass.<br />
|-<br />
| Y<br />
| Light and Proximity sensor<br />
| APDS990X - combined AL and proximity sensor is used. Both functions work fine. Proximity function is disabled by default.<br />
|-<br />
| N<br />
| Front camera<br />
| 1.26 MP Aptina 1/6" HD SOC (MT9M114) - mainline driver is available.<br />
|-<br />
| N<br />
| Rear camera<br />
| 8 MP Sony imx111 1/4" BSI sensor with DW9714 lens voice coil and LM3559 flash led. DW9714 and LM3559 both have mainline drivers, imx111 - does not.<br />
|-<br />
| N<br />
| Modem<br />
| Intel XMM6260 modem is used on usb2 line in hsic mode.<br />
|-<br />
| P<br />
| ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== Usability ==<br />
=== Desktop environment ===<br />
Since 3D acceleration is not available yet, all DE which use it will be painfully slow and laggy.<br />
<br />
Currently [https://wiki.postmarketos.org/wiki/Xfce4 xfce4] or [https://wiki.postmarketos.org/wiki/MATE mate] are recommended.<br />
<br />
== U-Boot ==<br />
Current U-Boot status on LG Optimus Vu<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Feature<br />
! Info<br />
|-<br />
| Y<br />
| Primary bootloader<br />
| U-Boot successfully boots when is flashed into EBT partition instead of LG bootloader. Can be additionally booted via fusée gelée exploit.<br />
|-<br />
| P<br />
| Secondary bootloader<br />
| U-Boot can be chainloaded from both /boot and /recovery partitions, though LG bootloader has some conflicts with U-Boot.<br />
|-<br />
| Y<br />
| Panel<br />
| Solomon SSD2825 bridge, Hitachi KOE TX13D100VM0EAA DSI panel, TI lm3533 backlight were all added into U-Boot. Panel is fully functional.<br />
|-<br />
| Y<br />
| eMMC<br />
| Re-partitioned to better fit generic setup. Can be mounted as mass storage on host PC.<br />
|-<br />
| Y<br />
| Boot kernel<br />
| Yes, and can be highly adjusted with '''extlinux.conf'''.<br />
|-<br />
| Y<br />
| Boot menu<br />
| Native u-boot bootmenu works perfectly fine. It can be called with pressing volume down button on boot.<br />
|-<br />
| Y<br />
| Power management<br />
| Offline charging and charging in u-boot both work and are hw configured. Both power off and reboot options work and are available in bootmenu. If no valid kernel is found phone will turn off.<br />
|-<br />
| Y<br />
| Fastboot<br />
| Fastboot option is available in bootmenu. Most functions should work fine.<br />
|-<br />
| P<br />
| Boot Android<br />
| Booting Android kernel can be performed only same way mainline kernel boots. Additionally it must not have '''CONFIG_TRUSTED_FOUNDATIONS = y''' and some additional small patches, it can be booted by u-boot.<br />
|-<br />
| Y<br />
|Self update<br />
|Self update option is implemented and write is done correctly. Bootloader file has to have name '''u-boot-dtb-tegra.bin''' and be placed on 1st partition of eMMC.<br />
|-<br />
|}<br />
<br />
== Gallery ==<br />
<gallery><br />
File:Vu-Mate.jpg|thumb|600px|<br />
File:Vu-Uboot.jpg|thumb|600px|<br />
File:Vu-Bootlogo.jpg|thumb|600px|<br />
File:Vu-simplefb.jpg|thumb|600px|<br />
File:Vu-benchmark.jpg|thumb|600px|<br />
</gallery><br />
<br />
== Serial console ==<br />
[[File:Vu-JTAG.jpg|thumb|mini|left|250px|Red arrow pointing to jtag]]<br />
[[File:Vu-schematic.png|thumb|mini|right|250px|JTAG schematics. Clickable]]<br />
LG Optimus Vu is an interesting device since it has factory soldered jtag directly on motherboard in pretty apposite and easily accessible place. To get to jtag you need only to take off back cover and plastic casing over motherboard. That is it, only one free socket is jtag. UART is UART-D (serial@70006300; 115200n8) and uses 3.3v.<br />
<br />
== See also ==<br />
* More about the device [https://en.wikipedia.org/wiki/LG_Optimus_Vu Wikipedia entry]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=Nvidia_Tegra_armv7_(nvidia-tegra-armv7)&diff=53614Nvidia Tegra armv7 (nvidia-tegra-armv7)2023-12-10T08:55:16Z<p>Clamor: </p>
<hr />
<div>A generic port for Nvidia Tegra 2/3/4 devices.<br />
<br />
{{Infobox device<br />
| manufacturer = Nvidia<br />
| name = Tegra ARMv7<br />
| codename = nvidia-tegra-armv7<br />
| image = File:Tf201-pmos.jpg<br />
| imagecaption = TF201, one of supported devices<br />
| releaseyear = 2011<br />
| chipset = Nvidia Tegra 2/3/4<br />
| gpu = ULP GeForce<br />
| architecture = armv7<br />
| type = generic<br />
| booting = yes<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or "" (blank) - for untested or unknown --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = Y<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera = N<br />
| status_gps = N<br />
| status_nfc = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_emmc = Y<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = -<br />
<!-- Misc --><br />
| status_cameraflash = -<br />
| status_irtx = -<br />
| status_irrx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_dvb = -<br />
| status_usba = Y<br />
| status_hdmidp = Y<br />
| status_sdcard = Y<br />
| status_keyboard = Y<br />
| status_touchpad = Y<br />
| status_haptics = Y<br />
| status_ethernet = -<br />
| status_stylus = -<br />
}}<br />
{{Based on SoC|Nvidia_Tegra_2_(tegra20)|Tegra 2}}<br />
{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}<br />
{{Based on SoC|Nvidia_Tegra_4_(tegra114)|Tegra 4}}<br />
<br />
== Contributors ==<br />
* Clamor<br />
* Jenneron<br />
<br />
== Mainline (Grate) kernel status ==<br />
* Baseline kernel sources on master: https://gitlab.com/grate-driver/linux<br />
* Version: 6.6.0-stable<br />
* Status: Boots. Almost full support.<br />
<br />
=== Installation process ===<br />
{{warning|At this moment you should have U-Boot installed as primary or secondary!}}<br />
<br />
== Devices ==<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,Category,Chipset<br />
|order by=Devices.Manufacturer, Devices.Name, Devices.Codename<br />
|limit=9999<br />
|where=(Devices.Chipset like '%Nvidia Tegra 3%' or Devices.Chipset like '%Nvidia Tegra 4%' or Devices.Chipset like '%Nvidia Tegra 2%') and Devices.booting and (Devices.StatusUbootPrimary = "Y" or Devices.StatusUbootSecondary = "Y") and Devices.StatusMainline = "Y"<br />
|more results text=<br />
}}</div>Clamorhttps://wiki.postmarketos.org/index.php?title=Nvidia_Tegra_armv7_(nvidia-tegra-armv7)&diff=53613Nvidia Tegra armv7 (nvidia-tegra-armv7)2023-12-10T08:47:19Z<p>Clamor: </p>
<hr />
<div>A generic port for Nvidia Tegra 2/3/4 devices.<br />
<br />
{{Infobox device<br />
| manufacturer = Nvidia<br />
| name = Tegra ARMv7<br />
| codename = nvidia-tegra-armv7<br />
| image = File:Tf201-pmos.jpg<br />
| imagecaption = TF201, one of supported devices<br />
| releaseyear = 2011<br />
| chipset = Nvidia Tegra 2/3/4<br />
| gpu = ULP GeForce<br />
| architecture = armv7<br />
| type = generic<br />
| booting = yes<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or "" (blank) - for untested or unknown --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = Y<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera = N<br />
| status_gps = N<br />
| status_nfc = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_emmc = Y<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = -<br />
<!-- Misc --><br />
| status_cameraflash = -<br />
| status_irtx = -<br />
| status_irrx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_dvb = -<br />
| status_usba = Y<br />
| status_hdmidp = Y<br />
| status_sdcard = Y<br />
| status_keyboard = Y<br />
| status_touchpad = Y<br />
| status_haptics = Y<br />
| status_ethernet = -<br />
| status_stylus = -<br />
}}<br />
<br />
== Devices ==<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,Category,Chipset<br />
|order by=Devices.Manufacturer, Devices.Name, Devices.Codename<br />
|limit=9999<br />
|where=(Devices.Chipset like '%Nvidia Tegra 3%' or Devices.Chipset like '%Nvidia Tegra 4%' or Devices.Chipset like '%Nvidia Tegra 2%') and Devices.booting and (Devices.StatusUbootPrimary = "Y" or Devices.StatusUbootSecondary = "Y") and Devices.StatusMainline = "Y"<br />
|more results text=<br />
}}</div>Clamorhttps://wiki.postmarketos.org/index.php?title=WEXLER_Tab_7t_(wexler-qc750)&diff=47136WEXLER Tab 7t (wexler-qc750)2023-08-02T16:06:11Z<p>Clamor: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = WEXLER<br />
| name = Tab 7t<br />
| codename = wexler-qc750<br />
| image = File:PXL_20230710_231202953.jpg<br />
| imagecaption = Booted tablet with lxqt<br />
| releaseyear = 2012<br />
| category = testing<br />
| originalsoftware = Android<br />
| originalversion = 4.2.2<br />
| pmoskernel = downstream 3.1.10, mainline 6.4.0<br />
| chipset = Nvidia Tegra 3 (T30L)<br />
| cpu = Quad-core 1.3 GHz Cortex-A9<br />
| gpu = NVIDIA ULP GeForce GPU 12 cores<br />
| display = 1280x800 IPS LCD<br />
| storage = 8, 16, 32 GB<br />
| memory = 1 GB DDR3L<br />
| architecture = armv7<br />
| type = tablet<br />
| whet_dhry = 1161.4 <!-- see Unixbench page on wiki --><br />
<!-- Features --><br />
<!-- the following status_* questions should be answered with Y for yes, P for partial, N for no, - for N/A or unavailable, or left blank for untested or unknown --><br />
| status_usbnet = Y <!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = Y <!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. --><br />
| status_touch = Y <!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = Y <!-- The display is working? --><br />
| status_wifi = <!-- Wireless network works? --><br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = Y <!-- Instead of a Linux kernel fork, it is possible to run mainline. --><br />
| status_battery = <!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = <!-- Connecting to the Internet via cellular network. --><br />
| status_sms = <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = <!-- Talking to other people over the cellular network. --><br />
| status_otg = Y <!-- USB-OTG adapters work, e.g. to connect an USB flash drive to the device --><br />
| status_nfc = <!-- Near-Field Communication (NFC) works --><br />
<!-- Sensors --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_magnet = <!-- Magnetometer works --><br />
| status_light = <!-- Ambient light sensor works --><br />
| status_proximity = <!-- Proximity sensor works --><br />
| status_hall = <!-- Hall effect sensor works --><br />
| status_barometer = <!-- Barometer works --><br />
| status_powersensor = <!-- Power sensor works --><br />
<!-- Misc --><br />
| status_cameraflash = - <!-- Camera flash/torch works --><br />
| status_keyboard = - <!-- Keyboard works (Mark "-" if device doesn't have a keyboard) --><br />
| status_touchpad = - <!-- Touchpad works (Usually applicable to laptops) --><br />
| status_usba = Y <!-- Full-sized USB-A port works (Usually applicable to SBCs and laptops) --><br />
| status_hdmidp = <!-- Video and audio output with HDMI or DisplayPort works --><br />
| status_irtx = - <!-- Infrared (IR) transmit works --><br />
| status_irrx = - <!-- Infrared (IR) receive works --><br />
| status_stylus = - <!-- --><br />
| status_haptics = - <!-- --><br />
| status_ethernet = - <!-- --><br />
| status_fossbootloader = Y <!-- Device has a free and open source bootloader --><br />
<br />
| status_uboot = Y<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = N<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = Y<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = Y<br />
| status_uboot_keyboard = -<br />
| status_uboot_buttons = Y<br />
<br />
| booting = yes <!-- The device is booting at all, can be yes/no *IMPORTANT* --><br />
| status = Kernel compiles, device boots, testing capabilities <!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" --><br />
}}<br />
<br />
== Notes ==<br />
* Mainline in progress now.<br />
* Device SoC is similar to SoC in [[Google_Nexus_7_2012_(asus-grouper)|Google Nexus 7 2012]] and [[Google_Nexus_7_2012_GSM_(asus-tilapia)|Google Nexus 7 2012 GSM]]<br />
* OTG available - full support, connect and disconnect, at least USB keyboard-mouse and USB drives <s><span style="color:#777777">partially (full USB port, working only when device connected before booting)</span></s><br />
* Battery charges (at least not discharges while OS work). Somehow reports status only in xfce4.<br />
* Device have 3G modem (not working?)<br />
* MiniHDMI port available (not working?)<br />
* I accidentally broke my touchscreen connector on the motherboard, so I'm working with wireless USB keyboard-mouse now<br />
<br />
== Tested environments ==<br />
* xfce4: works better than other environments, but still have some issues<br />
* lxqt: works fine, can't manage to reboot or power off in UI, doing through terminal<br />
* console: works with connected wireless USB keyboard-mouse<br />
* fbkeyboard: works, can't test touchscreen<br />
Any other UIs is not working, or I can't get them to work for now.<br />
<br />
== How to enter flash mode ==<br />
'''fastboot''': Press {{button|Volume Up}} + {{button|Power}} keys, with {{button|Volume Down}} move selection to <code>Fastboot Protocol</code>, then choose it by pressing {{button|Volume Up}}.<br />
<br />
'''APX''': Press {{button|Volume Up}} + {{button|Power}} keys, with {{button|Volume Down}} move selection to <code>Forced Recovery</code>, then choose it by pressing {{button|Volume Up}}.<br />
<br />
== Installation ==<br />
{{note|For now this section refers to downstream kernel installation.}}<br />
We can install to sdcard now, so fastboot restrictions is now in the past.<br />
* <code>pmbootstrap init</code> with vendor '''wexler''' and codename '''qc750'''<br />
* <code>pmbootstrap install --sdcard /dev/sda</code><br />
* <code>pmbootstrap flasher flash_kernel</code> Partition limit: 8 MB<br />
<br />
Legacy information, about flashing directly to the device:<br />
* <code>pmbootstrap flasher flash_rootfs</code><br />
<br />
It's possible to flash to ''userdata'', but fastboot limit size of images is still to figure out (possibly 800 MB).<br />
<br />
* <code>pmbootstrap flasher flash_rootfs --partition userdata</code><br />
* <code>fastboot format system</code><br />
<br />
== Mainline status ==<br />
{{note|This part is in development.}}<br />
Tablet boots mainline kernel 6.4.0-rc6 https://github.com/grate-driver/linux, adaptation is going on in forked tree https://github.com/DX37/linux/tree/wexler-qc750<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| P<br />
| Booting<br />
| Mainline kernel boots with U-Boot, so it needs to be placed in pmOS_boot partition on microSD card. Can be in theory loaded from eMMC boot partition, but grate kernel is bigger, than old downstream kernel, and surpasses 8 Mb partition size. Needs testing.<br />
|-<br />
| P<br />
| Bootloader<br />
| Open source bootloader [https://github.com/clamor-s/u-boot/tree/qc750 U-Boot] is available as alternative for vendor bootloader and can replace it, but starts only sometimes. <!-- U-Boot can not boot downstream kernel if it has Trusted Foundations enabled. --><br />
|-<br />
| Y<br />
| Panel<br />
| Chunghwa CLAA070WP03XG LVDS simple panel.<br />
|-<br />
| Y<br />
| Backlight<br />
| Simple pwm-backlight GPIO backlight. Working and even manageable in xfce4.<br />
|-<br />
| P<br />
| miniHDMI output<br />
| Maximum output is 1920x1080. Needs manual detection by opening Display settings (in xfce4). No audio.<br />
|-<br />
| ?<br />
| Touchscreen<br />
| Novatek NT11003 with nt1103-ts driver. Worked in downstream kernel, but can't test it in mainline since I broke touchscreen connector on the motherboard.<br />
|-<br />
| Y<br />
| microUSB & Full size USB<br />
| Works. USB storage and USB peripherals are working (using USB keyboard-mouse kit instead of touchscreen).<br />
|-<br />
| Y<br />
| Internal memory<br />
| eMMC 8 Gb, but can be 16 or even 32 Gb.<br />
|-<br />
| ?<br />
| GPS<br />
| Not tested yet.<br />
|-<br />
| ?<br />
| WiFi<br />
| Not tested yet, possibly wl12xx driver.<br />
|-<br />
| ?<br />
| Bluetooth<br />
| SD8787? Not tested yet.<br />
|-<br />
| P<br />
| GPIO keys<br />
| There is 3 keys on GPIO: Power, Volume up, Volume down. Power key responding only to holding for force poweroff.<br />
|-<br />
| ?<br />
| GPIO led<br />
| There's only one GPIO led for charging state. Not tested yet, possibly works only on low-level hardware.<br />
|-<br />
| Y<br />
| Battery<br />
| TI BQ27500, works.<br />
|-<br />
| ?<br />
| Charger<br />
| TI BQ24160, not tested yet.<br />
|-<br />
| Y<br />
| PMIC<br />
| Maxim MAX77663 PMIC.<br />
|-<br />
| P<br />
| Sound<br />
| TI TLV320AIC3206, headphones and speakers sound is working, can't test microphone (guess still need UCM for that and speakers/headphones switching).<br />
|-<br />
| ?<br />
| Thermal sensor<br />
| NCT1008 ON Semiconductor, not tested yet.<br />
|-<br />
| P<br />
| Orientation sensors<br />
| Magnetometer Asahi-Kasei AK8975 and accelerometer Kionix KXTF9 seems to be working. Gyroscope Invensense MPU3050 does not.<br />
|-<br />
| ?<br />
| Light sensor<br />
| ISL29018? ISL29028? Not tested yet.<br />
|-<br />
| ?<br />
| Front camera<br />
| GC0308, not tested yet.<br />
|-<br />
| ?<br />
| Rear camera<br />
| T8EV5, not tested yet.<br />
|-<br />
| ?<br />
| Modem<br />
| usi_3g? Not tested yet.<br />
|-<br />
| P<br />
| Graphics support<br />
| 2D acceleration works with xf86-video-opentegra ([[Nvidia_Tegra#GPU]]).<br />
|-<br />
|}<br />
<br />
== U-Boot ==<br />
{{note|This part is in development.}}<br />
<br />
Current U-Boot status (in development by [[User:Clamor|Clamor]]):<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Feature<br />
! Info<br />
|-<br />
| P<br />
|Primary bootloader<br />
|U-Boot can be loaded with patched nvflash (tegra30_debrick) through APX (Forced Recovery), but after flashing starting only sometimes.<br />
Created bricksafe.img successfully restores vendor bootloader (and original ROM flash, of course).<br />
|-<br />
| ?<br />
|Secondary bootloader<br />
|U-Boot chainloading from both /boot and /recovery partitions not tested. <br />
|-<br />
| Y<br />
|Panel<br />
|LVDS simple panel works.<br />
|-<br />
| Y<br />
|MicroSD<br />
|Fully functional and detectable. Can be used as boot source. Can be mounted from U-Boot.<br />
|-<br />
| Y<br />
|eMMC<br />
|Fully functional and detectable. Can be used as boot source. Can be mounted from U-Boot.<br />
|-<br />
| Y<br />
|Boot kernel<br />
|Yes, and can be highly adjusted with extlinux.conf.<br />
|-<br />
| ?<br />
|Boot menu<br />
|Not tested. <!-- Native u-boot bootmenu works perfectly fine. It can be called with pressing volume down button on boot. --><br />
|-<br />
| ?<br />
|Power management<br />
|Not tested. <!-- Offline charging and charging in u-boot both work and are hw configured. Both power off and reboot options work and are available in bootmenu. If no valid kernel is found or lid-sensor is active (docked and closed) tablet will turn off. --><br />
|-<br />
| P<br />
|Fastboot<br />
|Not fully tested. <!-- Fastboot option is available in bootmenu. All functions operate correctly. --><br />
|-<br />
| ?<br />
|Bricksafe hook (legacy)<br />
|Not tested. <!-- U-Boot can successfully generate and restore device specific image of first 3 encrypted partitions. It is identical to one, generated with nvflash command. If you can not perform nvflash, use fusée gelée to launch u-boot from RAM and generate bricksafe. You need to insert blank fat microSD so it can be saved! --><br />
|-<br />
| ?<br />
|Boot Android<br />
|Not tested and possibly not working. <!-- Booting Android kernel can be performed only same way mainline kernel boots. Additionally it must not have CONFIG_TRUSTED_FOUNDATIONS = y and some additional small patches, it can be booted by u-boot. --><br />
|-<br />
| ?<br />
|Self update<br />
|Not tested. <!-- Self update option is implemented and write is done correctly. Re-crypt is required to be able to self update. Bootloader file has to have name '''u-boot-dtb-tegra.bin''' and be placed on 1st partition of microSD. --><br />
|-<br />
|}<br />
<br />
== Contributors ==<br />
* [[user:DragonX256|DragonX256]]<br />
* [[User:Clamor|Clamor]]<br />
<br />
== Maintainer(s) ==<br />
* [[user:DragonX256|DragonX256]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== See also ==<br />
* [https://wiki.postmarketos.org/wiki/Nvidia_Tegra_3_(tegra30) This SoC has mainline support]<br />
* Using this old 3.1.10 kernel, built with '''gcc6''': https://github.com/DmitryADP/morpheus_kernel_wexler_qc750<br />
* [https://github.com/DmitryADP/device_qc750 Device related build files]<br />
* [https://github.com/clamor-s/diff_qc750 Possibly full device related source files]<br />
* [https://www.reddit.com/r/postmarketOS/comments/jwld44 Some nice photos on Reddit]<br />
* [https://www.reddit.com/r/postmarketOS/comments/jyw5mw Photos on Reddit about getting UART debug ready]<br />
* {{MR|1742|pmaports}} Initial merge request<br />
* {{Device package|wexler-qc750}}<br />
* {{Kernel package|wexler-qc750}}</div>Clamorhttps://wiki.postmarketos.org/index.php?title=User:Clamor&diff=46458User:Clamor2023-07-11T17:58:36Z<p>Clamor: /* Owns Devices */</p>
<hr />
<div><div style="float: right;"><br />
{{User ports|7}} <!-- tf201, tf300t, f300tg, tf700t, chagall, p895 are already in; tf300tl - need a tester --><br />
{{User mainline|11}} <!-- tf101, tf201, tf300t, tf300tg, tf700t, chagall are in linux directly; tf600t, tf300tl, p1801-t and p895 in grate; sl101 and p880 are WIP --><br />
{{User GitLab|clamor95}}<br />
</div><br />
<br />
Usually I am re-writing some downstream crappy code into more modern looking crappy code.<br />
<br />
Have big experience with nVidia Tegra SoC, especially with older one (T20/T30/T114).<br />
<br />
Can be found in telegram: [https://t.me/Clamor_S Clamor]<br />
<br />
== Owns Devices ==<br />
{{My devices}}<br />
{{Owns device|Google_Nexus_5_(lg-hammerhead)|Running Unlegacy Android Project Oreo ROM}}<br />
{{Owns device|Google_Nexus_7_2013_(asus-flo)|Running Unlegacy Android Project Oreo ROM}}<br />
{{Owns device|Google_Nexus_7_2012_(asus-grouper)| }}<br />
{{Owns device|ASUS_Transformer_Prime_(asus-tf201)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|ASUS_Transformer_Pad_(asus-tf300t)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|HTC_HD2_(htc-leo)|Runs CM 11 by macs18max}}<br />
{{Owns device|Xiaomi_Poco_F1_(xiaomi-beryllium)|Tianma panel model}}<br />
{{Owns device|HTC_One_X_(htc-endeavoru)|HTC why are you such an ...? U-Boot runs non the less}}<br />
{{Owns device|LG_Optimus_Vu_(lg-p895)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|NVIDIA_Tegra_Note_7_(nvidia-tegratab)|pmOS with Grate kernel and U-Boot it boots but without panel and usb}}<br />
{{Owns device|Motorola_Atrix_4G_(motorola-olympus)|Needs a glitch}}</div>Clamorhttps://wiki.postmarketos.org/index.php?title=NVIDIA_Tegra_Note_7_(nvidia-tegratab)&diff=46047NVIDIA Tegra Note 7 (nvidia-tegratab)2023-06-29T19:00:39Z<p>Clamor: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = NVIDIA<br />
| name = Tegra Note 7<br />
| codename = nvidia-tegratab<br />
| image = File:tegratab.jpg<br />
| imagecaption = booting photo<br />
| releaseyear = 2013<br />
| originalsoftware = Android 4.2.2<br />
| pmoskernel = 3.4.57<br />
| chipset = Nvidia Tegra 4 (T114)<br />
| cpu = 4+1core 1.8 Ghz Cortex-A15<br />
| gpu = GeForce ULP 72core<br />
| storage = 16 GB<br />
| display = 800x1280 7inch LCD<br />
| memory = 1 GB<br />
| architecture = armv7<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = N<br />
| status_screen = Y<br />
| status_wifi = N<br />
| status_xwayland = Y<br />
| status_fde = N<br />
| status_mainline = Y<br />
| status_battery = N<br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = N<br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = N<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status = <!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" --><br />
| booting = no<br />
<br />
<!-- you can also use these lines if you need to:<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
Is OTG available, not used in wiki<br />
| status_otg = -<br />
--><br />
<!-- U-Boot --><br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = N<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = N<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = P<br />
| status_uboot_keyboard = -<br />
| status_uboot_buttons = Y<br />
}}<br />
<br />
== OEM Variants ==<br />
* HP Slate 7 Extreme (hp-olive)<br />
* ZOTAC Tegra Note 7<br />
* EVGA Tegra Note 7 ...and more info {{wikipedia|Tegra_Note_7|wikipedia}}<br />
<br />
== Contributors ==<br />
* coffeebeat<br />
<br />
== Maintainer(s) ==<br />
<!-- Only if this device doesn't run on linux-postmarketos yet! --><br />
<!-- This person needs to be willing to answer questions from users of this device --><br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Hold {{Button|Power}} + {{Button|Vol Up}}, enter to <code>fastboot protocol</code><br />
<br />
== Memo ==<br />
Using GCC6, <br />
<br />
Mostly flashing method doesn't work, but <code>pmbootstrap install --sdcard</code> is OK,<br />
<br />
boot to<code>pmbootstrap flasher boot</code><br />
<br />
I'm not recommended <code>flasher flash_kernel</code>, because you can't charging battery!<br />
<br />
<code>tegranote7c</code> is LTE version(Probably). Don't get confused.<br />
<br />
== osk-sdl ==<br />
<br />
<syntaxhighlight lang="shell-session"><br />
# osk-sdl -d a -n a -c /etc/osk.conf -v<br />
INFO: /home/buildozer/aports/community/sdl2/src/SDL2-2.0.12/src/video/directfb/SDL_DirectFB_video.c (239):A general initialization error occured<br />
Segmentation fault<br />
</syntaxhighlight><br />
<br />
== wifi ==<br />
fix to firmware path<br />
<syntaxhighlight lang="shell-session"><br />
$ sudo mkdir -p system/etc<br />
$ cd system/etc<br />
$ sudo ln -s /lib/firmware/ti-connectivity firmware<br />
wl12xx: loaded<br />
</syntaxhighlight><br />
but it's not work<br />
<syntaxhighlight lang="shell-session"><br />
$ ip set wlan0 up<br />
wl12xx: WARNING unsupported chip id: 0x0<br />
SDIO Vendor ID:0097 and SDIO Device ID: 4076<br />
wl12xx: WARNING unsupported chip id: 0x0<br />
SDIO Vendor ID:0097 and SDIO Device ID: 4076<br />
wl12xx: WARNING unsupported chip id: 0x0<br />
wl12xx: ERROR firmware boot failed despite 3 retries<br />
</syntaxhighlight><br />
<br />
== Mainline (Grate) ==<br />
Mainline kernel contains <code>tegra114-tn7.dts</code>.<br />
<br />
It's partial worked <code>linux-postmarketos-grate</code>(5.11.0_rc4), but have some problems.<br />
<br />
I'm '''not''' recommended to test this (Maybe killed sdcard slot).<br />
=== Hardware status (mainline) ===<br />
{|class="wikitable feature-colors"<br />
! <br />
! Status<br />
! info<br />
|-<br />
|Booting<br />
| Y<br />
|<br />
|-<br />
|Xwayland<br />
| Y<br />
|confirmed startup demos<br />
|-<br />
|USB Telnet<br />
| N<br />
|<br />
|-<br />
|Wifi, Bluetooth<br />
| <br />
|wl1271, in mainline <br />
|-<br />
|Touchscreen<br />
| <br />
|maxim_sti, not in mainline<br />
|-<br />
|Battery gauge<br />
| <br />
|max17048, in mainline(max17040)<br />
|-<br />
|}<br />
<br />
== See also ==<br />
* [https://github.com/skoar/android_kernel_nvidia_tegratab/tree/cm-12.1] Using Kernel<br />
* [https://github.com/skoar/android_kernel_nvidia_tegratab/blob/cm-12.1/arch/arm/configs/cyanogenmod_tegratab_defconfig] Using Config<br />
* [https://gitlab.com/postmarketOS/pmaports/-/merge_requests/1605] If you want tested, use this<br />
<!--<br />
Link to related GitLab issues or merge requests like the following (replace CHANGEME with the ID, e.g. 1234):<br />
* {{MR|CHANGEME|pmaports}} Initial merge request<br />
* {{issue|CHANGEME|pmaports}} Some related issue<br />
You can also add normal web links:<br />
* [https://redmine.replicant.us/projects/replicant/wiki/GalaxyS2I9100 Replicant wiki page]<br />
--><br />
<!--<br />
If you manage to get your device packages merged, uncomment links below.<br />
* {{Device package|nvidia-tegratab}}<br />
* {{Kernel package|nvidia-tegratab}}<br />
--></div>Clamorhttps://wiki.postmarketos.org/index.php?title=LG_Optimus_Vu_(lg-p895)&diff=45111LG Optimus Vu (lg-p895)2023-06-18T10:34:03Z<p>Clamor: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = LG<br />
| name = Optimus Vu<br />
| codename = lg-p895<br />
| image = File:Vu_recursion.jpg<br />
| imagecaption = Optimus Vu in recursion<br />
| releaseyear = 2012<br />
| originalsoftware = Android 4.0<br />
| chipset = Nvidia Tegra 3 (AP33)<br />
| cpu = Quad-core 1.5 GHz Cortex-A9<br />
| gpu = NVIDIA ULP GeForce GPU 12 cores<br />
| storage = 32 GB<br />
| display = 768×1024 IPS LCD<br />
| memory = 1 GB<br />
| architecture = armv7<br />
| booting = yes<br />
| whet_dhry = 1079.2<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or "" (blank) - for untested or unknown --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_fde = Y<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera =<br />
| status_gps =<br />
| status_nfc = Y<br />
| status_mobiledata =<br />
| status_sms =<br />
| status_calls =<br />
| status_otg = P<br />
| status_usba = -<br />
| status_hdmidp =<br />
| status_keyboard = -<br />
| status_touchpad = -<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = Y<br />
| status_hall = -<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = P<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = -<br />
| status_uboot_usbhost = -<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = Y<br />
| status_uboot_keyboard = -<br />
| status_uboot_buttons = Y<br />
| pmoskernel = mainline grate<br />
}}{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}<br />
<br />
== Contributors ==<br />
* Clamor<br />
<br />
=== Users owning this device ===<br />
{{Device owners}}<br />
== Unlocking ==<br />
Only known method of unlocking is flashing patched LG bootloader with kernel signature check disabled, but who needs this proprietary stuff with unknown properties (vendor bootloader I mean) if p895 supports open sourced bootloader - U-Boot.<br />
<br />
== Kernel status ==<br />
=== Android kernel ===<br />
* 3.1 kernel based on LG sources with updates till Nougat support ([https://github.com/clamor-s/android_kernel_lge_p895 Kernel])<br />
<br />
=== Mainline (Grate) ===<br />
* Baseline kernel sources on p895: https://github.com/grate-driver/linux<br />
* Proper dts for P895 is added<br />
* Version: 6.4.0-rc6<br />
* Status: Boots. See status below.<br />
<br />
== Installation ==<br />
=== Bootloader replacement ===<br />
{{warning|Bootloader replacement will erase all data on the device!}}<br />
LG bootloader is highly NOT recommended to use with pmOS. To switch to open source booloader you need to use P895 re-crypt zip, it can be found here https://github.com/clamor-s/wheelie/releases/tag/p895 (one with re-crypt in its name) and you MUST use native Linux, virtual machine and WSL will NOT work.<br />
<br />
Unpack zip and cd into it. Plug your P895 to PC and reboot it with holding both {{Button|Volume Down}} and {{Button|Volume Up}}. If all is done correct <code>lsusb</code> should show <code>ID 0955:7130 NVIDIA Corp. APX</code> device. Instructions are in the '''commands''' file or you can see them below.<br />
<br />
Now perform:<br />
<source lang="shell-session"><br />
$ sudo ./wheelie --blob blob.bin<br />
Wheelie 0.2 - Preflight for nvflash.<br />
Copyright (c) 2011-2012 androidroot.mobi<br />
========================================<br />
<br />
Waiting for device in APX mode...<br />
[=] Chip UID: 0x000000000000009<br />
[=] RCM Version: 0x30001<br />
<br />
[=] CPU Model: Tegra 3<br />
[+] Sending bootloader...<br />
Sending file: 100 %<br />
[!] Done - your device should now be ready for nvflash<br />
$ sudo ./nvflash --resume --rawdevicewrite 0 1024 repart-block.bin --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: repart-block.bin<br />
/ 4194304/4194304 bytes sent<br />
repart-block.bin sent successfully<br />
</source><br />
If phone did not reboot automatically, force reboot with holding {{Button|Power}}. This will replace LG bootloader with u-boot. For more deep look into u-boot actions refer to dedicated section below.<br />
<br />
=== postmarketOS installation ===<br />
{{warning|U-Boot mode is heavy power consuming, do not stay in it for prolonged periods of time!}}<br />
Thanks to u-boot you have installed on previous step, entire p895 eMMC can be mounted as a simple storage device.<br />
<br />
Boot into u-boot bootmenu by holding {{Button|Volume Down}} and {{Button|Power}}. Then using volume buttons you can navigate bootmenu and using {{Button|Power}} choose its entries.<br />
<br />
Plug your p895 to PC and choose mount internal storage. Your p895 eMMC should be detected by PC as a simple mass storage. Then it can be flashed as any SD card using [[pmbootstrap]].<br />
<br />
== Hardware status (mainline) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Booting<br />
| Android style boot.img has restriction of approx 4 MB, which is fraction of /boot partition size.<br />
|-<br />
| Y<br />
| Bootloader<br />
| Open source bootloader [https://github.com/clamor-s/u-boot/tree/lg U-Boot] is available as alternative for stock LG bootloader and can replace it. U-Boot can not boot downstream kernel if it has Trusted Foundations enabled.<br />
|-<br />
| Y<br />
| Panel<br />
| KOE/Hitachi TX13D100VM0EAA MIPI DSI LCD IPS panel via Solomon SSD2825 DSI/LVDS bridge.<br />
|-<br />
| Y<br />
| Backlight<br />
| TI LM3533 led controller is used for main backlight. Driver is converted into OF and can be operated by panel.<br />
|-<br />
| N<br />
| HDMI output<br />
| Device supports MHL via SII9244 hdmi bridge on it own i2c-gpio line. Currently not configured. Is similar to SII9234 driver but is not same, requires hw setup look. MHL connection is detected.<br />
|-<br />
| Y<br />
| Touchscreen<br />
| Synaptics RMI4 S3203B touchscreen is used.<br />
|-<br />
| N<br />
| Touch buttons<br />
| Synaptics RMI4 S3204B touchscreen's function 1a is used. It is ported and set, but currently capacitive buttons still do not work.<br />
|-<br />
| Y<br />
| USB<br />
| USB functional is fully implemented. Due to hw design HOST state can work only via OTG-Y cable (with external power). PERIPHERAL works perfectly fine.<br />
|-<br />
| Y<br />
| Internal memory<br />
| eMMC 32 Gb by Hynix model HBG4e.<br />
|-<br />
| P<br />
| GPS<br />
| Some fancy GSD5T GNSS module. Kernel part is ready but there is no way to test it since most of gps processing is made in userspace.<br />
|-<br />
| Y<br />
| WiFi<br />
| Uses BCM4330B1. Wi-Fi should work out of the box (best with IWD daemon: apk add iwd; rc-update del wpa_supplicant; rc-update add iwd). All needed stuff is included. Device may not connect to some networks (in my case it was PC hotspot, to fix this, I have installed IWD on my PC as well). Be aware that WiFi MAC address is not static, though it should not matter for average user.<br />
|-<br />
| Y<br />
| Bluetooth<br />
| BCM4330B1 37.4 MHz Class 1.5 W-ExtLNA PCM-S. Works perfectly fine with included firmware.<br />
|-<br />
| Y<br />
| NFC<br />
| As on most devices of this age PN544 is used. Recognizes NFC tags.<br />
|-<br />
| Y<br />
| GPIO keys/switches<br />
| There are 4 GPIO keys: Power, Volume up, Volume down and Memo keys.<br />
|-<br />
| Y<br />
| GPIO leds<br />
| There are 2 GPIO leds: Power button led and Keypad led bound and work via sysfs. Power led acts as charging indicator but has enormously big delays. Keypad led is not active till capacitive buttons are fixed.<br />
|-<br />
| Y<br />
| Vibro<br />
| Immersion ISA1200 haptic engine. Basic set of modes is implemented via Force Feedback Linux API. <br />
|-<br />
| Y<br />
| Battery<br />
| MAX17040 fuel gauge is used. Fully set up.<br />
|-<br />
| Y<br />
| Charger<br />
| Maxim MAX8971 charger is used. Fully configured, supports both slow and fast charging. Re-plug charger after exit from suspend, else it will charge with 360 mA current.<br />
|-<br />
| Y<br />
| Extcon<br />
| Maxim MAX14526 MUIC is used. Can detect a big range of devices, usb host/peripheral, AC charger, MHL cable etc.<br />
|-<br />
| Y<br />
| PMIC<br />
| Optimus Vu uses Maxim MAX77663 PMIC mfd. Media devices have own sub-PMIC TI LP8720.<br />
|-<br />
| Y<br />
| Sound<br />
| Sound codec is Maxim MAX98089. Fully routed in kernel, UCM's are complete for media and calls. Audio via HDMI should work out of the box.<br />
|-<br />
| Y<br />
| Thermal sensor<br />
| NCT1008 ON Semiconductor LM90 series thermometer and Tegra T sensor. Both work perfectly fine.<br />
|-<br />
| Y<br />
| Power sensor<br />
| Ina230 works fine. Battery has its own tsc2007 ADC to detect battery temperature, works as current sensor.<br />
|-<br />
| Y<br />
| Orientation sensors<br />
| Include mpu6050 imu (accelerometer, gyroscope and thermometer) and ami306 compass.<br />
|-<br />
| Y<br />
| Light and Proximity sensor<br />
| APDS990X - combined AL and proximity sensor is used. Both functions work fine. Proximity function is disabled by default.<br />
|-<br />
| N<br />
| Front camera<br />
| 1.26 MP Aptina 1/6" HD SOC (MT9M114) - mainline driver is available.<br />
|-<br />
| N<br />
| Rear camera<br />
| 8 MP Sony imx111 1/4" BSI sensor with DW9714 lens voice coil and LM3559 flash led. DW9714 and LM3559 both have mainline drivers, imx111 - does not.<br />
|-<br />
| N<br />
| Modem<br />
| Intel XMM6260 modem is used on usb2 line in hsic mode.<br />
|-<br />
| P<br />
| ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== Usability ==<br />
=== Desktop environment ===<br />
Since 3D acceleration is not available yet, all DE which use it will be painfully slow and laggy.<br />
<br />
Currently [https://wiki.postmarketos.org/wiki/Xfce4 xfce4] or [https://wiki.postmarketos.org/wiki/MATE mate] are recommended.<br />
<br />
== U-Boot ==<br />
Current U-Boot status on LG Optimus Vu<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Feature<br />
! Info<br />
|-<br />
| Y<br />
| Primary bootloader<br />
| U-Boot successfully boots when is flashed into EBT partition instead of LG bootloader. Can be additionally booted via fusée gelée exploit.<br />
|-<br />
| P<br />
| Secondary bootloader<br />
| U-Boot can be chainloaded from both /boot and /recovery partitions, though LG bootloader has some conflicts with U-Boot.<br />
|-<br />
| Y<br />
| Panel<br />
| Solomon SSD2825 bridge, Hitachi KOE TX13D100VM0EAA DSI panel, TI lm3533 backlight were all added into U-Boot. Panel is fully functional.<br />
|-<br />
| Y<br />
| eMMC<br />
| Re-partitioned to better fit generic setup. Can be mounted as mass storage on host PC.<br />
|-<br />
| Y<br />
| Boot kernel<br />
| Yes, and can be highly adjusted with '''extlinux.conf'''.<br />
|-<br />
| Y<br />
| Boot menu<br />
| Native u-boot bootmenu works perfectly fine. It can be called with pressing volume down button on boot.<br />
|-<br />
| Y<br />
| Power management<br />
| Offline charging and charging in u-boot both work and are hw configured. Both power off and reboot options work and are available in bootmenu. If no valid kernel is found phone will turn off.<br />
|-<br />
| Y<br />
| Fastboot<br />
| Fastboot option is available in bootmenu. Most functions should work fine.<br />
|-<br />
| P<br />
| Boot Android<br />
| Booting Android kernel can be performed only same way mainline kernel boots. Additionally it must not have '''CONFIG_TRUSTED_FOUNDATIONS = y''' and some additional small patches, it can be booted by u-boot.<br />
|-<br />
| Y<br />
|Self update<br />
|Self update option is implemented and write is done correctly. Bootloader file has to have name '''u-boot-dtb-tegra.bin''' and be placed on 1st partition of eMMC.<br />
|-<br />
|}<br />
<br />
== Gallery ==<br />
<gallery><br />
File:Vu-Mate.jpg|thumb|600px|<br />
File:Vu-Uboot.jpg|thumb|600px|<br />
File:Vu-Bootlogo.jpg|thumb|600px|<br />
File:Vu-simplefb.jpg|thumb|600px|<br />
File:Vu-benchmark.jpg|thumb|600px|<br />
</gallery><br />
<br />
== Serial console ==<br />
[[File:Vu-JTAG.jpg|thumb|mini|left|250px|Red arrow pointing to jtag]]<br />
[[File:Vu-schematic.png|thumb|mini|right|250px|JTAG schematics. Clickable]]<br />
LG Optimus Vu is an interesting device since it has factory soldered jtag directly on motherboard in pretty apposite and easily accessible place. To get to jtag you need only to take off back cover and plastic casing over motherboard. That is it, only one free socket is jtag. UART is UART-D (serial@70006300; 115200n8) and uses 3.3v.<br />
<br />
== See also ==<br />
* More about the device [https://en.wikipedia.org/wiki/LG_Optimus_Vu Wikipedia entry]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=LG_Optimus_Vu_(lg-p895)&diff=40139LG Optimus Vu (lg-p895)2023-04-23T08:38:28Z<p>Clamor: Undo revision 39197 by Doomfan345 (talk)</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = LG<br />
| name = Optimus Vu<br />
| codename = lg-p895<br />
| image = File:Vu_recursion.jpg<br />
| imagecaption = Optimus Vu in recursion<br />
| releaseyear = 2012<br />
| originalsoftware = Android 4.0<br />
| chipset = Nvidia Tegra 3 (AP33)<br />
| cpu = Quad-core 1.5 GHz Cortex-A9<br />
| gpu = NVIDIA ULP GeForce GPU 12 cores<br />
| storage = 32 GB<br />
| display = 768×1024 IPS LCD<br />
| memory = 1 GB<br />
| architecture = armv7<br />
| booting = yes<br />
| whet_dhry = 1079.2<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or "" (blank) - for untested or unknown --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_fde = Y<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera =<br />
| status_gps =<br />
| status_nfc = Y<br />
| status_mobiledata =<br />
| status_sms =<br />
| status_calls =<br />
| status_otg = P<br />
| status_usba = -<br />
| status_hdmidp =<br />
| status_keyboard = -<br />
| status_touchpad = -<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = Y<br />
| status_hall = -<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = P<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = -<br />
| status_uboot_usbhost = -<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = Y<br />
| status_uboot_keyboard = -<br />
| status_uboot_buttons = Y<br />
| pmoskernel = mainline grate<br />
}}{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}<br />
<br />
== Contributors ==<br />
* Clamor<br />
<br />
=== Users owning this device ===<br />
{{Device owners}}<br />
== Unlocking ==<br />
Only known method of unlocking is flashing patched LG bootloader with kernel signature check disabled, but who needs this proprietary stuff with unknown properties (vendor bootloader I mean) if p895 supports open sourced bootloader - U-Boot.<br />
<br />
== Kernel status ==<br />
=== Android kernel ===<br />
* 3.1 kernel based on LG sources with updates till Nougat support ([https://github.com/clamor-s/android_kernel_lge_p895 Kernel])<br />
<br />
=== Mainline (Grate) ===<br />
* Baseline kernel sources on p895: https://github.com/grate-driver/linux<br />
* Proper dts for P895 is added<br />
* Version: 6.2.0<br />
* Status: Boots. See status below.<br />
<br />
== Installation ==<br />
=== Bootloader replacement ===<br />
LG bootloader is highly NOT recommended to use with pmOS. To switch to open source booloader you need to use P895 Nvflash zip, it can be found here https://github.com/clamor-s/wheelie/releases/tag/p895 and you MUST use native Linux, virtual machine and WSL will NOT work.<br />
<br />
Unpack zip and cd into it. Plug your P895 to PC and reboot it with holding both {{Button|Volume Down}} and {{Button|Volume Up}}. If all is done correct <code>lsusb</code> should show <code>ID 0955:7130 NVIDIA Corp. APX</code> device.<br />
<br />
Now perform:<br />
<source lang="shell-session"><br />
$ sudo ./wheelie --blob blob.bin<br />
Wheelie 0.2 - Preflight for nvflash.<br />
Copyright (c) 2011-2012 androidroot.mobi<br />
========================================<br />
<br />
Waiting for device in APX mode...<br />
[=] Chip UID: 0x000000000000009<br />
[=] RCM Version: 0x30001<br />
<br />
[=] CPU Model: Tegra 3<br />
[+] Sending bootloader...<br />
Sending file: 100 %<br />
[!] Done - your device should now be ready for nvflash<br />
$ sudo ./nvflash --resume --rawdevicewrite 0 2944 u-boot-bricksafe.img --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: u-boot-bricksafe.img<br />
/ 12058624/12058624 bytes sent<br />
u-boot-bricksafe.img sent successfully<br />
</source><br />
If phone did not reboot automatically, force reboot with holding {{Button|Power}}. This will replace LG bootloader with u-boot. For more deep look into u-boot actions refer to dedicated section below.<br />
<br />
=== postmarketOS installation ===<br />
{{warning|P895 as /root uses userdata partition, MAKE A BACKUP OF IT!}}<br />
You should configure p895 build using pmbootstrap and build it using split images <code>pmbootstrap install --split</code>. Now you can use '''nvflash''' or '''dd'''. <br />
<br />
For '''nvflash''' place your pmOS images into Nvflash folder and enter APX mode with wheelie. Flash rootfs first with <br />
<source lang="shell-session"><br />
$ sudo ./nvflash --resume --download UDA lg-p895-root.img --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: lg-p895-root.img<br />
/ 1205862445/1205862445 bytes sent<br />
lg-p895-root.img sent successfully<br />
</source><br />
Phone will reboot and poweroff itself. Enter APX mode with wheelie once more and flash boot with<br />
<source lang="shell-session"><br />
$ sudo ./nvflash --resume --download CAC lg-p895-boot.img --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: lg-p895-boot.img<br />
/ 205862445/205862445 bytes sent<br />
lg-p895-boot.img sent successfully<br />
</source><br />
After pmOS should boot fine. If you have issues with /root size, use <code>resize2fs</code>.<br />
<br />
For '''dd''' you can mount /boot and /root partitions directly as external storage on your PC. For this u-boot has options <code>mount /boot</code> and <code>mount /root</code> and you will just need to flash images onto those external storage correspondingly.<br />
<br />
== Hardware status (mainline) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Booting<br />
| Android style boot.img has restriction of approx 4 MB, which is fraction of /boot partition size.<br />
|-<br />
| Y<br />
| Bootloader<br />
| Open source bootloader [https://github.com/clamor-s/u-boot/tree/lg U-Boot] is available as alternative for stock LG bootloader and can replace it. U-Boot can not boot downstream kernel if it has Trusted Foundations enabled.<br />
|-<br />
| Y<br />
| Panel<br />
| KOE/Hitachi TX13D100VM0EAA MIPI DSI LCD IPS panel via Solomon SSD2825 DSI/LVDS bridge.<br />
|-<br />
| Y<br />
| Backlight<br />
| TI LM3533 led controller is used for main backlight. Driver is converted into OF and can be operated by panel.<br />
|-<br />
| N<br />
| HDMI output<br />
| Device supports MHL via SII9244 hdmi bridge on it own i2c-gpio line. Currently not configured. Is similar to SII9234 driver but is not same, requires hw setup look. MHL connection is detected.<br />
|-<br />
| Y<br />
| Touchscreen<br />
| Synaptics RMI4 S3203B touchscreen is used.<br />
|-<br />
| N<br />
| Touch buttons<br />
| Synaptics RMI4 S3204B touchscreen's function 1a is used. It is ported and set, but currently capacitive buttons still do not work.<br />
|-<br />
| Y<br />
| USB<br />
| USB functional is fully implemented. Due to hw design HOST state can work only via OTG-Y cable (with external power). PERIPHERAL works perfectly fine.<br />
|-<br />
| Y<br />
| Internal memory<br />
| eMMC 32 Gb by Hynix model HBG4e.<br />
|-<br />
| P<br />
| GPS<br />
| Some fancy GSD5T GNSS module. Kernel part is ready but there is no way to test it since most of gps processing is made in userspace.<br />
|-<br />
| Y<br />
| WiFi<br />
| Uses BCM4330B1. Wi-Fi should work out of the box (best with IWD daemon: apk add iwd; rc-update del wpa_supplicant; rc-update add iwd). All needed stuff is included. Device may not connect to some networks (in my case it was PC hotspot, to fix this, I have installed IWD on my PC as well). Be aware that WiFi MAC address is not static, though it should not matter for average user.<br />
|-<br />
| Y<br />
| Bluetooth<br />
| BCM4330B1 37.4 MHz Class 1.5 W-ExtLNA PCM-S. Works perfectly fine with included firmware.<br />
|-<br />
| Y<br />
| NFC<br />
| As on most devices of this age PN544 is used. Recognizes NFC tags.<br />
|-<br />
| Y<br />
| GPIO keys/switches<br />
| There are 4 GPIO keys: Power, Volume up, Volume down and Memo keys.<br />
|-<br />
| Y<br />
| GPIO leds<br />
| There are 2 GPIO leds: Power button led and Keypad led bound and work via sysfs. Power led acts as charging indicator but has enormously big delays. Keypad led is not active till capacitive buttons are fixed.<br />
|-<br />
| Y<br />
| Vibro<br />
| Immersion ISA1200 haptic engine. Basic set of modes is implemented via Force Feedback Linux API. <br />
|-<br />
| Y<br />
| Battery<br />
| MAX17040 fuel gauge is used. Fully set up.<br />
|-<br />
| Y<br />
| Charger<br />
| Maxim MAX8971 charger is used. Fully configured, supports both slow and fast charging. Re-plug charger after exit from suspend, else it will charge with 360 mA current.<br />
|-<br />
| Y<br />
| Extcon<br />
| Maxim MAX14526 MUIC is used. Can detect a big range of devices, usb host/peripheral, AC charger, MHL cable etc.<br />
|-<br />
| Y<br />
| PMIC<br />
| Optimus Vu uses Maxim MAX77663 PMIC mfd. Media devices have own sub-PMIC TI LP8720.<br />
|-<br />
| Y<br />
| Sound<br />
| Sound codec is Maxim MAX98089. Fully routed in kernel, UCM's are complete for media and calls. Audio via HDMI should work out of the box.<br />
|-<br />
| Y<br />
| Thermal sensor<br />
| NCT1008 ON Semiconductor LM90 series thermometer and Tegra T sensor. Both work perfectly fine.<br />
|-<br />
| Y<br />
| Power sensor<br />
| Ina230 works fine. Battery has its own tsc2007 ADC to detect battery temperature, works as current sensor.<br />
|-<br />
| Y<br />
| Orientation sensors<br />
| Include mpu6050 imu (accelerometer, gyroscope and thermometer) and ami306 compass.<br />
|-<br />
| Y<br />
| Light and Proximity sensor<br />
| APDS990X - combined AL and proximity sensor is used. Both functions work fine. Proximity function is disabled by default.<br />
|-<br />
| N<br />
| Front camera<br />
| 1.26 MP Aptina 1/6" HD SOC (MT9M114) - mainline driver is available.<br />
|-<br />
| N<br />
| Rear camera<br />
| 8 MP Sony imx111 1/4" BSI sensor with DW9714 lens voice coil and LM3559 flash led. DW9714 and LM3559 both have mainline drivers, imx111 - does not.<br />
|-<br />
| N<br />
| Modem<br />
| Intel XMM6260 modem is used on usb2 line in hsic mode.<br />
|-<br />
| P<br />
| ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== Usability ==<br />
=== Desktop environment ===<br />
Since 3D acceleration is not available yet, all DE which use it will be painfully slow and laggy.<br />
<br />
Currently [https://wiki.postmarketos.org/wiki/Xfce4 xfce4] or [https://wiki.postmarketos.org/wiki/MATE mate] are recommended.<br />
<br />
== U-Boot ==<br />
Current U-Boot status on LG Optimus Vu<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Feature<br />
! Info<br />
|-<br />
| Y<br />
| Primary bootloader<br />
| U-Boot successfully boots when is flashed into EBT partition instead of LG bootloader. Can be additionally booted via fusée gelée exploit.<br />
|-<br />
| P<br />
| Secondary bootloader<br />
| U-Boot can be chainloaded from both /boot and /recovery partitions, though LG bootloader has some conflicts with U-Boot.<br />
|-<br />
| Y<br />
| Panel<br />
| Solomon SSD2825 bridge, Hitachi KOE TX13D100VM0EAA DSI panel, TI lm3533 backlight were all added into U-Boot. Panel is fully functional.<br />
|-<br />
| Y<br />
| eMMC<br />
| Re-partitioned to better fit generic setup. Can be mounted as mass storage on host PC.<br />
|-<br />
| Y<br />
| Boot kernel<br />
| Yes, and can be highly adjusted with '''extlinux.conf'''.<br />
|-<br />
| Y<br />
| Boot menu<br />
| Native u-boot bootmenu works perfectly fine. It can be called with pressing volume down button on boot.<br />
|-<br />
| Y<br />
| Power management<br />
| Offline charging and charging in u-boot both work and are hw configured. Both power off and reboot options work and are available in bootmenu. If no valid kernel is found phone will turn off.<br />
|-<br />
| Y<br />
| Fastboot<br />
| Fastboot option is available in bootmenu. Most functions should work fine.<br />
|-<br />
| P<br />
| Boot Android<br />
| Booting Android kernel can be performed only same way mainline kernel boots. Additionally it must not have '''CONFIG_TRUSTED_FOUNDATIONS = y''' and some additional small patches, it can be booted by u-boot.<br />
|-<br />
| Y<br />
|Self update<br />
|Self update option is implemented and write is done correctly. Bootloader file has to have name '''u-boot-dtb-tegra.bin''' and be placed on 1st partition of eMMC.<br />
|-<br />
|}<br />
<br />
== Gallery ==<br />
<gallery><br />
File:Vu-Mate.jpg|thumb|600px|<br />
File:Vu-Uboot.jpg|thumb|600px|<br />
File:Vu-Bootlogo.jpg|thumb|600px|<br />
File:Vu-simplefb.jpg|thumb|600px|<br />
File:Vu-benchmark.jpg|thumb|600px|<br />
</gallery><br />
<br />
== Serial console ==<br />
[[File:Vu-JTAG.jpg|thumb|mini|left|250px|Red arrow pointing to jtag]]<br />
[[File:Vu-schematic.png|thumb|mini|right|250px|JTAG schematics. Clickable]]<br />
LG Optimus Vu is an interesting device since it has factory soldered jtag directly on motherboard in pretty apposite and easily accessible place. To get to jtag you need only to take off back cover and plastic casing over motherboard. That is it, only one free socket is jtag. UART is UART-D (serial@70006300; 115200n8) and uses 3.3v.<br />
<br />
== See also ==<br />
* More about the device [https://en.wikipedia.org/wiki/LG_Optimus_Vu Wikipedia entry]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=Devices&diff=40120Devices2023-04-23T08:32:52Z<p>Clamor: </p>
<hr />
<div>__NOTOC__ __NOCACHE__<br />
This page details the status of postmarketOS ports to various devices. If you are porting a device, please [[Help:Device Page|create a device page]] and describe the progress of the port. After the page is created, data about your device will appear on this page automatically. If you want to filter the list of devices based on one or multiple properties, use [[Special:Drilldown/Devices]] page.<br />
<br />
----<br />
<br />
''Note:'' See the [[#Status_Legend|Status Legend]] for an explanation of status codes (e.g., N, P, Y, -). Read [[device categorization]] for detailed criteria of each category (main, community, testing).<br />
<br />
=== Main ===<br />
These are the most supported devices, maintained by at least 2 people and have the functions you expect from the device running its normal OS, such as calling on a phone, working audio, and a functional UI.<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,Architecture,Released=Release year,Chipset,CPU,GPU,StatusFde=FDE,StatusCamera=Camera,StatusGps=GPS,StatusMobiledata=Mobile Data,StatusSms=SMS,StatusCalls=Calls,StatusOtg=USB-OTG,StatusNfc=NFC<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.Booting = 1 and Devices.category = "main"<br />
|more results text=<br />
}}<br />
<br />
=== Community ===<br />
Devices that have had a lot of work put into them, where regressions are actively fixed, and the port is overall in a pretty good shape.<br />
<br />
==== Phones ====<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,Architecture,StatusUsbnet=USB Net,StatusFlashing=Flashing,StatusTouch=Touch,StatusScreen=Screen,StatusWifi=Wifi,StatusFde=FDE,StatusBattery=Battery,Status3d=3D,StatusAccel=IMU,StatusAudio=Audio,StatusBluetooth=Bluetooth,StatusCamera=Camera,StatusGps=GPS,StatusMobiledata=Mobile Data,StatusSms=SMS,StatusCalls=Calls,StatusOtg=USB-OTG,StatusNfc=NFC<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.Booting = 1 and Devices.category = "community" and Devices.DeviceType IN ("handset", "phone")<br />
|more results text=<br />
}}<br />
<br />
==== Tablets ====<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,Architecture,StatusUsbnet=USB Net,StatusFlashing=Flashing,StatusTouch=Touch,StatusScreen=Screen,StatusWifi=Wifi,StatusFde=FDE,StatusBattery=Battery,Status3d=3D,StatusAccel=IMU,StatusAudio=Audio,StatusBluetooth=Bluetooth,StatusCamera=Camera,StatusGps=GPS,StatusMobiledata=Mobile Data,StatusOtg=USB-OTG<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.Booting = 1 and Devices.category = "community" and Devices.DeviceType = "tablet"<br />
|more results text=<br />
}}<br />
<br />
==== Laptops ====<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,Architecture,StatusScreen=Screen,StatusKeyboard=Keyboard,StatusTouchpad=Touchpad,StatusTouch=Touchscreen,StatusWifi=Wifi,StatusFde=FDE,StatusBattery=Battery,Status3d=3D,StatusAudio=Audio,StatusBluetooth=Bluetooth,StatusCamera=Camera,StatusMobiledata=Mobile Data,StatusUsba=USB-A,StatusOtg=USB-OTG,StatusHdmidp=HDMI/DP<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.Booting = 1 and Devices.category = "community" and Devices.DeviceType IN ("laptop", "convertible", "detachable")<br />
|more results text=<br />
}}<br />
<br />
==== Other ====<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,Architecture,StatusUsbnet=USB Net,StatusFlashing=Flashing,StatusScreen=Screen,StatusWifi=Wifi,StatusFde=FDE,StatusBattery=Battery,Status3d=3D,StatusAudio=Audio,StatusBluetooth=Bluetooth,StatusHdmidp=HDMI/DP,StatusOtg=USB-OTG<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.Booting = 1 and Devices.category = "community" and (Devices.DeviceType NOT IN ("handset", "phone", "tablet", "laptop", "convertible", "detachable") or DeviceType IS NULL)<br />
|more results text=<br />
}}<br />
<br />
=== Status Legend ===<br />
<br />
{| class="wikitable feature-colors"<br />
! Code<br />
! Meaning<br />
|-<br />
| Y<br />
| Yes, fully implemented<br />
|-<br />
| P<br />
| Partially implemented<br />
|-<br />
| N<br />
| Not working yet<br />
|-<br />
| <br />
| Untested<br />
|-<br />
| -<br />
| Not applicable -- device does not have feature<br />
|}<br />
<br />
==== Columns ====<br />
<br />
{| class="wikitable"<br />
! Column<br />
! Meaning<br />
|-<br />
| FDE<br />
| Full disk encryption and unlocking with [[osk-sdl]].<br />
|-<br />
| Camera<br />
| Taking photos and videos works.<br />
|-<br />
| GPS<br />
| The [https://en.wikipedia.org/wiki/Global_Positioning_System Global Positioning System] sensor works.<br />
|-<br />
| Mobile Data<br />
| Connecting to the Internet via cellular network.<br />
|-<br />
| SMS<br />
| Sending and receiving short messages works as intended.<br />
|-<br />
| Calls<br />
| Talking to other people over the cellular network.<br />
|-<br />
| Mainline*<br />
| Runs a [[(Close to) Mainline]] kernel, not an Android downstream kernel.<br />
|}<br />
<br />
=== Testing ===<br />
All other device ports, including new ones. Maintainers can create merge requests to move devices to community if requirements are met on the [[Device categorization]] page. A more detailed view with a full status matrix of these devices can be found on the [[All devices]] page.<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=ul<br />
|columns=2<br />
|limit=9999<br />
|where=Devices.Booting = 1 and Devices.category = "testing"<br />
|more results text=<br />
}}<br />
<br />
=== Non-booting devices === <br />
The devices in the list below cannot boot postmarketOS (yet). As such, they have not been integrated into the postmarketOS source tree. Once the device becomes bootable, it might appear in this list until a pull-request to integrate the code has been accepted. If you have verified that a device in this list boots postmarketOS, please [https://docs.gitlab.com/ce/gitlab-basics/add-merge-request.html make a merge-request].<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=ul<br />
|columns=2<br />
|limit=9999<br />
|where=Devices.Booting = 0<br />
|more results text=<br />
}}<br />
<br />
==See also==<br />
* [[All devices]]<br />
* [[Renamed Devices]]<br />
* [[Device Wishlist]]<br />
* [https://wiki.postmarketos.org/wiki/Category:Not_Packaged Category:Not Packaged]<br />
* [[The-big-list-of-who-has-what-device]]<br />
* [[Symbian]]<br />
* [[Apple iPods]]<br />
* [[Nokia Asha and X]]<br />
* [[Xiaomi Amazfit]]<br />
<br />
[[Category:Devices| ]]<br />
[[Category:Hardware]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=LG_Optimus_Vu_(lg-p895)&diff=38230LG Optimus Vu (lg-p895)2023-04-11T19:03:02Z<p>Clamor: /* Mainline (Grate) */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = LG<br />
| name = Optimus Vu<br />
| codename = lg-p895<br />
| image = File:Vu_recursion.jpg<br />
| imagecaption = Optimus Vu in recursion<br />
| releaseyear = 2012<br />
| originalsoftware = Android 4.0<br />
| chipset = Nvidia Tegra 3 (AP33)<br />
| cpu = Quad-core 1.5 GHz Cortex-A9<br />
| gpu = NVIDIA ULP GeForce GPU 12 cores<br />
| storage = 32 GB<br />
| display = 768×1024 IPS LCD<br />
| memory = 1 GB<br />
| architecture = armv7<br />
| booting = yes<br />
| whet_dhry = 1079.2<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or "" (blank) - for untested or unknown --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_fde = Y<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera =<br />
| status_gps =<br />
| status_nfc = Y<br />
| status_mobiledata =<br />
| status_sms =<br />
| status_calls =<br />
| status_otg = P<br />
| status_usba = -<br />
| status_hdmidp =<br />
| status_keyboard = -<br />
| status_touchpad = -<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = Y<br />
| status_hall = -<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = P<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = -<br />
| status_uboot_usbhost = -<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = Y<br />
| status_uboot_keyboard = -<br />
| status_uboot_buttons = Y<br />
| pmoskernel = mainline grate<br />
}}{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}<br />
<br />
== Contributors ==<br />
* Clamor<br />
<br />
=== Users owning this device ===<br />
{{Device owners}}<br />
== Unlocking ==<br />
Only known method of unlocking is flashing patched LG bootloader with kernel signature check disabled, but who needs this proprietary stuff with unknown properties (vendor bootloader I mean) if p895 supports open sourced bootloader - U-Boot.<br />
<br />
== Kernel status ==<br />
=== Android kernel ===<br />
* 3.1 kernel based on LG sources with updates till Nougat support ([https://github.com/clamor-s/android_kernel_lge_p895 Kernel])<br />
<br />
=== Mainline (Grate) ===<br />
* Baseline kernel sources on p895: https://github.com/grate-driver/linux<br />
* Proper dts for P895 is added<br />
* Version: 6.2.0<br />
* Status: Boots. See status below.<br />
<br />
== Installation ==<br />
=== Bootloader replacement ===<br />
LG bootloader is highly NOT recommended to use with pmOS. To switch to open source booloader you need to use P895 Nvflash zip, it can be found here https://github.com/clamor-s/wheelie/releases/tag/p895 and you MUST use native Linux, virtual machine and WSL will NOT work.<br />
<br />
Unpack zip and cd into it. Plug your P895 to PC and reboot it with holding both {{Button|Volume Down}} and {{Button|Volume Up}}. If all is done correct <code>lsusb</code> should show <code>ID 0955:7130 NVIDIA Corp. APX</code> device.<br />
<br />
Now perform:<br />
<source lang="shell-session"><br />
$ sudo ./wheelie --blob blob.bin<br />
Wheelie 0.2 - Preflight for nvflash.<br />
Copyright (c) 2011-2012 androidroot.mobi<br />
========================================<br />
<br />
Waiting for device in APX mode...<br />
[=] Chip UID: 0x000000000000009<br />
[=] RCM Version: 0x30001<br />
<br />
[=] CPU Model: Tegra 3<br />
[+] Sending bootloader...<br />
Sending file: 100 %<br />
[!] Done - your device should now be ready for nvflash<br />
$ sudo ./nvflash --resume --rawdevicewrite 0 2944 u-boot-bricksafe.img --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: u-boot-bricksafe.img<br />
/ 12058624/12058624 bytes sent<br />
u-boot-bricksafe.img sent successfully<br />
</source><br />
If phone did not reboot automatically, force reboot with holding {{Button|Power}}. This will replace LG bootloader with u-boot. For more deep look into u-boot actions refer to dedicated section below.<br />
<br />
=== postmarketOS installation ===<br />
{{warning|P895 as /root uses userdata partition, MAKE A BACKUP OF IT!}}<br />
You should configure p895 build using pmbootstrap and build it using split images <code>pmbootstrap install --split</code>. Now you can use '''nvflash''' or '''dd'''. <br />
<br />
For '''nvflash''' place your pmOS images into Nvflash folder and enter APX mode with wheelie. Flash rootfs first with <br />
<source lang="shell-session"><br />
$ sudo ./nvflash --resume --download UDA lg-p895-root.img --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: lg-p895-root.img<br />
/ 1205862445/1205862445 bytes sent<br />
lg-p895-root.img sent successfully<br />
</source><br />
Phone will reboot and poweroff itself. Enter APX mode with wheelie once more and flash boot with<br />
<source lang="shell-session"><br />
$ sudo ./nvflash --resume --download CAC lg-p895-boot.img --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: lg-p895-boot.img<br />
/ 205862445/205862445 bytes sent<br />
lg-p895-boot.img sent successfully<br />
</source><br />
After pmOS should boot fine. If you have issues with /root size, use <code>resize2fs</code>.<br />
<br />
For '''dd''' you can mount /boot and /root partitions directly as external storage on your PC. For this u-boot has options <code>mount /boot</code> and <code>mount /root</code> and you will just need to flash images onto those external storage correspondingly.<br />
<br />
== Hardware status (mainline) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Booting<br />
| Android style boot.img has restriction of approx 4 MB, which is fraction of /boot partition size.<br />
|-<br />
| Y<br />
| Bootloader<br />
| Open source bootloader [https://github.com/clamor-s/u-boot/tree/lg U-Boot] is available as alternative for stock LG bootloader and can replace it. U-Boot can not boot downstream kernel if it has Trusted Foundations enabled.<br />
|-<br />
| Y<br />
| Panel<br />
| KOE/Hitachi TX13D100VM0EAA MIPI DSI LCD IPS panel via Solomon SSD2825 DSI/LVDS bridge.<br />
|-<br />
| Y<br />
| Backlight<br />
| TI LM3533 led controller is used for main backlight. Driver is converted into OF and can be operated by panel.<br />
|-<br />
| N<br />
| HDMI output<br />
| Device supports MHL via SII9244 hdmi bridge on it own i2c-gpio line. Currently not configured. Is similar to SII9234 driver but is not same, requires hw setup look. MHL connection is detected.<br />
|-<br />
| Y<br />
| Touchscreen<br />
| Synaptics RMI4 S3203B touchscreen is used.<br />
|-<br />
| N<br />
| Touch buttons<br />
| Synaptics RMI4 S3204B touchscreen's function 1a is used. It is ported and set, but currently capacitive buttons still do not work.<br />
|-<br />
| Y<br />
| USB<br />
| USB functional is fully implemented. Due to hw design HOST state can work only via OTG-Y cable (with external power). PERIPHERAL works perfectly fine.<br />
|-<br />
| Y<br />
| Internal memory<br />
| eMMC 32 Gb by Hynix model HBG4e.<br />
|-<br />
| P<br />
| GPS<br />
| Some fancy GSD5T GNSS module. Kernel part is ready but there is no way to test it since most of gps processing is made in userspace.<br />
|-<br />
| Y<br />
| WiFi<br />
| Uses BCM4330B1. Wi-Fi should work out of the box (best with IWD daemon: apk add iwd; rc-update del wpa_supplicant; rc-update add iwd). All needed stuff is included. Device may not connect to some networks (in my case it was PC hotspot, to fix this, I have installed IWD on my PC as well). Be aware that WiFi MAC address is not static, though it should not matter for average user.<br />
|-<br />
| Y<br />
| Bluetooth<br />
| BCM4330B1 37.4 MHz Class 1.5 W-ExtLNA PCM-S. Works perfectly fine with included firmware.<br />
|-<br />
| Y<br />
| NFC<br />
| As on most devices of this age PN544 is used. Recognizes NFC tags.<br />
|-<br />
| Y<br />
| GPIO keys/switches<br />
| There are 4 GPIO keys: Power, Volume up, Volume down and Memo keys.<br />
|-<br />
| Y<br />
| GPIO leds<br />
| There are 2 GPIO leds: Power button led and Keypad led bound and work via sysfs. Power led acts as charging indicator but has enormously big delays. Keypad led is not active till capacitive buttons are fixed.<br />
|-<br />
| Y<br />
| Vibro<br />
| Immersion ISA1200 haptic engine. Basic set of modes is implemented via Force Feedback Linux API. <br />
|-<br />
| Y<br />
| Battery<br />
| MAX17040 fuel gauge is used. Fully set up.<br />
|-<br />
| Y<br />
| Charger<br />
| Maxim MAX8971 charger is used. Fully configured, supports both slow and fast charging. Re-plug charger after exit from suspend, else it will charge with 360 mA current.<br />
|-<br />
| Y<br />
| Extcon<br />
| Maxim MAX14526 MUIC is used. Can detect a big range of devices, usb host/peripheral, AC charger, MHL cable etc.<br />
|-<br />
| Y<br />
| PMIC<br />
| Optimus Vu uses Maxim MAX77663 PMIC mfd. Media devices have own sub-PMIC TI LP8720.<br />
|-<br />
| Y<br />
| Sound<br />
| Sound codec is Maxim MAX98089. Fully routed in kernel, UCM's are complete for media and calls. Audio via HDMI should work out of the box.<br />
|-<br />
| Y<br />
| Thermal sensor<br />
| NCT1008 ON Semiconductor LM90 series thermometer and Tegra T sensor. Both work perfectly fine.<br />
|-<br />
| Y<br />
| Power sensor<br />
| Ina230 works fine. Battery has its own tsc2007 ADC to detect battery temperature, works as current sensor.<br />
|-<br />
| Y<br />
| Orientation sensors<br />
| Include mpu6050 imu (accelerometer, gyroscope and thermometer) and ami306 compass.<br />
|-<br />
| Y<br />
| Light and Proximity sensor<br />
| APDS990X - combined AL and proximity sensor is used. Both functions work fine. Proximity function is disabled by default.<br />
|-<br />
| N<br />
| Front camera<br />
| 1.26 MP Aptina 1/6" HD SOC (MT9M114) - mainline driver is available.<br />
|-<br />
| N<br />
| Rear camera<br />
| 8 MP Sony imx111 1/4" BSI sensor with DW9714 lens voice coil and LM3559 flash led. DW9714 and LM3559 both have mainline drivers, imx111 - does not.<br />
|-<br />
| N<br />
| Modem<br />
| Intel XMM6260 modem is used on usb2 line in hsic mode.<br />
|-<br />
| P<br />
| ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== Usability ==<br />
=== Desktop environment ===<br />
Since 3D acceleration is not available yet, all DE which use it will be painfully slow and laggy.<br />
<br />
Currently [https://wiki.postmarketos.org/wiki/Xfce4 xfce4] or [https://wiki.postmarketos.org/wiki/MATE mate] are recommended.<br />
<br />
== U-Boot ==<br />
Current U-Boot status on LG Optimus Vu<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Feature<br />
! Info<br />
|-<br />
| Y<br />
| Primary bootloader<br />
| U-Boot successfully boots when is flashed into EBT partition instead of LG bootloader. Can be additionally booted via fusée gelée exploit.<br />
|-<br />
| P<br />
| Secondary bootloader<br />
| U-Boot can be chainloaded from both /boot and /recovery partitions, though LG bootloader has some conflicts with U-Boot.<br />
|-<br />
| Y<br />
| Panel<br />
| Solomon SSD2825 bridge, Hitachi KOE TX13D100VM0EAA DSI panel, TI lm3533 backlight were all added into U-Boot. Panel is fully functional.<br />
|-<br />
| Y<br />
| eMMC<br />
| Re-partitioned to better fit generic setup. Can be mounted as mass storage on host PC.<br />
|-<br />
| Y<br />
| Boot kernel<br />
| Yes, and can be highly adjusted with '''extlinux.conf'''.<br />
|-<br />
| Y<br />
| Boot menu<br />
| Native u-boot bootmenu works perfectly fine. It can be called with pressing volume down button on boot.<br />
|-<br />
| Y<br />
| Power management<br />
| Offline charging and charging in u-boot both work and are hw configured. Both power off and reboot options work and are available in bootmenu. If no valid kernel is found phone will turn off.<br />
|-<br />
| Y<br />
| Fastboot<br />
| Fastboot option is available in bootmenu. Most functions should work fine.<br />
|-<br />
| P<br />
| Boot Android<br />
| Booting Android kernel can be performed only same way mainline kernel boots. Additionally it must not have '''CONFIG_TRUSTED_FOUNDATIONS = y''' and some additional small patches, it can be booted by u-boot.<br />
|-<br />
| Y<br />
|Self update<br />
|Self update option is implemented and write is done correctly. Bootloader file has to have name '''u-boot-dtb-tegra.bin''' and be placed on 1st partition of eMMC.<br />
|-<br />
|}<br />
<br />
== Gallery ==<br />
<gallery><br />
File:Vu-Mate.jpg|thumb|600px|<br />
File:Vu-Uboot.jpg|thumb|600px|<br />
File:Vu-Bootlogo.jpg|thumb|600px|<br />
File:Vu-simplefb.jpg|thumb|600px|<br />
File:Vu-benchmark.jpg|thumb|600px|<br />
</gallery><br />
<br />
== Serial console ==<br />
[[File:Vu-JTAG.jpg|thumb|mini|left|250px|Red arrow pointing to jtag]]<br />
[[File:Vu-schematic.png|thumb|mini|right|250px|JTAG schematics. Clickable]]<br />
LG Optimus Vu is an interesting device since it has factory soldered jtag directly on motherboard in pretty apposite and easily accessible place. To get to jtag you need only to take off back cover and plastic casing over motherboard. That is it, only one free socket is jtag. UART is UART-D (serial@70006300; 115200n8) and uses 3.3v.<br />
<br />
== See also ==<br />
* More about the device [https://en.wikipedia.org/wiki/LG_Optimus_Vu Wikipedia entry]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=LG_Optimus_Vu_(lg-p895)&diff=38229LG Optimus Vu (lg-p895)2023-04-11T19:02:38Z<p>Clamor: /* Mainline (Grate) */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = LG<br />
| name = Optimus Vu<br />
| codename = lg-p895<br />
| image = File:Vu_recursion.jpg<br />
| imagecaption = Optimus Vu in recursion<br />
| releaseyear = 2012<br />
| originalsoftware = Android 4.0<br />
| chipset = Nvidia Tegra 3 (AP33)<br />
| cpu = Quad-core 1.5 GHz Cortex-A9<br />
| gpu = NVIDIA ULP GeForce GPU 12 cores<br />
| storage = 32 GB<br />
| display = 768×1024 IPS LCD<br />
| memory = 1 GB<br />
| architecture = armv7<br />
| booting = yes<br />
| whet_dhry = 1079.2<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or "" (blank) - for untested or unknown --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_fde = Y<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera =<br />
| status_gps =<br />
| status_nfc = Y<br />
| status_mobiledata =<br />
| status_sms =<br />
| status_calls =<br />
| status_otg = P<br />
| status_usba = -<br />
| status_hdmidp =<br />
| status_keyboard = -<br />
| status_touchpad = -<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = Y<br />
| status_hall = -<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = P<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = -<br />
| status_uboot_usbhost = -<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = Y<br />
| status_uboot_keyboard = -<br />
| status_uboot_buttons = Y<br />
| pmoskernel = mainline grate<br />
}}{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}<br />
<br />
== Contributors ==<br />
* Clamor<br />
<br />
=== Users owning this device ===<br />
{{Device owners}}<br />
== Unlocking ==<br />
Only known method of unlocking is flashing patched LG bootloader with kernel signature check disabled, but who needs this proprietary stuff with unknown properties (vendor bootloader I mean) if p895 supports open sourced bootloader - U-Boot.<br />
<br />
== Kernel status ==<br />
=== Android kernel ===<br />
* 3.1 kernel based on LG sources with updates till Nougat support ([https://github.com/clamor-s/android_kernel_lge_p895 Kernel])<br />
<br />
=== Mainline (Grate) ===<br />
* Baseline kernel sources on p895: https://github.com/grate-driver/linux<br />
* Proper dts for P895 is added<br />
* Version: 6.0.6<br />
* Status: Boots. See status below.<br />
<br />
== Installation ==<br />
=== Bootloader replacement ===<br />
LG bootloader is highly NOT recommended to use with pmOS. To switch to open source booloader you need to use P895 Nvflash zip, it can be found here https://github.com/clamor-s/wheelie/releases/tag/p895 and you MUST use native Linux, virtual machine and WSL will NOT work.<br />
<br />
Unpack zip and cd into it. Plug your P895 to PC and reboot it with holding both {{Button|Volume Down}} and {{Button|Volume Up}}. If all is done correct <code>lsusb</code> should show <code>ID 0955:7130 NVIDIA Corp. APX</code> device.<br />
<br />
Now perform:<br />
<source lang="shell-session"><br />
$ sudo ./wheelie --blob blob.bin<br />
Wheelie 0.2 - Preflight for nvflash.<br />
Copyright (c) 2011-2012 androidroot.mobi<br />
========================================<br />
<br />
Waiting for device in APX mode...<br />
[=] Chip UID: 0x000000000000009<br />
[=] RCM Version: 0x30001<br />
<br />
[=] CPU Model: Tegra 3<br />
[+] Sending bootloader...<br />
Sending file: 100 %<br />
[!] Done - your device should now be ready for nvflash<br />
$ sudo ./nvflash --resume --rawdevicewrite 0 2944 u-boot-bricksafe.img --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: u-boot-bricksafe.img<br />
/ 12058624/12058624 bytes sent<br />
u-boot-bricksafe.img sent successfully<br />
</source><br />
If phone did not reboot automatically, force reboot with holding {{Button|Power}}. This will replace LG bootloader with u-boot. For more deep look into u-boot actions refer to dedicated section below.<br />
<br />
=== postmarketOS installation ===<br />
{{warning|P895 as /root uses userdata partition, MAKE A BACKUP OF IT!}}<br />
You should configure p895 build using pmbootstrap and build it using split images <code>pmbootstrap install --split</code>. Now you can use '''nvflash''' or '''dd'''. <br />
<br />
For '''nvflash''' place your pmOS images into Nvflash folder and enter APX mode with wheelie. Flash rootfs first with <br />
<source lang="shell-session"><br />
$ sudo ./nvflash --resume --download UDA lg-p895-root.img --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: lg-p895-root.img<br />
/ 1205862445/1205862445 bytes sent<br />
lg-p895-root.img sent successfully<br />
</source><br />
Phone will reboot and poweroff itself. Enter APX mode with wheelie once more and flash boot with<br />
<source lang="shell-session"><br />
$ sudo ./nvflash --resume --download CAC lg-p895-boot.img --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: lg-p895-boot.img<br />
/ 205862445/205862445 bytes sent<br />
lg-p895-boot.img sent successfully<br />
</source><br />
After pmOS should boot fine. If you have issues with /root size, use <code>resize2fs</code>.<br />
<br />
For '''dd''' you can mount /boot and /root partitions directly as external storage on your PC. For this u-boot has options <code>mount /boot</code> and <code>mount /root</code> and you will just need to flash images onto those external storage correspondingly.<br />
<br />
== Hardware status (mainline) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Booting<br />
| Android style boot.img has restriction of approx 4 MB, which is fraction of /boot partition size.<br />
|-<br />
| Y<br />
| Bootloader<br />
| Open source bootloader [https://github.com/clamor-s/u-boot/tree/lg U-Boot] is available as alternative for stock LG bootloader and can replace it. U-Boot can not boot downstream kernel if it has Trusted Foundations enabled.<br />
|-<br />
| Y<br />
| Panel<br />
| KOE/Hitachi TX13D100VM0EAA MIPI DSI LCD IPS panel via Solomon SSD2825 DSI/LVDS bridge.<br />
|-<br />
| Y<br />
| Backlight<br />
| TI LM3533 led controller is used for main backlight. Driver is converted into OF and can be operated by panel.<br />
|-<br />
| N<br />
| HDMI output<br />
| Device supports MHL via SII9244 hdmi bridge on it own i2c-gpio line. Currently not configured. Is similar to SII9234 driver but is not same, requires hw setup look. MHL connection is detected.<br />
|-<br />
| Y<br />
| Touchscreen<br />
| Synaptics RMI4 S3203B touchscreen is used.<br />
|-<br />
| N<br />
| Touch buttons<br />
| Synaptics RMI4 S3204B touchscreen's function 1a is used. It is ported and set, but currently capacitive buttons still do not work.<br />
|-<br />
| Y<br />
| USB<br />
| USB functional is fully implemented. Due to hw design HOST state can work only via OTG-Y cable (with external power). PERIPHERAL works perfectly fine.<br />
|-<br />
| Y<br />
| Internal memory<br />
| eMMC 32 Gb by Hynix model HBG4e.<br />
|-<br />
| P<br />
| GPS<br />
| Some fancy GSD5T GNSS module. Kernel part is ready but there is no way to test it since most of gps processing is made in userspace.<br />
|-<br />
| Y<br />
| WiFi<br />
| Uses BCM4330B1. Wi-Fi should work out of the box (best with IWD daemon: apk add iwd; rc-update del wpa_supplicant; rc-update add iwd). All needed stuff is included. Device may not connect to some networks (in my case it was PC hotspot, to fix this, I have installed IWD on my PC as well). Be aware that WiFi MAC address is not static, though it should not matter for average user.<br />
|-<br />
| Y<br />
| Bluetooth<br />
| BCM4330B1 37.4 MHz Class 1.5 W-ExtLNA PCM-S. Works perfectly fine with included firmware.<br />
|-<br />
| Y<br />
| NFC<br />
| As on most devices of this age PN544 is used. Recognizes NFC tags.<br />
|-<br />
| Y<br />
| GPIO keys/switches<br />
| There are 4 GPIO keys: Power, Volume up, Volume down and Memo keys.<br />
|-<br />
| Y<br />
| GPIO leds<br />
| There are 2 GPIO leds: Power button led and Keypad led bound and work via sysfs. Power led acts as charging indicator but has enormously big delays. Keypad led is not active till capacitive buttons are fixed.<br />
|-<br />
| Y<br />
| Vibro<br />
| Immersion ISA1200 haptic engine. Basic set of modes is implemented via Force Feedback Linux API. <br />
|-<br />
| Y<br />
| Battery<br />
| MAX17040 fuel gauge is used. Fully set up.<br />
|-<br />
| Y<br />
| Charger<br />
| Maxim MAX8971 charger is used. Fully configured, supports both slow and fast charging. Re-plug charger after exit from suspend, else it will charge with 360 mA current.<br />
|-<br />
| Y<br />
| Extcon<br />
| Maxim MAX14526 MUIC is used. Can detect a big range of devices, usb host/peripheral, AC charger, MHL cable etc.<br />
|-<br />
| Y<br />
| PMIC<br />
| Optimus Vu uses Maxim MAX77663 PMIC mfd. Media devices have own sub-PMIC TI LP8720.<br />
|-<br />
| Y<br />
| Sound<br />
| Sound codec is Maxim MAX98089. Fully routed in kernel, UCM's are complete for media and calls. Audio via HDMI should work out of the box.<br />
|-<br />
| Y<br />
| Thermal sensor<br />
| NCT1008 ON Semiconductor LM90 series thermometer and Tegra T sensor. Both work perfectly fine.<br />
|-<br />
| Y<br />
| Power sensor<br />
| Ina230 works fine. Battery has its own tsc2007 ADC to detect battery temperature, works as current sensor.<br />
|-<br />
| Y<br />
| Orientation sensors<br />
| Include mpu6050 imu (accelerometer, gyroscope and thermometer) and ami306 compass.<br />
|-<br />
| Y<br />
| Light and Proximity sensor<br />
| APDS990X - combined AL and proximity sensor is used. Both functions work fine. Proximity function is disabled by default.<br />
|-<br />
| N<br />
| Front camera<br />
| 1.26 MP Aptina 1/6" HD SOC (MT9M114) - mainline driver is available.<br />
|-<br />
| N<br />
| Rear camera<br />
| 8 MP Sony imx111 1/4" BSI sensor with DW9714 lens voice coil and LM3559 flash led. DW9714 and LM3559 both have mainline drivers, imx111 - does not.<br />
|-<br />
| N<br />
| Modem<br />
| Intel XMM6260 modem is used on usb2 line in hsic mode.<br />
|-<br />
| P<br />
| ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== Usability ==<br />
=== Desktop environment ===<br />
Since 3D acceleration is not available yet, all DE which use it will be painfully slow and laggy.<br />
<br />
Currently [https://wiki.postmarketos.org/wiki/Xfce4 xfce4] or [https://wiki.postmarketos.org/wiki/MATE mate] are recommended.<br />
<br />
== U-Boot ==<br />
Current U-Boot status on LG Optimus Vu<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Feature<br />
! Info<br />
|-<br />
| Y<br />
| Primary bootloader<br />
| U-Boot successfully boots when is flashed into EBT partition instead of LG bootloader. Can be additionally booted via fusée gelée exploit.<br />
|-<br />
| P<br />
| Secondary bootloader<br />
| U-Boot can be chainloaded from both /boot and /recovery partitions, though LG bootloader has some conflicts with U-Boot.<br />
|-<br />
| Y<br />
| Panel<br />
| Solomon SSD2825 bridge, Hitachi KOE TX13D100VM0EAA DSI panel, TI lm3533 backlight were all added into U-Boot. Panel is fully functional.<br />
|-<br />
| Y<br />
| eMMC<br />
| Re-partitioned to better fit generic setup. Can be mounted as mass storage on host PC.<br />
|-<br />
| Y<br />
| Boot kernel<br />
| Yes, and can be highly adjusted with '''extlinux.conf'''.<br />
|-<br />
| Y<br />
| Boot menu<br />
| Native u-boot bootmenu works perfectly fine. It can be called with pressing volume down button on boot.<br />
|-<br />
| Y<br />
| Power management<br />
| Offline charging and charging in u-boot both work and are hw configured. Both power off and reboot options work and are available in bootmenu. If no valid kernel is found phone will turn off.<br />
|-<br />
| Y<br />
| Fastboot<br />
| Fastboot option is available in bootmenu. Most functions should work fine.<br />
|-<br />
| P<br />
| Boot Android<br />
| Booting Android kernel can be performed only same way mainline kernel boots. Additionally it must not have '''CONFIG_TRUSTED_FOUNDATIONS = y''' and some additional small patches, it can be booted by u-boot.<br />
|-<br />
| Y<br />
|Self update<br />
|Self update option is implemented and write is done correctly. Bootloader file has to have name '''u-boot-dtb-tegra.bin''' and be placed on 1st partition of eMMC.<br />
|-<br />
|}<br />
<br />
== Gallery ==<br />
<gallery><br />
File:Vu-Mate.jpg|thumb|600px|<br />
File:Vu-Uboot.jpg|thumb|600px|<br />
File:Vu-Bootlogo.jpg|thumb|600px|<br />
File:Vu-simplefb.jpg|thumb|600px|<br />
File:Vu-benchmark.jpg|thumb|600px|<br />
</gallery><br />
<br />
== Serial console ==<br />
[[File:Vu-JTAG.jpg|thumb|mini|left|250px|Red arrow pointing to jtag]]<br />
[[File:Vu-schematic.png|thumb|mini|right|250px|JTAG schematics. Clickable]]<br />
LG Optimus Vu is an interesting device since it has factory soldered jtag directly on motherboard in pretty apposite and easily accessible place. To get to jtag you need only to take off back cover and plastic casing over motherboard. That is it, only one free socket is jtag. UART is UART-D (serial@70006300; 115200n8) and uses 3.3v.<br />
<br />
== See also ==<br />
* More about the device [https://en.wikipedia.org/wiki/LG_Optimus_Vu Wikipedia entry]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_VivoTab_RT&diff=38180ASUS VivoTab RT2023-04-09T15:48:24Z<p>Clamor: /* Installation */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = VivoTab RT<br />
| codename = asus-tf600t<br />
| image = <br />
| imagecaption = <br />
| releaseyear = 2012<br />
| originalsoftware = Windows RT<br />
| chipset = Nvidia Tegra 3 (T30)<br />
| cpu = Quad-core 1.4 GHz Cortex-A9<br />
| gpu = NVIDIA ULP GeForce GPU 12 cores<br />
| storage = 32/64 GB<br />
| display = 1366x768 Super IPS+ LCD<br />
| memory = 2 GB<br />
| architecture = armv7<br />
| booting = no<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or "" (blank) - for untested or unknown --><br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = Y<br />
| status_screen = N<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = P<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = <br />
| status_gps = P<br />
| status_nfc = P<br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = -<br />
| status_otg = -<br />
| status_usba = Y<br />
| status_hdmidp = Y<br />
| status_keyboard = Y<br />
| status_touchpad = Y<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = P<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = -<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = -<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = -<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = Y<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = N<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
| pmoskernel = mainline grate<br />
}}{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}<br />
<br />
== Contributors ==<br />
* Clamor<br />
<br />
== Installation ==<br />
Booting via fusee gelee and using re-crypt for permanent u-boot installation are both successful.<br />
<br />
== Hardware status (mainline) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
|Booting<br />
|Booting is available via loading custom U-Boot and kernel via fusee gelee.<br />
|-<br />
| Y<br />
|U-Boot<br />
|U-Boot is fully functional, can be loaded and flashed instead of UEFI.<br />
|-<br />
| N<br />
|Panel<br />
|Hydis HV101HD1 LCD SuperIPS+ HD panel through DSI-A port. Driver is made, DSI in T30 is not supported.<br />
|-<br />
| Y<br />
|HDMI output<br />
|HDMI works, but output is 1080p due to Tegra 3 limitations.<br />
|-<br />
| Y<br />
|Touchscreen<br />
|Used Atmel MXT1664 touchscreen.<br />
|-<br />
| Y<br />
|USB<br />
|One full size USB 2.0 in dock or via 36 pin adapter.<br />
|-<br />
| Y<br />
|SD cards<br />
|MicroSD card and full sized SD card (recognized as USB drive) in dock.<br />
|-<br />
| Y<br />
|Internal memory<br />
|eMMC by SanDisk. SPI flash W25Q32 4MB.<br />
|-<br />
| N<br />
|GPS<br />
|Broadcom GPS [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] is used. BCM4751 GPS is commonly used in devices of this age, although it still does not have proper implementation (nor kernel, nor userspace);<br />
|-<br />
| Y<br />
|WiFi<br />
|Uses Azurewave AW-NH665 BCM4330.<br />
|-<br />
| Y<br />
|Bluetooth<br />
|Uses Azurewave AW-NH665 BCM4330B1.<br />
|-<br />
| Y<br />
| GPIO keys<br />
|There are 3 keys on GPIO: Power, Volume up, Volume down.<br />
Additionally GPIO-keys like are LID sensor and Audio dock line-out detect.<br />
|-<br />
| Y<br />
| Vibro<br />
|VivoTab RT has GPIO based vibrator.<br />
|-<br />
| Y<br />
| Dock Keyboard and Touchpad<br />
| Dock keyboard and touchpad are both hid-over-i2c devices on hot-plug i2c line. Both are configured and work.<br />
|-<br />
| Y<br />
| Battery/Charger<br />
|Driver is based on Texas Instruments bq24725 SMBus Charge Controller driver but works through pad/dock Nuvoton NPCE795LA0BX embedded controller. Charging and charge level of both batteries work as expected.<br />
|-<br />
| Y<br />
| PMIC<br />
|Transformers use Texas Instruments TPS659110 PMIC and TPS62361 core regulator.<br />
|-<br />
| P<br />
|Sound<br />
|Sound codec is RT5640. Kernel driver and tegra_rt5640 driver are in grate master.<br />
|-<br />
| Y<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer.<br />
|-<br />
| Y<br />
|Orientation sensors<br />
|Include Invensense mpu6050 IMU and Asahi-Kasei AK8975 3-axis digital compass.<br />
|-<br />
| P<br />
|Light sensor<br />
|Driver for Capella CM3218 is present but initiation is failed.<br />
|-<br />
| P<br />
|Torch MFD<br />
|Tablet has separate MFD for rear camera flash - TI TPS61050/61052 Boost Converter, and it works sometimes.<br />
|-<br />
| P<br />
|NFC<br />
|NXP-44701 is bound, but not tested. <br />
|-<br />
| N<br />
|Front camera<br />
|<br />
|-<br />
| N<br />
|Rear camera<br />
|<br />
|-<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== See also ==<br />
* [https://github.com/clamor-s/linux/tree/tf600t Working TF600T fork of grate]<br />
* [https://github.com/clamor-s/u-boot/tree/tf600t Custom U-Boot]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_VivoTab_RT&diff=38179ASUS VivoTab RT2023-04-09T15:46:27Z<p>Clamor: /* Hardware status (mainline) */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = VivoTab RT<br />
| codename = asus-tf600t<br />
| image = <br />
| imagecaption = <br />
| releaseyear = 2012<br />
| originalsoftware = Windows RT<br />
| chipset = Nvidia Tegra 3 (T30)<br />
| cpu = Quad-core 1.4 GHz Cortex-A9<br />
| gpu = NVIDIA ULP GeForce GPU 12 cores<br />
| storage = 32/64 GB<br />
| display = 1366x768 Super IPS+ LCD<br />
| memory = 2 GB<br />
| architecture = armv7<br />
| booting = no<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or "" (blank) - for untested or unknown --><br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = Y<br />
| status_screen = N<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = P<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = <br />
| status_gps = P<br />
| status_nfc = P<br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = -<br />
| status_otg = -<br />
| status_usba = Y<br />
| status_hdmidp = Y<br />
| status_keyboard = Y<br />
| status_touchpad = Y<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = P<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = -<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = -<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = -<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = Y<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = N<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
| pmoskernel = mainline grate<br />
}}{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}<br />
<br />
== Contributors ==<br />
* Clamor<br />
<br />
== Installation ==<br />
Currently only booting via fusee gelee is successful. It requires custom u-boot and a built fork of grate kernel. Check links below.<br />
<br />
== Hardware status (mainline) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
|Booting<br />
|Booting is available via loading custom U-Boot and kernel via fusee gelee.<br />
|-<br />
| Y<br />
|U-Boot<br />
|U-Boot is fully functional, can be loaded and flashed instead of UEFI.<br />
|-<br />
| N<br />
|Panel<br />
|Hydis HV101HD1 LCD SuperIPS+ HD panel through DSI-A port. Driver is made, DSI in T30 is not supported.<br />
|-<br />
| Y<br />
|HDMI output<br />
|HDMI works, but output is 1080p due to Tegra 3 limitations.<br />
|-<br />
| Y<br />
|Touchscreen<br />
|Used Atmel MXT1664 touchscreen.<br />
|-<br />
| Y<br />
|USB<br />
|One full size USB 2.0 in dock or via 36 pin adapter.<br />
|-<br />
| Y<br />
|SD cards<br />
|MicroSD card and full sized SD card (recognized as USB drive) in dock.<br />
|-<br />
| Y<br />
|Internal memory<br />
|eMMC by SanDisk. SPI flash W25Q32 4MB.<br />
|-<br />
| N<br />
|GPS<br />
|Broadcom GPS [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] is used. BCM4751 GPS is commonly used in devices of this age, although it still does not have proper implementation (nor kernel, nor userspace);<br />
|-<br />
| Y<br />
|WiFi<br />
|Uses Azurewave AW-NH665 BCM4330.<br />
|-<br />
| Y<br />
|Bluetooth<br />
|Uses Azurewave AW-NH665 BCM4330B1.<br />
|-<br />
| Y<br />
| GPIO keys<br />
|There are 3 keys on GPIO: Power, Volume up, Volume down.<br />
Additionally GPIO-keys like are LID sensor and Audio dock line-out detect.<br />
|-<br />
| Y<br />
| Vibro<br />
|VivoTab RT has GPIO based vibrator.<br />
|-<br />
| Y<br />
| Dock Keyboard and Touchpad<br />
| Dock keyboard and touchpad are both hid-over-i2c devices on hot-plug i2c line. Both are configured and work.<br />
|-<br />
| Y<br />
| Battery/Charger<br />
|Driver is based on Texas Instruments bq24725 SMBus Charge Controller driver but works through pad/dock Nuvoton NPCE795LA0BX embedded controller. Charging and charge level of both batteries work as expected.<br />
|-<br />
| Y<br />
| PMIC<br />
|Transformers use Texas Instruments TPS659110 PMIC and TPS62361 core regulator.<br />
|-<br />
| P<br />
|Sound<br />
|Sound codec is RT5640. Kernel driver and tegra_rt5640 driver are in grate master.<br />
|-<br />
| Y<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer.<br />
|-<br />
| Y<br />
|Orientation sensors<br />
|Include Invensense mpu6050 IMU and Asahi-Kasei AK8975 3-axis digital compass.<br />
|-<br />
| P<br />
|Light sensor<br />
|Driver for Capella CM3218 is present but initiation is failed.<br />
|-<br />
| P<br />
|Torch MFD<br />
|Tablet has separate MFD for rear camera flash - TI TPS61050/61052 Boost Converter, and it works sometimes.<br />
|-<br />
| P<br />
|NFC<br />
|NXP-44701 is bound, but not tested. <br />
|-<br />
| N<br />
|Front camera<br />
|<br />
|-<br />
| N<br />
|Rear camera<br />
|<br />
|-<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== See also ==<br />
* [https://github.com/clamor-s/linux/tree/tf600t Working TF600T fork of grate]<br />
* [https://github.com/clamor-s/u-boot/tree/tf600t Custom U-Boot]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=Nvidia_Tegra_4_(tegra114)&diff=38074Nvidia Tegra 4 (tegra114)2023-04-04T11:14:34Z<p>Clamor: /* List of missing/malfunctioning drivers */</p>
<hr />
<div>{{Infobox soc<br />
| name = Tegra 4<br />
| manufacturer = Nvidia<br />
| arch = armv7<br />
| image = File:NVIDIA T114 chip.png<br />
| imagecaption = NVIDIA T114 chip<br />
| year = 2013<br />
| cpu = 4x 1.8-1.9 GHz Cortex-A15<br />
| community_page = https://github.com/grate-driver<br />
| gpu = Nvidia ULP Geforce 72 cores<br />
| process = 28<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = P<br />
| status_display = Y<br />
| status_gpu = P<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = Y<br />
| status_video = P<br />
| status_thermal = Y<br />
| status_wifi = -<br />
| status_bluetooth = -<br />
| status_modem = -<br />
| status_gps = -<br />
| status_camera =<br />
| status_suspend = Y<br />
}}<br />
<br />
== Devices with a Nvidia Tegra 4 Chipset ==<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999 <br />
|where=Devices.chipset like '%Nvidia Tegra 4%'<br />
|more results text=<br />
}}<br />
<br />
== List of missing/malfunctioning drivers ==<br />
* DSI driver and MIPI calibration (malfunctioning on TF701T)<br />
* HDMI driver (no evidence that it can work on T114)<br />
* ACTMON driver (is present but has dependency on missing driver)<br />
* SPI driver (fails to detect some spi devices)<br />
* EMC/external-memory-controller driver (missing, required by actmon)<br />
* HDA driver (T30 has T114 support but it fails to work)<br />
* XUSB and XUSB-padctl (missing, T124 may be used as reference)<br />
* CEC driver (present but not tested since HDMI does not work)<br />
* SOCTHERM driver and thermal zones (missing, T124 may be used as reference)<br />
* DFLL driver (missing, T124 may be used as reference)<br />
<br />
<br />
* cortex-a15-pmu (check if it is used by t114)<br />
* powergates and power-domains (check if it is needed by t114)<br />
<br />
== CPU ==<br />
DVFS and thermal zones are not supported, everything else works.<br />
<br />
== USB ==<br />
Tegra114 supports XUSB (XHCI), but kernel currently does not support XUSB, so USB can work only in EHCI mode.<br />
<br />
== GPU & Video ==<br />
See [[Nvidia_Tegra_2_(tegra20)#Graphics]].<br />
<br />
== See also ==<br />
* Tegra 4 is very similiar to [[Nvidia_Tegra_2_(tegra20)]] and [[Nvidia_Tegra_3_(tegra30)]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=Nvidia_Tegra_4_(tegra114)&diff=38073Nvidia Tegra 4 (tegra114)2023-04-04T10:55:18Z<p>Clamor: create new chapter</p>
<hr />
<div>{{Infobox soc<br />
| name = Tegra 4<br />
| manufacturer = Nvidia<br />
| arch = armv7<br />
| image = File:NVIDIA T114 chip.png<br />
| imagecaption = NVIDIA T114 chip<br />
| year = 2013<br />
| cpu = 4x 1.8-1.9 GHz Cortex-A15<br />
| community_page = https://github.com/grate-driver<br />
| gpu = Nvidia ULP Geforce 72 cores<br />
| process = 28<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = P<br />
| status_display = Y<br />
| status_gpu = P<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = Y<br />
| status_video = P<br />
| status_thermal = Y<br />
| status_wifi = -<br />
| status_bluetooth = -<br />
| status_modem = -<br />
| status_gps = -<br />
| status_camera =<br />
| status_suspend = Y<br />
}}<br />
<br />
== Devices with a Nvidia Tegra 4 Chipset ==<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999 <br />
|where=Devices.chipset like '%Nvidia Tegra 4%'<br />
|more results text=<br />
}}<br />
<br />
== List of missing/malfunctioning drivers ==<br />
<br />
== CPU ==<br />
DVFS and thermal zones are not supported, everything else works.<br />
<br />
== USB ==<br />
Tegra114 supports XUSB (XHCI), but kernel currently does not support XUSB, so USB can work only in EHCI mode.<br />
<br />
== GPU & Video ==<br />
See [[Nvidia_Tegra_2_(tegra20)#Graphics]].<br />
<br />
== See also ==<br />
* Tegra 4 is very similiar to [[Nvidia_Tegra_2_(tegra20)]] and [[Nvidia_Tegra_3_(tegra30)]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)&diff=38062ASUS Transformer Pad (TF701T) (asus-tf701t)2023-04-03T14:39:21Z<p>Clamor: /* Hardware status (mainline/grate) */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Transformer Pad (TF701T)<br />
| codename = asus-tf701t<br />
| image = File:asus_tf701t.jpg|200px<br />
| imagecaption = Asus TF701T in its dock, MATE desktop<br />
| releaseyear = 2013<br />
| originalsoftware = Android<br />
| originalversion = 4.2.2<br />
| extendedversion = 4.4.2<br />
| orginalkernel = 3.4.113<br />
| pmoskernel = mainline grate<br />
| chipset = Nvidia Tegra 4 (T114)<br />
| cpu = Quad-core 1.9 GHz Cortex-A15<br />
| gpu = NVIDIA ULP GeForce® GPU 72 cores<br />
| storage = 32/64 GB<br />
| display = 2560x1600 Super IPS+ LCD<br />
| memory = 2 GB (DDR3)<br />
| architecture = armv7<br />
| booting = no<br />
<!-- you can also use these lines if you need to:<br />
| whet_dhry = 0.0<br />
--><br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = N<br />
| status_screen = Y<br />
| status_wifi = P<br />
| status_xwayland = Y<br />
| status_fde =<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio =<br />
| status_bluetooth = Y<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = P<br />
| status_hdmidp =<br />
| status_keyboard = Y<br />
| status_touchpad = N<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = P<br />
| status_uboot_secondary = N<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost =<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = N<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
}}{{Based on SoC|Nvidia_Tegra_4_(tegra114)|Tegra 4}}<br />
<br />
== Contributors ==<br />
* [[user:Jenneron|Jenneron]]<br />
* [[user:Clamor|Clamor]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
* '''Fastboot''': Power on the device with both {{Button|Power}} and {{Button|Volume Down}} buttons.<br />
* '''APX''': Power on the device with both {{Button|Power}} and {{Button|Volume Up}} buttons.<br />
<br />
== Installation ==<br />
Follow [[Installation guide|Installation Guide]]. <br />
<br />
Note that system partition is only 2 GB, so you probably want to do <code>pmbootstrap flasher flash_rootfs --partition userdata</code>.<br />
<br />
== Hardware status (mainline/grate) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
|Booting<br />
|Boot partition is 8 MiBs so image size should be less than 8 MiBs. Fastboot boot works.<br />
|-<br />
| P<br />
|Panel<br />
|Sharp LQ101R1SX03 panel in split mode. Works if boot from ASUS bootloader, does not work if boot from u-boot.<br />
|-<br />
| Y<br />
|Backlight<br />
|PWM backlight is used. Does not regulate if boot from ASUS bootloader (always max), if boot from u-boot backlight is adjustable.<br />
|-<br />
| N<br />
|HDMI output<br />
|Bindings are present in device tree, but it is broken for now.<br />
|-<br />
| N<br />
|Touchscreen<br />
|Used Raydium RM31081 touchscreen connected via SPI. There is no driver in mainline. Raydium do not answer if they can provide datasheet.<br />
|-<br />
| P<br />
|USB Gadget<br />
|Dies after suspend<br />
|-<br />
| P<br />
|USB Host<br />
|Full size USB 3.0 port and SD slot in dock. Works only in EHCI mode.<br />
|-<br />
| Y<br />
|SD card<br />
|MicroSD card and full sized SD card (recognized as USB drive) in dock.<br />
|-<br />
| Y<br />
|Internal memory<br />
|HS200 eMMC. Works from u-boot but fails if loaded from ASUS bootloader.<br />
|-<br />
| N<br />
|GPS<br />
|There is driver for [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] which is similar to our BCM4752.<br />
|-<br />
| P<br />
|WiFi<br />
|Uses Azurewave BCM43341. Fails silently after loading Broadcom patch.<br />
|-<br />
| P<br />
|Bluetooth<br />
|Uses Azurewave BCM43341. Occasionally works.<br />
|-<br />
| Y<br />
| GPIO keys/switches<br />
|There are 3 GPIO keys: Power, Volume up, Volume down. <br />
And 2 GPIO witches: LID sensor and Audio dock line-out detection.<br />
|-<br />
| Y<br />
| Dock Keyboard<br />
|HID over I2C device. Works correctly. Multimedia keys require separate driver.<br />
|-<br />
| N<br />
| Dock Touchpad<br />
|Looks like a mix of elan i2c touchpad and ps2 elantech mouse. Not working.<br />
|-<br />
| Y<br />
| Dock Battery<br />
|It is handled via Nuvoton NPCE69ALA0DX embedded controller of PAD.<br />
|-<br />
| Y<br />
| Battery/Charger<br />
|Battery status works via Nuvoton NPCE69ALA0DX embedded controller of PAD.<br />
|-<br />
| Y<br />
| PMIC<br />
|Texas Instruments TPS65913B2B5 PMIC.<br />
|-<br />
| N<br />
|Sound<br />
|Sound codec is RT5639 (close relative of RT5640). Not configured yet.<br />
|-<br />
| Y<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer.<br />
|-<br />
| Y<br />
|Inertial measurement unit<br />
|Invensense mpu6500 accelerometer + gyroscope.<br />
|-<br />
| Y<br />
|Magnetometer<br />
|Asahi Kasei ak(m)09911.<br />
|-<br />
| Y<br />
|Light sensor<br />
|Driver Dyna-Image AL3010.<br />
|-<br />
| N<br />
|Front camera<br />
|Aptina mi1040 camera sensor. Grate kernel doesn't support VI yet.<br />
|-<br />
| N<br />
|Rear camera<br />
|OmniVision ov5693. Driver is present, needs setup in device tree. Grate kernel doesn't support VI yet.<br />
|-<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== U-Boot ==<br />
{{note|U-Boot as for now can only be loaded to RAM without permanent replacement of ASUS bootloader}}<br />
<br />
Current U-Boot status on Asus Transformer Prime TF201<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Feature<br />
! Info<br />
|-<br />
| P<br />
|Primary bootloader<br />
|U-Boot can be booted via fusée gelée exploit, even in locked state. Currently there is no way to replace ASUS bootloader without getting private RSA key from ASUS/nVidia.<br />
|-<br />
| N<br />
|Secondary bootloader<br />
|U-Boot can NOT be chainloaded from /boot or /recovery partitions yet. <br />
|-<br />
| N<br />
|Panel<br />
|DSI bridge of T114 is not supported in u-boot. When chainloaded primary bootloader's panel setup should be reused (simple framebuffer).<br />
|-<br />
| Y<br />
|MicroSD<br />
|Fully functional and detectable. Can be used as boot source. Can be mounted from U-Boot.<br />
|-<br />
| P<br />
|eMMC<br />
|It is correctly detected by u-boot, but should not be used as boot source.<br />
|-<br />
| Y<br />
|Boot kernel<br />
|Yes, and can be highly adjusted with extlinux.conf.<br />
|-<br />
| Y<br />
|Power management<br />
|Offline charging and charging in u-boot both work and are hw configured. Both power off and reboot options work. If no valid kernel is found tablet will turn off.<br />
|-<br />
| P<br />
|Fastboot<br />
|U-Boot loads fastboot by default. Memory writing options are not available.<br />
|-<br />
|}<br />
<br />
== UART location ==<br />
<br />
==== UART pads on motherboard ====<br />
[[File:Tf701t_pad_uart.png|350px]]<br />
<br />
==== UART pads on dock board ====<br />
[[File:Tf701t_dock_uart.png|350px]]<br />
<br />
==== UART pads in connector ====<br />
[[File:Tf701t_connector_uart.png|350px]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)&diff=38061ASUS Transformer Pad (TF701T) (asus-tf701t)2023-04-03T14:39:00Z<p>Clamor: /* Hardware Support */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Transformer Pad (TF701T)<br />
| codename = asus-tf701t<br />
| image = File:asus_tf701t.jpg|200px<br />
| imagecaption = Asus TF701T in its dock, MATE desktop<br />
| releaseyear = 2013<br />
| originalsoftware = Android<br />
| originalversion = 4.2.2<br />
| extendedversion = 4.4.2<br />
| orginalkernel = 3.4.113<br />
| pmoskernel = mainline grate<br />
| chipset = Nvidia Tegra 4 (T114)<br />
| cpu = Quad-core 1.9 GHz Cortex-A15<br />
| gpu = NVIDIA ULP GeForce® GPU 72 cores<br />
| storage = 32/64 GB<br />
| display = 2560x1600 Super IPS+ LCD<br />
| memory = 2 GB (DDR3)<br />
| architecture = armv7<br />
| booting = no<br />
<!-- you can also use these lines if you need to:<br />
| whet_dhry = 0.0<br />
--><br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = N<br />
| status_screen = Y<br />
| status_wifi = P<br />
| status_xwayland = Y<br />
| status_fde =<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio =<br />
| status_bluetooth = Y<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = P<br />
| status_hdmidp =<br />
| status_keyboard = Y<br />
| status_touchpad = N<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = P<br />
| status_uboot_secondary = N<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost =<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = N<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
}}{{Based on SoC|Nvidia_Tegra_4_(tegra114)|Tegra 4}}<br />
<br />
== Contributors ==<br />
* [[user:Jenneron|Jenneron]]<br />
* [[user:Clamor|Clamor]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
* '''Fastboot''': Power on the device with both {{Button|Power}} and {{Button|Volume Down}} buttons.<br />
* '''APX''': Power on the device with both {{Button|Power}} and {{Button|Volume Up}} buttons.<br />
<br />
== Installation ==<br />
Follow [[Installation guide|Installation Guide]]. <br />
<br />
Note that system partition is only 2 GB, so you probably want to do <code>pmbootstrap flasher flash_rootfs --partition userdata</code>.<br />
<br />
== Hardware status (mainline/grate) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
|Booting<br />
|Boot partition is 8 MiBs so image size should be less than 8 MiBs. Fastboot boot works.<br />
|-<br />
| P<br />
|Panel<br />
|Sharp LQ101R1SX03 panel in split mode. Works if boot from ASUS bootloader, does not work if boot from u-boot.<br />
|-<br />
| P<br />
|Backlight<br />
|PWM backlight is used. Does not regulate if boot from ASUS bootloader (always max), if boot from u-boot backlight is adjustable.<br />
|-<br />
| N<br />
|HDMI output<br />
|Bindings are present in device tree, but it is broken for now.<br />
|-<br />
| N<br />
|Touchscreen<br />
|Used Raydium RM31081 touchscreen connected via SPI. There is no driver in mainline. Raydium do not answer if they can provide datasheet.<br />
|-<br />
| P<br />
|USB Gadget<br />
|Dies after suspend<br />
|-<br />
| P<br />
|USB Host<br />
|Full size USB 3.0 port and SD slot in dock. Works only in EHCI mode.<br />
|-<br />
| Y<br />
|SD card<br />
|MicroSD card and full sized SD card (recognized as USB drive) in dock.<br />
|-<br />
| Y<br />
|Internal memory<br />
|HS200 eMMC. Works from u-boot but fails if loaded from ASUS bootloader.<br />
|-<br />
| N<br />
|GPS<br />
|There is driver for [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] which is similar to our BCM4752.<br />
|-<br />
| P<br />
|WiFi<br />
|Uses Azurewave BCM43341. Fails silently after loading Broadcom patch.<br />
|-<br />
| P<br />
|Bluetooth<br />
|Uses Azurewave BCM43341. Occasionally works.<br />
|-<br />
| Y<br />
| GPIO keys/switches<br />
|There are 3 GPIO keys: Power, Volume up, Volume down. <br />
And 2 GPIO witches: LID sensor and Audio dock line-out detection.<br />
|-<br />
| Y<br />
| Dock Keyboard<br />
|HID over I2C device. Works correctly. Multimedia keys require separate driver.<br />
|-<br />
| N<br />
| Dock Touchpad<br />
|Looks like a mix of elan i2c touchpad and ps2 elantech mouse. Not working.<br />
|-<br />
| Y<br />
| Dock Battery<br />
|It is handled via Nuvoton NPCE69ALA0DX embedded controller of PAD.<br />
|-<br />
| Y<br />
| Battery/Charger<br />
|Battery status works via Nuvoton NPCE69ALA0DX embedded controller of PAD.<br />
|-<br />
| Y<br />
| PMIC<br />
|Texas Instruments TPS65913B2B5 PMIC.<br />
|-<br />
| N<br />
|Sound<br />
|Sound codec is RT5639 (close relative of RT5640). Not configured yet.<br />
|-<br />
| Y<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer.<br />
|-<br />
| Y<br />
|Inertial measurement unit<br />
|Invensense mpu6500 accelerometer + gyroscope.<br />
|-<br />
| Y<br />
|Magnetometer<br />
|Asahi Kasei ak(m)09911.<br />
|-<br />
| Y<br />
|Light sensor<br />
|Driver Dyna-Image AL3010.<br />
|-<br />
| N<br />
|Front camera<br />
|Aptina mi1040 camera sensor. Grate kernel doesn't support VI yet.<br />
|-<br />
| N<br />
|Rear camera<br />
|OmniVision ov5693. Driver is present, needs setup in device tree. Grate kernel doesn't support VI yet.<br />
|-<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== U-Boot ==<br />
{{note|U-Boot as for now can only be loaded to RAM without permanent replacement of ASUS bootloader}}<br />
<br />
Current U-Boot status on Asus Transformer Prime TF201<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Feature<br />
! Info<br />
|-<br />
| P<br />
|Primary bootloader<br />
|U-Boot can be booted via fusée gelée exploit, even in locked state. Currently there is no way to replace ASUS bootloader without getting private RSA key from ASUS/nVidia.<br />
|-<br />
| N<br />
|Secondary bootloader<br />
|U-Boot can NOT be chainloaded from /boot or /recovery partitions yet. <br />
|-<br />
| N<br />
|Panel<br />
|DSI bridge of T114 is not supported in u-boot. When chainloaded primary bootloader's panel setup should be reused (simple framebuffer).<br />
|-<br />
| Y<br />
|MicroSD<br />
|Fully functional and detectable. Can be used as boot source. Can be mounted from U-Boot.<br />
|-<br />
| P<br />
|eMMC<br />
|It is correctly detected by u-boot, but should not be used as boot source.<br />
|-<br />
| Y<br />
|Boot kernel<br />
|Yes, and can be highly adjusted with extlinux.conf.<br />
|-<br />
| Y<br />
|Power management<br />
|Offline charging and charging in u-boot both work and are hw configured. Both power off and reboot options work. If no valid kernel is found tablet will turn off.<br />
|-<br />
| P<br />
|Fastboot<br />
|U-Boot loads fastboot by default. Memory writing options are not available.<br />
|-<br />
|}<br />
<br />
== UART location ==<br />
<br />
==== UART pads on motherboard ====<br />
[[File:Tf701t_pad_uart.png|350px]]<br />
<br />
==== UART pads on dock board ====<br />
[[File:Tf701t_dock_uart.png|350px]]<br />
<br />
==== UART pads in connector ====<br />
[[File:Tf701t_connector_uart.png|350px]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)&diff=38059ASUS Transformer Pad (TF701T) (asus-tf701t)2023-04-03T14:07:11Z<p>Clamor: /* U-Boot */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Transformer Pad (TF701T)<br />
| codename = asus-tf701t<br />
| image = File:asus_tf701t.jpg|200px<br />
| imagecaption = Asus TF701T in its dock, MATE desktop<br />
| releaseyear = 2013<br />
| originalsoftware = Android<br />
| originalversion = 4.2.2<br />
| extendedversion = 4.4.2<br />
| orginalkernel = 3.4.113<br />
| pmoskernel = mainline grate<br />
| chipset = Nvidia Tegra 4 (T114)<br />
| cpu = Quad-core 1.9 GHz Cortex-A15<br />
| gpu = NVIDIA ULP GeForce® GPU 72 cores<br />
| storage = 32/64 GB<br />
| display = 2560x1600 Super IPS+ LCD<br />
| memory = 2 GB (DDR3)<br />
| architecture = armv7<br />
| booting = no<br />
<!-- you can also use these lines if you need to:<br />
| whet_dhry = 0.0<br />
--><br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = N<br />
| status_screen = Y<br />
| status_wifi = P<br />
| status_xwayland = Y<br />
| status_fde =<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio =<br />
| status_bluetooth = Y<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = P<br />
| status_hdmidp =<br />
| status_keyboard = Y<br />
| status_touchpad = N<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = P<br />
| status_uboot_secondary = N<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost =<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = N<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
}}{{Based on SoC|Nvidia_Tegra_4_(tegra114)|Tegra 4}}<br />
<br />
== Contributors ==<br />
* [[user:Jenneron|Jenneron]]<br />
* [[user:Clamor|Clamor]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
* '''Fastboot''': Power on the device with both {{Button|Power}} and {{Button|Volume Down}} buttons.<br />
* '''APX''': Power on the device with both {{Button|Power}} and {{Button|Volume Up}} buttons.<br />
<br />
== Installation ==<br />
Follow [[Installation guide|Installation Guide]]. <br />
<br />
Note that system partition is only 2 GB, so you probably want to do <code>pmbootstrap flasher flash_rootfs --partition userdata</code>.<br />
<br />
== Hardware Support ==<br />
{|class="wikitable feature-colors"<br />
! style="width: 65px;" | Grate<br />
! style="width: 65px;" | Upstream<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Y<br />
|Booting<br />
|Boot partition is 8 MiBs so image size should be less than 8 MiBs.<br />
|-<br />
| Y<br />
| Y<br />
|Panel<br />
|Sharp LQ101R1SX03 panel.<br />
|-<br />
| N<br />
| N<br />
|HDMI output<br />
|Bindings are present in device tree, but it is broken for now.<br />
|-<br />
| N<br />
| N<br />
|Touchscreen<br />
|Used Raydium RM31081 touchscreen connected via SPI. There is no driver in mainline.<br />
|-<br />
| P<br />
| P<br />
|USB Gadget<br />
|Dies after suspend<br />
|-<br />
| P<br />
| P<br />
|USB Host<br />
|Full size USB 3.0 port and SD slot in dock. Works only in EHCI mode.<br />
|-<br />
| Y<br />
| Y<br />
|SD card<br />
|MicroSD in tablet.<br />
|-<br />
| Y<br />
| N<br />
|Internal memory<br />
|HS200 eMMC<br />
|-<br />
| N<br />
| N<br />
|GPS<br />
|There is driver for [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] which is similar to our BCM4752.<br />
|-<br />
| P<br />
| N<br />
|WiFi<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| P<br />
| N<br />
|Bluetooth<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| Y<br />
| Y<br />
| GPIO keys<br />
|There is 3 keys on GPIO: Power, Volume up, Volume down and LID sensor<br />
|-<br />
| P<br />
| N<br />
| Dock<br />
|Keyboard, Touchpad and battery. For now battery and keyboard work. It is handled via Nuvoton NPCE69ALA0DX embedded controller.<br />
|-<br />
| Y<br />
| N<br />
| Battery/Charger<br />
|Battery status works with asuspec.<br />
|-<br />
| Y<br />
| Y<br />
| PMIC<br />
|TPS65913B2B5<br />
|-<br />
| N<br />
| N<br />
|Sound<br />
|RT5639<br />
|-<br />
| Y<br />
| Y<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer.<br />
|-<br />
| Y<br />
| Y<br />
|Inertial measurement unit<br />
|Invensense mpu6500 accelerometer + gyroscope.<br />
|-<br />
| Y<br />
| Y<br />
|Magnetometer<br />
|Asahi Kasei ak(m)09911. Mount matrix is not tested<br />
|-<br />
| Y<br />
| Y<br />
|Light sensor<br />
|Dyna Image AL3320A.<br />
|-<br />
| N<br />
| N<br />
|Front camera<br />
|Aptina mi1040. VI is not supported yet.<br />
|-<br />
| N<br />
| N<br />
|Rear camera<br />
|OmniVision ov5693. VI is not supported yet. Driver is present, needs setup in device tree.<br />
|-<br />
| P<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== U-Boot ==<br />
{{note|U-Boot as for now can only be loaded to RAM without permanent replacement of ASUS bootloader}}<br />
<br />
Current U-Boot status on Asus Transformer Prime TF201<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Feature<br />
! Info<br />
|-<br />
| P<br />
|Primary bootloader<br />
|U-Boot can be booted via fusée gelée exploit, even in locked state. Currently there is no way to replace ASUS bootloader without getting private RSA key from ASUS/nVidia.<br />
|-<br />
| N<br />
|Secondary bootloader<br />
|U-Boot can NOT be chainloaded from /boot or /recovery partitions yet. <br />
|-<br />
| N<br />
|Panel<br />
|DSI bridge of T114 is not supported in u-boot. When chainloaded primary bootloader's panel setup should be reused (simple framebuffer).<br />
|-<br />
| Y<br />
|MicroSD<br />
|Fully functional and detectable. Can be used as boot source. Can be mounted from U-Boot.<br />
|-<br />
| P<br />
|eMMC<br />
|It is correctly detected by u-boot, but should not be used as boot source.<br />
|-<br />
| Y<br />
|Boot kernel<br />
|Yes, and can be highly adjusted with extlinux.conf.<br />
|-<br />
| Y<br />
|Power management<br />
|Offline charging and charging in u-boot both work and are hw configured. Both power off and reboot options work. If no valid kernel is found tablet will turn off.<br />
|-<br />
| P<br />
|Fastboot<br />
|U-Boot loads fastboot by default. Memory writing options are not available.<br />
|-<br />
|}<br />
<br />
== UART location ==<br />
<br />
==== UART pads on motherboard ====<br />
[[File:Tf701t_pad_uart.png|350px]]<br />
<br />
==== UART pads on dock board ====<br />
[[File:Tf701t_dock_uart.png|350px]]<br />
<br />
==== UART pads in connector ====<br />
[[File:Tf701t_connector_uart.png|350px]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)&diff=38058ASUS Transformer Pad (TF701T) (asus-tf701t)2023-04-03T13:56:52Z<p>Clamor: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Transformer Pad (TF701T)<br />
| codename = asus-tf701t<br />
| image = File:asus_tf701t.jpg|200px<br />
| imagecaption = Asus TF701T in its dock, MATE desktop<br />
| releaseyear = 2013<br />
| originalsoftware = Android<br />
| originalversion = 4.2.2<br />
| extendedversion = 4.4.2<br />
| orginalkernel = 3.4.113<br />
| pmoskernel = mainline grate<br />
| chipset = Nvidia Tegra 4 (T114)<br />
| cpu = Quad-core 1.9 GHz Cortex-A15<br />
| gpu = NVIDIA ULP GeForce® GPU 72 cores<br />
| storage = 32/64 GB<br />
| display = 2560x1600 Super IPS+ LCD<br />
| memory = 2 GB (DDR3)<br />
| architecture = armv7<br />
| booting = no<br />
<!-- you can also use these lines if you need to:<br />
| whet_dhry = 0.0<br />
--><br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = N<br />
| status_screen = Y<br />
| status_wifi = P<br />
| status_xwayland = Y<br />
| status_fde =<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio =<br />
| status_bluetooth = Y<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = P<br />
| status_hdmidp =<br />
| status_keyboard = Y<br />
| status_touchpad = N<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = P<br />
| status_uboot_secondary = N<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost =<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = N<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
}}{{Based on SoC|Nvidia_Tegra_4_(tegra114)|Tegra 4}}<br />
<br />
== Contributors ==<br />
* [[user:Jenneron|Jenneron]]<br />
* [[user:Clamor|Clamor]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
* '''Fastboot''': Power on the device with both {{Button|Power}} and {{Button|Volume Down}} buttons.<br />
* '''APX''': Power on the device with both {{Button|Power}} and {{Button|Volume Up}} buttons.<br />
<br />
== Installation ==<br />
Follow [[Installation guide|Installation Guide]]. <br />
<br />
Note that system partition is only 2 GB, so you probably want to do <code>pmbootstrap flasher flash_rootfs --partition userdata</code>.<br />
<br />
== Hardware Support ==<br />
{|class="wikitable feature-colors"<br />
! style="width: 65px;" | Grate<br />
! style="width: 65px;" | Upstream<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Y<br />
|Booting<br />
|Boot partition is 8 MiBs so image size should be less than 8 MiBs.<br />
|-<br />
| Y<br />
| Y<br />
|Panel<br />
|Sharp LQ101R1SX03 panel.<br />
|-<br />
| N<br />
| N<br />
|HDMI output<br />
|Bindings are present in device tree, but it is broken for now.<br />
|-<br />
| N<br />
| N<br />
|Touchscreen<br />
|Used Raydium RM31081 touchscreen connected via SPI. There is no driver in mainline.<br />
|-<br />
| P<br />
| P<br />
|USB Gadget<br />
|Dies after suspend<br />
|-<br />
| P<br />
| P<br />
|USB Host<br />
|Full size USB 3.0 port and SD slot in dock. Works only in EHCI mode.<br />
|-<br />
| Y<br />
| Y<br />
|SD card<br />
|MicroSD in tablet.<br />
|-<br />
| Y<br />
| N<br />
|Internal memory<br />
|HS200 eMMC<br />
|-<br />
| N<br />
| N<br />
|GPS<br />
|There is driver for [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] which is similar to our BCM4752.<br />
|-<br />
| P<br />
| N<br />
|WiFi<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| P<br />
| N<br />
|Bluetooth<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| Y<br />
| Y<br />
| GPIO keys<br />
|There is 3 keys on GPIO: Power, Volume up, Volume down and LID sensor<br />
|-<br />
| P<br />
| N<br />
| Dock<br />
|Keyboard, Touchpad and battery. For now battery and keyboard work. It is handled via Nuvoton NPCE69ALA0DX embedded controller.<br />
|-<br />
| Y<br />
| N<br />
| Battery/Charger<br />
|Battery status works with asuspec.<br />
|-<br />
| Y<br />
| Y<br />
| PMIC<br />
|TPS65913B2B5<br />
|-<br />
| N<br />
| N<br />
|Sound<br />
|RT5639<br />
|-<br />
| Y<br />
| Y<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer.<br />
|-<br />
| Y<br />
| Y<br />
|Inertial measurement unit<br />
|Invensense mpu6500 accelerometer + gyroscope.<br />
|-<br />
| Y<br />
| Y<br />
|Magnetometer<br />
|Asahi Kasei ak(m)09911. Mount matrix is not tested<br />
|-<br />
| Y<br />
| Y<br />
|Light sensor<br />
|Dyna Image AL3320A.<br />
|-<br />
| N<br />
| N<br />
|Front camera<br />
|Aptina mi1040. VI is not supported yet.<br />
|-<br />
| N<br />
| N<br />
|Rear camera<br />
|OmniVision ov5693. VI is not supported yet. Driver is present, needs setup in device tree.<br />
|-<br />
| P<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== U-Boot ==<br />
{{note|U-Boot as for now can only be loaded to RAM without permanent replacement of ASUS bootloader}}<br />
<br />
== UART location ==<br />
<br />
==== UART pads on motherboard ====<br />
[[File:Tf701t_pad_uart.png|350px]]<br />
<br />
==== UART pads on dock board ====<br />
[[File:Tf701t_dock_uart.png|350px]]<br />
<br />
==== UART pads in connector ====<br />
[[File:Tf701t_connector_uart.png|350px]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)&diff=38056ASUS Transformer Pad (TF701T) (asus-tf701t)2023-04-03T12:25:44Z<p>Clamor: Tweak device description</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Transformer Pad (TF701T)<br />
| codename = asus-tf701t<br />
| image = File:asus_tf701t.jpg|200px<br />
| imagecaption = Asus TF701T in its dock, MATE desktop<br />
| releaseyear = 2013<br />
| originalsoftware = Android<br />
| originalversion = 4.2.2<br />
| extendedversion = 4.4.2<br />
| orginalkernel = 3.4.113<br />
| pmoskernel = mainline grate<br />
| chipset = Nvidia Tegra 4 (T114)<br />
| cpu = Quad-core 1.9 GHz Cortex-A15<br />
| gpu = NVIDIA ULP GeForce® GPU 72 cores<br />
| storage = 32/64 GB<br />
| display = 2560x1600 Super IPS+ LCD<br />
| memory = 2 GB (DDR3)<br />
| architecture = armv7<br />
| booting = no<br />
<!-- you can also use these lines if you need to:<br />
| whet_dhry = 0.0<br />
--><br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = N<br />
| status_screen = Y<br />
| status_wifi = P<br />
| status_xwayland = Y<br />
| status_fde =<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio =<br />
| status_bluetooth = Y<br />
| status_camera =<br />
| status_gps =<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = P<br />
| status_hdmidp =<br />
| status_keyboard = Y<br />
| status_touchpad = N<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = P<br />
| status_uboot_secondary = N<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost =<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = N<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
}}{{Based on SoC|Nvidia_Tegra_4_(tegra114)|Tegra 4}}<br />
<br />
== Contributors ==<br />
* [[user:Jenneron|Jenneron]]<br />
* [[user:Clamor|Clamor]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
* '''Fastboot''': Power on the device with both {{Button|Power}} and {{Button|Volume Down}} buttons.<br />
* '''APX''': Power on the device with both {{Button|Power}} and {{Button|Volume Up}} buttons.<br />
<br />
== Installation ==<br />
Follow [[Installation guide|Installation Guide]]. <br />
<br />
Note that system partition is only 2 GB, so you probably want to do <code>pmbootstrap flasher flash_rootfs --partition userdata</code>.<br />
<br />
== Hardware Support ==<br />
{|class="wikitable feature-colors"<br />
! style="width: 65px;" | Grate<br />
! style="width: 65px;" | Upstream<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Y<br />
|Booting<br />
|Boot partition is 8 MiBs so image size should be less than 8 MiBs.<br />
|-<br />
| Y<br />
| Y<br />
|Panel<br />
|Sharp LQ101R1SX03 panel.<br />
|-<br />
| N<br />
| N<br />
|HDMI output<br />
|Bindings are present in device tree, but it is broken for now.<br />
|-<br />
| N<br />
| N<br />
|Touchscreen<br />
|Used Raydium RM31081 touchscreen connected via SPI. There is no driver in mainline.<br />
|-<br />
| P<br />
| P<br />
|USB Gadget<br />
|Dies after suspend<br />
|-<br />
| P<br />
| P<br />
|USB Host<br />
|Full size USB 3.0 port and SD slot in dock. Works only in EHCI mode.<br />
|-<br />
| Y<br />
| Y<br />
|SD card<br />
|MicroSD in tablet.<br />
|-<br />
| Y<br />
| N<br />
|Internal memory<br />
|HS200 eMMC<br />
|-<br />
| N<br />
| N<br />
|GPS<br />
|There is driver for [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] which is similar to our BCM4752.<br />
|-<br />
| P<br />
| N<br />
|WiFi<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| P<br />
| N<br />
|Bluetooth<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| Y<br />
| Y<br />
| GPIO keys<br />
|There is 3 keys on GPIO: Power, Volume up, Volume down and LID sensor<br />
|-<br />
| P<br />
| N<br />
| Dock<br />
|Keyboard, Touchpad and battery. For now battery and keyboard work. It is handled via Nuvoton NPCE69ALA0DX embedded controller.<br />
|-<br />
| Y<br />
| N<br />
| Battery/Charger<br />
|Battery status works with asuspec.<br />
|-<br />
| Y<br />
| Y<br />
| PMIC<br />
|TPS65913B2B5<br />
|-<br />
| N<br />
| N<br />
|Sound<br />
|RT5639<br />
|-<br />
| Y<br />
| Y<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer.<br />
|-<br />
| Y<br />
| Y<br />
|Inertial measurement unit<br />
|Invensense mpu6500 accelerometer + gyroscope.<br />
|-<br />
| Y<br />
| Y<br />
|Magnetometer<br />
|Asahi Kasei ak(m)09911. Mount matrix is not tested<br />
|-<br />
| Y<br />
| Y<br />
|Light sensor<br />
|Dyna Image AL3320A.<br />
|-<br />
| N<br />
| N<br />
|Front camera<br />
|Aptina mi1040. VI is not supported yet.<br />
|-<br />
| N<br />
| N<br />
|Rear camera<br />
|OmniVision ov5693. VI is not supported yet. Driver is present, needs setup in device tree.<br />
|-<br />
| P<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== UART location ==<br />
<br />
==== UART pads on motherboard ====<br />
[[File:Tf701t_pad_uart.png|350px]]<br />
<br />
==== UART pads on dock board ====<br />
[[File:Tf701t_dock_uart.png|350px]]<br />
<br />
==== UART pads in connector ====<br />
[[File:Tf701t_connector_uart.png|350px]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)&diff=38051ASUS Transformer Pad (TF701T) (asus-tf701t)2023-04-03T08:09:48Z<p>Clamor: /* Hardware Support */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Transformer Pad (TF701T)<br />
| codename = asus-tf701t<br />
| image = File:asus_tf701t.jpg|200px<br />
| imagecaption = Asus TF701T in its dock, MATE desktop<br />
| releaseyear = 2013<br />
| originalsoftware = Android<br />
| originalversion = 4.2.2<br />
| extendedversion = 4.4.2<br />
| orginalkernel = 3.4.113<br />
| pmoskernel = mainline grate<br />
| chipset = Nvidia Tegra 4 (T114)<br />
| cpu = 1.9 GHz quad-core Cortex-A15<br />
| gpu = 72 core GeForce® GPU<br />
| storage = 32 GB<br />
| display = 2560x1600 LCD<br />
| memory = 2 GB<br />
| architecture = armv7<br />
| booting = no<br />
<!-- you can also use these lines if you need to:<br />
| whet_dhry = 0.0<br />
--><br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = N<br />
| status_screen = Y<br />
| status_wifi = P<br />
| status_xwayland = Y<br />
| status_fde = N<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = N<br />
| status_bluetooth = Y<br />
| status_camera = N<br />
| status_gps = N<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = P<br />
| status_hdmidp = N<br />
| status_keyboard = N<br />
| status_touchpad = N<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = P<br />
| status_uboot_secondary = N<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = N<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = N<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
}}{{Based on SoC|Nvidia_Tegra_4_(tegra114)|Tegra 4}}<br />
<br />
== Contributors ==<br />
* [[user:Jenneron|Jenneron]]<br />
* [[user:Clamor|Clamor]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
* '''Fastboot''': Power on the device with both {{Button|Power}} and {{Button|Volume Down}} buttons.<br />
* '''APX''': Power on the device with both {{Button|Power}} and {{Button|Volume Up}} buttons.<br />
<br />
== Installation ==<br />
Follow [[Installation guide|Installation Guide]]. <br />
<br />
Note that system partition is only 2 GB, so you probably want to do <code>pmbootstrap flasher flash_rootfs --partition userdata</code>.<br />
<br />
== Hardware Support ==<br />
{|class="wikitable feature-colors"<br />
! style="width: 65px;" | Grate<br />
! style="width: 65px;" | Upstream<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Y<br />
|Booting<br />
|Boot partition is 8 MiBs so image size should be less than 8 MiBs.<br />
|-<br />
| Y<br />
| Y<br />
|Panel<br />
|Sharp LQ101R1SX03 panel.<br />
|-<br />
| N<br />
| N<br />
|HDMI output<br />
|Bindings are present in device tree, but it is broken for now.<br />
|-<br />
| N<br />
| N<br />
|Touchscreen<br />
|Used Raydium RM31081 touchscreen connected via SPI. There is no driver in mainline.<br />
|-<br />
| P<br />
| P<br />
|USB Gadget<br />
|Dies after suspend<br />
|-<br />
| P<br />
| P<br />
|USB Host<br />
|Full size USB 3.0 port and SD slot in dock. Works only in EHCI mode.<br />
|-<br />
| Y<br />
| Y<br />
|SD card<br />
|MicroSD in tablet.<br />
|-<br />
| Y<br />
| N<br />
|Internal memory<br />
|HS200 eMMC<br />
|-<br />
| N<br />
| N<br />
|GPS<br />
|There is driver for [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] which is similar to our BCM4752.<br />
|-<br />
| P<br />
| N<br />
|WiFi<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| P<br />
| N<br />
|Bluetooth<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| Y<br />
| Y<br />
| GPIO keys<br />
|There is 3 keys on GPIO: Power, Volume up, Volume down and LID sensor<br />
|-<br />
| P<br />
| N<br />
| Dock<br />
|Keyboard, Touchpad and battery. For now battery and keyboard work. It is handled via Nuvoton NPCE69ALA0DX embedded controller.<br />
|-<br />
| Y<br />
| N<br />
| Battery/Charger<br />
|Battery status works with asuspec.<br />
|-<br />
| Y<br />
| Y<br />
| PMIC<br />
|TPS65913B2B5<br />
|-<br />
| N<br />
| N<br />
|Sound<br />
|RT5639<br />
|-<br />
| Y<br />
| Y<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer.<br />
|-<br />
| Y<br />
| Y<br />
|Inertial measurement unit<br />
|Invensense mpu6500 accelerometer + gyroscope.<br />
|-<br />
| Y<br />
| Y<br />
|Magnetometer<br />
|Asahi Kasei ak(m)09911. Mount matrix is not tested<br />
|-<br />
| Y<br />
| Y<br />
|Light sensor<br />
|Dyna Image AL3320A.<br />
|-<br />
| N<br />
| N<br />
|Front camera<br />
|Aptina mi1040. VI is not supported yet.<br />
|-<br />
| N<br />
| N<br />
|Rear camera<br />
|OmniVision ov5693. VI is not supported yet. Driver is present, needs setup in device tree.<br />
|-<br />
| P<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== UART location ==<br />
<br />
==== UART pads on motherboard ====<br />
[[File:Tf701t_pad_uart.png|350px]]<br />
<br />
==== UART pads on dock board ====<br />
[[File:Tf701t_dock_uart.png|350px]]<br />
<br />
==== UART pads in connector ====<br />
[[File:Tf701t_connector_uart.png|350px]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Eee_Pad_Transformer_(asus-tf101)&diff=37687ASUS Eee Pad Transformer (asus-tf101)2023-03-28T17:37:37Z<p>Clamor: /* Hardware status */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Eee Pad Transformer<br />
| codename = asus-tf101<br />
| image = File:ASUS Eee Pad Transformer.png<br />
| imagecaption = ASUS Eee Pad Transformer<br />
| releaseyear = 2011<br />
| originalsoftware = Android 3.0 on Linux 2.6.36<br />
| chipset = Nvidia Tegra 2 (T20)<br />
| cpu = Dual-core 1 GHz<br />
| gpu = ULP GeForce<br />
| storage = 16/32 GB<br />
| display = 1280x800 IPS<br />
| memory = 1 GB<br />
| architecture = armv7<br />
| whet_dhry = 442.8<br />
| status_usbnet = Y<br />
| status_flashing = P<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = P<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera = N<br />
| status_gps = P<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = Y<br />
| status_hdmidp = Y<br />
| status_keyboard = Y<br />
| status_touchpad = Y<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = -<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = -<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = Y<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = Y<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = Y<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
| booting = yes<br />
}}<br />
<br />
== Basic Information ==<br />
<br />
The Eee Pad is a tablet computer with a 10.1" IPS multi-touch screen with a resolution of 1280 × 800 and an Nvidia Tegra 2 system-on-a-chip (SoC). It has an 802.11b/g/n Wi-Fi module.<br />
<br />
== Requirements ==<br />
<br />
The Eee Pad Transformer TF101 already comes with an unlocked bootloader, so no previous requirements are needed.<br />
<br />
A custom recovery such as TWRP is not even needed neither.<br />
<br />
== Mainline Informations ==<br />
=== Installation ===<br />
<br />
{{note| If you haven't ever customized your TF101, please go [https://wiki.postmarketos.org/wiki/ASUS_Eee_Pad_Transformer_(asus-tf101)#Nvflash_partitiontable.txt here] first. }}<br />
<br />
{{warning|'''This mainline installation does not work for TF101G or SL101 variants! Please use downstream installation instead or [https://youtu.be/L2oD4SKdMbo use this method].<br/><br />
We give first priority to U-Boot flashed devices than existing support to the old bootloader.<br />
In addition, these steps will format ALL the partitions of the TF101's partition table and then recreate them but with u-boot bootloader flashed on it, instead of the proprietary Asus Bootloader.<br/><br />
Make sure you backup your data before continuing. Note also that you won't be able to boot Android back easily.}}<br />
<br />
{{note|A Linux computer is required (virtual machine won't work). Furthermore, this installation process has not been verified by a TF101 SBK2 version but it should also work.}}<br />
<br />
Use the latest 9.2.1 firmware available, so upgrade if you need it [https://www.asus.com/us/supportonly/Eee%20Pad%20Transformer%20TF101/HelpDesk_BIOS/ here] ([https://web.archive.org/web/20211008161750/https://www.asus.com/us/supportonly/Eee%20Pad%20Transformer%20TF101/HelpDesk_BIOS/ mirror here]).<br />
<br />
You must know which [https://forum.xda-developers.com/t/how-to-find-my-sbk-version.1643002/ SBK version] your tablet has. For the asus-tf101, there are two versions only: sbkv1 and sbkv2.<br />
<br />
However there is a caveat: two proprietary tools are needed, Wheelie (although source code is available on [https://github.com/AndroidRoot/wheelie GitHub], some key features are missing, such as `--sbk` option) and Nvflash (proprietary Nvidia flash tool).<br />
So, a custom setup is available to get this working a little bit easier. <br />
<br />
1. Go through the pmbootstrap installation method: `pmbootstrap init`, select your device (asus -> tf101), the interface or UI (XFCE, MATE or LXQT are recommended), `pmbootstrap export` and flash the resulting image to your Micro SD Card.<br />
<br />
2. Now connect the device to the computer. This [https://imgur.com/a/mfiryeP USB to 40 Pin cable] is required.<br />
<br />
3. Put your device into APX mode: First of all, power off the device and then press the power button + volume up button for 3 to 5 seconds.<br />
<br />
4. Download U-Boot Tools for Asus Eee Pad Transformer TF101 [https://gitlab.com/antoni.aloytorrens/u-boot-tf101-tools/-/releases here]. Please read the release notes for instructions.<br />
<br />
* If you are unsure which SBK version you have, please try both flashing methods.<br />
<br />
{{warning|Do not unplug the USB under any circumstance.}}<br />
<br />
5. Some operations will be executed on the tablet. Please be patient, wait from 5 to 10 minutes. Formatting Partition 15 (UDA) can also take some time. In case you don't know the SBK version of your tablet, you will see some errors, or the device not booting at all. In that case, please try the other SBK version.<br />
<br />
Expected output (SBK1 example):<br />
<pre><br />
user@mycomputer:~$ ./uboot_sbkv1.sh <br />
Wheelie 0.1 - Preflight for nvflash.<br />
Copyright (c) 2011-2012 androidroot.mobi<br />
========================================<br />
<br />
Using SBK type 1.<br />
Using bootloader: 'bootloader.bin'.<br />
Using BCT: 'transformer.bct'.<br />
----------------------------------------<br />
<br />
[=] Chip UID: YourHardwareID<br />
[=] RCM Version: 0x20001<br />
<br />
[=] CPU Model: Tegra 2<br />
[=] Secure Boot Key Set: Yes<br />
[+] Sending BCT<br />
Sending file: 100 %<br />
[+] Sending ODMData 0x300D8011<br />
[+] Sending bootloader...<br />
Sending file: 100 %<br />
[!] Done - your device should now be ready for nvflash<br />
Nvflash started<br />
[resume mode]<br />
setting device: 2 3<br />
creating partition: BCT<br />
creating partition: PT<br />
creating partition: EBT<br />
creating partition: SOS<br />
creating partition: LNX<br />
creating partition: BAK<br />
creating partition: GP1<br />
creating partition: APP<br />
creating partition: CAC<br />
creating partition: MSC<br />
creating partition: USP<br />
creating partition: PER<br />
creating partition: YTU<br />
creating partition: UDA<br />
creating partition: GPT<br />
Formatting partition 2 BCT please wait.. done!<br />
Formatting partition 3 PT please wait.. done!<br />
Formatting partition 4 EBT please wait.. done!<br />
Formatting partition 5 SOS please wait.. done!<br />
Formatting partition 6 LNX please wait.. done!<br />
Formatting partition 7 BAK please wait.. done!<br />
Formatting partition 8 GP1 please wait.. done!<br />
Formatting partition 9 APP please wait.. done!<br />
Formatting partition 10 CAC please wait.. done!<br />
Formatting partition 11 MSC please wait.. done!<br />
Formatting partition 12 USP please wait.. done!<br />
Formatting partition 13 PER please wait.. done!<br />
Formatting partition 14 YTU please wait.. done!<br />
Formatting partition 15 UDA please wait.. done!<br />
Formatting partition 16 GPT please wait.. done!<br />
done!<br />
sending file: u-boot.bin<br />
- 565989/565989 bytes sent<br />
u-boot.bin sent successfully<br />
Nvflash started<br />
[resume mode]<br />
</pre><br />
<br />
8. Now press the power button for a few seconds to reboot the device. After that, disconnect the USB from the device. It should be booting PostmarketOS!<br />
<br />
=== WiFi and Bluetooth setup ===<br />
<br />
If, for any reason, the WiFi or Bluetooth connections are not detected properly on the device, you may need to do these additional steps:<br />
<br />
<pre><br />
$ sudo cp /lib/firmware/postmarketos/brcm/* /lib/firmware/brcm/<br />
</pre><br />
<br />
== Downstream informations ==<br />
=== Installation ===<br />
<br />
You have to flash a recovery like [https://twrp.me/asus/asustransformerTF101.html TWRP] before doing this.<br />
<br />
<pre><br />
$ pmbootstrap install<br />
$ pmbootstrap export<br />
</pre><br />
Now reboot the device in recovery<br />
<pre><br />
$ adb push /tmp/postmarketOS-export/boot.img-asus-tf101 /cache<br />
$ adb push /tmp/postmarketOS-export/asus-tf101.img /cache<br />
</pre><br />
<br />
The following should be executed within adb shell:<br />
<br />
<pre><br />
$ adb shell<br />
# dd if=/cache/boot.img-asus-tf101 of=/dev/block/mmcblk0p4<br />
# dd if=/cache/asus-tf101.img of=/dev/block/mmcblk0p1<br />
</pre><br />
<br />
=== WiFi setup ===<br />
<br />
WiFi is provided by the firmware-aosp-broadcom-wlan package. A very similar process can be found in https://wiki.postmarketos.org/wiki/Medion_Lifetab_S9714_(medion-kai)#How_bonsaiblue_made_wifi_work.<br />
<br />
<br />
If the package is not installed, install it. Then, rename firmware files for detection:<br />
<pre><br />
# mv /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcm4329.bin /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcmdhd.bin<br />
# mv /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcm4329_abg.bin /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcmdhd_abg.bin<br />
# mv /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcm4329_apsta.bin /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcmdhd_apsta.bin</pre><br />
<br />
Now reboot your device and Wi-Fi will be detected properly.<br />
<br />
=== Bluetooth setup ===<br />
<br />
Bluetooth is provided by the bcm4329.hcd firmware file.<br />
It can be activated in downstream by some little hack that works for most bcm4329 and bcm4330 devices.<br />
You may need to build its source first: https://github.com/antonialoytorrens/brcm-patchram-plus<br />
<br />
Please follow these steps to get it working:<br />
<br />
<pre><br />
#!/bin/sh<br />
# Start brcm-patchram-plus for TF101<br />
<br />
rfkill unblock 0<br />
/usr/sbin/brcm_patchram_plus -d --patchram /lib/firmware/postmarketos/brcm/bcm4329.hcd --baudrate 921600 --bd_addr $(cat /lib/firmware/postmarketos/brcm/mac.txt) --enable_hci /dev/ttyHS2&<br />
</pre><br />
<br />
Where mac.txt is your MAC address. Works even if you generate it randomly, but it is still experimental and a work in progress. Sample [https://raw.githubusercontent.com/antonialoytorrens/TF101-linux-images/master/postmarketOS/bluetooth-firmware_asus-tf101/brcm/mac.txt here]<br />
<br />
See [https://gitlab.com/postmarketOS/pmaports/-/merge_requests/1724 here] for more information.<br />
<br />
== Hardware ==<br />
=== Hardware status ===<br />
Status for Mainline (M) and Downstream (D) kernels.<br />
{|class="wikitable feature-colors"<br />
! Status (M)<br />
! Status (D)<br />
! Hardware<br />
! Info (M)<br />
! Info (D)<br />
|-<br />
| Y<br />
| Y<br />
| Booting<br />
| colspan="2"|boot.img has restriction of approx 8MB, which is /boot partition size.<br />
|-<br />
| Y<br />
| Y<br />
| Panel<br />
| colspan="2"|AUO B101EW05 WXGA (1280x800) LCD IPS panel through LVDS controller. <br />
|-<br />
| Y<br />
| N<br />
| HDMI output<br />
|-<br />
| Y<br />
| Y<br />
| Touchscreen<br />
| colspan="2"|Used Atmel MXT1386 touchscreen.<br />
|-<br />
| Y<br />
| Y<br />
| USB<br />
| colspan="2"|One full size USB 2.0 in dock or via 40pin adapter.<br />
|-<br />
| Y<br />
| Y<br />
| SD Card<br />
| colspan="2"|MicroSD card and full sized SD card (recognized as USB drive) in dock. <br />
|-<br />
| Y<br />
| Y<br />
| eMMC<br />
| colspan="2"|Kingston KE4BT4B6A NAND Flash <br />
|-<br />
| P<br />
| N<br />
| GPS<br />
| colspan="2"|Broadcom GPS BCM4751 is used. Device tree has proper bindings but device itself has weak signal. <br />
|-<br />
| Y<br />
| Y<br />
| WiFi<br />
| colspan="2"|Azurewave AW-NH615 BCM4329. Wi-Fi should work out of the box. All needed stuff is included. <br />
|-<br />
| Y<br />
| N<br />
| GPIO keys<br />
| colspan="2"|There are 4 keys on GPIO: Power, Volume up, Volume down and LID sensor. <br />
|-<br />
| Y<br />
| Y<br />
| Dock Keyboard<br />
| colspan="2"|Dock has Nuvoton NPCE795LA0BX embedded controller which handles battery data, charging, leds, keyboard and touchpad. Driver of this EC is mainlined and is fully functional. Keyboard and Touchpad work. Alt Gr can be used for alternate multimedia keys instead of escape, fn keys, volumes and delete. Alt GR + Lock changes the default key mode.<br />
|-<br />
| Y<br />
| Y<br />
| Battery and Charger<br />
| colspan="2"|Driver is based on Texas Instruments bq20z75 SMBus Charge Controller driver. Charging and charge level of both batteries are shown correctly. <br />
|-<br />
| Y<br />
| N<br />
| PMIC<br />
| colspan="2"|TF101 uses Texas Instruments tps6586x PMIC. <br />
|-<br />
| Y<br />
| N<br />
| Sound<br />
| Kernel driver and tegra_wm8903 glue driver are present. ALSA UCM is configured. Audio through HDMI works. <br />
| Sound codec is WM8903<br />
|-<br />
| Y<br />
| N<br />
| Voice processor<br />
| colspan="2"|Transformers use separate Fortemedia FM34NE voice processor. Basic set up is implemented.<br />
|-<br />
| Y<br />
| N<br />
| Thermal sensor<br />
| colspan="2"|NCT1008 ON Semiconductor LM90 series thermometer. <br />
|-<br />
| Y<br />
| N<br />
| Orientation sensors<br />
| colspan="2"|Include Invensense mpu3050 gyroscope with Kionix KXTF9 accelerometer and Aichi AMI306 3-axis digital compass. <br />
|-<br />
| Y<br />
| N<br />
| Light sensor<br />
| colspan="2"|Driver Dyna-Image AL3000. <br />
|-<br />
| N<br />
| N<br />
| Front/rear camera<br />
| colspan="2"|<br />
|}<br />
<br />
=== Partition Overview ===<br />
{|class="wikitable feature-colors"<br />
! #<br />
! Block Device<br />
! Name<br />
! Type<br />
|-<br />
|2<br />
|<br />
|BCT<br />
|Boot Config Table<br />
|-<br />
|3<br />
|<br />
|PT<br />
|Partition Table<br />
|-<br />
|4<br />
|<br />
|EBT<br />
|Bootloader<br />
|-<br />
|5<br />
|mmcblk0p9<br />
|SOS<br />
|Recovery OS kernel (e.g. TWRP)<br />
|-<br />
|6<br />
|mmcblk0p10<br />
|LNX<br />
|Current OS kernel (PostmarketOS or Android)<br />
|-<br />
|7<br />
|<br />
|BAK<br />
|Data<br />
|-<br />
|8<br />
|<br />
|GP1<br />
|Partition Table (Instance #1)<br />
|-<br />
|9<br />
|mmcblk0p1<br />
|APP<br />
|Android Apps Partition<br />
|-<br />
|10<br />
|mmcblk0p2<br />
|CAC<br />
|Cache partition<br />
|-<br />
|11<br />
|mmcblk0p3<br />
|MSC<br />
|Misc partition<br />
|-<br />
|12<br />
|mmcblk0p4<br />
|USP<br />
|Staging partition (here are stored blobs before flashing by Asus bootloader)<br />
|-<br />
|13<br />
|mmcblk0p5<br />
|PER<br />
|Persist partition (contains device specific files like mac and sensors calibrations)<br />
|-<br />
|14<br />
|mmcblk0p6<br />
|YTU<br />
|Data<br />
|-<br />
|15<br />
|mmcblk0p7<br />
|UDA<br />
|Android User Data Partition<br />
|-<br />
|16<br />
|<br />
|GPT<br />
|Partition Table (Instance #2)<br />
|-<br />
|}<br />
<br />
== Photos ==<br />
TF101 Booting (downstream):<br />
<br />
[[File:Boot_tf101.jpg|560px]]<br />
<br />
TF101 running Xfce user interface (downstream):<br />
<br />
[[File:Xfce_tf101.png|560px]]<br />
<br />
TF101 running Mate desktop:<br />
<br />
[[File:MATE_tf101.jpg|560px]]<br />
<br />
== Developer Info ==<br />
<br />
=== Testing U-Boot in RAM ===<br />
<br />
Nvflashing U-boot has its benefits: it acts as a temporary bootloader when booting Linux on TF101. The uboot file is stored in RAM instead. That way, you don't have to worry about flashing it permanently every time, only to test it.<br />
<br />
To perform this, put your tablet in APX mode, [https://github.com/antonialoytorrens/TF101-linux-images/raw/master/vendor/nvflash-sbk1/tf101-sbk1-nvflash.zip download the needed files] and type the following command (be aware this is for SBK1, for SBK2 you need to change the SBK keys) (not tested with SBK2, you can try this command anyway and [https://gitlab.com/postmarketOS/pmaports/-/issues report]):<br />
<pre><br />
$ ./nvflash --bct transformer.bct --setbct --configfile flash.cfg --bl u-boot.bin --odmdata 0x300d8011 --sbk 0x1682CCD8 0x8A1A43EA 0xA532EEB6 0xECFE1D98 --sync<br />
</pre><br />
<br />
Note that there is an u-boot.bin file already in the zip folder. Please replace it with your u-boot.bin file instead.<br />
<br />
=== Nvflash partitiontable.txt ===<br />
<br />
Nvflash can print your partition table configuration as a better setup for offset calculations, needed in U-Boot.<br />
<br />
To perform this, put your tablet in APX mode, [https://github.com/antonialoytorrens/TF101-linux-images/raw/master/vendor/nvflash-sbk1/tf101-sbk1-nvflash.zip download the needed files] and type the following command (be aware this is for SBK1, for SBK2 you need to change the SBK keys) (not tested with SBK2, you can try this command anyway and [https://gitlab.com/postmarketOS/pmaports/-/issues report]):<br />
<br />
<pre><br />
$ ./nvflash --bct transformer.bct --setbct --configfile flash.cfg --bl bootloader.bin --odmdata 0x300d8011 --sbk 0x1682CCD8 0x8A1A43EA 0xA532EEB6 0xECFE1D98 --sync<br />
$ ./nvflash --resume --getpartitiontable partitiontable.txt<br />
</pre><br />
<br />
After that, if you have followed all this guide, your partition table txt file should be exactly like this:<br />
<br />
{{note|If you haven't ever customized your TF101, which means it's your first time using this nvflash command and you don't have used any [https://forum.xda-developers.com/t/easyflasher-install-cwm-root-unbrick-in-one-click-all-tf101-nvflash.1688012/ One-Click-Unlock Tool or EasyFlasher], please [https://gitlab.com/postmarketOS/pmaports/-/issues report here] and attach partitiontable.txt file first before continuing with the installation.}}<br />
<br />
<pre><br />
PartitionId=2<br />
Name=BCT<br />
DeviceId=18<br />
StartSector=0<br />
NumSectors=1536<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=3<br />
Name=PT<br />
DeviceId=18<br />
StartSector=1536<br />
NumSectors=256<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=4<br />
Name=EBT<br />
DeviceId=18<br />
StartSector=1792<br />
NumSectors=2048<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=5<br />
Name=SOS<br />
DeviceId=18<br />
StartSector=3840<br />
NumSectors=2560<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=6<br />
Name=LNX<br />
DeviceId=18<br />
StartSector=6400<br />
NumSectors=4096<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=7<br />
Name=BAK<br />
DeviceId=18<br />
StartSector=10496<br />
NumSectors=2560<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=8<br />
Name=GP1<br />
DeviceId=18<br />
StartSector=13056<br />
NumSectors=512<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=9<br />
Name=APP<br />
DeviceId=18<br />
StartSector=13568<br />
NumSectors=262144<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=10<br />
Name=CAC<br />
DeviceId=18<br />
StartSector=275712<br />
NumSectors=271104<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=11<br />
Name=MSC<br />
DeviceId=18<br />
StartSector=546816<br />
NumSectors=1024<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=12<br />
Name=USP<br />
DeviceId=18<br />
StartSector=547840<br />
NumSectors=271104<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=13<br />
Name=PER<br />
DeviceId=18<br />
StartSector=818944<br />
NumSectors=2560<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=14<br />
Name=YTU<br />
DeviceId=18<br />
StartSector=821504<br />
NumSectors=256<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=15<br />
Name=UDA<br />
DeviceId=18<br />
StartSector=821760<br />
NumSectors=14808320<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=16<br />
Name=GPT<br />
DeviceId=18<br />
StartSector=15630080<br />
NumSectors=256<br />
BytesPerSector=2048<br />
<br />
<br />
</pre><br />
<br />
== Community Info ==<br />
<br />
=== Contributors ===<br />
* CmdrWgls<br />
* rrooij<br />
* LongnoseRob <br />
* blacksoil<br />
* AAT596<br />
=== Users owning this device ===<br />
{{Device owners}}<br />
<br />
<br />
=== Links ===<br />
* [https://archive.org/details/asus-eee-pad-transformer-how-to-install-ubuntu-xda-developers Partition overview]<br />
* {{MR|1103}} initial PR<br />
* [[Nvidia Tegra 2 (tegra20)]]<br />
* [https://gitlab.com/antoni.aloytorrens/pmaports/-/tree/wip-tf101-pmaports WIP pmaports repository]<br />
* [https://github.com/grate-driver/linux/pull/23 Initial mainline tree for TF101, build mainline U-Boot from source]<br />
* [https://web.archive.org/web/20130301093959/http://androidroot.mobi/technical/tf-secure-boot-key/ Some notes about nvflash and APX mode]<br />
* [https://gitlab.com/postmarketOS/pmaports/-/issues/884 Some issues with Qt applications]<br />
<br />
=== Videos ===<br />
* [https://youtu.be/Rb8rVW_74w0 How to install Debian 11 Bullseye on the Asus Eee Pad Transformer TF101 (U-Boot Method) (TF101 SBKv1 and SBKv2 ONLY) (Preferred)]<br />
* [https://youtu.be/L2oD4SKdMbo How to install Debian 11 Bullseye on the Asus Eee Pad Transformer TF101 (Rootbind Method)].</div>Clamorhttps://wiki.postmarketos.org/index.php?title=User:Clamor&diff=37518User:Clamor2023-03-24T19:35:05Z<p>Clamor: /* Owns Devices */</p>
<hr />
<div><div style="float: right;"><br />
{{User ports|7}} <!-- tf201, tf300t, f300tg, tf700t, chagall, p895 are already in; tf300tl - need a tester --><br />
{{User mainline|11}} <!-- tf101, tf201, tf300t, tf300tg, tf700t, chagall are in linux directly; tf600t, tf300tl, p1801-t and p895 in grate; sl101 and p880 are WIP --><br />
{{User GitLab|clamor95}}<br />
</div><br />
<br />
Usually I am re-writing some downstream crappy code into more modern looking crappy code.<br />
<br />
Have big experience with nVidia Tegra SoC, especially with older one (T20/T30/T114).<br />
<br />
Can be found in telegram: [https://t.me/Clamor_S Clamor]<br />
<br />
== Owns Devices ==<br />
{{My devices}}<br />
{{Owns device|Google_Nexus_5_(lg-hammerhead)|Running Unlegacy Android Project Oreo ROM}}<br />
{{Owns device|Google_Nexus_7_2013_(asus-flo)|Running Unlegacy Android Project Oreo ROM}}<br />
{{Owns device|Google_Nexus_7_2012_(asus-grouper)| }}<br />
{{Owns device|ASUS_Transformer_Prime_(asus-tf201)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|ASUS_Transformer_Pad_(asus-tf300t)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|HTC_HD2_(htc-leo)|Runs CM 11 by macs18max}}<br />
{{Owns device|Xiaomi_Poco_F1_(xiaomi-beryllium)|Tianma panel model}}<br />
{{Owns device|HTC_One_X_(htc-endeavoru)|HTC why are you such an assholes? U-Boot runs non the less}}<br />
{{Owns device|LG_Optimus_Vu_(lg-p895)|pmOS with Grate kernel and U-Boot}}</div>Clamorhttps://wiki.postmarketos.org/index.php?title=User:Clamor&diff=37517User:Clamor2023-03-24T19:34:15Z<p>Clamor: /* Owns Devices */</p>
<hr />
<div><div style="float: right;"><br />
{{User ports|7}} <!-- tf201, tf300t, f300tg, tf700t, chagall, p895 are already in; tf300tl - need a tester --><br />
{{User mainline|11}} <!-- tf101, tf201, tf300t, tf300tg, tf700t, chagall are in linux directly; tf600t, tf300tl, p1801-t and p895 in grate; sl101 and p880 are WIP --><br />
{{User GitLab|clamor95}}<br />
</div><br />
<br />
Usually I am re-writing some downstream crappy code into more modern looking crappy code.<br />
<br />
Have big experience with nVidia Tegra SoC, especially with older one (T20/T30/T114).<br />
<br />
Can be found in telegram: [https://t.me/Clamor_S Clamor]<br />
<br />
== Owns Devices ==<br />
{{My devices}}<br />
{{Owns device|Google_Nexus_5_(lg-hammerhead)|Running Unlegacy Android Project Oreo ROM}}<br />
{{Owns device|Google_Nexus_7_2013_(asus-flo)|Running Unlegacy Android Project Oreo ROM}}<br />
{{Owns device|Google_Nexus_7_2012_(asus-grouper)| }}<br />
{{Owns device|ASUS_Transformer_Prime_(asus-tf201)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|ASUS_Transformer_Pad_(asus-tf300t)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|HTC_HD2_(htc-leo)|Runs CM 11 by macs18max}}<br />
{{Owns device|Xiaomi_Poco_F1_(xiaomi-beryllium)|Tianma panel model}}<br />
{{Owns device|HTC_One_X_(htc-endeavoru)|HTC why are you such an assholes?}}<br />
{{Owns device|LG_Optimus_Vu_(lg-p895)|pmOS with Grate kernel and U-Boot}}</div>Clamorhttps://wiki.postmarketos.org/index.php?title=User:Clamor&diff=37516User:Clamor2023-03-24T19:33:37Z<p>Clamor: /* Owns Devices */</p>
<hr />
<div><div style="float: right;"><br />
{{User ports|7}} <!-- tf201, tf300t, f300tg, tf700t, chagall, p895 are already in; tf300tl - need a tester --><br />
{{User mainline|11}} <!-- tf101, tf201, tf300t, tf300tg, tf700t, chagall are in linux directly; tf600t, tf300tl, p1801-t and p895 in grate; sl101 and p880 are WIP --><br />
{{User GitLab|clamor95}}<br />
</div><br />
<br />
Usually I am re-writing some downstream crappy code into more modern looking crappy code.<br />
<br />
Have big experience with nVidia Tegra SoC, especially with older one (T20/T30/T114).<br />
<br />
Can be found in telegram: [https://t.me/Clamor_S Clamor]<br />
<br />
== Owns Devices ==<br />
{{My devices}}<br />
{{Owns device|Google_Nexus_5_(lg-hammerhead)|Running Unlegacy Android Project Oreo ROM}}<br />
{{Owns device|Google_Nexus_7_2013_(asus-flo)|Running Unlegacy Android Project Oreo ROM}}<br />
{{Owns device|Google_Nexus_7_2012_(asus-grouper)| Unlegacy Android Project M ROM }}<br />
{{Owns device|ASUS_Transformer_Prime_(asus-tf201)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|ASUS_Transformer_Pad_(asus-tf300t)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|HTC_HD2_(htc-leo)|Runs CM 11 by macs18max}}<br />
{{Owns device|Xiaomi_Poco_F1_(xiaomi-beryllium)|Tianma panel model}}<br />
{{Owns device|HTC_One_X_(htc-endeavoru)|HTC why are you such an assholes?}}<br />
{{Owns device|LG_Optimus_Vu_(lg-p895)|pmOS with Grate kernel and U-Boot}}</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)&diff=37515ASUS Transformer Pad (TF701T) (asus-tf701t)2023-03-24T19:31:07Z<p>Clamor: /* Contributors */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Transformer Pad (TF701T)<br />
| codename = asus-tf701t<br />
| image = File:asus_tf701t.jpg|200px<br />
| imagecaption = Asus TF701T in its dock, MATE desktop<br />
| releaseyear = 2013<br />
| originalsoftware = Android<br />
| originalversion = 4.2.2<br />
| extendedversion = 4.4.2<br />
| orginalkernel = 3.4.113<br />
| pmoskernel = mainline grate<br />
| chipset = Nvidia Tegra 4 (T114)<br />
| cpu = 1.9 GHz quad-core Cortex-A15<br />
| gpu = 72 core GeForce® GPU<br />
| storage = 32 GB<br />
| display = 2560x1600 LCD<br />
| memory = 2 GB<br />
| architecture = armv7<br />
| booting = no<br />
<!-- you can also use these lines if you need to:<br />
| whet_dhry = 0.0<br />
--><br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = N<br />
| status_screen = Y<br />
| status_wifi = P<br />
| status_xwayland = Y<br />
| status_fde = N<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = N<br />
| status_bluetooth = Y<br />
| status_camera = N<br />
| status_gps = N<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = P<br />
| status_hdmidp = N<br />
| status_keyboard = N<br />
| status_touchpad = N<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = P<br />
| status_uboot_secondary = N<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = N<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = N<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
}}{{Based on SoC|Nvidia_Tegra_4_(tegra114)|Tegra 4}}<br />
<br />
== Contributors ==<br />
* [[user:Jenneron|Jenneron]]<br />
* [[user:Clamor|Clamor]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
* '''Fastboot''': Power on the device with both {{Button|Power}} and {{Button|Volume Down}} buttons.<br />
* '''APX''': Power on the device with both {{Button|Power}} and {{Button|Volume Up}} buttons.<br />
<br />
== Installation ==<br />
Follow [[Installation guide|Installation Guide]]. <br />
<br />
Note that system partition is only 2 GB, so you probably want to do <code>pmbootstrap flasher flash_rootfs --partition userdata</code>.<br />
<br />
== Hardware Support ==<br />
{|class="wikitable feature-colors"<br />
! style="width: 65px;" | Grate<br />
! style="width: 65px;" | Upstream<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Y<br />
|Booting<br />
|Boot partition is 8 MiBs so image size should be less than 8 MiBs.<br />
|-<br />
| Y<br />
| Y<br />
|Panel<br />
|Sharp LQ101R1SX03 panel.<br />
|-<br />
| N<br />
| N<br />
|HDMI output<br />
|Bindings are present in device tree, but it is broken for now.<br />
|-<br />
| N<br />
| N<br />
|Touchscreen<br />
|Used Raydium RM31081 touchscreen connected via SPI. There is no driver in mainline.<br />
|-<br />
| P<br />
| P<br />
|USB Gadget<br />
|Dies after suspend<br />
|-<br />
| P<br />
| P<br />
|USB Host<br />
|Full size USB 3.0 port and SD slot in dock. Works only in EHCI mode.<br />
|-<br />
| Y<br />
| Y<br />
|SD card<br />
|MicroSD in tablet.<br />
|-<br />
| Y<br />
| N<br />
|Internal memory<br />
|HS200 eMMC<br />
|-<br />
| N<br />
| N<br />
|GPS<br />
|There is driver for [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] which is similar to our BCM4752.<br />
|-<br />
| P<br />
| N<br />
|WiFi<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| P<br />
| N<br />
|Bluetooth<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| Y<br />
| Y<br />
| GPIO keys<br />
|There is 3 keys on GPIO: Power, Volume up, Volume down and LID sensor<br />
|-<br />
| P<br />
| N<br />
| Dock<br />
|Keyboard, Touchpad and battery. For now only battery works. It is handled via Nuvoton NPCE69ALA0DX embedded controller.<br />
|-<br />
| Y<br />
| N<br />
| Battery/Charger<br />
|Battery status works with asuspec.<br />
|-<br />
| Y<br />
| Y<br />
| PMIC<br />
|TPS65913B2B5<br />
|-<br />
| N<br />
| N<br />
|Sound<br />
|RT5639<br />
|-<br />
| Y<br />
| Y<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer.<br />
|-<br />
| Y<br />
| Y<br />
|Inertial measurement unit<br />
|Invensense mpu6500 accelerometer + gyroscope.<br />
|-<br />
| Y<br />
| Y<br />
|Magnetometer<br />
|Asahi Kasei ak(m)09911. Mount matrix is not tested<br />
|-<br />
| Y<br />
| Y<br />
|Light sensor<br />
|Dyna Image AL3320A.<br />
|-<br />
| N<br />
| N<br />
|Front camera<br />
|Aptina mi1040. VI is not supported yet.<br />
|-<br />
| N<br />
| N<br />
|Rear camera<br />
|OmniVision ov5693. VI is not supported yet. Driver is present, needs setup in device tree.<br />
|-<br />
| P<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== UART location ==<br />
<br />
==== UART pads on motherboard ====<br />
[[File:Tf701t_pad_uart.png|350px]]<br />
<br />
==== UART pads on dock board ====<br />
[[File:Tf701t_dock_uart.png|350px]]<br />
<br />
==== UART pads in connector ====<br />
[[File:Tf701t_connector_uart.png|350px]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)&diff=37483ASUS Transformer Pad (TF701T) (asus-tf701t)2023-03-23T18:58:50Z<p>Clamor: /* Hardware Support */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Transformer Pad (TF701T)<br />
| codename = asus-tf701t<br />
| image = File:asus_tf701t.jpg|200px<br />
| imagecaption = Asus TF701T in its dock, MATE desktop<br />
| releaseyear = 2013<br />
| originalsoftware = Android<br />
| originalversion = 4.2.2<br />
| extendedversion = 4.4.2<br />
| orginalkernel = 3.4.113<br />
| pmoskernel = mainline grate<br />
| chipset = Nvidia Tegra 4 (T114)<br />
| cpu = 1.9 GHz quad-core Cortex-A15<br />
| gpu = 72 core GeForce® GPU<br />
| storage = 32 GB<br />
| display = 2560x1600 LCD<br />
| memory = 2 GB<br />
| architecture = armv7<br />
| booting = no<br />
<!-- you can also use these lines if you need to:<br />
| whet_dhry = 0.0<br />
--><br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = N<br />
| status_screen = Y<br />
| status_wifi = P<br />
| status_xwayland = Y<br />
| status_fde = N<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = N<br />
| status_bluetooth = Y<br />
| status_camera = N<br />
| status_gps = N<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = P<br />
| status_hdmidp = N<br />
| status_keyboard = N<br />
| status_touchpad = N<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = P<br />
| status_uboot_secondary = N<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = N<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = N<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
}}{{Based on SoC|Nvidia_Tegra_4_(tegra114)|Tegra 4}}<br />
<br />
== Contributors ==<br />
* [[user:Jenneron|Jenneron]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
* '''Fastboot''': Power on the device with both {{Button|Power}} and {{Button|Volume Down}} buttons.<br />
* '''APX''': Power on the device with both {{Button|Power}} and {{Button|Volume Up}} buttons.<br />
<br />
== Installation ==<br />
Follow [[Installation guide|Installation Guide]]. <br />
<br />
Note that system partition is only 2 GB, so you probably want to do <code>pmbootstrap flasher flash_rootfs --partition userdata</code>.<br />
<br />
== Hardware Support ==<br />
{|class="wikitable feature-colors"<br />
! style="width: 65px;" | Grate<br />
! style="width: 65px;" | Upstream<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Y<br />
|Booting<br />
|Boot partition is 8 MiBs so image size should be less than 8 MiBs.<br />
|-<br />
| Y<br />
| Y<br />
|Panel<br />
|Sharp LQ101R1SX03 panel.<br />
|-<br />
| N<br />
| N<br />
|HDMI output<br />
|Bindings are present in device tree, but it is broken for now.<br />
|-<br />
| N<br />
| N<br />
|Touchscreen<br />
|Used Raydium RM31081 touchscreen connected via SPI. There is no driver in mainline.<br />
|-<br />
| P<br />
| P<br />
|USB Gadget<br />
|Dies after suspend<br />
|-<br />
| P<br />
| P<br />
|USB Host<br />
|Full size USB 3.0 port and SD slot in dock. Works only in EHCI mode.<br />
|-<br />
| Y<br />
| Y<br />
|SD card<br />
|MicroSD in tablet.<br />
|-<br />
| Y<br />
| N<br />
|Internal memory<br />
|HS200 eMMC<br />
|-<br />
| N<br />
| N<br />
|GPS<br />
|There is driver for [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] which is similar to our BCM4752.<br />
|-<br />
| P<br />
| N<br />
|WiFi<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| P<br />
| N<br />
|Bluetooth<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| Y<br />
| Y<br />
| GPIO keys<br />
|There is 3 keys on GPIO: Power, Volume up, Volume down and LID sensor<br />
|-<br />
| P<br />
| N<br />
| Dock<br />
|Keyboard, Touchpad and battery. For now only battery works. It is handled via Nuvoton NPCE69ALA0DX embedded controller.<br />
|-<br />
| Y<br />
| N<br />
| Battery/Charger<br />
|Battery status works with asuspec.<br />
|-<br />
| Y<br />
| Y<br />
| PMIC<br />
|TPS65913B2B5<br />
|-<br />
| N<br />
| N<br />
|Sound<br />
|RT5639<br />
|-<br />
| Y<br />
| Y<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer.<br />
|-<br />
| Y<br />
| Y<br />
|Inertial measurement unit<br />
|Invensense mpu6500 accelerometer + gyroscope.<br />
|-<br />
| Y<br />
| Y<br />
|Magnetometer<br />
|Asahi Kasei ak(m)09911. Mount matrix is not tested<br />
|-<br />
| Y<br />
| Y<br />
|Light sensor<br />
|Dyna Image AL3320A.<br />
|-<br />
| N<br />
| N<br />
|Front camera<br />
|Aptina mi1040. VI is not supported yet.<br />
|-<br />
| N<br />
| N<br />
|Rear camera<br />
|OmniVision ov5693. VI is not supported yet. Driver is present, needs setup in device tree.<br />
|-<br />
| P<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== UART location ==<br />
<br />
==== UART pads on motherboard ====<br />
[[File:Tf701t_pad_uart.png|350px]]<br />
<br />
==== UART pads on dock board ====<br />
[[File:Tf701t_dock_uart.png|350px]]<br />
<br />
==== UART pads in connector ====<br />
[[File:Tf701t_connector_uart.png|350px]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)&diff=37475ASUS Transformer Pad (TF701T) (asus-tf701t)2023-03-23T12:10:26Z<p>Clamor: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Transformer Pad (TF701T)<br />
| codename = asus-tf701t<br />
| image = File:asus_tf701t.jpg|200px<br />
| imagecaption = Asus TF701T in its dock, MATE desktop<br />
| releaseyear = 2013<br />
| originalsoftware = Android<br />
| originalversion = 4.2.2<br />
| extendedversion = 4.4.2<br />
| orginalkernel = 3.4.113<br />
| pmoskernel = mainline grate<br />
| chipset = Nvidia Tegra 4 (T114)<br />
| cpu = 1.9 GHz quad-core Cortex-A15<br />
| gpu = 72 core GeForce® GPU<br />
| storage = 32 GB<br />
| display = 2560x1600 LCD<br />
| memory = 2 GB<br />
| architecture = armv7<br />
| booting = no<br />
<!-- you can also use these lines if you need to:<br />
| whet_dhry = 0.0<br />
--><br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = N<br />
| status_screen = Y<br />
| status_wifi = P<br />
| status_xwayland = Y<br />
| status_fde = N<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = N<br />
| status_bluetooth = Y<br />
| status_camera = N<br />
| status_gps = N<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = P<br />
| status_hdmidp = N<br />
| status_keyboard = N<br />
| status_touchpad = N<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = P<br />
| status_uboot_secondary = N<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = N<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = N<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
}}{{Based on SoC|Nvidia_Tegra_4_(tegra114)|Tegra 4}}<br />
<br />
== Contributors ==<br />
* [[user:Jenneron|Jenneron]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
* '''Fastboot''': Power on the device with both {{Button|Power}} and {{Button|Volume Down}} buttons.<br />
* '''APX''': Power on the device with both {{Button|Power}} and {{Button|Volume Up}} buttons.<br />
<br />
== Installation ==<br />
Follow [[Installation guide|Installation Guide]]. <br />
<br />
Note that system partition is only 2 GB, so you probably want to do <code>pmbootstrap flasher flash_rootfs --partition userdata</code>.<br />
<br />
== Hardware Support ==<br />
{|class="wikitable feature-colors"<br />
! style="width: 65px;" | Grate<br />
! style="width: 65px;" | Upstream<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Y<br />
|Booting<br />
|Boot partition is 8 MiBs so image size should be less than 8 MiBs.<br />
|-<br />
| Y<br />
| Y<br />
|Panel<br />
|Sharp LQ101R1SX03 panel.<br />
|-<br />
| N<br />
| N<br />
|HDMI output<br />
|Bindings are present in device tree, but it is broken for now.<br />
|-<br />
| N<br />
| N<br />
|Touchscreen<br />
|Used Raydium RM31081 touchscreen connected via SPI. There is no driver in mainline.<br />
|-<br />
| P<br />
| P<br />
|USB Gadget<br />
|Dies after suspend<br />
|-<br />
| P<br />
| P<br />
|USB Host<br />
|Full size USB 3.0 port and SD slot in dock. Works only in EHCI mode.<br />
|-<br />
| Y<br />
| Y<br />
|SD card<br />
|MicroSD in tablet.<br />
|-<br />
| Y<br />
| N<br />
|Internal memory<br />
|HS200 eMMC<br />
|-<br />
| N<br />
| N<br />
|GPS<br />
|There is driver for [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] which is similar to our BCM4752.<br />
|-<br />
| P<br />
| N<br />
|WiFi<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| Y<br />
| N<br />
|Bluetooth<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| Y<br />
| Y<br />
| GPIO keys<br />
|There is 3 keys on GPIO: Power, Volume up, Volume down and LID sensor<br />
|-<br />
| P<br />
| N<br />
| Dock<br />
|Keyboard, Touchpad and battery. For now only battery works. It is handled via Nuvoton NPCE69ALA0DX embedded controller.<br />
|-<br />
| Y<br />
| N<br />
| Battery/Charger<br />
|Battery status works with asuspec.<br />
|-<br />
| Y<br />
| Y<br />
| PMIC<br />
|TPS65913B2B5<br />
|-<br />
| N<br />
| N<br />
|Sound<br />
|RT5639<br />
|-<br />
| N<br />
| N<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer. Not tested<br />
|-<br />
| Y<br />
| Y<br />
|Inertial measurement unit<br />
|Invensense mpu6500 accelerometer + gyroscope.<br />
|-<br />
| Y<br />
| Y<br />
|Magnetometer<br />
|Asahi Kasei ak(m)09911. Mount matrix is not tested<br />
|-<br />
| Y<br />
| Y<br />
|Light sensor<br />
|Dyna Image AL3320A.<br />
|-<br />
| N<br />
| N<br />
|Front camera<br />
|Aptina mi1040. VI is not supported yet.<br />
|-<br />
| N<br />
| N<br />
|Rear camera<br />
|OmniVision ov5693. VI is not supported yet. Driver is present, needs setup in device tree.<br />
|-<br />
| P<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== UART location ==<br />
<br />
==== UART pads on motherboard ====<br />
[[File:Tf701t_pad_uart.png|350px]]<br />
<br />
==== UART pads on dock board ====<br />
[[File:Tf701t_dock_uart.png|350px]]<br />
<br />
==== UART pads in connector ====<br />
[[File:Tf701t_connector_uart.png|350px]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)&diff=37474ASUS Transformer Pad (TF701T) (asus-tf701t)2023-03-23T12:09:30Z<p>Clamor: /* Hardware Support */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Transformer Pad (TF701T)<br />
| codename = asus-tf701t<br />
| image = File:asus_tf701t.jpg|200px<br />
| imagecaption = Asus TF701T in its dock, MATE desktop<br />
| releaseyear = 2013<br />
| originalsoftware = Android<br />
| originalversion = 4.2.2<br />
| extendedversion = 4.4.2<br />
| orginalkernel = 3.4.113<br />
| pmoskernel = mainline grate<br />
| chipset = Nvidia Tegra 4 (T114)<br />
| cpu = 1.9 GHz quad-core Cortex-A15<br />
| gpu = 72 core GeForce® GPU<br />
| storage = 32 GB<br />
| display = 2560x1600 LCD<br />
| memory = 2 GB<br />
| architecture = armv7<br />
| booting = no<br />
<!-- you can also use these lines if you need to:<br />
| whet_dhry = 0.0<br />
--><br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = P<br />
| status_flashing = Y<br />
| status_touch = N<br />
| status_screen = Y<br />
| status_wifi = N<br />
| status_xwayland = Y<br />
| status_fde = N<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = N<br />
| status_bluetooth = N<br />
| status_camera = N<br />
| status_gps = N<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = P<br />
| status_hdmidp = N<br />
| status_keyboard = N<br />
| status_touchpad = N<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = P<br />
| status_uboot_secondary = N<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = N<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = N<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
}}{{Based on SoC|Nvidia_Tegra_4_(tegra114)|Tegra 4}}<br />
<br />
== Contributors ==<br />
* [[user:Jenneron|Jenneron]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
* '''Fastboot''': Power on the device with both {{Button|Power}} and {{Button|Volume Down}} buttons.<br />
* '''APX''': Power on the device with both {{Button|Power}} and {{Button|Volume Up}} buttons.<br />
<br />
== Installation ==<br />
Follow [[Installation guide|Installation Guide]]. <br />
<br />
Note that system partition is only 2 GB, so you probably want to do <code>pmbootstrap flasher flash_rootfs --partition userdata</code>.<br />
<br />
== Hardware Support ==<br />
{|class="wikitable feature-colors"<br />
! style="width: 65px;" | Grate<br />
! style="width: 65px;" | Upstream<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Y<br />
|Booting<br />
|Boot partition is 8 MiBs so image size should be less than 8 MiBs.<br />
|-<br />
| Y<br />
| Y<br />
|Panel<br />
|Sharp LQ101R1SX03 panel.<br />
|-<br />
| N<br />
| N<br />
|HDMI output<br />
|Bindings are present in device tree, but it is broken for now.<br />
|-<br />
| N<br />
| N<br />
|Touchscreen<br />
|Used Raydium RM31081 touchscreen connected via SPI. There is no driver in mainline.<br />
|-<br />
| P<br />
| P<br />
|USB Gadget<br />
|Dies after suspend<br />
|-<br />
| P<br />
| P<br />
|USB Host<br />
|Full size USB 3.0 port and SD slot in dock. Works only in EHCI mode.<br />
|-<br />
| Y<br />
| Y<br />
|SD card<br />
|MicroSD in tablet.<br />
|-<br />
| Y<br />
| N<br />
|Internal memory<br />
|HS200 eMMC<br />
|-<br />
| N<br />
| N<br />
|GPS<br />
|There is driver for [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] which is similar to our BCM4752.<br />
|-<br />
| P<br />
| N<br />
|WiFi<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| Y<br />
| N<br />
|Bluetooth<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| Y<br />
| Y<br />
| GPIO keys<br />
|There is 3 keys on GPIO: Power, Volume up, Volume down and LID sensor<br />
|-<br />
| P<br />
| N<br />
| Dock<br />
|Keyboard, Touchpad and battery. For now only battery works. It is handled via Nuvoton NPCE69ALA0DX embedded controller.<br />
|-<br />
| Y<br />
| N<br />
| Battery/Charger<br />
|Battery status works with asuspec.<br />
|-<br />
| Y<br />
| Y<br />
| PMIC<br />
|TPS65913B2B5<br />
|-<br />
| N<br />
| N<br />
|Sound<br />
|RT5639<br />
|-<br />
| N<br />
| N<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer. Not tested<br />
|-<br />
| Y<br />
| Y<br />
|Inertial measurement unit<br />
|Invensense mpu6500 accelerometer + gyroscope.<br />
|-<br />
| Y<br />
| Y<br />
|Magnetometer<br />
|Asahi Kasei ak(m)09911. Mount matrix is not tested<br />
|-<br />
| Y<br />
| Y<br />
|Light sensor<br />
|Dyna Image AL3320A.<br />
|-<br />
| N<br />
| N<br />
|Front camera<br />
|Aptina mi1040. VI is not supported yet.<br />
|-<br />
| N<br />
| N<br />
|Rear camera<br />
|OmniVision ov5693. VI is not supported yet. Driver is present, needs setup in device tree.<br />
|-<br />
| P<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== UART location ==<br />
<br />
==== UART pads on motherboard ====<br />
[[File:Tf701t_pad_uart.png|350px]]<br />
<br />
==== UART pads on dock board ====<br />
[[File:Tf701t_dock_uart.png|350px]]<br />
<br />
==== UART pads in connector ====<br />
[[File:Tf701t_connector_uart.png|350px]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)&diff=37471ASUS Transformer Pad (TF701T) (asus-tf701t)2023-03-23T08:15:56Z<p>Clamor: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Transformer Pad (TF701T)<br />
| codename = asus-tf701t<br />
| image = File:asus_tf701t.jpg|200px<br />
| imagecaption = Asus TF701T in its dock, MATE desktop<br />
| releaseyear = 2013<br />
| originalsoftware = Android<br />
| originalversion = 4.2.2<br />
| extendedversion = 4.4.2<br />
| orginalkernel = 3.4.113<br />
| pmoskernel = mainline grate<br />
| chipset = Nvidia Tegra 4 (T114)<br />
| cpu = 1.9 GHz quad-core Cortex-A15<br />
| gpu = 72 core GeForce® GPU<br />
| storage = 32 GB<br />
| display = 2560x1600 LCD<br />
| memory = 2 GB<br />
| architecture = armv7<br />
| booting = no<br />
<!-- you can also use these lines if you need to:<br />
| whet_dhry = 0.0<br />
--><br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = P<br />
| status_flashing = Y<br />
| status_touch = N<br />
| status_screen = Y<br />
| status_wifi = N<br />
| status_xwayland = Y<br />
| status_fde = N<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = N<br />
| status_bluetooth = N<br />
| status_camera = N<br />
| status_gps = N<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = P<br />
| status_hdmidp = N<br />
| status_keyboard = N<br />
| status_touchpad = N<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = P<br />
| status_uboot_secondary = N<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = N<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = N<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
}}{{Based on SoC|Nvidia_Tegra_4_(tegra114)|Tegra 4}}<br />
<br />
== Contributors ==<br />
* [[user:Jenneron|Jenneron]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
* '''Fastboot''': Power on the device with both {{Button|Power}} and {{Button|Volume Down}} buttons.<br />
* '''APX''': Power on the device with both {{Button|Power}} and {{Button|Volume Up}} buttons.<br />
<br />
== Installation ==<br />
Follow [[Installation guide|Installation Guide]]. <br />
<br />
Note that system partition is only 2 GB, so you probably want to do <code>pmbootstrap flasher flash_rootfs --partition userdata</code>.<br />
<br />
== Hardware Support ==<br />
{|class="wikitable feature-colors"<br />
! style="width: 65px;" | Grate<br />
! style="width: 65px;" | Upstream<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Y<br />
|Booting<br />
|Boot partition is 8 MiBs so image size should be less than 8 MiBs.<br />
|-<br />
| Y<br />
| Y<br />
|Panel<br />
|Sharp LQ101R1SX03 panel.<br />
|-<br />
| N<br />
| N<br />
|HDMI output<br />
|Bindings are present in device tree, but it is broken for now.<br />
|-<br />
| N<br />
| N<br />
|Touchscreen<br />
|Used Raydium RM31081 touchscreen connected via SPI. There is no driver in mainline.<br />
|-<br />
| P<br />
| P<br />
|USB Gadget<br />
|Dies after suspend<br />
|-<br />
| P<br />
| P<br />
|USB Host<br />
|Full size USB 3.0 port and SD slot in dock. Works only in EHCI mode.<br />
|-<br />
| Y<br />
| Y<br />
|SD card<br />
|MicroSD in tablet.<br />
|-<br />
| N<br />
| N<br />
|Internal memory<br />
|HS200 eMMC<br />
|-<br />
| N<br />
| N<br />
|GPS<br />
|There is driver for [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] which is similar to our BCM4752.<br />
|-<br />
| N<br />
| N<br />
|WiFi<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| N<br />
| N<br />
|Bluetooth<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| Y<br />
| Y<br />
| GPIO keys<br />
|There is 3 keys on GPIO: Power, Volume up, Volume down and LID sensor<br />
|-<br />
| P<br />
| N<br />
| Dock<br />
|Keyboard, Touchpad and battery. For now only battery works. It is handled via Nuvoton NPCE69ALA0DX embedded controller.<br />
|-<br />
| Y<br />
| N<br />
| Battery/Charger<br />
|Battery status works with asuspec.<br />
|-<br />
| Y<br />
| Y<br />
| PMIC<br />
|TPS65913B2B5<br />
|-<br />
| N<br />
| N<br />
|Sound<br />
|RT5639<br />
|-<br />
| N<br />
| N<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer. Not tested<br />
|-<br />
| Y<br />
| Y<br />
|Inertial measurement unit<br />
|Invensense mpu6500 accelerometer + gyroscope.<br />
|-<br />
| Y<br />
| Y<br />
|Magnetometer<br />
|Asahi Kasei ak(m)09911. Mount matrix is not tested<br />
|-<br />
| Y<br />
| Y<br />
|Light sensor<br />
|Dyna Image AL3320A.<br />
|-<br />
| N<br />
| N<br />
|Front camera<br />
|Aptina mi1040. VI is not supported yet.<br />
|-<br />
| N<br />
| N<br />
|Rear camera<br />
|OmniVision ov5693. VI is not supported yet. Driver is present, needs setup in device tree.<br />
|-<br />
| P<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== UART location ==<br />
<br />
==== UART pads on motherboard ====<br />
[[File:Tf701t_pad_uart.png|350px]]<br />
<br />
==== UART pads on dock board ====<br />
[[File:Tf701t_dock_uart.png|350px]]<br />
<br />
==== UART pads in connector ====<br />
[[File:Tf701t_connector_uart.png|350px]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)&diff=37449ASUS Transformer Pad (TF701T) (asus-tf701t)2023-03-20T15:39:54Z<p>Clamor: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Transformer Pad (TF701T)<br />
| codename = asus-tf701t<br />
| image = File:asus_tf701t.jpg|200px<br />
| imagecaption = Asus TF701T in its dock, MATE desktop<br />
| releaseyear = 2013<br />
| originalsoftware = Android<br />
| originalversion = 4.2.2<br />
| extendedversion = 4.4.2<br />
| orginalkernel = 3.4.113<br />
| pmoskernel = mainline grate<br />
| chipset = Nvidia Tegra 4 (T114)<br />
| cpu = 1.9 GHz quad-core Cortex-A15<br />
| gpu = 72 core GeForce® GPU<br />
| storage = 32 GB<br />
| display = 2560x1600 LCD<br />
| memory = 2 GB<br />
| architecture = armv7<br />
| booting = no<br />
<!-- you can also use these lines if you need to:<br />
| whet_dhry = 0.0<br />
--><br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = P<br />
| status_flashing = Y<br />
| status_touch = N<br />
| status_screen = Y<br />
| status_wifi = N<br />
| status_xwayland = Y<br />
| status_fde = N<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = N<br />
| status_bluetooth = N<br />
| status_camera = N<br />
| status_gps = N<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = P<br />
| status_hdmidp = N<br />
| status_keyboard = N<br />
| status_touchpad = N<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = P<br />
| status_uboot_secondary = N<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = P<br />
| status_uboot_usbhost = N<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = N<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = P<br />
}}{{Based on SoC|Nvidia_Tegra_4_(tegra114)|Tegra 4}}<br />
<br />
== Contributors ==<br />
* [[user:Jenneron|Jenneron]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
* '''Fastboot''': Power on the device with both {{Button|Power}} and {{Button|Volume Down}} buttons.<br />
* '''APX''': Power on the device with both {{Button|Power}} and {{Button|Volume Up}} buttons.<br />
<br />
== Installation ==<br />
Follow [[Installation guide|Installation Guide]]. <br />
<br />
Note that system partition is only 2 GB, so you probably want to do <code>pmbootstrap flasher flash_rootfs --partition userdata</code>.<br />
<br />
== Hardware Support ==<br />
{|class="wikitable feature-colors"<br />
! style="width: 65px;" | Grate<br />
! style="width: 65px;" | Upstream<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Y<br />
|Booting<br />
|Boot partition is 8 MiBs so image size should be less than 8 MiBs.<br />
|-<br />
| Y<br />
| Y<br />
|Panel<br />
|Sharp LQ101R1SX03 panel.<br />
|-<br />
| N<br />
| N<br />
|HDMI output<br />
|Bindings are present in device tree, but it is broken for now.<br />
|-<br />
| N<br />
| N<br />
|Touchscreen<br />
|Used Raydium RM31081 touchscreen connected via SPI. There is no driver in mainline.<br />
|-<br />
| P<br />
| P<br />
|USB Gadget<br />
|Dies after suspend<br />
|-<br />
| P<br />
| P<br />
|USB Host<br />
|Full size USB 3.0 port and SD slot in dock. Works only in EHCI mode.<br />
|-<br />
| Y<br />
| Y<br />
|SD card<br />
|MicroSD in tablet.<br />
|-<br />
| N<br />
| N<br />
|Internal memory<br />
|HS200 eMMC<br />
|-<br />
| N<br />
| N<br />
|GPS<br />
|There is driver for [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] which is similar to our BCM4752.<br />
|-<br />
| N<br />
| N<br />
|WiFi<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| N<br />
| N<br />
|Bluetooth<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| Y<br />
| Y<br />
| GPIO keys<br />
|There is 3 keys on GPIO: Power, Volume up, Volume down and LID sensor<br />
|-<br />
| P<br />
| N<br />
| Dock<br />
|Keyboard, Touchpad and battery. For now only battery works. It is handled via Nuvoton NPCE69ALA0DX embedded controller.<br />
|-<br />
| Y<br />
| N<br />
| Battery/Charger<br />
|Battery status works with asuspec.<br />
|-<br />
| Y<br />
| Y<br />
| PMIC<br />
|TPS65913B2B5<br />
|-<br />
| N<br />
| N<br />
|Sound<br />
|RT5639<br />
|-<br />
| N<br />
| N<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer. Not tested<br />
|-<br />
| Y<br />
| Y<br />
|Inertial measurement unit<br />
|Invensense mpu6500 accelerometer + gyroscope.<br />
|-<br />
| Y<br />
| Y<br />
|Magnetometer<br />
|Asahi Kasei ak(m)09911. Mount matrix is not tested<br />
|-<br />
| Y<br />
| Y<br />
|Light sensor<br />
|Dyna Image AL3320A.<br />
|-<br />
| N<br />
| N<br />
|Front camera<br />
|Aptina mi1040. VI is not supported yet.<br />
|-<br />
| N<br />
| N<br />
|Rear camera<br />
|OmniVision ov5693. VI is not supported yet. Driver is present, needs setup in device tree.<br />
|-<br />
| P<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== UART location ==<br />
<br />
==== UART pads on motherboard ====<br />
[[File:Tf701t_pad_uart.png|350px]]<br />
<br />
==== UART pads on dock board ====<br />
[[File:Tf701t_dock_uart.png|350px]]<br />
<br />
==== UART pads in connector ====<br />
[[File:Tf701t_connector_uart.png|350px]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=LG_Optimus_Vu_(lg-p895)&diff=37433LG Optimus Vu (lg-p895)2023-03-19T17:32:11Z<p>Clamor: /* Hardware status (mainline) */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = LG<br />
| name = Optimus Vu<br />
| codename = lg-p895<br />
| image = File:Vu_recursion.jpg<br />
| imagecaption = Optimus Vu in recursion<br />
| releaseyear = 2012<br />
| originalsoftware = Android 4.0<br />
| chipset = Nvidia Tegra 3 (AP33)<br />
| cpu = Quad-core 1.5 GHz Cortex-A9<br />
| gpu = NVIDIA ULP GeForce GPU 12 cores<br />
| storage = 32 GB<br />
| display = 768×1024 IPS LCD<br />
| memory = 1 GB<br />
| architecture = armv7<br />
| booting = yes<br />
| whet_dhry = 1079.2<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or "" (blank) - for untested or unknown --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_fde = Y<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera =<br />
| status_gps =<br />
| status_nfc = Y<br />
| status_mobiledata =<br />
| status_sms =<br />
| status_calls =<br />
| status_otg = P<br />
| status_usba = -<br />
| status_hdmidp =<br />
| status_keyboard = -<br />
| status_touchpad = -<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = Y<br />
| status_hall = -<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = P<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = -<br />
| status_uboot_usbhost = -<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = Y<br />
| status_uboot_keyboard = -<br />
| status_uboot_buttons = Y<br />
| pmoskernel = mainline grate<br />
}}{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}<br />
<br />
== Contributors ==<br />
* Clamor<br />
<br />
=== Users owning this device ===<br />
{{Device owners}}<br />
== Unlocking ==<br />
Only known method of unlocking is flashing patched LG bootloader with kernel signature check disabled, but who needs this proprietary stuff with unknown properties (vendor bootloader I mean) if p895 supports open sourced bootloader - U-Boot.<br />
<br />
== Kernel status ==<br />
=== Android kernel ===<br />
* 3.1 kernel based on LG sources with updates till Nougat support ([https://github.com/clamor-s/android_kernel_lge_p895 Kernel])<br />
<br />
=== Mainline (Grate) ===<br />
* Baseline kernel sources on p895: https://github.com/clamor-s/linux/tree/p895<br />
* Proper dts for P895 is added<br />
* Version: 6.0.6<br />
* Status: Boots. See status below.<br />
<br />
== Installation ==<br />
=== Bootloader replacement ===<br />
LG bootloader is highly NOT recommended to use with pmOS. To switch to open source booloader you need to use P895 Nvflash zip, it can be found here https://github.com/clamor-s/wheelie/releases/tag/p895 and you MUST use native Linux, virtual machine and WSL will NOT work.<br />
<br />
Unpack zip and cd into it. Plug your P895 to PC and reboot it with holding both {{Button|Volume Down}} and {{Button|Volume Up}}. If all is done correct <code>lsusb</code> should show <code>ID 0955:7130 NVIDIA Corp. APX</code> device.<br />
<br />
Now perform:<br />
<source lang="shell-session"><br />
$ sudo ./wheelie --blob blob.bin<br />
Wheelie 0.2 - Preflight for nvflash.<br />
Copyright (c) 2011-2012 androidroot.mobi<br />
========================================<br />
<br />
Waiting for device in APX mode...<br />
[=] Chip UID: 0x000000000000009<br />
[=] RCM Version: 0x30001<br />
<br />
[=] CPU Model: Tegra 3<br />
[+] Sending bootloader...<br />
Sending file: 100 %<br />
[!] Done - your device should now be ready for nvflash<br />
$ sudo ./nvflash --resume --rawdevicewrite 0 2944 u-boot-bricksafe.img --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: u-boot-bricksafe.img<br />
/ 12058624/12058624 bytes sent<br />
u-boot-bricksafe.img sent successfully<br />
</source><br />
If phone did not reboot automatically, force reboot with holding {{Button|Power}}. This will replace LG bootloader with u-boot. For more deep look into u-boot actions refer to dedicated section below.<br />
<br />
=== postmarketOS installation ===<br />
{{warning|P895 as /root uses userdata partition, MAKE A BACKUP OF IT!}}<br />
You should configure p895 build using pmbootstrap and build it using split images <code>pmbootstrap install --split</code>. Now you can use '''nvflash''' or '''dd'''. <br />
<br />
For '''nvflash''' place your pmOS images into Nvflash folder and enter APX mode with wheelie. Flash rootfs first with <br />
<source lang="shell-session"><br />
$ sudo ./nvflash --resume --download UDA lg-p895-root.img --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: lg-p895-root.img<br />
/ 1205862445/1205862445 bytes sent<br />
lg-p895-root.img sent successfully<br />
</source><br />
Phone will reboot and poweroff itself. Enter APX mode with wheelie once more and flash boot with<br />
<source lang="shell-session"><br />
$ sudo ./nvflash --resume --download CAC lg-p895-boot.img --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: lg-p895-boot.img<br />
/ 205862445/205862445 bytes sent<br />
lg-p895-boot.img sent successfully<br />
</source><br />
After pmOS should boot fine. If you have issues with /root size, use <code>resize2fs</code>.<br />
<br />
For '''dd''' you can mount /boot and /root partitions directly as external storage on your PC. For this u-boot has options <code>mount /boot</code> and <code>mount /root</code> and you will just need to flash images onto those external storage correspondingly.<br />
<br />
== Hardware status (mainline) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Booting<br />
| Android style boot.img has restriction of approx 4 MB, which is fraction of /boot partition size.<br />
|-<br />
| Y<br />
| Bootloader<br />
| Open source bootloader [https://github.com/clamor-s/u-boot/tree/lg U-Boot] is available as alternative for stock LG bootloader and can replace it. U-Boot can not boot downstream kernel if it has Trusted Foundations enabled.<br />
|-<br />
| Y<br />
| Panel<br />
| KOE/Hitachi TX13D100VM0EAA MIPI DSI LCD IPS panel via Solomon SSD2825 DSI/LVDS bridge.<br />
|-<br />
| Y<br />
| Backlight<br />
| TI LM3533 led controller is used for main backlight. Driver is converted into OF and can be operated by panel.<br />
|-<br />
| N<br />
| HDMI output<br />
| Device supports MHL via SII9244 hdmi bridge on it own i2c-gpio line. Currently not configured. Is similar to SII9234 driver but is not same, requires hw setup look. MHL connection is detected.<br />
|-<br />
| Y<br />
| Touchscreen<br />
| Synaptics RMI4 S3203B touchscreen is used.<br />
|-<br />
| N<br />
| Touch buttons<br />
| Synaptics RMI4 S3204B touchscreen's function 1a is used. It is ported and set, but currently capacitive buttons still do not work.<br />
|-<br />
| Y<br />
| USB<br />
| USB functional is fully implemented. Due to hw design HOST state can work only via OTG-Y cable (with external power). PERIPHERAL works perfectly fine.<br />
|-<br />
| Y<br />
| Internal memory<br />
| eMMC 32 Gb by Hynix model HBG4e.<br />
|-<br />
| P<br />
| GPS<br />
| Some fancy GSD5T GNSS module. Kernel part is ready but there is no way to test it since most of gps processing is made in userspace.<br />
|-<br />
| Y<br />
| WiFi<br />
| Uses BCM4330B1. Wi-Fi should work out of the box (best with IWD daemon: apk add iwd; rc-update del wpa_supplicant; rc-update add iwd). All needed stuff is included. Device may not connect to some networks (in my case it was PC hotspot, to fix this, I have installed IWD on my PC as well). Be aware that WiFi MAC address is not static, though it should not matter for average user.<br />
|-<br />
| Y<br />
| Bluetooth<br />
| BCM4330B1 37.4 MHz Class 1.5 W-ExtLNA PCM-S. Works perfectly fine with included firmware.<br />
|-<br />
| Y<br />
| NFC<br />
| As on most devices of this age PN544 is used. Recognizes NFC tags.<br />
|-<br />
| Y<br />
| GPIO keys/switches<br />
| There are 4 GPIO keys: Power, Volume up, Volume down and Memo keys.<br />
|-<br />
| Y<br />
| GPIO leds<br />
| There are 2 GPIO leds: Power button led and Keypad led bound and work via sysfs. Power led acts as charging indicator but has enormously big delays. Keypad led is not active till capacitive buttons are fixed.<br />
|-<br />
| Y<br />
| Vibro<br />
| Immersion ISA1200 haptic engine. Basic set of modes is implemented via Force Feedback Linux API. <br />
|-<br />
| Y<br />
| Battery<br />
| MAX17040 fuel gauge is used. Fully set up.<br />
|-<br />
| Y<br />
| Charger<br />
| Maxim MAX8971 charger is used. Fully configured, supports both slow and fast charging. Re-plug charger after exit from suspend, else it will charge with 360 mA current.<br />
|-<br />
| Y<br />
| Extcon<br />
| Maxim MAX14526 MUIC is used. Can detect a big range of devices, usb host/peripheral, AC charger, MHL cable etc.<br />
|-<br />
| Y<br />
| PMIC<br />
| Optimus Vu uses Maxim MAX77663 PMIC mfd. Media devices have own sub-PMIC TI LP8720.<br />
|-<br />
| Y<br />
| Sound<br />
| Sound codec is Maxim MAX98089. Fully routed in kernel, UCM's are complete for media and calls. Audio via HDMI should work out of the box.<br />
|-<br />
| Y<br />
| Thermal sensor<br />
| NCT1008 ON Semiconductor LM90 series thermometer and Tegra T sensor. Both work perfectly fine.<br />
|-<br />
| Y<br />
| Power sensor<br />
| Ina230 works fine. Battery has its own tsc2007 ADC to detect battery temperature, works as current sensor.<br />
|-<br />
| Y<br />
| Orientation sensors<br />
| Include mpu6050 imu (accelerometer, gyroscope and thermometer) and ami306 compass.<br />
|-<br />
| Y<br />
| Light and Proximity sensor<br />
| APDS990X - combined AL and proximity sensor is used. Both functions work fine. Proximity function is disabled by default.<br />
|-<br />
| N<br />
| Front camera<br />
| 1.26 MP Aptina 1/6" HD SOC (MT9M114) - mainline driver is available.<br />
|-<br />
| N<br />
| Rear camera<br />
| 8 MP Sony imx111 1/4" BSI sensor with DW9714 lens voice coil and LM3559 flash led. DW9714 and LM3559 both have mainline drivers, imx111 - does not.<br />
|-<br />
| N<br />
| Modem<br />
| Intel XMM6260 modem is used on usb2 line in hsic mode.<br />
|-<br />
| P<br />
| ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== Usability ==<br />
=== Desktop environment ===<br />
Since 3D acceleration is not available yet, all DE which use it will be painfully slow and laggy.<br />
<br />
Currently [https://wiki.postmarketos.org/wiki/Xfce4 xfce4] or [https://wiki.postmarketos.org/wiki/MATE mate] are recommended.<br />
<br />
== U-Boot ==<br />
Current U-Boot status on LG Optimus Vu<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Feature<br />
! Info<br />
|-<br />
| Y<br />
| Primary bootloader<br />
| U-Boot successfully boots when is flashed into EBT partition instead of LG bootloader. Can be additionally booted via fusée gelée exploit.<br />
|-<br />
| P<br />
| Secondary bootloader<br />
| U-Boot can be chainloaded from both /boot and /recovery partitions, though LG bootloader has some conflicts with U-Boot.<br />
|-<br />
| Y<br />
| Panel<br />
| Solomon SSD2825 bridge, Hitachi KOE TX13D100VM0EAA DSI panel, TI lm3533 backlight were all added into U-Boot. Panel is fully functional.<br />
|-<br />
| Y<br />
| eMMC<br />
| Re-partitioned to better fit generic setup. Can be mounted as mass storage on host PC.<br />
|-<br />
| Y<br />
| Boot kernel<br />
| Yes, and can be highly adjusted with '''extlinux.conf'''.<br />
|-<br />
| Y<br />
| Boot menu<br />
| Native u-boot bootmenu works perfectly fine. It can be called with pressing volume down button on boot.<br />
|-<br />
| Y<br />
| Power management<br />
| Offline charging and charging in u-boot both work and are hw configured. Both power off and reboot options work and are available in bootmenu. If no valid kernel is found phone will turn off.<br />
|-<br />
| Y<br />
| Fastboot<br />
| Fastboot option is available in bootmenu. Most functions should work fine.<br />
|-<br />
| P<br />
| Boot Android<br />
| Booting Android kernel can be performed only same way mainline kernel boots. Additionally it must not have '''CONFIG_TRUSTED_FOUNDATIONS = y''' and some additional small patches, it can be booted by u-boot.<br />
|-<br />
| Y<br />
|Self update<br />
|Self update option is implemented and write is done correctly. Bootloader file has to have name '''u-boot-dtb-tegra.bin''' and be placed on 1st partition of eMMC.<br />
|-<br />
|}<br />
<br />
== Gallery ==<br />
<gallery><br />
File:Vu-Mate.jpg|thumb|600px|<br />
File:Vu-Uboot.jpg|thumb|600px|<br />
File:Vu-Bootlogo.jpg|thumb|600px|<br />
File:Vu-simplefb.jpg|thumb|600px|<br />
File:Vu-benchmark.jpg|thumb|600px|<br />
</gallery><br />
<br />
== Serial console ==<br />
[[File:Vu-JTAG.jpg|thumb|mini|left|250px|Red arrow pointing to jtag]]<br />
[[File:Vu-schematic.png|thumb|mini|right|250px|JTAG schematics. Clickable]]<br />
LG Optimus Vu is an interesting device since it has factory soldered jtag directly on motherboard in pretty apposite and easily accessible place. To get to jtag you need only to take off back cover and plastic casing over motherboard. That is it, only one free socket is jtag. UART is UART-D (serial@70006300; 115200n8) and uses 3.3v.<br />
<br />
== See also ==<br />
* More about the device [https://en.wikipedia.org/wiki/LG_Optimus_Vu Wikipedia entry]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_VivoTab_RT&diff=37425ASUS VivoTab RT2023-03-19T15:27:34Z<p>Clamor: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = VivoTab RT<br />
| codename = asus-tf600t<br />
| image = <br />
| imagecaption = <br />
| releaseyear = 2012<br />
| originalsoftware = Windows RT<br />
| chipset = Nvidia Tegra 3 (T30)<br />
| cpu = Quad-core 1.4 GHz Cortex-A9<br />
| gpu = NVIDIA ULP GeForce GPU 12 cores<br />
| storage = 32/64 GB<br />
| display = 1366x768 Super IPS+ LCD<br />
| memory = 2 GB<br />
| architecture = armv7<br />
| booting = no<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or "" (blank) - for untested or unknown --><br />
| status_usbnet = Y<br />
| status_flashing = -<br />
| status_touch = Y<br />
| status_screen = N<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = P<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = P<br />
| status_bluetooth = Y<br />
| status_camera = <br />
| status_gps = P<br />
| status_nfc = P<br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = -<br />
| status_otg = -<br />
| status_usba = Y<br />
| status_hdmidp = Y<br />
| status_keyboard = Y<br />
| status_touchpad = Y<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = P<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = -<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = -<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = -<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = Y<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = N<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
| pmoskernel = mainline grate<br />
}}{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}<br />
<br />
== Contributors ==<br />
* Clamor<br />
<br />
== Installation ==<br />
Currently only booting via fusee gelee is successful. It requires custom u-boot and a built fork of grate kernel. Check links below.<br />
<br />
== Hardware status (mainline) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
|Booting<br />
|Booting is available via loading custom U-Boot and kernel via fusee gelee.<br />
|-<br />
| Y<br />
|U-Boot<br />
|U-Boot is fully functional, can be loaded and flashed instead of UEFI.<br />
|-<br />
| N<br />
|Panel<br />
|Hydis HV101HD1 LCD SuperIPS+ HD panel through DSI-A port. Driver is made, DSI in T30 is not supported.<br />
|-<br />
| Y<br />
|HDMI output<br />
|HDMI works, but output is 1080p due to Tegra 3 limitations.<br />
|-<br />
| Y<br />
|Touchscreen<br />
|Used Atmel MXT1664 touchscreen.<br />
|-<br />
| Y<br />
|USB<br />
|One full size USB 2.0 in dock or via 36 pin adapter.<br />
|-<br />
| Y<br />
|SD cards<br />
|MicroSD card and full sized SD card (recognized as USB drive) in dock.<br />
|-<br />
| Y<br />
|Internal memory<br />
|eMMC by SanDisk. SPI flash W25Q32 4MB.<br />
|-<br />
| N<br />
|GPS<br />
|Broadcom GPS [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] is used. BCM4751 GPS is commonly used in devices of this age, although it still does not have proper implementation (nor kernel, nor userspace);<br />
|-<br />
| Y<br />
|WiFi<br />
|Uses Azurewave AW-NH665 BCM4330.<br />
|-<br />
| Y<br />
|Bluetooth<br />
|Uses Azurewave AW-NH665 BCM4330B1.<br />
|-<br />
| Y<br />
| GPIO keys<br />
|There are 3 keys on GPIO: Power, Volume up, Volume down.<br />
Additionally GPIO-keys like are LID sensor and Audio dock line-out detect.<br />
|-<br />
| Y<br />
| Vibro<br />
|VivoTab RT has GPIO based vibrator.<br />
|-<br />
| Y<br />
| Dock Keyboard<br />
| Dock keyboard and touchpad are both hid-over-i2c devices on hot-plug i2c line. Both are configured and work.<br />
|-<br />
| P<br />
| Battery/Charger<br />
|Driver is based on Texas Instruments bq24725 SMBus Charge Controller driver and GPIO charger but works through pad/dock Nuvoton NPCE795LA0BX embedded controller. Charging and charge level of pad battery is shown correctly, dock battery is not set yet.<br />
|-<br />
| Y<br />
| PMIC<br />
|Transformers use Texas Instruments TPS659110 PMIC and TPS62361 core regulator.<br />
|-<br />
| P<br />
|Sound<br />
|Sound codec is RT5640. Kernel driver and tegra_rt5640 driver are in grate master.<br />
|-<br />
| Y<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer.<br />
|-<br />
| Y<br />
|Orientation sensors<br />
|Include Invensense mpu6050 IMU and Asahi-Kasei AK8975 3-axis digital compass.<br />
|-<br />
| P<br />
|Light sensor<br />
|Driver for Capella CM3218 is present but initiation is failed.<br />
|-<br />
| P<br />
|Torch MFD<br />
|Tablet has separate MFD for rear camera flash - TI TPS61050/61052 Boost Converter, and it works sometimes.<br />
|-<br />
| P<br />
|NFC<br />
|NXP-44701 is bound, but not tested. <br />
|-<br />
| N<br />
|Front camera<br />
|<br />
|-<br />
| N<br />
|Rear camera<br />
|<br />
|-<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== See also ==<br />
* [https://github.com/clamor-s/linux/tree/tf600t Working TF600T fork of grate]<br />
* [https://github.com/clamor-s/u-boot/tree/tf600t Custom U-Boot]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=LG_Optimus_Vu_(lg-p895)&diff=37376LG Optimus Vu (lg-p895)2023-03-18T19:47:41Z<p>Clamor: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = LG<br />
| name = Optimus Vu<br />
| codename = lg-p895<br />
| image = File:Vu_recursion.jpg<br />
| imagecaption = Optimus Vu in recursion<br />
| releaseyear = 2012<br />
| originalsoftware = Android 4.0<br />
| chipset = Nvidia Tegra 3 (AP33)<br />
| cpu = Quad-core 1.5 GHz Cortex-A9<br />
| gpu = NVIDIA ULP GeForce GPU 12 cores<br />
| storage = 32 GB<br />
| display = 768×1024 IPS LCD<br />
| memory = 1 GB<br />
| architecture = armv7<br />
| booting = yes<br />
| whet_dhry = 1079.2<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or "" (blank) - for untested or unknown --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_fde = Y<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera =<br />
| status_gps =<br />
| status_nfc = Y<br />
| status_mobiledata =<br />
| status_sms =<br />
| status_calls =<br />
| status_otg = P<br />
| status_usba = -<br />
| status_hdmidp =<br />
| status_keyboard = -<br />
| status_touchpad = -<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = Y<br />
| status_hall = -<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = P<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = -<br />
| status_uboot_usbhost = -<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = Y<br />
| status_uboot_keyboard = -<br />
| status_uboot_buttons = Y<br />
| pmoskernel = mainline grate<br />
}}{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}<br />
<br />
== Contributors ==<br />
* Clamor<br />
<br />
=== Users owning this device ===<br />
{{Device owners}}<br />
== Unlocking ==<br />
Only known method of unlocking is flashing patched LG bootloader with kernel signature check disabled, but who needs this proprietary stuff with unknown properties (vendor bootloader I mean) if p895 supports open sourced bootloader - U-Boot.<br />
<br />
== Kernel status ==<br />
=== Android kernel ===<br />
* 3.1 kernel based on LG sources with updates till Nougat support ([https://github.com/clamor-s/android_kernel_lge_p895 Kernel])<br />
<br />
=== Mainline (Grate) ===<br />
* Baseline kernel sources on p895: https://github.com/clamor-s/linux/tree/p895<br />
* Proper dts for P895 is added<br />
* Version: 6.0.6<br />
* Status: Boots. See status below.<br />
<br />
== Installation ==<br />
=== Bootloader replacement ===<br />
LG bootloader is highly NOT recommended to use with pmOS. To switch to open source booloader you need to use P895 Nvflash zip, it can be found here https://github.com/clamor-s/wheelie/releases/tag/p895 and you MUST use native Linux, virtual machine and WSL will NOT work.<br />
<br />
Unpack zip and cd into it. Plug your P895 to PC and reboot it with holding both {{Button|Volume Down}} and {{Button|Volume Up}}. If all is done correct <code>lsusb</code> should show <code>ID 0955:7130 NVIDIA Corp. APX</code> device.<br />
<br />
Now perform:<br />
<source lang="shell-session"><br />
$ sudo ./wheelie --blob blob.bin<br />
Wheelie 0.2 - Preflight for nvflash.<br />
Copyright (c) 2011-2012 androidroot.mobi<br />
========================================<br />
<br />
Waiting for device in APX mode...<br />
[=] Chip UID: 0x000000000000009<br />
[=] RCM Version: 0x30001<br />
<br />
[=] CPU Model: Tegra 3<br />
[+] Sending bootloader...<br />
Sending file: 100 %<br />
[!] Done - your device should now be ready for nvflash<br />
$ sudo ./nvflash --resume --rawdevicewrite 0 2944 u-boot-bricksafe.img --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: u-boot-bricksafe.img<br />
/ 12058624/12058624 bytes sent<br />
u-boot-bricksafe.img sent successfully<br />
</source><br />
If phone did not reboot automatically, force reboot with holding {{Button|Power}}. This will replace LG bootloader with u-boot. For more deep look into u-boot actions refer to dedicated section below.<br />
<br />
=== postmarketOS installation ===<br />
{{warning|P895 as /root uses userdata partition, MAKE A BACKUP OF IT!}}<br />
You should configure p895 build using pmbootstrap and build it using split images <code>pmbootstrap install --split</code>. Now you can use '''nvflash''' or '''dd'''. <br />
<br />
For '''nvflash''' place your pmOS images into Nvflash folder and enter APX mode with wheelie. Flash rootfs first with <br />
<source lang="shell-session"><br />
$ sudo ./nvflash --resume --download UDA lg-p895-root.img --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: lg-p895-root.img<br />
/ 1205862445/1205862445 bytes sent<br />
lg-p895-root.img sent successfully<br />
</source><br />
Phone will reboot and poweroff itself. Enter APX mode with wheelie once more and flash boot with<br />
<source lang="shell-session"><br />
$ sudo ./nvflash --resume --download CAC lg-p895-boot.img --go<br />
Nvflash v1.13.87205 started<br />
[resume mode]<br />
sending file: lg-p895-boot.img<br />
/ 205862445/205862445 bytes sent<br />
lg-p895-boot.img sent successfully<br />
</source><br />
After pmOS should boot fine. If you have issues with /root size, use <code>resize2fs</code>.<br />
<br />
For '''dd''' you can mount /boot and /root partitions directly as external storage on your PC. For this u-boot has options <code>mount /boot</code> and <code>mount /root</code> and you will just need to flash images onto those external storage correspondingly.<br />
<br />
== Hardware status (mainline) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Booting<br />
| Android style boot.img has restriction of approx 4 MB, which is fraction of /boot partition size.<br />
|-<br />
| Y<br />
| Bootloader<br />
| Open source bootloader [https://github.com/clamor-s/u-boot/tree/lg U-Boot] is available as alternative for stock LG bootloader and can replace it. U-Boot can not boot downstream kernel if it has Trusted Foundations enabled.<br />
|-<br />
| Y<br />
| Panel<br />
| KOE/Hitachi TX13D100VM0EAA MIPI DSI LCD IPS panel via Solomon SSD2825 DSI/LVDS bridge.<br />
|-<br />
| Y<br />
| Backlight<br />
| TI LM3533 led controller is used for main backlight. Driver is converted into OF and can be operated by panel.<br />
|-<br />
| N<br />
| HDMI output<br />
| Device supports MHL via SII9244 hdmi bridge on it own i2c-gpio line. Currently not configured. Is similar to SII9234 driver but is not same, requires hw setup look. MHL connection is detected.<br />
|-<br />
| Y<br />
| Touchscreen<br />
| Synaptics RMI4 S3203B touchscreen is used.<br />
|-<br />
| N<br />
| Touch buttons<br />
| Synaptics RMI4 S3204B touchscreen's function 1a is used. It is ported and set, but currently capacitive buttons still do not work.<br />
|-<br />
| Y<br />
| USB<br />
| USB functional is fully implemented. Due to hw design HOST state can work only via OTG-Y cable (with external power). PERIPHERAL works perfectly fine.<br />
|-<br />
| Y<br />
| Internal memory<br />
| eMMC 32 Gb by Hynix model HBG4e.<br />
|-<br />
| P<br />
| GPS<br />
| Some fancy GSD5T GNSS module. Kernel part is ready but there is no way to test it since most of gps processing is made in userspace.<br />
|-<br />
| Y<br />
| WiFi<br />
| Uses BCM4330B1. Wi-Fi should work out of the box (best with IWD daemon: apk add iwd; rc-update del wpa_supplicant; rc-update add iwd). All needed stuff is included. Device may not connect to some networks (in my case it was PC hotspot, to fix this, I have installed IWD on my PC as well). Be aware that WiFi MAC address is not static, though it should not matter for average user.<br />
|-<br />
| Y<br />
| Bluetooth<br />
| BCM4330B1 37.4 MHz Class 1.5 W-ExtLNA PCM-S. Works perfectly fine with included firmware.<br />
|-<br />
| Y<br />
| NFC<br />
| As on most devices of this age PN544 is used. Recognizes NFC tags.<br />
|-<br />
| Y<br />
| GPIO keys/switches<br />
| There are 4 GPIO keys: Power, Volume up, Volume down and Memo keys.<br />
|-<br />
| Y<br />
| GPIO leds<br />
| There are 2 GPIO leds: Power button led and Keypad led bound and work via sysfs. Power led acts as charging indicator but has enormously big delays. Keypad led is not active till capacitive buttons are fixed.<br />
|-<br />
| Y<br />
| Vibro<br />
| Immersion ISA1200 haptic engine. Basic set of modes is implemented via Force Feedback Linux API. <br />
|-<br />
| Y<br />
| Battery<br />
| MAX17040 fuel gauge is used. Fully set up.<br />
|-<br />
| Y<br />
| Charger<br />
| Maxim MAX8971 charger is used. Fully configured, supports both slow and fast charging.<br />
|-<br />
| Y<br />
| Extcon<br />
| Maxim MAX14526 MUIC is used. Can detect a big range of devices, usb host/peripheral, AC charger, MHL cable etc.<br />
|-<br />
| Y<br />
| PMIC<br />
| Optimus Vu uses Maxim MAX77663 PMIC mfd. Media devices have own sub-PMIC TI LP8720.<br />
|-<br />
| Y<br />
| Sound<br />
| Sound codec is Maxim MAX98089. Fully routed in kernel, UCM's are complete for media and calls. Audio via HDMI should work out of the box.<br />
|-<br />
| Y<br />
| Thermal sensor<br />
| NCT1008 ON Semiconductor LM90 series thermometer and Tegra T sensor. Both work perfectly fine.<br />
|-<br />
| Y<br />
| Power sensor<br />
| Ina230 works fine. Battery has its own tsc2007 ADC to detect battery temperature, works as current sensor.<br />
|-<br />
| Y<br />
| Orientation sensors<br />
| Include mpu6050 imu (accelerometer, gyroscope and thermometer) and ami306 compass.<br />
|-<br />
| Y<br />
| Light and Proximity sensor<br />
| APDS990X - combined AL and proximity sensor is used. Both functions work fine. Proximity function is disabled by default.<br />
|-<br />
| N<br />
| Front camera<br />
| 1.26 MP Aptina 1/6" HD SOC (MT9M114) - mainline driver is available.<br />
|-<br />
| N<br />
| Rear camera<br />
| 8 MP Sony imx111 1/4" BSI sensor with DW9714 lens voice coil and LM3559 flash led. DW9714 and LM3559 both have mainline drivers, imx111 - does not.<br />
|-<br />
| N<br />
| Modem<br />
| Intel XMM6260 modem is used on usb2 line in hsic mode.<br />
|-<br />
| P<br />
| ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== Usability ==<br />
=== Desktop environment ===<br />
Since 3D acceleration is not available yet, all DE which use it will be painfully slow and laggy.<br />
<br />
Currently [https://wiki.postmarketos.org/wiki/Xfce4 xfce4] or [https://wiki.postmarketos.org/wiki/MATE mate] are recommended.<br />
<br />
== U-Boot ==<br />
Current U-Boot status on LG Optimus Vu<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Feature<br />
! Info<br />
|-<br />
| Y<br />
| Primary bootloader<br />
| U-Boot successfully boots when is flashed into EBT partition instead of LG bootloader. Can be additionally booted via fusée gelée exploit.<br />
|-<br />
| P<br />
| Secondary bootloader<br />
| U-Boot can be chainloaded from both /boot and /recovery partitions, though LG bootloader has some conflicts with U-Boot.<br />
|-<br />
| Y<br />
| Panel<br />
| Solomon SSD2825 bridge, Hitachi KOE TX13D100VM0EAA DSI panel, TI lm3533 backlight were all added into U-Boot. Panel is fully functional.<br />
|-<br />
| Y<br />
| eMMC<br />
| Re-partitioned to better fit generic setup. Can be mounted as mass storage on host PC.<br />
|-<br />
| Y<br />
| Boot kernel<br />
| Yes, and can be highly adjusted with '''extlinux.conf'''.<br />
|-<br />
| Y<br />
| Boot menu<br />
| Native u-boot bootmenu works perfectly fine. It can be called with pressing volume down button on boot.<br />
|-<br />
| Y<br />
| Power management<br />
| Offline charging and charging in u-boot both work and are hw configured. Both power off and reboot options work and are available in bootmenu. If no valid kernel is found phone will turn off.<br />
|-<br />
| Y<br />
| Fastboot<br />
| Fastboot option is available in bootmenu. Most functions should work fine.<br />
|-<br />
| P<br />
| Boot Android<br />
| Booting Android kernel can be performed only same way mainline kernel boots. Additionally it must not have '''CONFIG_TRUSTED_FOUNDATIONS = y''' and some additional small patches, it can be booted by u-boot.<br />
|-<br />
| Y<br />
|Self update<br />
|Self update option is implemented and write is done correctly. Bootloader file has to have name '''u-boot-dtb-tegra.bin''' and be placed on 1st partition of eMMC.<br />
|-<br />
|}<br />
<br />
== Gallery ==<br />
<gallery><br />
File:Vu-Mate.jpg|thumb|600px|<br />
File:Vu-Uboot.jpg|thumb|600px|<br />
File:Vu-Bootlogo.jpg|thumb|600px|<br />
File:Vu-simplefb.jpg|thumb|600px|<br />
File:Vu-benchmark.jpg|thumb|600px|<br />
</gallery><br />
<br />
== Serial console ==<br />
[[File:Vu-JTAG.jpg|thumb|mini|left|250px|Red arrow pointing to jtag]]<br />
[[File:Vu-schematic.png|thumb|mini|right|250px|JTAG schematics. Clickable]]<br />
LG Optimus Vu is an interesting device since it has factory soldered jtag directly on motherboard in pretty apposite and easily accessible place. To get to jtag you need only to take off back cover and plastic casing over motherboard. That is it, only one free socket is jtag. UART is UART-D (serial@70006300; 115200n8) and uses 3.3v.<br />
<br />
== See also ==<br />
* More about the device [https://en.wikipedia.org/wiki/LG_Optimus_Vu Wikipedia entry]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)&diff=37375ASUS Transformer Pad (TF701T) (asus-tf701t)2023-03-18T19:40:32Z<p>Clamor: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Transformer Pad (TF701T)<br />
| codename = asus-tf701t<br />
| image = File:asus_tf701t.jpg|200px<br />
| imagecaption = Asus TF701T in its dock, MATE desktop<br />
| releaseyear = 2013<br />
| originalsoftware = Android<br />
| originalversion = 4.2.2<br />
| extendedversion = 4.4.2<br />
| orginalkernel = 3.4.113<br />
| pmoskernel = mainline grate<br />
| chipset = Nvidia Tegra 4 (T114)<br />
| cpu = 1.9 GHz quad-core Cortex-A15<br />
| gpu = 72 core GeForce® GPU<br />
| storage = 32 GB<br />
| display = 2560x1600 LCD<br />
| memory = 2 GB<br />
| architecture = armv7<br />
| booting = no<br />
<!-- you can also use these lines if you need to:<br />
| whet_dhry = 0.0<br />
--><br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = P<br />
| status_flashing = Y<br />
| status_touch = N<br />
| status_screen = Y<br />
| status_wifi = N<br />
| status_xwayland = Y<br />
| status_fde = N<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = N<br />
| status_bluetooth = N<br />
| status_camera = N<br />
| status_gps = N<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = P<br />
| status_hdmidp = N<br />
| status_keyboard = N<br />
| status_touchpad = N<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = Y<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = P<br />
| status_uboot_secondary = N<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = N<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = N<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = N<br />
}}{{Based on SoC|Nvidia_Tegra_4_(tegra114)|Tegra 4}}<br />
<br />
== Contributors ==<br />
* [[user:Jenneron|Jenneron]]<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
* '''Fastboot''': Power on the device with both {{Button|Power}} and {{Button|Volume Down}} buttons.<br />
* '''APX''': Power on the device with both {{Button|Power}} and {{Button|Volume Up}} buttons.<br />
<br />
== Installation ==<br />
Follow [[Installation guide|Installation Guide]]. <br />
<br />
Note that system partition is only 2 GB, so you probably want to do <code>pmbootstrap flasher flash_rootfs --partition userdata</code>.<br />
<br />
== Hardware Support ==<br />
{|class="wikitable feature-colors"<br />
! style="width: 65px;" | Grate<br />
! style="width: 65px;" | Upstream<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
| Y<br />
|Booting<br />
|Boot partition is 8 MiBs so image size should be less than 8 MiBs.<br />
|-<br />
| Y<br />
| Y<br />
|Panel<br />
|Sharp LQ101R1SX03 panel.<br />
|-<br />
| N<br />
| N<br />
|HDMI output<br />
|Bindings are present in device tree, but it is broken for now.<br />
|-<br />
| N<br />
| N<br />
|Touchscreen<br />
|Used Raydium RM31081 touchscreen connected via SPI. There is no driver in mainline.<br />
|-<br />
| P<br />
| P<br />
|USB Gadget<br />
|Dies after suspend<br />
|-<br />
| P<br />
| P<br />
|USB Host<br />
|Full size USB 3.0 port and SD slot in dock. Works only in EHCI mode.<br />
|-<br />
| Y<br />
| Y<br />
|SD card<br />
|MicroSD in tablet.<br />
|-<br />
| N<br />
| N<br />
|Internal memory<br />
|HS200 eMMC<br />
|-<br />
| N<br />
| N<br />
|GPS<br />
|There is driver for [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] which is similar to our BCM4752.<br />
|-<br />
| N<br />
| N<br />
|WiFi<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| N<br />
| N<br />
|Bluetooth<br />
|Uses Azurewave BCM43341.<br />
|-<br />
| Y<br />
| Y<br />
| GPIO keys<br />
|There is 3 keys on GPIO: Power, Volume up, Volume down and LID sensor<br />
|-<br />
| P<br />
| N<br />
| Dock<br />
|Keyboard, Touchpad and battery. For now only battery works. It is handled via Nuvoton NPCE69ALA0DX embedded controller.<br />
|-<br />
| Y<br />
| N<br />
| Battery/Charger<br />
|Battery status works with asuspec.<br />
|-<br />
| Y<br />
| Y<br />
| PMIC<br />
|TPS65913B2B5<br />
|-<br />
| N<br />
| N<br />
|Sound<br />
|RT5639<br />
|-<br />
| N<br />
| N<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer. Not tested<br />
|-<br />
| Y<br />
| Y<br />
|Inertial measurement unit<br />
|Invensense mpu6500 accelerometer + gyroscope.<br />
|-<br />
| Y<br />
| Y<br />
|Magnetometer<br />
|Asahi Kasei ak(m)09911. Mount matrix is not tested<br />
|-<br />
| Y<br />
| Y<br />
|Light sensor<br />
|Dyna Image AL3320A.<br />
|-<br />
| N<br />
| N<br />
|Front camera<br />
|Aptina mi1040. VI is not supported yet.<br />
|-<br />
| N<br />
| N<br />
|Rear camera<br />
|OmniVision ov5693. VI is not supported yet. Driver is present, needs setup in device tree.<br />
|-<br />
| P<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== UART location ==<br />
<br />
==== UART pads on motherboard ====<br />
[[File:Tf701t_pad_uart.png|350px]]<br />
<br />
==== UART pads on dock board ====<br />
[[File:Tf701t_dock_uart.png|350px]]<br />
<br />
==== UART pads in connector ====<br />
[[File:Tf701t_connector_uart.png|350px]]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Eee_Pad_Transformer_(asus-tf101)&diff=37261ASUS Eee Pad Transformer (asus-tf101)2023-03-13T20:13:13Z<p>Clamor: /* Hardware status */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Eee Pad Transformer<br />
| codename = asus-tf101<br />
| image = File:ASUS Eee Pad Transformer.png<br />
| imagecaption = ASUS Eee Pad Transformer<br />
| releaseyear = 2011<br />
| originalsoftware = Android 3.0 on Linux 2.6.36<br />
| chipset = Nvidia Tegra 2 (T20)<br />
| cpu = Dual-core 1 GHz<br />
| gpu = ULP GeForce<br />
| storage = 16/32 GB<br />
| display = 1280x800 IPS<br />
| memory = 1 GB<br />
| architecture = armv7<br />
| whet_dhry = 442.8<br />
| status_usbnet = Y<br />
| status_flashing = P<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = P<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera = N<br />
| status_gps = P<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_nfc = -<br />
| status_usba = Y<br />
| status_hdmidp = Y<br />
| status_keyboard = Y<br />
| status_touchpad = Y<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = -<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = -<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = Y<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = Y<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = Y<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
| booting = yes<br />
}}<br />
<br />
== Basic Information ==<br />
<br />
The Eee Pad is a tablet computer with a 10.1" IPS multi-touch screen with a resolution of 1280 × 800 and an Nvidia Tegra 2 system-on-a-chip (SoC). It has an 802.11b/g/n Wi-Fi module.<br />
<br />
== Requirements ==<br />
<br />
The Eee Pad Transformer TF101 already comes with an unlocked bootloader, so no previous requirements are needed.<br />
<br />
A custom recovery such as TWRP is not even needed neither.<br />
<br />
== Mainline Informations ==<br />
=== Installation ===<br />
<br />
{{note| If you haven't ever customized your TF101, please go [https://wiki.postmarketos.org/wiki/ASUS_Eee_Pad_Transformer_(asus-tf101)#Nvflash_partitiontable.txt here] first. }}<br />
<br />
{{warning|'''This mainline installation does not work for TF101G or SL101 variants! Please use downstream installation instead or [https://youtu.be/L2oD4SKdMbo use this method].<br/><br />
We give first priority to U-Boot flashed devices than existing support to the old bootloader.<br />
In addition, these steps will format ALL the partitions of the TF101's partition table and then recreate them but with u-boot bootloader flashed on it, instead of the proprietary Asus Bootloader.<br/><br />
Make sure you backup your data before continuing. Note also that you won't be able to boot Android back easily.}}<br />
<br />
{{note|A Linux computer is required (virtual machine won't work). Furthermore, this installation process has not been verified by a TF101 SBK2 version but it should also work.}}<br />
<br />
Use the latest 9.2.1 firmware available, so upgrade if you need it [https://www.asus.com/us/supportonly/Eee%20Pad%20Transformer%20TF101/HelpDesk_BIOS/ here] ([https://web.archive.org/web/20211008161750/https://www.asus.com/us/supportonly/Eee%20Pad%20Transformer%20TF101/HelpDesk_BIOS/ mirror here]).<br />
<br />
You must know which [https://forum.xda-developers.com/t/how-to-find-my-sbk-version.1643002/ SBK version] your tablet has. For the asus-tf101, there are two versions only: sbkv1 and sbkv2.<br />
<br />
However there is a caveat: two proprietary tools are needed, Wheelie (although source code is available on [https://github.com/AndroidRoot/wheelie GitHub], some key features are missing, such as `--sbk` option) and Nvflash (proprietary Nvidia flash tool).<br />
So, a custom setup is available to get this working a little bit easier. <br />
<br />
1. Go through the pmbootstrap installation method: `pmbootstrap init`, select your device (asus -> tf101), the interface or UI (XFCE, MATE or LXQT are recommended), `pmbootstrap export` and flash the resulting image to your Micro SD Card.<br />
<br />
2. Now connect the device to the computer. This [https://imgur.com/a/mfiryeP USB to 40 Pin cable] is required.<br />
<br />
3. Put your device into APX mode: First of all, power off the device and then press the power button + volume up button for 3 to 5 seconds.<br />
<br />
4. Download U-Boot Tools for Asus Eee Pad Transformer TF101 [https://gitlab.com/antoni.aloytorrens/u-boot-tf101-tools/-/releases here]. Please read the release notes for instructions.<br />
<br />
* If you are unsure which SBK version you have, please try both flashing methods.<br />
<br />
{{warning|Do not unplug the USB under any circumstance.}}<br />
<br />
5. Some operations will be executed on the tablet. Please be patient, wait from 5 to 10 minutes. Formatting Partition 15 (UDA) can also take some time. In case you don't know the SBK version of your tablet, you will see some errors, or the device not booting at all. In that case, please try the other SBK version.<br />
<br />
Expected output (SBK1 example):<br />
<pre><br />
user@mycomputer:~$ ./uboot_sbkv1.sh <br />
Wheelie 0.1 - Preflight for nvflash.<br />
Copyright (c) 2011-2012 androidroot.mobi<br />
========================================<br />
<br />
Using SBK type 1.<br />
Using bootloader: 'bootloader.bin'.<br />
Using BCT: 'transformer.bct'.<br />
----------------------------------------<br />
<br />
[=] Chip UID: YourHardwareID<br />
[=] RCM Version: 0x20001<br />
<br />
[=] CPU Model: Tegra 2<br />
[=] Secure Boot Key Set: Yes<br />
[+] Sending BCT<br />
Sending file: 100 %<br />
[+] Sending ODMData 0x300D8011<br />
[+] Sending bootloader...<br />
Sending file: 100 %<br />
[!] Done - your device should now be ready for nvflash<br />
Nvflash started<br />
[resume mode]<br />
setting device: 2 3<br />
creating partition: BCT<br />
creating partition: PT<br />
creating partition: EBT<br />
creating partition: SOS<br />
creating partition: LNX<br />
creating partition: BAK<br />
creating partition: GP1<br />
creating partition: APP<br />
creating partition: CAC<br />
creating partition: MSC<br />
creating partition: USP<br />
creating partition: PER<br />
creating partition: YTU<br />
creating partition: UDA<br />
creating partition: GPT<br />
Formatting partition 2 BCT please wait.. done!<br />
Formatting partition 3 PT please wait.. done!<br />
Formatting partition 4 EBT please wait.. done!<br />
Formatting partition 5 SOS please wait.. done!<br />
Formatting partition 6 LNX please wait.. done!<br />
Formatting partition 7 BAK please wait.. done!<br />
Formatting partition 8 GP1 please wait.. done!<br />
Formatting partition 9 APP please wait.. done!<br />
Formatting partition 10 CAC please wait.. done!<br />
Formatting partition 11 MSC please wait.. done!<br />
Formatting partition 12 USP please wait.. done!<br />
Formatting partition 13 PER please wait.. done!<br />
Formatting partition 14 YTU please wait.. done!<br />
Formatting partition 15 UDA please wait.. done!<br />
Formatting partition 16 GPT please wait.. done!<br />
done!<br />
sending file: u-boot.bin<br />
- 565989/565989 bytes sent<br />
u-boot.bin sent successfully<br />
Nvflash started<br />
[resume mode]<br />
</pre><br />
<br />
8. Now press the power button for a few seconds to reboot the device. After that, disconnect the USB from the device. It should be booting PostmarketOS!<br />
<br />
=== WiFi and Bluetooth setup ===<br />
<br />
If, for any reason, the WiFi or Bluetooth connections are not detected properly on the device, you may need to do these additional steps:<br />
<br />
<pre><br />
$ sudo cp /lib/firmware/postmarketos/brcm/* /lib/firmware/brcm/<br />
</pre><br />
<br />
== Downstream informations ==<br />
=== Installation ===<br />
<br />
You have to flash a recovery like [https://twrp.me/asus/asustransformerTF101.html TWRP] before doing this.<br />
<br />
<pre><br />
$ pmbootstrap install<br />
$ pmbootstrap export<br />
</pre><br />
Now reboot the device in recovery<br />
<pre><br />
$ adb push /tmp/postmarketOS-export/boot.img-asus-tf101 /cache<br />
$ adb push /tmp/postmarketOS-export/asus-tf101.img /cache<br />
</pre><br />
<br />
The following should be executed within adb shell:<br />
<br />
<pre><br />
$ adb shell<br />
# dd if=/cache/boot.img-asus-tf101 of=/dev/block/mmcblk0p4<br />
# dd if=/cache/asus-tf101.img of=/dev/block/mmcblk0p1<br />
</pre><br />
<br />
=== WiFi setup ===<br />
<br />
WiFi is provided by the firmware-aosp-broadcom-wlan package. A very similar process can be found in https://wiki.postmarketos.org/wiki/Medion_Lifetab_S9714_(medion-kai)#How_bonsaiblue_made_wifi_work.<br />
<br />
<br />
If the package is not installed, install it. Then, rename firmware files for detection:<br />
<pre><br />
# mv /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcm4329.bin /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcmdhd.bin<br />
# mv /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcm4329_abg.bin /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcmdhd_abg.bin<br />
# mv /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcm4329_apsta.bin /lib/firmware/postmarketos/bcmdhd/bcm4329/fw_bcmdhd_apsta.bin</pre><br />
<br />
Now reboot your device and Wi-Fi will be detected properly.<br />
<br />
=== Bluetooth setup ===<br />
<br />
Bluetooth is provided by the bcm4329.hcd firmware file.<br />
It can be activated in downstream by some little hack that works for most bcm4329 and bcm4330 devices.<br />
You may need to build its source first: https://github.com/antonialoytorrens/brcm-patchram-plus<br />
<br />
Please follow these steps to get it working:<br />
<br />
<pre><br />
#!/bin/sh<br />
# Start brcm-patchram-plus for TF101<br />
<br />
rfkill unblock 0<br />
/usr/sbin/brcm_patchram_plus -d --patchram /lib/firmware/postmarketos/brcm/bcm4329.hcd --baudrate 921600 --bd_addr $(cat /lib/firmware/postmarketos/brcm/mac.txt) --enable_hci /dev/ttyHS2&<br />
</pre><br />
<br />
Where mac.txt is your MAC address. Works even if you generate it randomly, but it is still experimental and a work in progress. Sample [https://raw.githubusercontent.com/antonialoytorrens/TF101-linux-images/master/postmarketOS/bluetooth-firmware_asus-tf101/brcm/mac.txt here]<br />
<br />
See [https://gitlab.com/postmarketOS/pmaports/-/merge_requests/1724 here] for more information.<br />
<br />
== Hardware ==<br />
=== Hardware status ===<br />
Status for Mainline (M) and Downstream (D) kernels.<br />
{|class="wikitable feature-colors"<br />
! Status (M)<br />
! Status (D)<br />
! Hardware<br />
! Info (M)<br />
! Info (D)<br />
|-<br />
| Y<br />
| Y<br />
| Booting<br />
| colspan="2"|boot.img has restriction of approx 8MB, which is /boot partition size.<br />
|-<br />
| Y<br />
| Y<br />
| Panel<br />
| colspan="2"|AUO B101EW05 WXGA (1280x800) LCD IPS panel through LVDS controller. <br />
|-<br />
| Y<br />
| N<br />
| HDMI output<br />
|-<br />
| Y<br />
| Y<br />
| Touchscreen<br />
| colspan="2"|Used Atmel MXT1386 touchscreen.<br />
|-<br />
| Y<br />
| Y<br />
| USB<br />
| colspan="2"|One full size USB 2.0 in dock or via 40pin adapter.<br />
|-<br />
| Y<br />
| Y<br />
| SD Card<br />
| colspan="2"|MicroSD card and full sized SD card (recognized as USB drive) in dock. <br />
|-<br />
| Y<br />
| Y<br />
| eMMC<br />
| colspan="2"|Kingston KE4BT4B6A NAND Flash <br />
|-<br />
| P<br />
| N<br />
| GPS<br />
| colspan="2"|Broadcom GPS BCM4751 is used. Device tree has proper bindings but device itself has weak signal. <br />
|-<br />
| Y<br />
| Y<br />
| WiFi<br />
| colspan="2"|Azurewave AW-NH615 BCM4329. Wi-Fi should work out of the box. All needed stuff is included. <br />
|-<br />
| Y<br />
| N<br />
| GPIO keys<br />
| colspan="2"|There are 4 keys on GPIO: Power, Volume up, Volume down and LID sensor. <br />
|-<br />
| Y<br />
| Y<br />
| Dock Keyboard<br />
| colspan="2"|Dock has Nuvoton NPCE795LA0BX embedded controller which handles battery data, charging, leds, keyboard and touchpad. Driver of this EC is mainlined and is fully functional. Keyboard and Touchpad work. Alt Gr can be used for alternate multimedia keys instead of escape, fn keys, volumes and delete. Alt GR + Lock changes the default key mode.<br />
|-<br />
| Y<br />
| Y<br />
| Battery and Charger<br />
| colspan="2"|Driver is based on Texas Instruments bq20z75 SMBus Charge Controller driver. Charging and charge level of both batteries are shown correctly. <br />
|-<br />
| Y<br />
| N<br />
| PMIC<br />
| colspan="2"|TF101 uses Texas Instruments tps6586x PMIC. <br />
|-<br />
| Y<br />
| N<br />
| Sound<br />
| Kernel driver and tegra_wm8903 glue driver are present. ALSA UCM is configured. Audio through HDMI works. <br />
| Sound codec is WM8903<br />
|-<br />
| N<br />
| N<br />
| Voice processor<br />
| colspan="2"|Transformers use separate Fortemedia FM34NE voice processor. No mainline driver is available. Is used for voice processing and noise cancelling. Currently not used.<br />
|-<br />
| Y<br />
| N<br />
| Thermal sensor<br />
| colspan="2"|NCT1008 ON Semiconductor LM90 series thermometer. <br />
|-<br />
| Y<br />
| N<br />
| Orientation sensors<br />
| colspan="2"|Include Invensense mpu3050 gyroscope with Kionix KXTF9 accelerometer and Aichi AMI306 3-axis digital compass. <br />
|-<br />
| N<br />
| N<br />
| Light sensor<br />
| colspan="2"|Driver Dyna-Image AL3000. <br />
|-<br />
| N<br />
| N<br />
| Front/rear camera<br />
| colspan="2"|<br />
|}<br />
<br />
=== Partition Overview ===<br />
{|class="wikitable feature-colors"<br />
! #<br />
! Block Device<br />
! Name<br />
! Type<br />
|-<br />
|2<br />
|<br />
|BCT<br />
|Boot Config Table<br />
|-<br />
|3<br />
|<br />
|PT<br />
|Partition Table<br />
|-<br />
|4<br />
|<br />
|EBT<br />
|Bootloader<br />
|-<br />
|5<br />
|mmcblk0p9<br />
|SOS<br />
|Recovery OS kernel (e.g. TWRP)<br />
|-<br />
|6<br />
|mmcblk0p10<br />
|LNX<br />
|Current OS kernel (PostmarketOS or Android)<br />
|-<br />
|7<br />
|<br />
|BAK<br />
|Data<br />
|-<br />
|8<br />
|<br />
|GP1<br />
|Partition Table (Instance #1)<br />
|-<br />
|9<br />
|mmcblk0p1<br />
|APP<br />
|Android Apps Partition<br />
|-<br />
|10<br />
|mmcblk0p2<br />
|CAC<br />
|Cache partition<br />
|-<br />
|11<br />
|mmcblk0p3<br />
|MSC<br />
|Misc partition<br />
|-<br />
|12<br />
|mmcblk0p4<br />
|USP<br />
|Staging partition (here are stored blobs before flashing by Asus bootloader)<br />
|-<br />
|13<br />
|mmcblk0p5<br />
|PER<br />
|Persist partition (contains device specific files like mac and sensors calibrations)<br />
|-<br />
|14<br />
|mmcblk0p6<br />
|YTU<br />
|Data<br />
|-<br />
|15<br />
|mmcblk0p7<br />
|UDA<br />
|Android User Data Partition<br />
|-<br />
|16<br />
|<br />
|GPT<br />
|Partition Table (Instance #2)<br />
|-<br />
|}<br />
<br />
== Photos ==<br />
TF101 Booting (downstream):<br />
<br />
[[File:Boot_tf101.jpg|560px]]<br />
<br />
TF101 running Xfce user interface (downstream):<br />
<br />
[[File:Xfce_tf101.png|560px]]<br />
<br />
TF101 running Mate desktop:<br />
<br />
[[File:MATE_tf101.jpg|560px]]<br />
<br />
== Developer Info ==<br />
<br />
=== Testing U-Boot in RAM ===<br />
<br />
Nvflashing U-boot has its benefits: it acts as a temporary bootloader when booting Linux on TF101. The uboot file is stored in RAM instead. That way, you don't have to worry about flashing it permanently every time, only to test it.<br />
<br />
To perform this, put your tablet in APX mode, [https://github.com/antonialoytorrens/TF101-linux-images/raw/master/vendor/nvflash-sbk1/tf101-sbk1-nvflash.zip download the needed files] and type the following command (be aware this is for SBK1, for SBK2 you need to change the SBK keys) (not tested with SBK2, you can try this command anyway and [https://gitlab.com/postmarketOS/pmaports/-/issues report]):<br />
<pre><br />
$ ./nvflash --bct transformer.bct --setbct --configfile flash.cfg --bl u-boot.bin --odmdata 0x300d8011 --sbk 0x1682CCD8 0x8A1A43EA 0xA532EEB6 0xECFE1D98 --sync<br />
</pre><br />
<br />
Note that there is an u-boot.bin file already in the zip folder. Please replace it with your u-boot.bin file instead.<br />
<br />
=== Nvflash partitiontable.txt ===<br />
<br />
Nvflash can print your partition table configuration as a better setup for offset calculations, needed in U-Boot.<br />
<br />
To perform this, put your tablet in APX mode, [https://github.com/antonialoytorrens/TF101-linux-images/raw/master/vendor/nvflash-sbk1/tf101-sbk1-nvflash.zip download the needed files] and type the following command (be aware this is for SBK1, for SBK2 you need to change the SBK keys) (not tested with SBK2, you can try this command anyway and [https://gitlab.com/postmarketOS/pmaports/-/issues report]):<br />
<br />
<pre><br />
$ ./nvflash --bct transformer.bct --setbct --configfile flash.cfg --bl bootloader.bin --odmdata 0x300d8011 --sbk 0x1682CCD8 0x8A1A43EA 0xA532EEB6 0xECFE1D98 --sync<br />
$ ./nvflash --resume --getpartitiontable partitiontable.txt<br />
</pre><br />
<br />
After that, if you have followed all this guide, your partition table txt file should be exactly like this:<br />
<br />
{{note|If you haven't ever customized your TF101, which means it's your first time using this nvflash command and you don't have used any [https://forum.xda-developers.com/t/easyflasher-install-cwm-root-unbrick-in-one-click-all-tf101-nvflash.1688012/ One-Click-Unlock Tool or EasyFlasher], please [https://gitlab.com/postmarketOS/pmaports/-/issues report here] and attach partitiontable.txt file first before continuing with the installation.}}<br />
<br />
<pre><br />
PartitionId=2<br />
Name=BCT<br />
DeviceId=18<br />
StartSector=0<br />
NumSectors=1536<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=3<br />
Name=PT<br />
DeviceId=18<br />
StartSector=1536<br />
NumSectors=256<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=4<br />
Name=EBT<br />
DeviceId=18<br />
StartSector=1792<br />
NumSectors=2048<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=5<br />
Name=SOS<br />
DeviceId=18<br />
StartSector=3840<br />
NumSectors=2560<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=6<br />
Name=LNX<br />
DeviceId=18<br />
StartSector=6400<br />
NumSectors=4096<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=7<br />
Name=BAK<br />
DeviceId=18<br />
StartSector=10496<br />
NumSectors=2560<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=8<br />
Name=GP1<br />
DeviceId=18<br />
StartSector=13056<br />
NumSectors=512<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=9<br />
Name=APP<br />
DeviceId=18<br />
StartSector=13568<br />
NumSectors=262144<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=10<br />
Name=CAC<br />
DeviceId=18<br />
StartSector=275712<br />
NumSectors=271104<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=11<br />
Name=MSC<br />
DeviceId=18<br />
StartSector=546816<br />
NumSectors=1024<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=12<br />
Name=USP<br />
DeviceId=18<br />
StartSector=547840<br />
NumSectors=271104<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=13<br />
Name=PER<br />
DeviceId=18<br />
StartSector=818944<br />
NumSectors=2560<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=14<br />
Name=YTU<br />
DeviceId=18<br />
StartSector=821504<br />
NumSectors=256<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=15<br />
Name=UDA<br />
DeviceId=18<br />
StartSector=821760<br />
NumSectors=14808320<br />
BytesPerSector=2048<br />
<br />
<br />
PartitionId=16<br />
Name=GPT<br />
DeviceId=18<br />
StartSector=15630080<br />
NumSectors=256<br />
BytesPerSector=2048<br />
<br />
<br />
</pre><br />
<br />
== Community Info ==<br />
<br />
=== Contributors ===<br />
* CmdrWgls<br />
* rrooij<br />
* LongnoseRob <br />
* blacksoil<br />
* AAT596<br />
=== Users owning this device ===<br />
{{Device owners}}<br />
<br />
<br />
=== Links ===<br />
* [https://archive.org/details/asus-eee-pad-transformer-how-to-install-ubuntu-xda-developers Partition overview]<br />
* {{MR|1103}} initial PR<br />
* [[Nvidia Tegra 2 (tegra20)]]<br />
* [https://gitlab.com/antoni.aloytorrens/pmaports/-/tree/wip-tf101-pmaports WIP pmaports repository]<br />
* [https://github.com/grate-driver/linux/pull/23 Initial mainline tree for TF101, build mainline U-Boot from source]<br />
* [https://web.archive.org/web/20130301093959/http://androidroot.mobi/technical/tf-secure-boot-key/ Some notes about nvflash and APX mode]<br />
* [https://gitlab.com/postmarketOS/pmaports/-/issues/884 Some issues with Qt applications]<br />
<br />
=== Videos ===<br />
* [https://youtu.be/Rb8rVW_74w0 How to install Debian 11 Bullseye on the Asus Eee Pad Transformer TF101 (U-Boot Method) (TF101 SBKv1 and SBKv2 ONLY) (Preferred)]<br />
* [https://youtu.be/L2oD4SKdMbo How to install Debian 11 Bullseye on the Asus Eee Pad Transformer TF101 (Rootbind Method)].</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Pad_(asus-tf300t)&diff=37260ASUS Transformer Pad (asus-tf300t)2023-03-13T20:05:55Z<p>Clamor: /* Hardware status (mainline) */</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Transformer Pad<br />
| codename = asus-tf300t<br />
| image = File:ASUS Transformer Pad.jpg<br />
| imagecaption = ASUS Transformer Pad<br />
| releaseyear = 2012<br />
| originalsoftware = Android 4.0 on Linux 3.1<br />
| chipset = Nvidia Tegra 3 (T30L)<br />
| cpu = Quad-core 1.3 GHz Cortex-A9<br />
| gpu = NVIDIA ULP GeForce GPU 12 cores<br />
| storage = 16/32 GB<br />
| display = 1280x800 IPS<br />
| memory = 1 GB<br />
| architecture = armv7<br />
| booting = yes<br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = Y<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera = N<br />
| status_gps = P<br />
| status_nfc = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_usba = Y<br />
| status_hdmidp = Y<br />
| status_keyboard = Y<br />
| status_touchpad = Y<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = -<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = Y<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = Y<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = Y<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
| pmoskernel = mainline grate<br />
}}{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}<br />
<br />
== Contributors ==<br />
* osctobe (Michał Mirosław)<br />
* Clamor<br />
* Ion Agorria<br />
<br />
== Device owners ==<br />
{{Device owners}}<br />
<br />
== Variants ==<br />
* '''TF300T''' - regular wifi only tablet, currently has support both in pmaports and grate Linux kernel fork.<br />
* '''TF300TG''' - 3G version of TF300T with some slight differences. Modem is very close to Nexus 7 2012 cellular (tilapia).<br />
* '''TF300TL''' - LTE version of TF300T with differences similar to TF300TG. Uses Asus custom modem setup and doesn't have mainline driver for it.<br />
<br />
''Note: TF300TL has experimental support in [https://github.com/clamor95/linux/tree/master this grate fork]. TF300T and TF300TG are officially supported.''<br />
<br />
== Unlocking ==<br />
{{Note|This is only needed if you do not want to use U-boot}}<br />
The first step to do anything with the device is unlocking, with this device its done by sideloading [http://dlcdnet.asus.com/pub/ASUS/EeePAD/TF300T/Unlock_v8.rar the unlock apk from asus] and clicking a few buttons in the app. In case you get a network connection error, you will need to [https://forum.xda-developers.com/t/howto-unlock-tf700t-in-2020.4157143/ patch the unlocker].<br />
<br />
== Compiling a kernel ==<br />
=== Android kernel ===<br />
<br />
* 3.1 kernel based on ASUS sources with updates till Oreo support ([https://github.com/clamor95/morpheus_kernel_asus_tf201 Morpheus kernel])<br />
* 3.4 kernel as a part of Unlegacy Android Project ([https://github.com/clamor95/android_kernel_nvidia_tegra3 Unlegacy kernel])<br />
<br />
=== Mainline (Grate) ===<br />
<br />
* Baseline kernel sources on master: https://github.com/grate-driver/linux<br />
* Proper dts for TF300T is added<br />
* Version: 6.0.6<br />
* Status: Boots. Almost full support.<br />
<br />
== Installation ==<br />
=== How to enter flash modes ===<br />
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.<br />
<br />
=== Bootloader version ===<br />
You need bootloader version of '''10.6.1.27.5''' which is available in latest android ROM provided by Asus.<br />
<br />
=== Installation process ===<br />
{{note| The bootloader doesn't handle flashing the boot and userdata partition correctly, the official firmware package flashes an "Android blob" to the staging partition with fastboot which triggers an flashing screen on the tablet which copies the data to the correct partitions. pmbootstrap has tools to pack and flash kernel correctly, no worries!}}<br />
<br />
Preparing rootfs and flashing kernel:<br />
<syntaxhighlight lang="shell" line='line'><br />
$ pmbootstrap init<br />
$ pmbootstrap install<br />
$ pmbootstrap flasher flash_kernel<br />
</syntaxhighlight><br />
<br />
==== Flashing rootfs to eMMC ====<br />
{{warning|Preferable way of installing pmOS is installing on microSD card!}}<br />
{{note|This may change size of your data partition. You can fix it by resizing partition in TWRP before flashing Android.}}<br />
<br />
'''You should proceed very carefully here.'''<br />
<br />
Rootfs should be flashed to the /userdata partition.<br />
<br />
Prerequisites: TWRP, at least version 3.3.1-0, binaries for '''10.6.1.27.5''' bootloader are [https://twrp.me/asus/asusTF300T.html here].<br />
<br />
First, start TWRP (go to bootloader and choose RCK) and then continue with these instructions<br />
<syntaxhighlight lang="shell" line='line'><br />
(computer) $ pmbootstrap export<br />
(computer) $ adb shell<br />
(twrp) $ umount /dev/block/mmcblk0p8 <- unmounting /data partition<br />
(computer again) $ adb push /tmp/postmarketOS-export/asus-tf201.img /dev/block/mmcblk0p8 <- to flash rootfs to /data partition - Make sure to use the correct model number (i.e. `asus-tf300tg.img` or `asus-tf300t.img`)<br />
</syntaxhighlight><br />
<br />
== Hardware status (mainline) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
|Booting<br />
|boot.img has restriction of approx 8MB, which is /boot partition size.<br />
|-<br />
| Y<br />
|Bootloader<br />
|Open source bootloader [https://github.com/clamor-s/u-boot U-Boot] is available as alternative for stock Asus bootloader and can replace it. U-Boot can not boot downstream kernel due to TrustZone problem.<br />
|-<br />
| Y<br />
|Panel<br />
|Innolux G101ICE-L01 WXGA (1280x800) LCD IPS panel through LVDS controller.<br />
|-<br />
| Y<br />
|HDMI output<br />
|HDMI works, but maximum output is 1080p due to Tegra 3 limitations.<br />
|-<br />
| Y<br />
|Touchscreen<br />
|Used Elantech EKTH1036 touchscreen.<br />
|-<br />
| Y<br />
|USB<br />
|One full size USB 2.0 in dock or via 40pin adapter.<br />
|-<br />
| Y<br />
|SD cards<br />
|MicroSD card and full sized SD card (recognized as USB drive) in dock.<br />
|-<br />
| Y<br />
|Internal memory<br />
|Hynix emmc, works.<br />
|-<br />
| P<br />
|GPS<br />
|Broadcom GPS [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] is used. Needs more attention.<br />
|-<br />
| Y<br />
|WiFi<br />
|Uses Azurewave AW-NH615 BCM4329. Wi-Fi works and firmwares are included.<br />
|-<br />
| Y<br />
|Bluetooth<br />
|Uses Azurewave AW-NH615 BCM4329B1. Works fine out of the box.<br />
|-<br />
| Y<br />
| GPIO keys<br />
|There is 3 keys on GPIO: Power, Volume up, Volume down.<br />
Additionally GPIO-keys like are LID sensor and Audio dock line-out detect.<br />
|-<br />
| Y<br />
| Dock Keyboard<br />
| Both pad and dock have Nuvoton NPCE795LA0BX embedded controller which handles battery data, charging, leds, keyboard and touchpad. Driver of this EC is mainlined and is fully functional. Keyboard and Touchpad work. <br />
Alt Gr can be used for alternate multimedia keys instead of escape, fn keys, volumes and delete. Alt GR + Lock changes the default key mode.<br />
|-<br />
| Y<br />
| Battery/Charger<br />
|Driver is based on Texas Instruments bq24725 SMBus Charge Controller driver and GPIO charger but works through pad/dock EC. Charging and charge level of both batteries are shown correctly.<br />
|-<br />
| Y<br />
| PMIC<br />
|Transformers use Texas Instruments TPS659110 PMIC and TPS62361 core regulator.<br />
|-<br />
| Y<br />
|Sound<br />
|Sound codec is WM8903 on TF300T and RT5631 on cellular models. Kernel driver and tegra_wm8903/tegra_rt5631 glue drivers are present. UCMs are ready. Audio through HDMI works.<br />
|-<br />
| Y<br />
|Voice processor<br />
|Transformers use separate Fortemedia FM34NE voice processor. Mainline driver prototype is available but kernel lacks way to get mic status (dsp is internal mic dependent), set into constant bypass mode.<br />
|-<br />
| Y<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer.<br />
|-<br />
| Y<br />
|Orientation sensors<br />
|Include Invensense mpu3050 gyroscope with Kionix KXTF9 accelerometer and Aichi AMI306 3-axis digital compass.<br />
|-<br />
| Y<br />
|Light sensor<br />
|Driver Dyna-Image AL3010. Brightness regulation [https://floss.social/@okias/103371284828595026 works], install iio-sensor-proxy . It's slightly [https://gitlab.com/alpine-mobile/pmaports/issues/3 oversensitive].<br />
|-<br />
| N<br />
|Front camera<br />
|Aptina mi1040 camera sensor. Grate kernel doesn't support VI yet. Mainline linux driver exists (authored by Okias) and proper nodes are added to device tree.<br />
|-<br />
| N<br />
|Rear camera<br />
|Is not planned to be added to support list. If you have such a need, development is welcome. Mainline driver doesn't exist.<br />
|-<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
| N<br />
|Modem<br />
|TF300TG uses XMM6260. TF300TL in downstream uses some Asus implementation of modem driver. Contributions are welcome, no work done yet.<br />
|-<br />
|}<br />
<br />
== Usability ==<br />
=== Desktop environment ===<br />
Since 3D acceleration is not available yet, all DE which use it will be painfully slow and laggy.<br />
<br />
Currently [https://wiki.postmarketos.org/wiki/Xfce4 xfce4] or [https://wiki.postmarketos.org/wiki/MATE mate] are recommended.<br />
<br />
== U-Boot ==<br />
{{Warning|This part is HIGHLY EXPERIMENTAL! DO NOT USE THIS IF YOU DO NOT KNOW WHAT YOU ARE DOING.}}<br />
<br />
{{note|Further procedure needs pre-made nvflash. Files blob.bin and bricksave.img are only thing that will save you from full brick and allow replace/restore Asus bootloader.}}<br />
<br />
=== Installing PMOS with U-Boot on eMMC ===<br />
1. Primary, we need to compile a u-boot on legacy branch:<br />
<source lang="shell-session"><br />
$ git clone https://github.com/clamor-s/u-boot -b legacy<br />
$ cd ~/legacy<br />
$ export CROSS_COMPILE=arm-linux-gnueabi-<br />
$ make transformer_t30_defconfig tf300tg.config # Make sure to use the correct model number<br />
$ make all<br />
</source><br />
Copy '''u-boot-dtb-tegra.bin''' file to nvflash folder. <br />
Now, flash new bootloader with nvflash tool. Go to nvflash folder and do (Make sure to flash to EBT partition):<br />
<source lang="shell-session"><br />
$ sudo ./wheelie --blob blob.bin<br />
$ sudo ./nvflash --resume --download 4 u-boot-dtb-tegra.bin<br />
</source><br />
<br />
2. Secondary, during the Installation process add --split option then export:<br />
<source lang="shell-session"><br />
$ pmbootstrap pull<br />
$ pmbootstarp init<br />
$ pmbootstrap install --split # --fde (optional)<br />
$ pmbootstrap export<br />
</source><br />
<br />
3. Finally, set /boot partition:<br />
Mount pm_boot, copy dtb from dtbs folder to root directory (NOT rootfs), make uInitrd:<br />
<source lang="shell-session"><br />
$ sudo mount /tmp/postmarketOS-export/asus-tf300tg-boot.img /mnt/tmp/<br />
$ cd /mnt/tmp/<br />
$ sudo cp /mnt/tmp/dtbs/tegra30-asus-tf300tg.dtb /mnt/tmp/<br />
$ sudo mkimage -n "Ramdisk Image" -A arm -O linux -T ramdisk -C gzip -d initramfs uInitrd<br />
$ sudo umount /mnt/tmp<br />
</source><br />
Go to nvflash folder and flash /root and /boot to tablet (Make sure to flash /root to UDA and /boot to APP):<br />
<source lang="shell-session"><br />
$ sudo ./wheelie --blob blob.bin<br />
$ sudo ./nvflash --resume --download 17 /tmp/postmarketOS-export/asus-tf300tg-root.img<br />
$ sudo ./wheelie --blob blob.bin<br />
$ sudo ./nvflash --resume --download 10 /tmp/postmarketOS-export/asus-tf300tg-boot.img<br />
</source><br />
<br />
=== Issue with rootfs size ===<br />
When install with --fde option (Maybe without encryption issue the same. It's not tested yet), the rootfs size less than Data partition on tablet. To fix it, we'll need sdcard as Live boot (just install PMOS on it). Load from sdcard, unlock crypt_LUKS and do:<br />
<source lang="shell-session"><br />
$ sudo parted /dev/mapper/luks-xxxxx<br />
$ print all # Look at max size partition<br />
(parted) resizepart 1 <max size partition><br />
</source><br />
Then lock crypt_LUKS and reboot to eMMC. The rootfs size must to be changed.<br />
<br />
== Disassembly ==<br />
=== Dock ===<br />
* Remove 2 torx screws on the bottom<br />
* Remove 4 Philips screws under the glued pads on the bottom<br />
* Remove 3 Philips screws near the mouse buttons. Be careful with removing and adding back the top plastic piece, it has small clips<br />
<br />
=== Tablet ===<br />
* [https://www.ifixit.com/Guide/Disassembling+Asus+Transformer+Pad+TF300/11794 See iFixit]<br />
<br />
== See also ==<br />
* Asus Transformer device family on Tegra 3 includes also [[ASUS_Transformer_Prime_(asus-tf201)|Transformer Prime TF201]] and [[Asus_Transformer_Pad_Infinity_TF700T_(asus-tf700t)|Transformer Pad Infinity TF700T]]<br />
* [https://rere.qmqm.pl/git/?p=linux;a=shortlog;h=refs/heads/tf300t Michał Mirosław latest kernel]<br />
* [https://github.com/jonty-comp/pmbootstrap/tree/device-asus-tf300t jonty-comp's pld kernel] [https://github.com/postmarketOS/pmbootstrap/tree/device-asus-tf300t jonty-comp's old pmbootstrap]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Pad_(asus-tf300t)&diff=37259ASUS Transformer Pad (asus-tf300t)2023-03-13T20:04:42Z<p>Clamor: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Transformer Pad<br />
| codename = asus-tf300t<br />
| image = File:ASUS Transformer Pad.jpg<br />
| imagecaption = ASUS Transformer Pad<br />
| releaseyear = 2012<br />
| originalsoftware = Android 4.0 on Linux 3.1<br />
| chipset = Nvidia Tegra 3 (T30L)<br />
| cpu = Quad-core 1.3 GHz Cortex-A9<br />
| gpu = NVIDIA ULP GeForce GPU 12 cores<br />
| storage = 16/32 GB<br />
| display = 1280x800 IPS<br />
| memory = 1 GB<br />
| architecture = armv7<br />
| booting = yes<br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = Y<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera = N<br />
| status_gps = P<br />
| status_nfc = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_usba = Y<br />
| status_hdmidp = Y<br />
| status_keyboard = Y<br />
| status_touchpad = Y<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = -<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = Y<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = Y<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = Y<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
| pmoskernel = mainline grate<br />
}}{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}<br />
<br />
== Contributors ==<br />
* osctobe (Michał Mirosław)<br />
* Clamor<br />
* Ion Agorria<br />
<br />
== Device owners ==<br />
{{Device owners}}<br />
<br />
== Variants ==<br />
* '''TF300T''' - regular wifi only tablet, currently has support both in pmaports and grate Linux kernel fork.<br />
* '''TF300TG''' - 3G version of TF300T with some slight differences. Modem is very close to Nexus 7 2012 cellular (tilapia).<br />
* '''TF300TL''' - LTE version of TF300T with differences similar to TF300TG. Uses Asus custom modem setup and doesn't have mainline driver for it.<br />
<br />
''Note: TF300TL has experimental support in [https://github.com/clamor95/linux/tree/master this grate fork]. TF300T and TF300TG are officially supported.''<br />
<br />
== Unlocking ==<br />
{{Note|This is only needed if you do not want to use U-boot}}<br />
The first step to do anything with the device is unlocking, with this device its done by sideloading [http://dlcdnet.asus.com/pub/ASUS/EeePAD/TF300T/Unlock_v8.rar the unlock apk from asus] and clicking a few buttons in the app. In case you get a network connection error, you will need to [https://forum.xda-developers.com/t/howto-unlock-tf700t-in-2020.4157143/ patch the unlocker].<br />
<br />
== Compiling a kernel ==<br />
=== Android kernel ===<br />
<br />
* 3.1 kernel based on ASUS sources with updates till Oreo support ([https://github.com/clamor95/morpheus_kernel_asus_tf201 Morpheus kernel])<br />
* 3.4 kernel as a part of Unlegacy Android Project ([https://github.com/clamor95/android_kernel_nvidia_tegra3 Unlegacy kernel])<br />
<br />
=== Mainline (Grate) ===<br />
<br />
* Baseline kernel sources on master: https://github.com/grate-driver/linux<br />
* Proper dts for TF300T is added<br />
* Version: 6.0.6<br />
* Status: Boots. Almost full support.<br />
<br />
== Installation ==<br />
=== How to enter flash modes ===<br />
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.<br />
<br />
=== Bootloader version ===<br />
You need bootloader version of '''10.6.1.27.5''' which is available in latest android ROM provided by Asus.<br />
<br />
=== Installation process ===<br />
{{note| The bootloader doesn't handle flashing the boot and userdata partition correctly, the official firmware package flashes an "Android blob" to the staging partition with fastboot which triggers an flashing screen on the tablet which copies the data to the correct partitions. pmbootstrap has tools to pack and flash kernel correctly, no worries!}}<br />
<br />
Preparing rootfs and flashing kernel:<br />
<syntaxhighlight lang="shell" line='line'><br />
$ pmbootstrap init<br />
$ pmbootstrap install<br />
$ pmbootstrap flasher flash_kernel<br />
</syntaxhighlight><br />
<br />
==== Flashing rootfs to eMMC ====<br />
{{warning|Preferable way of installing pmOS is installing on microSD card!}}<br />
{{note|This may change size of your data partition. You can fix it by resizing partition in TWRP before flashing Android.}}<br />
<br />
'''You should proceed very carefully here.'''<br />
<br />
Rootfs should be flashed to the /userdata partition.<br />
<br />
Prerequisites: TWRP, at least version 3.3.1-0, binaries for '''10.6.1.27.5''' bootloader are [https://twrp.me/asus/asusTF300T.html here].<br />
<br />
First, start TWRP (go to bootloader and choose RCK) and then continue with these instructions<br />
<syntaxhighlight lang="shell" line='line'><br />
(computer) $ pmbootstrap export<br />
(computer) $ adb shell<br />
(twrp) $ umount /dev/block/mmcblk0p8 <- unmounting /data partition<br />
(computer again) $ adb push /tmp/postmarketOS-export/asus-tf201.img /dev/block/mmcblk0p8 <- to flash rootfs to /data partition - Make sure to use the correct model number (i.e. `asus-tf300tg.img` or `asus-tf300t.img`)<br />
</syntaxhighlight><br />
<br />
== Hardware status (mainline) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
|Booting<br />
|boot.img has restriction of approx 8MB, which is /boot partition size.<br />
|-<br />
| Y<br />
|Bootloader<br />
|Open source bootloader [https://github.com/clamor-s/u-boot U-Boot] is available as alternative for stock Asus bootloader and can replace it. U-Boot can not boot downstream kernel due to TrustZone problem.<br />
|-<br />
| Y<br />
|Panel<br />
|Innolux G101ICE-L01 WXGA (1280x800) LCD IPS panel through LVDS controller.<br />
|-<br />
| Y<br />
|HDMI output<br />
|HDMI works, but maximum output is 1080p due to Tegra 3 limitations.<br />
|-<br />
| Y<br />
|Touchscreen<br />
|Used Elantech EKTH1036 touchscreen.<br />
|-<br />
| Y<br />
|USB<br />
|One full size USB 2.0 in dock or via 40pin adapter.<br />
|-<br />
| Y<br />
|SD cards<br />
|MicroSD card and full sized SD card (recognized as USB drive) in dock.<br />
|-<br />
| Y<br />
|Internal memory<br />
|Hynix emmc, works.<br />
|-<br />
| P<br />
|GPS<br />
|Broadcom GPS [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] is used. Needs more attention.<br />
|-<br />
| Y<br />
|WiFi<br />
|Uses Azurewave AW-NH615 BCM4329. Wi-Fi works and firmwares are included.<br />
|-<br />
| Y<br />
|Bluetooth<br />
|Uses Azurewave AW-NH615 BCM4329B1. Works fine out of the box.<br />
|-<br />
| Y<br />
| GPIO keys<br />
|There is 3 keys on GPIO: Power, Volume up, Volume down.<br />
Additionally GPIO-keys like are LID sensor and Audio dock line-out detect.<br />
|-<br />
| Y<br />
| Dock Keyboard<br />
| Both pad and dock have Nuvoton NPCE795LA0BX embedded controller which handles battery data, charging, leds, keyboard and touchpad. Driver of this EC is mainlined and is fully functional. Keyboard and Touchpad work. <br />
Alt Gr can be used for alternate multimedia keys instead of escape, fn keys, volumes and delete. Alt GR + Lock changes the default key mode.<br />
|-<br />
| Y<br />
| Battery/Charger<br />
|Driver is based on Texas Instruments bq24725 SMBus Charge Controller driver and GPIO charger but works through pad/dock EC. Charging and charge level of both batteries are shown correctly.<br />
|-<br />
| Y<br />
| PMIC<br />
|Transformers use Texas Instruments TPS659110 PMIC and TPS62361 core regulator.<br />
|-<br />
| Y<br />
|Sound<br />
|Sound codec is WM8903 on TF300T and RT5631 on cellular models. Kernel driver and tegra_wm8903/tegra_rt5631 glue drivers are present. Further ALSA configuration is needed. Audio through HDMI works.<br />
|-<br />
| Y<br />
|Voice processor<br />
|Transformers use separate Fortemedia FM34NE voice processor. Mainline driver prototype is available but kernel lacks way to get mic status (dsp is internal mic dependent), set into constant bypass mode.<br />
|-<br />
| Y<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer.<br />
|-<br />
| Y<br />
|Orientation sensors<br />
|Include Invensense mpu3050 gyroscope with Kionix KXTF9 accelerometer and Aichi AMI306 3-axis digital compass.<br />
|-<br />
| Y<br />
|Light sensor<br />
|Driver Dyna-Image AL3010. Brightness regulation [https://floss.social/@okias/103371284828595026 works], install iio-sensor-proxy . It's slightly [https://gitlab.com/alpine-mobile/pmaports/issues/3 oversensitive].<br />
|-<br />
| N<br />
|Front camera<br />
|Aptina mi1040 camera sensor. Grate kernel doesn't support VI yet. Mainline linux driver exists (authored by Okias) and proper nodes are added to device tree.<br />
|-<br />
| N<br />
|Rear camera<br />
|Is not planned to be added to support list. If you have such a need, development is welcome. Mainline driver doesn't exist.<br />
|-<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
| N<br />
|Modem<br />
|TF300TG uses XMM6260. TF300TL in downstream uses some Asus implementation of modem driver. Contributions are welcome, no work done yet.<br />
|-<br />
|}<br />
<br />
== Usability ==<br />
=== Desktop environment ===<br />
Since 3D acceleration is not available yet, all DE which use it will be painfully slow and laggy.<br />
<br />
Currently [https://wiki.postmarketos.org/wiki/Xfce4 xfce4] or [https://wiki.postmarketos.org/wiki/MATE mate] are recommended.<br />
<br />
== U-Boot ==<br />
{{Warning|This part is HIGHLY EXPERIMENTAL! DO NOT USE THIS IF YOU DO NOT KNOW WHAT YOU ARE DOING.}}<br />
<br />
{{note|Further procedure needs pre-made nvflash. Files blob.bin and bricksave.img are only thing that will save you from full brick and allow replace/restore Asus bootloader.}}<br />
<br />
=== Installing PMOS with U-Boot on eMMC ===<br />
1. Primary, we need to compile a u-boot on legacy branch:<br />
<source lang="shell-session"><br />
$ git clone https://github.com/clamor-s/u-boot -b legacy<br />
$ cd ~/legacy<br />
$ export CROSS_COMPILE=arm-linux-gnueabi-<br />
$ make transformer_t30_defconfig tf300tg.config # Make sure to use the correct model number<br />
$ make all<br />
</source><br />
Copy '''u-boot-dtb-tegra.bin''' file to nvflash folder. <br />
Now, flash new bootloader with nvflash tool. Go to nvflash folder and do (Make sure to flash to EBT partition):<br />
<source lang="shell-session"><br />
$ sudo ./wheelie --blob blob.bin<br />
$ sudo ./nvflash --resume --download 4 u-boot-dtb-tegra.bin<br />
</source><br />
<br />
2. Secondary, during the Installation process add --split option then export:<br />
<source lang="shell-session"><br />
$ pmbootstrap pull<br />
$ pmbootstarp init<br />
$ pmbootstrap install --split # --fde (optional)<br />
$ pmbootstrap export<br />
</source><br />
<br />
3. Finally, set /boot partition:<br />
Mount pm_boot, copy dtb from dtbs folder to root directory (NOT rootfs), make uInitrd:<br />
<source lang="shell-session"><br />
$ sudo mount /tmp/postmarketOS-export/asus-tf300tg-boot.img /mnt/tmp/<br />
$ cd /mnt/tmp/<br />
$ sudo cp /mnt/tmp/dtbs/tegra30-asus-tf300tg.dtb /mnt/tmp/<br />
$ sudo mkimage -n "Ramdisk Image" -A arm -O linux -T ramdisk -C gzip -d initramfs uInitrd<br />
$ sudo umount /mnt/tmp<br />
</source><br />
Go to nvflash folder and flash /root and /boot to tablet (Make sure to flash /root to UDA and /boot to APP):<br />
<source lang="shell-session"><br />
$ sudo ./wheelie --blob blob.bin<br />
$ sudo ./nvflash --resume --download 17 /tmp/postmarketOS-export/asus-tf300tg-root.img<br />
$ sudo ./wheelie --blob blob.bin<br />
$ sudo ./nvflash --resume --download 10 /tmp/postmarketOS-export/asus-tf300tg-boot.img<br />
</source><br />
<br />
=== Issue with rootfs size ===<br />
When install with --fde option (Maybe without encryption issue the same. It's not tested yet), the rootfs size less than Data partition on tablet. To fix it, we'll need sdcard as Live boot (just install PMOS on it). Load from sdcard, unlock crypt_LUKS and do:<br />
<source lang="shell-session"><br />
$ sudo parted /dev/mapper/luks-xxxxx<br />
$ print all # Look at max size partition<br />
(parted) resizepart 1 <max size partition><br />
</source><br />
Then lock crypt_LUKS and reboot to eMMC. The rootfs size must to be changed.<br />
<br />
== Disassembly ==<br />
=== Dock ===<br />
* Remove 2 torx screws on the bottom<br />
* Remove 4 Philips screws under the glued pads on the bottom<br />
* Remove 3 Philips screws near the mouse buttons. Be careful with removing and adding back the top plastic piece, it has small clips<br />
<br />
=== Tablet ===<br />
* [https://www.ifixit.com/Guide/Disassembling+Asus+Transformer+Pad+TF300/11794 See iFixit]<br />
<br />
== See also ==<br />
* Asus Transformer device family on Tegra 3 includes also [[ASUS_Transformer_Prime_(asus-tf201)|Transformer Prime TF201]] and [[Asus_Transformer_Pad_Infinity_TF700T_(asus-tf700t)|Transformer Pad Infinity TF700T]]<br />
* [https://rere.qmqm.pl/git/?p=linux;a=shortlog;h=refs/heads/tf300t Michał Mirosław latest kernel]<br />
* [https://github.com/jonty-comp/pmbootstrap/tree/device-asus-tf300t jonty-comp's pld kernel] [https://github.com/postmarketOS/pmbootstrap/tree/device-asus-tf300t jonty-comp's old pmbootstrap]</div>Clamorhttps://wiki.postmarketos.org/index.php?title=User:Clamor&diff=37214User:Clamor2023-03-13T10:15:10Z<p>Clamor: </p>
<hr />
<div><div style="float: right;"><br />
{{User ports|7}} <!-- tf201, tf300t, f300tg, tf700t, chagall, p895 are already in; tf300tl - need a tester --><br />
{{User mainline|11}} <!-- tf101, tf201, tf300t, tf300tg, tf700t, chagall are in linux directly; tf600t, tf300tl, p1801-t and p895 in grate; sl101 and p880 are WIP --><br />
{{User GitLab|clamor95}}<br />
</div><br />
<br />
Usually I am re-writing some downstream crappy code into more modern looking crappy code.<br />
<br />
Have big experience with nVidia Tegra SoC, especially with older one (T20/T30/T114).<br />
<br />
Can be found in telegram: [https://t.me/Clamor_S Clamor]<br />
<br />
== Owns Devices ==<br />
{{My devices}}<br />
{{Owns device|Google_Nexus_5_(lg-hammerhead)|Running Unlegacy Android Project Oreo ROM}}<br />
{{Owns device|Google_Nexus_7_2013_(asus-flo)|Running Unlegacy Android Project Oreo ROM}}<br />
{{Owns device|Google_Nexus_7_2012_(asus-grouper)| Unlegacy Android Project M ROM }}<br />
{{Owns device|ASUS_Transformer_Prime_(asus-tf201)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|ASUS_Transformer_Pad_(asus-tf300t)|pmOS with Grate kernel and U-Boot}}<br />
{{Owns device|ASUS_Transformer_Pad_(TF701T)_(asus-tf701t)|midway}}<br />
{{Owns device|HTC_HD2_(htc-leo)|Runs CM 11 by macs18max}}<br />
{{Owns device|Xiaomi_Poco_F1_(xiaomi-beryllium)|Tianma panel model}}<br />
{{Owns device|HTC_One_X_(htc-endeavoru)|HTC why are you such an assholes?}}<br />
{{Owns device|LG_Optimus_Vu_(lg-p895)|pmOS with Grate kernel and U-Boot}}</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Prime_(asus-tf201)&diff=36878ASUS Transformer Prime (asus-tf201)2023-03-05T16:33:06Z<p>Clamor: </p>
<hr />
<div>[[Category:Devices with known UART pinout]]<br />
{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Eee Pad Transformer Prime<br />
| codename = asus-tf201<br />
| image = File:Tf201-pmos.jpg<br />
| imagecaption = <br />
| releaseyear = 2011<br />
| originalsoftware = Android<br />
| originalversion = 3.2<br />
| extendedversion = 4.1<br />
| orginalkernel = 3.1.10<br />
| chipset = Nvidia Tegra 3 (T30)<br />
| cpu = Quad-core 1.4 GHz Cortex-A9<br />
| gpu = NVIDIA ULP GeForce GPU 12 cores<br />
| storage = 32/64 GB<br />
| display = 1280x800 Super IPS+ LCD<br />
| memory = 1 GB<br />
| architecture = armv7<br />
| booting = yes<br />
| whet_dhry = 1208.1<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or "" (blank) - for untested or unknown --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = Y<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera = N<br />
| status_gps = -<br />
| status_nfc = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_usba = Y<br />
| status_hdmidp = Y<br />
| status_keyboard = Y<br />
| status_touchpad = Y<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = -<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = Y<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = Y<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = Y<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
| pmoskernel = mainline grate<br />
}}{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}<br />
<br />
== Contributors ==<br />
* Clamor<br />
* Ion Agorria<br />
<br />
=== Users owning this device ===<br />
{{Device owners}}<br />
<br />
== Unlocking ==<br />
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 [https://dlcdnets.asus.com/pub/ASUS/EeePAD/TF201/UnLock_Device_App_V6.apk the ASUS support page].<br />
==== Bootloader unlock fails with Unknown error ====<br />
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.<br />
<br />
== Kernel status ==<br />
=== Android kernel ===<br />
<br />
* 3.1 kernel based on ASUS sources with updates till Oreo support ([https://github.com/clamor95/morpheus_kernel_asus_tf201 Morpheus kernel])<br />
* 3.4 kernel as a part of Unlegacy Android Project ([https://github.com/clamor95/android_kernel_nvidia_tegra3 Unlegacy kernel])<br />
<br />
=== Mainline (Grate) ===<br />
<br />
* Baseline kernel sources on master: https://github.com/grate-driver/linux<br />
* Proper dts for TF201 is added<br />
* Version: 6.1.0-stable<br />
* Status: Boots. Almost full support.<br />
<br />
== Installation ==<br />
=== How to enter flash modes ===<br />
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.<br />
<br />
=== Bootloader version ===<br />
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 [https://github.com/clamor95/android_device_unlegacy_recovery/tree/repartition/transformer bootloader packages].<br />
<br />
=== Installation process ===<br />
{{note| The bootloader doesn't handle flashing the boot and userdata partition correctly, the official firmware package flashes an "Android blob" to the staging partition with fastboot which triggers an flashing screen on the tablet which copies the data to the correct partitions. pmbootstrap has tools to pack and flash kernel correctly, no worries!}}<br />
<br />
Preparing rootfs and flashing kernel:<br />
<source lang="shell-session"><br />
$ pmbootstrap init<br />
$ pmbootstrap install<br />
$ pmbootstrap flasher flash_kernel<br />
</source><br />
<br />
==== Flashing rootfs to eMMC ====<br />
{{warning|Preferable way of installing pmOS is installing on microSD card!}}<br />
{{note|This may change size of your data partition. You can fix it by resizing partition in TWRP before flashing Android.}}<br />
<br />
'''You should proceed very carefully here.'''<br />
<br />
Rootfs should be flashed to the /userdata partition.<br />
<br />
Prerequisites: TWRP, at least version 3.3.1-0, binaries for '''10.6.1.27.5''' bootloader are [https://twrp.me/asus/asusTF300T.html here].<br />
<br />
First, start TWRP (go to bootloader and choose RCK) and then continue with these instructions<br />
<source lang="shell-session"><br />
$ pmbootstrap export<br />
$ adb shell umount /dev/block/mmcblk0p8<br />
$ adb push /tmp/postmarketOS-export/asus-tf201.img /dev/block/mmcblk0p8<br />
</source><br />
<br />
== Hardware status (mainline) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
|Booting<br />
|boot.img has restriction of approx 8MB, which is /boot partition size.<br />
|-<br />
| Y<br />
|Bootloader<br />
|Open source bootloader [https://github.com/clamor-s/u-boot U-Boot] is available as alternative for stock Asus bootloader and can replace it. U-Boot can not boot downstream kernel due to TrustZone problem.<br />
|-<br />
| Y<br />
|Panel<br />
|HannStar HSD101PWW2 Rev0-A00/A01 LCD SuperIPS+ HD panel through LVDS controller.<br />
|-<br />
| Y<br />
|HDMI output<br />
|HDMI works, but max output is 1080p due to Tegra 3 limitations.<br />
|-<br />
| Y<br />
|Touchscreen<br />
|Used Atmel MXT768E touchscreen.<br />
|-<br />
| Y<br />
|USB<br />
|One full size USB 2.0 in dock or via 40 pin adapter.<br />
|-<br />
| Y<br />
|SD cards<br />
|MicroSD card and full sized SD card (recognized as USB drive) in dock.<br />
|-<br />
| Y<br />
|Internal memory<br />
|eMMC by Kingston KE4BT5D6A or Hynix H26M64002BNR.<br />
|-<br />
| N<br />
|GPS<br />
|Broadcom GPS [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] is used. Device itself has weak signal.<br />
|-<br />
| Y<br />
|WiFi<br />
|Uses Azurewave AW-NH615 BCM4329. Wi-Fi should work out of the box (best with IWD daemon: apk add iwd; rc-update del wpa_supplicant; rc-update add iwd;). All needed stuff is included. Device may not connect to some networks (in my case it was PC hotspot, to fix this, I have installed IWD on my PC as well). Be aware that WiFi MAC address is not static, though it should not matter for average user. <br />
|-<br />
| Y<br />
|Bluetooth<br />
|Uses Azurewave AW-NH615 BCM4329B1. Works fine out of the box.<br />
|-<br />
| Y<br />
| GPIO keys/switches<br />
|There are 3 GPIO keys: Power, Volume up, Volume down.<br />
And 2 GPIO switches: LID sensor and Audio dock line-out detection.<br />
|-<br />
| Y<br />
| Vibro<br />
|Transformer Prime has GPIO based vibrator. Available via sysfs.<br />
|-<br />
| Y<br />
| Dock Keyboard<br />
| Both pad and dock have Nuvoton NPCE795LA0BX embedded controller which handles battery data, charging, leds, keyboard and touchpad. Driver of this EC is mainlined and is fully functional. Keyboard and Touchpad work. <br />
Alt Gr can be used for alternate multimedia keys instead of escape, fn keys, volumes and delete. Alt GR + Lock changes the default key mode.<br />
|-<br />
| Y<br />
| Battery/Charger<br />
|Driver is based on Texas Instruments bq24725 SMBus Charge Controller driver and GPIO charger but works through pad/dock EC. Charging and charge level of both batteries are shown correctly.<br />
|-<br />
| Y<br />
| PMIC<br />
|Transformers use Texas Instruments TPS659110 PMIC and TPS62361 core regulator.<br />
|-<br />
| Y<br />
|Sound<br />
|Sound codec is RT5631. Sound works but UCM are not upstreamed yet. Audio via HDMI works out of the box.<br />
|-<br />
| Y<br />
|Voice processor<br />
|Transformers use separate Fortemedia FM34NE voice processor. Mainline driver prototype is available but is set into constant bypass mode. Requires rework to fit Linux sound system.<br />
|-<br />
| Y<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer.<br />
|-<br />
| Y<br />
|Orientation sensors<br />
|Include Invensense mpu3050 gyroscope with Kionix KXTF9 accelerometer and Aichi AMI306 3-axis digital compass.<br />
|-<br />
| Y<br />
|Light sensor<br />
|Driver Dyna-Image AL3010. Brightness regulation [https://floss.social/@okias/103371284828595026 works], install iio-sensor-proxy . It's slightly [https://gitlab.com/alpine-mobile/pmaports/issues/3 oversensitive].<br />
|-<br />
| N<br />
|Front camera<br />
|Aptina mi1040 camera sensor. Grate kernel doesn't support VI yet.<br />
|-<br />
| N<br />
|Rear camera<br />
|Fujitsu MBG048 image processor. Since it is broken on most TF201 is not planned to be added to support list. If you have such a need, development is welcome. Mainline driver doesn't exist.<br />
|-<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== Participate development ==<br />
=== U-Boot ===<br />
* legacy android boot.img stuck when loaded via u-boot (u-boot can not establish TrustZone)<br />
<br />
=== Kernel ===<br />
* 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;<br />
* BCM4751 GPS is commonly used in devices of this age, although it still does not have proper implementation (nor kernel, nor userspace);<br />
<br />
=== Userspace ===<br />
* add missing indicators for multimedia keys like for brightness<br />
* bind /prop touchpad toggle to userspace indication<br />
<br />
== Usability ==<br />
=== Desktop environment ===<br />
Since 3D acceleration is not available yet, all DE which use it will be painfully slow and laggy.<br />
<br />
Currently [https://wiki.postmarketos.org/wiki/Xfce4 xfce4] or [https://wiki.postmarketos.org/wiki/MATE mate] are recommended.<br />
<br />
== U-Boot ==<br />
{{Warning|This part is HIGHLY EXPERIMENTAL! DO NOT USE THIS IF YOU DO NOT KNOW WHAT YOU ARE DOING.}}<br />
<br />
{{note|Further procedure needs pre-made nvflash. Files blob.bin and bricksave.img are only thing that will save you from full brick and allow replace/restore Asus bootloader.}}<br />
<br />
Current U-Boot status on Asus Transformer Prime TF201<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Feature<br />
! Info<br />
|-<br />
| Y<br />
|Primary bootloader<br />
|U-Boot successfully boots when is flashed into EBT partition instead of Asus bootloader. Can be additionally booted via fusée gelée exploit, even in locked state. <br />
|-<br />
| Y<br />
|Secondary bootloader<br />
|U-Boot can be chainloaded from both /boot and /recovery partitions. <br />
|-<br />
| Y<br />
|Panel<br />
|LVDS panels over DC connection are fully supported. Rudimentary bridge support is present. When chainloaded primary bootloader's panel setup can be reused (simple framebuffer).<br />
|-<br />
| Y<br />
|MicroSD<br />
|Fully functional and detectable. Can be used as boot source. Can be mounted from U-Boot.<br />
|-<br />
| Y<br />
|eMMC<br />
|Fully functional and detectable. Can be used as boot source. Can be mounted from U-Boot.<br />
|-<br />
| Y<br />
|Boot kernel<br />
|Yes, and can be highly adjusted with extlinux.conf.<br />
|-<br />
| Y<br />
|Boot menu<br />
|Native u-boot bootmenu works perfectly fine. It can be called with pressing volume down button on boot.<br />
|-<br />
| Y<br />
|Power management<br />
|Offline charging and charging in u-boot both work and are hw configured. Both power off and reboot options work and are available in bootmenu. If no valid kernel is found or lid-sensor is active (docked and closed) tablet will turn off.<br />
|-<br />
| Y<br />
|Fastboot<br />
|Fastboot option is available in bootmenu. All functions operate correctly.<br />
|-<br />
| Y<br />
|Bricksafe hook (legacy)<br />
|U-Boot can successfully generate and restore device specific image of first 3 encrypted partitions. It is identical to one, generated with nvflash command. If you can not perform nvflash, use fusée gelée to launch u-boot from RAM and generate bricksafe. You need to insert blank fat microSD so it can be saved!<br />
|-<br />
| P<br />
|Boot Android<br />
|Booting Android kernel can be performed only same way mainline kernel boots. Additionally it must not have CONFIG_TRUSTED_FOUNDATIONS = y and some additional small patches, it can be booted by u-boot.<br />
|-<br />
| Y<br />
|Self update<br />
|Self update option is implemented and write is done correctly. Re-crypt is required to be able to self update. Bootloader file has to have name '''u-boot-dtb-tegra.bin''' and be placed on 1st partition of microSD.<br />
|-<br />
|}<br />
<br />
Primary, you need to build a u-boot from this source ([https://github.com/clamor-s/u-boot 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.<br />
<br />
Place u-boot-dtb-tegra.bin into your nvflash folder. Set your device into APX mode and perform<br />
<br />
<source lang="shell-session"><br />
$ sudo ./wheelie --blob blob.bin<br />
$ sudo ./nvflash --resume --download EBT u-boot-dtb-tegra.bin<br />
</source><br />
<br />
And wait till tablet reboots.<br />
<br />
If you need to restore Asus bootloader, you can find one in stock firmware blob and flash it with same method.<br />
<br />
== Serial console ==<br />
Asus Transformers have serial port both on motherboard and in 40 pin connector.<br />
<br />
=== MOTHERBOARD ===<br />
[[File:Schematics.jpg|thumb|mini|right|250px|J0801 setup. Clickable]]<br />
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.<br />
<br />
=== UART CABLE ===<br />
Serial console can be additionally made from standard charging cable, but in process cable will be destroyed.<br />
<br />
You would need:<br />
<br />
- Asus charging cable;<br />
<br />
- UART to USB (like CP2102);<br />
<br />
- 3 wires with pin plugs on end;<br />
<br />
- Soldering iron, a bit of skill;<br />
<br />
[[File:40pin_UART.png|thumb|mini|left|250px|UART place in 40pin plug]]<br />
<br />
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.<br />
<br />
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.<br />
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.<br />
<br />
6th pin is RX of device and 7th pin is TX of device, GND is on metal connector.<br />
<br />
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.<br />
<br />
[[File:Plug.jpg|thumb|mini|left|250px|40pin plug]] [[File:Cable.jpg|thumb|mini|right|250px|UART cable]]<br />
<br />
== See also ==<br />
* Asus Transformer device family on Tegra 3 includes also [[ASUS_Transformer_Pad_(asus-tf300t)|Transformer Pad TF300T]] and [[Asus_Transformer_Pad_Infinity_TF700T_(asus-tf700t)|Transformer Pad Infinity TF700T]]<br />
* Katkiss android ROM [https://forum.xda-developers.com/transformer-tf700/development/rom-t3457417 XDA link]<br />
* How to get your tf201 to katkiss [https://forum.xda-developers.com/transformer-prime/help/guide-tutorial-asus-transformer-prime-t3486237 XDA link]<br />
* More about the device [https://en.wikipedia.org/wiki/Asus_Eee_Pad_Transformer_Prime Wikipedia entry]<br />
* {{MR|1803|pmaports}} MR to add signed blobs as required by tf201 fastboot</div>Clamorhttps://wiki.postmarketos.org/index.php?title=ASUS_Transformer_Prime_(asus-tf201)&diff=36858ASUS Transformer Prime (asus-tf201)2023-03-04T20:30:19Z<p>Clamor: /* See also */</p>
<hr />
<div>[[Category:Devices with known UART pinout]]<br />
{{Infobox device<br />
| manufacturer = ASUS<br />
| name = Eee Pad Transformer Prime<br />
| codename = asus-tf201<br />
| image = File:Tf201-pmos.jpg<br />
| imagecaption = <br />
| releaseyear = 2011<br />
| originalsoftware = Android 3.2 to Android 4.1<br />
| chipset = Nvidia Tegra 3 (T30)<br />
| cpu = Quad-core 1.4 GHz Cortex-A9<br />
| gpu = NVIDIA ULP GeForce GPU 12 cores<br />
| storage = 32/64 GB<br />
| display = 1280x800 Super IPS+ LCD<br />
| memory = 1 GB<br />
| architecture = armv7<br />
| booting = yes<br />
| whet_dhry = 1208.1<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or "" (blank) - for untested or unknown --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = Y<br />
| status_mainline = Y<br />
| status_battery = Y<br />
| status_3d = P<br />
| status_audio = Y<br />
| status_bluetooth = Y<br />
| status_camera = N<br />
| status_gps = -<br />
| status_nfc = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status_otg = -<br />
| status_usba = Y<br />
| status_hdmidp = Y<br />
| status_keyboard = Y<br />
| status_touchpad = Y<br />
<!-- Sensors --><br />
| status_accel = Y<br />
| status_magnet = Y<br />
| status_light = Y<br />
| status_proximity = -<br />
| status_hall = Y<br />
| status_barometer = -<br />
| status_powersensor = -<br />
<!-- Misc --><br />
| status_irtx = -<br />
| status_trustzone = Y<br />
| status_fossbootloader = Y<br />
| status_uboot = yes<br />
| status_uboot_primary = Y<br />
| status_uboot_secondary = Y<br />
| status_uboot_mainline = Y<br />
| status_uboot_internalstorage = Y<br />
| status_uboot_sd = Y<br />
| status_uboot_usbhost = Y<br />
| status_uboot_usbperipheral = Y<br />
| status_uboot_screen = Y<br />
| status_uboot_keyboard = N<br />
| status_uboot_buttons = Y<br />
| pmoskernel = mainline grate<br />
}}{{Based on SoC|Nvidia_Tegra_3_(tegra30)|Tegra 3}}<br />
<br />
== Contributors ==<br />
* Clamor<br />
* Ion Agorria<br />
<br />
=== Users owning this device ===<br />
{{Device owners}}<br />
<br />
== Unlocking ==<br />
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 [https://dlcdnets.asus.com/pub/ASUS/EeePAD/TF201/UnLock_Device_App_V6.apk the ASUS support page].<br />
==== Bootloader unlock fails with Unknown error ====<br />
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.<br />
<br />
== Kernel status ==<br />
=== Android kernel ===<br />
<br />
* 3.1 kernel based on ASUS sources with updates till Oreo support ([https://github.com/clamor95/morpheus_kernel_asus_tf201 Morpheus kernel])<br />
* 3.4 kernel as a part of Unlegacy Android Project ([https://github.com/clamor95/android_kernel_nvidia_tegra3 Unlegacy kernel])<br />
<br />
=== Mainline (Grate) ===<br />
<br />
* Baseline kernel sources on master: https://github.com/grate-driver/linux<br />
* Proper dts for TF201 is added<br />
* Version: 6.1.0-stable<br />
* Status: Boots. Almost full support.<br />
<br />
== Installation ==<br />
=== How to enter flash modes ===<br />
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.<br />
<br />
=== Bootloader version ===<br />
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 [https://github.com/clamor95/android_device_unlegacy_recovery/tree/repartition/transformer bootloader packages].<br />
<br />
=== Installation process ===<br />
{{note| The bootloader doesn't handle flashing the boot and userdata partition correctly, the official firmware package flashes an "Android blob" to the staging partition with fastboot which triggers an flashing screen on the tablet which copies the data to the correct partitions. pmbootstrap has tools to pack and flash kernel correctly, no worries!}}<br />
<br />
Preparing rootfs and flashing kernel:<br />
<source lang="shell-session"><br />
$ pmbootstrap init<br />
$ pmbootstrap install<br />
$ pmbootstrap flasher flash_kernel<br />
</source><br />
<br />
==== Flashing rootfs to eMMC ====<br />
{{warning|Preferable way of installing pmOS is installing on microSD card!}}<br />
{{note|This may change size of your data partition. You can fix it by resizing partition in TWRP before flashing Android.}}<br />
<br />
'''You should proceed very carefully here.'''<br />
<br />
Rootfs should be flashed to the /userdata partition.<br />
<br />
Prerequisites: TWRP, at least version 3.3.1-0, binaries for '''10.6.1.27.5''' bootloader are [https://twrp.me/asus/asusTF300T.html here].<br />
<br />
First, start TWRP (go to bootloader and choose RCK) and then continue with these instructions<br />
<source lang="shell-session"><br />
$ pmbootstrap export<br />
$ adb shell umount /dev/block/mmcblk0p8<br />
$ adb push /tmp/postmarketOS-export/asus-tf201.img /dev/block/mmcblk0p8<br />
</source><br />
<br />
== Hardware status (mainline) ==<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Hardware<br />
! Info<br />
|-<br />
| Y<br />
|Booting<br />
|boot.img has restriction of approx 8MB, which is /boot partition size.<br />
|-<br />
| Y<br />
|Bootloader<br />
|Open source bootloader [https://github.com/clamor-s/u-boot U-Boot] is available as alternative for stock Asus bootloader and can replace it. U-Boot can not boot downstream kernel due to TrustZone problem.<br />
|-<br />
| Y<br />
|Panel<br />
|HannStar HSD101PWW2 Rev0-A00/A01 LCD SuperIPS+ HD panel through LVDS controller.<br />
|-<br />
| Y<br />
|HDMI output<br />
|HDMI works, but max output is 1080p due to Tegra 3 limitations.<br />
|-<br />
| Y<br />
|Touchscreen<br />
|Used Atmel MXT768E touchscreen.<br />
|-<br />
| Y<br />
|USB<br />
|One full size USB 2.0 in dock or via 40 pin adapter.<br />
|-<br />
| Y<br />
|SD cards<br />
|MicroSD card and full sized SD card (recognized as USB drive) in dock.<br />
|-<br />
| Y<br />
|Internal memory<br />
|eMMC by Kingston KE4BT5D6A or Hynix H26M64002BNR.<br />
|-<br />
| N<br />
|GPS<br />
|Broadcom GPS [https://redmine.replicant.us/projects/replicant/wiki/BCM4751 BCM4751] is used. Device itself has weak signal.<br />
|-<br />
| Y<br />
|WiFi<br />
|Uses Azurewave AW-NH615 BCM4329. Wi-Fi should work out of the box (best with IWD daemon: apk add iwd; rc-update del wpa_supplicant; rc-update add iwd;). All needed stuff is included. Device may not connect to some networks (in my case it was PC hotspot, to fix this, I have installed IWD on my PC as well). Be aware that WiFi MAC address is not static, though it should not matter for average user. <br />
|-<br />
| Y<br />
|Bluetooth<br />
|Uses Azurewave AW-NH615 BCM4329B1. Works fine out of the box.<br />
|-<br />
| Y<br />
| GPIO keys/switches<br />
|There are 3 GPIO keys: Power, Volume up, Volume down.<br />
And 2 GPIO switches: LID sensor and Audio dock line-out detection.<br />
|-<br />
| Y<br />
| Vibro<br />
|Transformer Prime has GPIO based vibrator. Available via sysfs.<br />
|-<br />
| Y<br />
| Dock Keyboard<br />
| Both pad and dock have Nuvoton NPCE795LA0BX embedded controller which handles battery data, charging, leds, keyboard and touchpad. Driver of this EC is mainlined and is fully functional. Keyboard and Touchpad work. <br />
Alt Gr can be used for alternate multimedia keys instead of escape, fn keys, volumes and delete. Alt GR + Lock changes the default key mode.<br />
|-<br />
| Y<br />
| Battery/Charger<br />
|Driver is based on Texas Instruments bq24725 SMBus Charge Controller driver and GPIO charger but works through pad/dock EC. Charging and charge level of both batteries are shown correctly.<br />
|-<br />
| Y<br />
| PMIC<br />
|Transformers use Texas Instruments TPS659110 PMIC and TPS62361 core regulator.<br />
|-<br />
| Y<br />
|Sound<br />
|Sound codec is RT5631. Sound works but UCM are not upstreamed yet. Audio via HDMI works out of the box.<br />
|-<br />
| Y<br />
|Voice processor<br />
|Transformers use separate Fortemedia FM34NE voice processor. Mainline driver prototype is available but is set into constant bypass mode. Requires rework to fit Linux sound system.<br />
|-<br />
| Y<br />
|Thermal sensor<br />
|NCT1008 ON Semiconductor LM90 series thermometer.<br />
|-<br />
| Y<br />
|Orientation sensors<br />
|Include Invensense mpu3050 gyroscope with Kionix KXTF9 accelerometer and Aichi AMI306 3-axis digital compass.<br />
|-<br />
| Y<br />
|Light sensor<br />
|Driver Dyna-Image AL3010. Brightness regulation [https://floss.social/@okias/103371284828595026 works], install iio-sensor-proxy . It's slightly [https://gitlab.com/alpine-mobile/pmaports/issues/3 oversensitive].<br />
|-<br />
| N<br />
|Front camera<br />
|Aptina mi1040 camera sensor. Grate kernel doesn't support VI yet.<br />
|-<br />
| N<br />
|Rear camera<br />
|Fujitsu MBG048 image processor. Since it is broken on most TF201 is not planned to be added to support list. If you have such a need, development is welcome. Mainline driver doesn't exist.<br />
|-<br />
| P<br />
|ULP GeForce<br />
| [[Nvidia_Tegra_2_(tegra20)#Graphics|GPU Acceleration]] partially works.<br />
|-<br />
|}<br />
<br />
== Participate development ==<br />
=== U-Boot ===<br />
* legacy android boot.img stuck when loaded via u-boot (u-boot can not establish TrustZone)<br />
<br />
=== Kernel ===<br />
* 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;<br />
* BCM4751 GPS is commonly used in devices of this age, although it still does not have proper implementation (nor kernel, nor userspace);<br />
<br />
=== Userspace ===<br />
* add missing indicators for multimedia keys like for brightness<br />
* bind /prop touchpad toggle to userspace indication<br />
<br />
== Usability ==<br />
=== Desktop environment ===<br />
Since 3D acceleration is not available yet, all DE which use it will be painfully slow and laggy.<br />
<br />
Currently [https://wiki.postmarketos.org/wiki/Xfce4 xfce4] or [https://wiki.postmarketos.org/wiki/MATE mate] are recommended.<br />
<br />
== U-Boot ==<br />
{{Warning|This part is HIGHLY EXPERIMENTAL! DO NOT USE THIS IF YOU DO NOT KNOW WHAT YOU ARE DOING.}}<br />
<br />
{{note|Further procedure needs pre-made nvflash. Files blob.bin and bricksave.img are only thing that will save you from full brick and allow replace/restore Asus bootloader.}}<br />
<br />
Current U-Boot status on Asus Transformer Prime TF201<br />
{|class="wikitable feature-colors"<br />
! Status<br />
! Feature<br />
! Info<br />
|-<br />
| Y<br />
|Primary bootloader<br />
|U-Boot successfully boots when is flashed into EBT partition instead of Asus bootloader. Can be additionally booted via fusée gelée exploit, even in locked state. <br />
|-<br />
| Y<br />
|Secondary bootloader<br />
|U-Boot can be chainloaded from both /boot and /recovery partitions. <br />
|-<br />
| Y<br />
|Panel<br />
|LVDS panels over DC connection are fully supported. Rudimentary bridge support is present. When chainloaded primary bootloader's panel setup can be reused (simple framebuffer).<br />
|-<br />
| Y<br />
|MicroSD<br />
|Fully functional and detectable. Can be used as boot source. Can be mounted from U-Boot.<br />
|-<br />
| Y<br />
|eMMC<br />
|Fully functional and detectable. Can be used as boot source. Can be mounted from U-Boot.<br />
|-<br />
| Y<br />
|Boot kernel<br />
|Yes, and can be highly adjusted with extlinux.conf.<br />
|-<br />
| Y<br />
|Boot menu<br />
|Native u-boot bootmenu works perfectly fine. It can be called with pressing volume down button on boot.<br />
|-<br />
| Y<br />
|Power management<br />
|Offline charging and charging in u-boot both work and are hw configured. Both power off and reboot options work and are available in bootmenu. If no valid kernel is found or lid-sensor is active (docked and closed) tablet will turn off.<br />
|-<br />
| Y<br />
|Fastboot<br />
|Fastboot option is available in bootmenu. All functions operate correctly.<br />
|-<br />
| Y<br />
|Bricksafe hook (legacy)<br />
|U-Boot can successfully generate and restore device specific image of first 3 encrypted partitions. It is identical to one, generated with nvflash command. If you can not perform nvflash, use fusée gelée to launch u-boot from RAM and generate bricksafe. You need to insert blank fat microSD so it can be saved!<br />
|-<br />
| P<br />
|Boot Android<br />
|Booting Android kernel can be performed only same way mainline kernel boots. Additionally it must not have CONFIG_TRUSTED_FOUNDATIONS = y and some additional small patches, it can be booted by u-boot.<br />
|-<br />
| Y<br />
|Self update<br />
|Self update option is implemented and write is done correctly. Re-crypt is required to be able to self update. Bootloader file has to have name '''u-boot-dtb-tegra.bin''' and be placed on 1st partition of microSD.<br />
|-<br />
|}<br />
<br />
Primary, you need to build a u-boot from this source ([https://github.com/clamor-s/u-boot 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.<br />
<br />
Place u-boot-dtb-tegra.bin into your nvflash folder. Set your device into APX mode and perform<br />
<br />
<source lang="shell-session"><br />
$ sudo ./wheelie --blob blob.bin<br />
$ sudo ./nvflash --resume --download EBT u-boot-dtb-tegra.bin<br />
</source><br />
<br />
And wait till tablet reboots.<br />
<br />
If you need to restore Asus bootloader, you can find one in stock firmware blob and flash it with same method.<br />
<br />
== Serial console ==<br />
Asus Transformers have serial port both on motherboard and in 40 pin connector.<br />
<br />
=== MOTHERBOARD ===<br />
[[File:Schematics.jpg|thumb|mini|right|250px|J0801 setup. Clickable]]<br />
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.<br />
<br />
=== UART CABLE ===<br />
Serial console can be additionally made from standard charging cable, but in process cable will be destroyed.<br />
<br />
You would need:<br />
<br />
- Asus charging cable;<br />
<br />
- UART to USB (like CP2102);<br />
<br />
- 3 wires with pin plugs on end;<br />
<br />
- Soldering iron, a bit of skill;<br />
<br />
[[File:40pin_UART.png|thumb|mini|left|250px|UART place in 40pin plug]]<br />
<br />
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.<br />
<br />
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.<br />
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.<br />
<br />
6th pin is RX of device and 7th pin is TX of device, GND is on metal connector.<br />
<br />
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.<br />
<br />
[[File:Plug.jpg|thumb|mini|left|250px|40pin plug]] [[File:Cable.jpg|thumb|mini|right|250px|UART cable]]<br />
<br />
== See also ==<br />
* Asus Transformer device family on Tegra 3 includes also [[ASUS_Transformer_Pad_(asus-tf300t)|Transformer Pad TF300T]] and [[Asus_Transformer_Pad_Infinity_TF700T_(asus-tf700t)|Transformer Pad Infinity TF700T]]<br />
* Katkiss android ROM [https://forum.xda-developers.com/transformer-tf700/development/rom-t3457417 XDA link]<br />
* How to get your tf201 to katkiss [https://forum.xda-developers.com/transformer-prime/help/guide-tutorial-asus-transformer-prime-t3486237 XDA link]<br />
* More about the device [https://en.wikipedia.org/wiki/Asus_Eee_Pad_Transformer_Prime Wikipedia entry]<br />
* {{MR|1803|pmaports}} MR to add signed blobs as required by tf201 fastboot</div>Clamor