Lenovo YOGA Tablet 10 (lenovo-b8000)
| 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: Kernel porting... |
| Manufacturer | Lenovo |
|---|---|
| Name | YOGA Tablet 10 |
| Codename | lenovo-b8000 |
| Released | 2013 |
| Type | tablet |
| Hardware | |
| Chipset | MediaTek MT8125 |
| CPU | 4x 1.2 GHz Cortex-A7 |
| GPU | PowerVR SGX544 @ 256 MHz (MT8389: 286 MHz) |
| Display | 1280 x 800 IPS |
| Storage | 16 GB + microSD |
| Memory | 1 GB |
| Architecture | armv7 |
| Software | |
Original software The software and version the device was shipped with. |
Android 4.2 / 4.4 |
Extended version The most recent supported version from the manufacturer. |
Android |
| FOSS bootloader | no |
| postmarketOS | |
| Category | testing |
Mainline Instead of a Linux kernel fork, it is possible to run (Close to) Mainline. |
yes |
pmOS kernel The kernel version that runs on the device's port. |
6.16 (fork) |
Flashing Whether it is possible to flash the device with pmbootstrap flasher. |
Untested
|
|---|---|
USB Networking After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system). |
Untested
|
Internal storage eMMC, SD cards, UFS... |
Untested
|
SD card Also includes other external storage cards. |
Untested
|
Battery Whether charging and battery level reporting work. |
Untested
|
Screen Whether the display works; ideally with sleep mode and brightness control. |
Partial
|
Touchscreen |
Untested
|
Keyboard Whether the built-in physical keyboard works. |
Untested
|
Touchpad Whether the built-in touchpad works. |
Untested
|
Stylus |
Untested
|
| Multimedia | |
3D Acceleration |
Untested
|
Built-in DVB TV tuner/DVB device |
Untested
|
Audio Audio playback, microphone, headset and buttons. |
Untested
|
Camera |
Untested
|
Camera Flash |
Untested
|
IR TX |
Untested
|
IR RX |
Untested
|
| Connectivity | |
WiFi |
Untested
|
Bluetooth |
Untested
|
Ethernet |
Untested
|
GPS |
Untested
|
NFC Near Field Communication |
Untested
|
| Modem | |
Calls |
Untested
|
SMS |
Untested
|
Mobile data |
Untested
|
| Miscellaneous | |
FDE Full disk encryption and unlocking with unl0kr. |
Untested
|
USB-A Whether the full-sized USB-A port works. |
Untested
|
USB OTG USB On-The-Go or USB-C Role switching. |
Untested
|
HDMI/DP Video and audio output with HDMI or DisplayPort. |
Untested
|
| Sensors | |
Accelerometer Handles automatic screen rotation in many interfaces. |
Untested
|
Magnetometer Sensor to measure the Earth's magnetism |
Untested
|
Ambient Light Measures the light level; used for automatic screen dimming in many interfaces. |
Untested
|
Proximity |
Untested
|
Hall Effect Measures magnetic fields; usually used as a flip cover sensor |
Untested
|
Haptics |
Untested
|
Barometer Sensor to measure air pressure |
Untested
|
Power Sensor Sensor to monitor current, voltage and power. Not fuel gauge! |
Untested
|
Primary Bootloader Whether it is possible to replace stock bootloader with U-Boot. |
Broken
|
|---|---|
Secondary Bootloader Whether it is possible to chainload U-Boot from stock bootloader. |
Partial
|
Mainline Whether latest upstream versions of U-Boot are not broken and it is possible to use them. |
Broken
|
Internal Storage Whether it is possible to boot from internal storage (e.g. eMMC or UFS). |
Broken
|
SD card Whether it is possible to boot from SD card. |
Broken
|
USB Host Whether it is possible to boot from a USB storage or connect a keyboard. |
Broken
|
USB Peripheral Whether it is possible to use device as a peripheral in U-Boot, e.g. for fastboot mode. |
Broken
|
Display |
Partial
|
Keyboard |
Broken
|
Buttons Whether it is possible to navigate in boot menu or grub with volume and power buttons. |
Broken
|
| This device is marked as not booting. |
| Manufacturer | Lenovo |
|---|---|
| Name | YOGA Tablet 8 |
| Codename | lenovo-b6000 |
| Released | 2013 |
| Type | tablet |
| Hardware | |
| Chipset | MediaTek MT8125 |
| CPU | 4x 1.2 GHz Cortex-A7 |
| GPU | PowerVR SGX544 @ 256 MHz (MT8389: 286 MHz) |
| Display | 1280 x 800 IPS |
| Storage | 16 GB + microSD |
| Memory | 1 GB |
| Architecture | armv7 |
| Software | |
Original software The software and version the device was shipped with. |
Android 4.2 / 4.4 |
Extended version The most recent supported version from the manufacturer. |
Android |
| postmarketOS | |
Mainline Instead of a Linux kernel fork, it is possible to run (Close to) Mainline. |
no |
The codename for the Wi-Fi version is B8000-F, and the 3G version is B8000-H. A similar device is the Lenovo YOGA Tablet 8 (B6000-F, B6000-H). The kernel source code for b8000 and b6000 is the same except for a few lines.
Probably the B8000 and B6000 can be implemented in a single package.
ro.product.board contains the same prefix (codename?) blade.
Therefore, if the postmarketOS port of the B8000 can work on the B6000, the codename may be changed to lenovo-blade.
B8000-F : blade10_row_wifi, B6000-H : blade8_row_3gdata,
A3000-H : a3000_row_call, B8080-H : MSM8226
SoC
MT8125/MT8389 is almost the same as the MT6589. The Wi-Fi version is equipped with the MT8125, while the 3G version is equipped with the MT8389. The kernel source code for MT8125/MT8389 is the same as that of MT6589.
Contributors
- akku
Users owning this device
- Akku (Notes: Wi-Fi version (B8000-F), WIP)
How to enter flash mode
+ + -> Select Fastboot
Installation
Using pmbootstrap
Work in progress.
- download latest release
- build latest kernel
- unpack
boot.img - replace kernel with latest kernel
- replace busybox with busybox-static and remove bin (symlink), mv usr/bin bin (hack)
- insert
chmod +x /lib/ld-musl-armhf.so.1after/bin/busybox --install -sin/init(CarlivImageKitchen seems to strip the execution permissions from /lib!?) - repack_mtk
fastboot flash boot boot.img- fall into the debug shell
Kernel
The official source code ( JellyBean KitKat Raw archive ) is so dirty, broken, and didn't boot after building, (GPL violation XD), so the mainline is the target. You can find out about porting status here.
Also check lcm driver reverse engineering.
U-Boot
Boots. But the port is incomplete. You can check the progress of the port here.
Development is stopped until the kernel exceeds the size of the boot partition.
Components
| Component | Model | Kernel Driver | User Space Driver | Note |
|---|---|---|---|---|
| SoC | MediaTek MT8125/MT8389 | CONFIG_MACH_MT6589 | ||
| W-CDMA? HSPA? | MediaTek MT6167 | |||
| TD-SCDMA ? | MediaTek MT6168 | not installed? | ||
| Audio, etc | MediaTek MT6320 | |||
| Wi-Fi, Bluetooth, FM, GPS | MediaTek MT6628 | |||
| GPU | PowerVR SGX544(MP?) (Single-core?) | (No Open-Source Driver) | ||
| PMIC | MediaTek MT6320 | |||
| Battery Charge Controller | Onsemi NCP1851? |
see MediaTek's Mobile Processor Lines 2019-01-18 and TeamYogaBlade2 U-Boot wiki
Device Data
Memory Map
(KitKat, b8000 Wi-Fi)
# cat /proc/iomem 11006000-110060ff : mtk-uart.0 11007000-110070ff : mtk-uart.1 11008000-110080ff : mtk-uart.2 11009000-110090ff : mtk-uart.3 1100d000-1100d070 : mt-i2c.0 1100d000-1100d070 : mt-i2c 1100e000-1100e070 : mt-i2c.1 1100e000-1100e070 : mt-i2c 1100f000-1100f070 : mt-i2c.2 1100f000-1100f070 : mt-i2c 11010000-11010070 : mt-i2c.3 11010000-11010070 : mt-i2c 11011000-11011070 : mt-i2c.4 11011000-11011070 : mt-i2c 11012000-11012070 : mt-i2c.5 11012000-11012070 : mt-i2c 11013000-11013070 : mt-i2c.6 11013000-11013070 : mt-i2c 11016000-11016028 : mt-spi.0 11016000-11016028 : mt-spi 11230000-11230108 : mtk-msdc.0 11230000-11230108 : mtk-msdc 11240000-11240108 : mtk-msdc.1 11240000-11240108 : mtk-msdc 11260000-11260108 : mtk-msdc.3 11260000-11260108 : mtk-msdc 15000000-1500e000 : camera-isp.0 15000000-1500e000 : camera-isp 80000000-bf5fffff : System RAM 80008000-8090bfff : Kernel code 80942000-80c2b52f : Kernel data bf600000-bfffffff : mtkfb.0
(b6000 3g [1])
root@B6000:/ # cat /proc/iomem 11006000-110060ff : mtk-uart.0 11007000-110070ff : mtk-uart.1 11008000-110080ff : mtk-uart.2 11009000-110090ff : mtk-uart.3 1100d000-1100d070 : mt-i2c.0 1100d000-1100d070 : mt-i2c 1100e000-1100e070 : mt-i2c.1 1100e000-1100e070 : mt-i2c 1100f000-1100f070 : mt-i2c.2 1100f000-1100f070 : mt-i2c 11010000-11010070 : mt-i2c.3 11010000-11010070 : mt-i2c 11011000-11011070 : mt-i2c.4 11011000-11011070 : mt-i2c 11012000-11012070 : mt-i2c.5 11012000-11012070 : mt-i2c 11013000-11013070 : mt-i2c.6 11013000-11013070 : mt-i2c 11016000-11016028 : mt-spi.0 11016000-11016028 : mt-spi 11230000-11230108 : mtk-msdc.0 11230000-11230108 : mtk-msdc 11240000-11240108 : mtk-msdc.1 11240000-11240108 : mtk-msdc 11260000-11260108 : mtk-msdc.3 11260000-11260108 : mtk-msdc 15000000-1500e000 : camera-isp.0 15000000-1500e000 : camera-isp 80000000-bbffffff : System RAM 80008000-80930fff : Kernel code 8096a000-80c5b12f : Kernel data bd800000-bf5fffff : System RAM bf600000-bfffffff : mtkfb.0
mediatek/platform/mt6589/kernel/core/Makefile.boot
zreladdr-y := 0x80008000 params_phys-y := 0x80000100 initrd_phys-y := 0x82600000
Bootloader data
$ fastboot getvar all (bootloader) partition-size:userdata: 32000000 (bootloader) partition-type:userdata: ext4 (bootloader) partition-size:cache: 7e00000 (bootloader) partition-type:cache: ext4 (bootloader) partition-size:system: 40000000 (bootloader) partition-type:system: ext4 (bootloader) partition-size:fac: c800000 (bootloader) partition-type:fac: ext4 (bootloader) partition-size:expdb: a00000 (bootloader) partition-type:expdb: raw data (bootloader) partition-size:ebr2: 80000 (bootloader) partition-type:ebr2: raw data (bootloader) partition-size:logo: 300000 (bootloader) partition-type:logo: raw data (bootloader) partition-size:misc: 80000 (bootloader) partition-type:misc: raw data (bootloader) partition-size:sec_ro: 600000 (bootloader) partition-type:sec_ro: ext4 (bootloader) partition-size:recovery: 600000 (bootloader) partition-type:recovery: raw data (bootloader) partition-size:boot: 600000 (bootloader) partition-type:boot: raw data (bootloader) partition-size:uboot: 60000 (bootloader) partition-type:uboot: raw data (bootloader) partition-size:seccfg: 20000 (bootloader) partition-type:seccfg: raw data (bootloader) partition-size:protect_s: a00000 (bootloader) partition-type:protect_s: ext4 (bootloader) partition-size:protect_f: a00000 (bootloader) partition-type:protect_f: ext4 (bootloader) partition-size:nvram: 500000 (bootloader) partition-type:nvram: raw data (bootloader) partition-size:pro_info: 300000 (bootloader) partition-type:pro_info: raw data (bootloader) partition-size:pmt: 400000 (bootloader) partition-type:pmt: raw data (bootloader) partition-size:ebr1: 80000 (bootloader) partition-type:ebr1: raw data (bootloader) partition-size:mbr: 80000 (bootloader) partition-type:mbr: raw data (bootloader) partition-size:preloader: 600000 (bootloader) partition-type:preloader: raw data (bootloader) kernel: lk (bootloader) product: BLADE10_ROW_WIFI (bootloader) version: 0.5 all: Done!! Finished. Total time: 0.004s
cmdline
(b8000-f, twrp)
~ # cat /proc/cmdline console=ttyMT0,921600n1 vmalloc=530M slub_max_order=0 lcm=1-cm_hx8896a01_dsi_vdo_boe fps=5797 bootprof.pl_t=3598 bootprof.lk_t=3631 printk.disable_uart=1 boot_reason=1
# To choose LK LCM driver name CUSTOM_LK_LCM=NT35521_N070ICN_GB1_V1 # To choose kernel LCM driver name CUSTOM_KERNEL_LCM=NT35521_N070ICN_GB1_V1 # To choose uboot LCM driver name CUSTOM_UBOOT_LCM=NT35521_N070ICN_GB1_V1
hx8896 never appears in Open Source Code!
in stock rom dir
$ grep -rlF nt35 system.img $ grep -rlF hx88 system.img lk.bin
in system.img
# grep -rlF nt35 data/misc/ProjectConfig.mk lib/libPL.so # grep -rlF hx88 data/misc/ProjectConfig.mk lib/libPL.so
in data/misc/ProjectConfig.mk (system.img)
#CUSTOM_KERNEL_LCM = nt35582_mcu_6575 CUSTOM_KERNEL_LCM = cm_hx8896a01_dsi_vdo cm_hx8896a01_dsi_vdo_boe CUSTOM_LK_LCM = cm_hx8896a01_dsi_vdo cm_hx8896a01_dsi_vdo_boe CUSTOM_UBOOT_LCM = cm_hx8896a01_dsi_vdo cm_hx8896a01_dsi_vdo_boe
ProjectConfig.mk
The ProjectConfig.mk contained in the downstream kernel is fake.
https://gist.github.com/akku1139/ad961f42623679f5d86335a052ea1975
See also
Official product page: https://pcsupport.lenovo.com/us/en/products/tablets/yoga-series/yoga-tablet-10-b8000/z0al
Official disassembly guide: https://download.lenovo.com/consumer/mobiles_pub/yoga_tablet_8-10_hmm_en_20130916.pdf
Official spec sheet: https://support.lenovo.com/us/en/solutions/pd104151-overview-for-yoga-tablet-10-b8000
GSMArena.com: https://www.gsmarena.com/lenovo_yoga_tablet_10-5836.php
Kernel Mainlining: https://github.com/TeamYogaBlade2/linux/tree/blade10/
Unofficial TWRP: https://archive.org/details/b8000-f_twrp