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
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.1
after/bin/busybox --install -s
in/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