Jump to content

Lenovo Xiaoxin Pad Pro 2021 (lenovo-j716f): Difference between revisions

From postmarketOS Wiki
Ungeskriptet (talk | contribs)
Downstream GPIO table: Add pinmux table
Ungeskriptet (talk | contribs)
m SD card works
 
(19 intermediate revisions by 2 users not shown)
Line 4: Line 4:
| manufacturer = Lenovo
| manufacturer = Lenovo
| name = Xiaoxin Pad Pro 2021
| name = Xiaoxin Pad Pro 2021
| codename = lenovo-p11_pro_plus
| codename = lenovo-j716f
| model = TB-J716F
| model = TB-J716F
| image = File:Lenovo-tb716f.png
| image = File:Lenovo-tb716f.png
Line 21: Line 21:
| status_usbnet = Y
| status_usbnet = Y
| status_flashing = Y
| status_flashing = Y
| status_touch =
| status_touch = N
| status_screen = P
| status_screen = P
| status_wifi =
| status_wifi =
Line 66: Line 66:


== Unlocking the bootloader ==
== Unlocking the bootloader ==
{{note|'''Note:''' You have to wait at least a day after initially connecting to the Internet for Lenovo to process your serial number.}}
See [[Unlocking Bootloaders/Lenovo ZUI]]
# Go to Settings → My Device, tap on ZUI Version until developer settings are enabled.
# Go to General Settings → Developer Settings and enable "OEM Unlocking".
# [[Lenovo_Xiaoxin_Pad_Pro_2021_(lenovo-j716f)#How_to_enter_flash_mode|Boot into fastboot mode]] and connect it to a PC
# Take note of the serial number shown on the bootloader screen.
# Download your <code>sn.img</code> from http://cdn.zui.lenovomm.com/developer/tabletboot/(your_sn_number)/sn.img (Replace the brackets with your serial number in the link)
# Flash your <code>sn.img</code> with <code>fastboot flash unlock sn.img</code>.
# Unlock the bootloader with <code>fastboot oem unlock-go</code>
 
Alternatively [https://www.zui.com/iunlock this page] can also be used to get the <code>sn.img</code>.


=== Alternative method ===
=== Alternative method ===
Line 90: Line 81:


=== Mainline status ===
=== Mainline status ===
{|class="wikitable feature-colors"
{|class="wikitable feature-colors" style="display: block; overflow-x: auto"
! Component !! Model !! Status !! Notes
! Component !! Model !! Status !! Notes
|-
|-
| SoC || Qualcomm SM8250-AC Snapdragon 870 || Y ||
| SoC || Qualcomm SM8250-AC Snapdragon 870 || Y ||
|-
|-
| USB || USB Type-C 3.1 || P || Peripheral mode only
| UFS || Kioxia THGJFAT0T44BAILB || Y ||
|-
| SD card || - || Y ||
|-
|-
| UFS || Kioxia THGJFAT0T44BAILB || Y ||
| Display || EDO (EverDisplay Optronics) EB50QBC73.A OLED panel; Raydium RM69380 driver IC || Y || Dual DSI, [https://web.archive.org/web/20231121140510/https://dutch.kadidisplay.com/photo/kadidisplay/document/25216/EB50QBC73.A_.pdf Panel datasheet], [https://archive.org/download/raydium-datasheets/RM69700%20Datasheet.pdf Datasheet for a similar Driver IC]
|-
| Touchscreen || rowspan = 2 | Goodix GT7385P || Y || [https://web.archive.org/web/20231121140659/https://www.szzxv.com/static/upload/file/20220330/1648625895372915.pdf Datasheet in Chinese]. Using downstream driver for now
|-
| Pen input || N || Compatible with MPP 1.51 pens
|-
|-
| SD card || sdhc_2 || N ||
| Touchpad || rowspan = 2 | hid-over-i2c || Y || rowspan = 2 | Available through detachable keyboard only
|-
|-
| Display || EDO (EverDisplay Optronics) EB50QB61.A OLED panel; Raydium RM69380 driver IC || P || Dual DSI, [https://web.archive.org/web/20231121140510/https://dutch.kadidisplay.com/photo/kadidisplay/document/25216/EB50QBC73.A_.pdf Panel datasheet], [https://archive.org/download/raydium-datasheets/RM69700%20Datasheet.pdf Datasheet for a similar Driver IC]
| Keyboard || Y
|-
|-
| Touchscreen || rowspan = 2 | Goodix GT7385P || P || [https://web.archive.org/web/20231121140659/https://www.szzxv.com/static/upload/file/20220330/1648625895372915.pdf Datasheet in Chinese]
| rowspan = 3 | Audio || Cirrus CS35L41 || N || 4x Speaker Amp, one for each speaker
|-
|-
| Pen input || Y || Compatible with some MS Surface pens
| Everest-Semi ES7210 || N || Microphone audio ADC
|-
|-
| Touchpad || rowspan = 2 | hid-over-i2c (Available through detachable keyboard only) || N || i2c Address 0x60
| DSP Group DBMD8 || N || Voice processor, SPI
|-
|-
| Keyboard || N || i2c Address 0x61
| rowspan = 2 | Charging || Qualcomm SMB1390 || N ||
|-
|-
| Charging || Qualcomm SMB1390 || N ||
| Halo HL6111R || N || According to i2cdetect, usage unknown
|-
|-
| Buttons || GPIO || Y ||
| Buttons || GPIO || Y ||
|-
|-
| USB-C Redriver || onsemi NB7VPQ904M redriver || N || Needed to get DP Alt mode working
| rowspan = 5 | USB-C || USB 3.0 & USB 2.0 || Y ||
|-
| Role switching || Y ||
|-
| onsemi NB7VPQ904M DP redriver || N || addr: 0x19, bus: 0x990000
|-
| FSA4480 || N  || addr: 0x43, bus: 0x884000
|-
| VBUS out || N ||
|-
|-
| Fuel gauge || Texas Instruments bq27541 || Y ||
| Fuel gauge || Texas Instruments bq27541 || Y || addr: 0x55, bus: 0x98c000
|-
| FM Tuner || RichWave RTC6226 || N || According to i2cdetect. Tablet does not even have a headphone jack?
|-
|-
| Ambient light sensor || Lite-On LTR-308 || N ||
| Ambient light sensor || Lite-On LTR-308 || N ||
Line 124: Line 131:
|-
|-
| Magnetometer || AKM ak0991x || N ||
| Magnetometer || AKM ak0991x || N ||
|-
| Wi-Fi || Qualcomm QCA6390 || N ||
|-
| Fingerprint || Goodix || N ||
|}
|}


Line 143: Line 154:


=== Downstream GPIO table ===
=== Downstream GPIO table ===
<div class="toccolours mw-collapsible mw-collapsed" style="width: 1000px; overflow: auto;">
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: auto">
<code>p11_pro_plus:/ # cat /sys/kernel/debug/gpio</code>
<code>p11_pro_plus:/ # cat /sys/kernel/debug/gpio</code>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
Line 364: Line 375:
</div>
</div>


<div class="toccolours mw-collapsible mw-collapsed" style="width: 1000px; overflow: auto;">
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: auto">
<code>p11_pro_plus:/ # cat /sys/kernel/debug/pinctrl/f000000.pinctrl/pinmux-pins</code>
<code>p11_pro_plus:/ # cat /sys/kernel/debug/pinctrl/f000000.pinctrl/pinmux-pins</code>
<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
Line 579: Line 590:


== Back to stock firmware ==
== Back to stock firmware ==
Linux tutorial:
{{warning|Restoring the firmware will wipe all user data on the device}}
# Enter '''EDL Mode''' by powering off the tablet first, then hold {{button|Volume Up}} while connecting the tablet to a computer with an USB cable.
# Install the '''qdl''' tool from [https://github.com/linux-msm/qdl here]. Arch Linux users can simply install the '''[https://aur.archlinux.org/packages/qdl-git qdl-git]''' AUR package.
# Download the '''qdl''' tool from [https://www.96boards.org/documentation/consumer/guides/qdl.md.html here] and build it. Arch Linux users can simply install the '''[https://aur.archlinux.org/packages/qdl qdl]''' AUR package.
# Download the firmware from [https://mirrors.lolinet.com/firmware/lenowow/2021/Tab_P11_Pro_2021/TB-J716F/ here]. The latest EDL-flashable firmware as of November 2024 is <code>TB-J716F_CN_OPEN_USER_Q00209.3_R_ZUI_13.0.430_ST_220113_qpst.zip</code>
# Download the firmware from [https://mirrors.lolinet.com/firmware/lenovo/Tab_P11_Pro_2021/TB-J716F here].
# Extract the ZIP archive and open a terminal inside the directory
# Extract the ZIP file.
# Reboot the device into EDL mode by holding down {{Button|Volume Up}} while connecting the tablet to a computer with a USB-C cable
# cd into the extracted ZIP directory
# Run the following command:
# Execute the following command: <code>qdl --storage ufs --include ./ ./prog_firehose_ddr.elf ./rawprogram0.xml ./patch0.xml ./rawprogram1.xml ./patch1.xml ./rawprogram2.xml ./patch2.xml ./rawprogram3.xml ./patch3.xml ./rawprogram4.xml ./patch4.xml ./rawprogram5.xml ./patch5.xml ./rawprogram_unsparse0_fullupgrade.xml</code>
#:<syntaxhighlight lang="shell-session">
# After it has finished, the command will exit itself. Force reboot the tablet by holding {{button|Power}}. Now you should be able to boot back into stock firmware.
$ qdl --storage ufs --include ./ ./prog_firehose_ddr.elf ./rawprogram_unsparse0_fullupgrade.xml ./patch0.xml ./rawprogram1.xml ./patch1.xml ./rawprogram2.xml ./patch2.xml ./rawprogram3.xml ./patch3.xml ./rawprogram4.xml ./patch4.xml ./rawprogram5.xml ./patch5.xml
</syntaxhighlight>
#:If you have trouble running the command above, make sure your udev rules are set up correctly. Alternatively, you can try running the command with sudo
# After the tablet reboots, Android should be running again


== See also ==
== See also ==
Line 595: Line 609:


__FORCETOC__
__FORCETOC__
{{DISPLAYTITLE:Lenovo Xiaoxin Pad Pro 2021 (lenovo-p11_pro_plus)}}

Latest revision as of 13:18, 23 February 2025

The Lenovo Xiaoxin Pad Pro 2021 is a high-end Android tablet released only in China. Other unofficial names for this tablet are Lenovo P11 Pro Plus or Lenovo P11 Pro 2021. Lenovo has not released the downstream Linux kernel sources for this device.

This device has been tested with postmarketOS, but its device package has not yet been added to the postmarketOS repositories.
This means that it cannot be selected in pmbootstrap.
Status: Mainline in progress
Lenovo Xiaoxin Pad Pro 2021
Lenovo Xiaoxin Pad Pro 2021 running LineageOS 18.1 GSI with Termux open showing neofetch
Lenovo Xiaoxin Pad Pro 2021 running LineageOS 18.1 GSI with Termux open showing neofetch
Manufacturer Lenovo
Name Xiaoxin Pad Pro 2021
Codename lenovo-j716f
Model TB-J716F
Released 2021
Type tablet
Hardware
Chipset Qualcomm Snapdragon 870 (SM8250-AC)
CPU Octa-core (1x3.2 GHz Kryo 585 & 3x2.42 GHz Kryo 585 & 4x1.80 GHz Kryo 585)
GPU Adreno 650
Display 2560 x 1600 (90Hz 11.5" OLED)
Storage 128 GB
Memory 6 GB LPDDR4X
Architecture aarch64
Software
Original software Android (ZUI)
Original version 11 (ZUI 12)
postmarketOS
Category testing
Pre-built images no
Mainline yes
Features
Flashing
Works
USB Networking
Works
Internal storage
No data
SD card
No data
Battery
Partial
Screen
Partial
Touchscreen
Broken
Stylus
Partial
Multimedia
3D Acceleration
No data
Audio
No data
Camera
No data
Camera Flash
No data
Connectivity
WiFi
No data
Bluetooth
No data
Miscellaneous
FDE
No data
USB OTG
No data
HDMI/DP
No data
Sensors
Accelerometer
No data
Magnetometer
No data
Ambient Light
No data
Proximity
No data
Hall Effect
No data
Haptics
No data


Contributors

Users owning this device


How to enter flash mode

  • EDL Mode: Hold down Volume Up, then connect the tablet to a computer with a USB cable.
  • Fastboot Mode: Power on the device with both Power and Volume Down buttons.
  • Recovery Mode: Boot into Fastboot mode and select recovery using the Volume/Power buttons.

Unlocking the bootloader

See Unlocking Bootloaders/Lenovo ZUI

Alternative method

This method can be used to unlock the bootloader without having to wait and connect to Lenovo's server. It works by modifying the serial number with EDL and using a pre-made unlock file for that serial number.

EDL Mode

The necessary loader for bkerler's EDL tool can be found in this firmware file (prog_firehose_ddr.elf).

Installation

/* Not yet */

Mainline

A work in progress mainline kernel is being developed here.

Mainline status

Component Model Status Notes
SoC Qualcomm SM8250-AC Snapdragon 870 Y
UFS Kioxia THGJFAT0T44BAILB Y
SD card - Y
Display EDO (EverDisplay Optronics) EB50QBC73.A OLED panel; Raydium RM69380 driver IC Y Dual DSI, Panel datasheet, Datasheet for a similar Driver IC
Touchscreen Goodix GT7385P Y Datasheet in Chinese. Using downstream driver for now
Pen input N Compatible with MPP 1.51 pens
Touchpad hid-over-i2c Y Available through detachable keyboard only
Keyboard Y
Audio Cirrus CS35L41 N 4x Speaker Amp, one for each speaker
Everest-Semi ES7210 N Microphone audio ADC
DSP Group DBMD8 N Voice processor, SPI
Charging Qualcomm SMB1390 N
Halo HL6111R N According to i2cdetect, usage unknown
Buttons GPIO Y
USB-C USB 3.0 & USB 2.0 Y
Role switching Y
onsemi NB7VPQ904M DP redriver N addr: 0x19, bus: 0x990000
FSA4480 N addr: 0x43, bus: 0x884000
VBUS out N
Fuel gauge Texas Instruments bq27541 Y addr: 0x55, bus: 0x98c000
FM Tuner RichWave RTC6226 N According to i2cdetect. Tablet does not even have a headphone jack?
Ambient light sensor Lite-On LTR-308 N
Time-of-flight sensor AMS (Austria Mikro Systeme) TMF8801 N
Magnetometer AKM ak0991x N
Wi-Fi Qualcomm QCA6390 N
Fingerprint Goodix N

i2c Table

Android messes up the i2c numbering. This is the real i2c numbering corresponding to mainline, showing only those that have devices attached.

Real Android Address
i2c1 i2c5 0x984000
i2c3 i2c6 0x98c000
i2c4 i2c2 0x990000
i2c13 i2c7 0xa94000
i2c15 i2c4 0x884000

Downstream GPIO table

p11_pro_plus:/ # cat /sys/kernel/debug/gpio

p11_pro_plus:/ # cat /sys/kernel/debug/pinctrl/f000000.pinctrl/pinmux-pins

Miscellaneous info

Command to create boot.img

$ make O=output-p11-pro-plus ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j16 &&
rm -f output-p11-pro-plus/arch/arm64/boot/boot.img &&
mkbootimg --kernel output-p11-pro-plus/arch/arm64/boot/Image.gz \
        --ramdisk /home/david/.local/var/pmbootstrap/chroot_rootfs_qemu-aarch64/boot/initramfs \
        --pagesize 4096 \
        --kernel_offset 0x8000 \
        --ramdisk_offset 0x1000000 \
        --dtb_offset 0x1f00000 \
        --tags_offset 0x100 \
        --second_offset 0 \
        --base 0 \
        --header_version 2 \
        --dtb output-p11-pro-plus/arch/arm64/boot/dts/qcom/sm8250-lenovo-p11-pro-plus.dtb \
        -o output-p11-pro-plus/arch/arm64/boot/boot.img &&
(adb reboot fastboot; fastboot flash boot output-p11-pro-plus/arch/arm64/boot/boot.img && fastboot reboot)

Back to stock firmware

Warning WARNING: Restoring the firmware will wipe all user data on the device
  1. Install the qdl tool from here. Arch Linux users can simply install the qdl-git AUR package.
  2. Download the firmware from here. The latest EDL-flashable firmware as of November 2024 is TB-J716F_CN_OPEN_USER_Q00209.3_R_ZUI_13.0.430_ST_220113_qpst.zip
  3. Extract the ZIP archive and open a terminal inside the directory
  4. Reboot the device into EDL mode by holding down Volume Up while connecting the tablet to a computer with a USB-C cable
  5. Run the following command:
    $ qdl --storage ufs --include ./ ./prog_firehose_ddr.elf ./rawprogram_unsparse0_fullupgrade.xml ./patch0.xml ./rawprogram1.xml ./patch1.xml ./rawprogram2.xml ./patch2.xml ./rawprogram3.xml ./patch3.xml ./rawprogram4.xml ./patch4.xml ./rawprogram5.xml ./patch5.xml
    
    If you have trouble running the command above, make sure your udev rules are set up correctly. Alternatively, you can try running the command with sudo
  6. After the tablet reboots, Android should be running again

See also