Samsung Galaxy Tab 10.1" (samsung-p4wifi)

From postmarketOS
Jump to: navigation, search
Samsung Galaxy Tab 10.1
Xcfe4 running on Samsung Galaxy Tab 10.1 (p4wifi)
Xcfe4 running on Samsung Galaxy Tab 10.1 (p4wifi)
Manufacturer Samsung
Name Galaxy Tab 10.1
Codename p4wifi
Released 2011
Original software Android 3.1 Honeycomb
Hardware
Chipset Nvidia Tegra 2
CPU 1Ghz ARM Cortex-A9
GPU Tegra 2
Display 1280×800
Storage 16/32 GB
Memory 1GB

Contributors

  • decatf

Maintainer(s)

  • decatf

Introduction

postmarketOS for the Samsung Galaxy Tab 10.1 runs on mainline Linux kernel fork. The kernel uses both mainline and forward ported drivers. Some peripherals are using mainline device driver where applicable. Some peripherals which are not working on or don't have mainline drivers are using drivers forward ported from the stock 3.1.10 kernel.

What works

  • Flashing with heimdall
  • USB SSH access
  • Touch
  • DRM fbdev / 2D acceleration (Grate driver)
  • VDPAU h264 hardware decoding
  • Wifi
  • Battery
  • Audio (headphone & speaker only)
  • Bluetooth

What does not work

  • 3D acceleration
  • Camera
  • GPS
  • Accelerometers

How to enter flash mode

Press and hold Power + Volume Down buttons

Installation

  1. Init pmbootstrap
    $ ./pmbootstrap.py init
    
    Choose 'samsung-p4wifi' as target device.
  2. Start the build process
    $ ./pmbootstrap.py build linux-samsung-p4wifi
    $ ./pmbootstrap.py build device-samsung-p4wifi
    $ ./pmbootstrap.py install --no-fde
    
  3. Enter flash (download) mode
  4. Flash the kernel and system images
    $./pmbootstrap.py flasher flash_kernel
    $./pmbootstrap.py flasher flash_rootfs
    

Battery

The battery in this device is the max17042. The downstream kernel provides an early implementation of a driver for the max17042 battery. The implementation of the battery and charger driver are split across p4_battery.c and max17042_battery.c in the downstream kernel. The name of the charger hardware in this tablet is an unknown.

The downstream drivers have references to max8903 which is a charger used in other Samsung devices. The max8903 has similar hardware characteristics as the charger in this tablet. The two are definitely not the same but there is a max8903 driver in mainline which a useful reference.

The mainline max17042 battery driver works but the downstream driver provided a much more complex implementation of the battery/charger drivers. There is no driver for the charging circuit so much important functionality is not present in the mainline kernel. The downstream charger driver implements logic to handle charge full and low battery which affect the health of the battery. For these reasons it is safer for regular use to keep using drivers forward ported from the downstream kernel.

Graphics

The reverse engineer grate-driver provides 2D acceleration on X11. 3D acceleration is not working. This means that Xfce4 and Mate desktop will work. Hildon requires an OpenGL backend. Wayland UIs will only work with the framebuffer driver.

grate-drver packaging can be found at github.com/Decatf/pmbootstrap/tree/feature/mesa-grate

Video Decoding

Video Decoder Engine (VDE) was added to mainline kernel v4.16. The grate-driver includes hardware h264 decoding with libvdpau-tegra.

Audio

Headphone and speaker output are working on the mainline wm8994 driver. Microphone inputs are not working.

The ALSA UCM config files were generated using the xml2ucm tool. The mixer_paths.xml and p4wifi.config.xml can be found in this github gist.

$ stack exec -- xml2ucm -m mixer_paths.xml -c p4wifi-config.xml -o examples

Wifi

The wifi chip in this device is the Broadcom BCM4330 B1 revision. There is a B2 revision which is much more common. The only distinguishing factor is the firmware. Only the B1 firmware will work on this device. The most common BCM4330 firmware found from various sources (such as linux-firmware) is for the B2 revision.

Cellular Modem

The xmm6260 modem was used in quite a few Samsung Android devices from the same era as this tablet. The Samsung Galaxy Tab 10.1 3G (p4) and Samsung Galaxy Tab 10.1 from T-Mobile (p4tmo) are otherwise identical to the WiFi only version of the tablet (p4wifi). The cellular modem is connected via an internal USB interface called USB HSIC. The mainline Tegra USB driver does not implement this functionality. Much of the work in enabling the cellular stack would involve adding USB HSIC support to the mainline USB driver.


Other Information

Hardware Information & Mainline Driver Status

The Linux mainlining effort contains drivers forward ported from the stock Samsung Linux 3.1.10 kernel which shipped with the device. Some peripheral devices have been transitioned over to the mainline driver. Other drivers are not in the mainline kernel or the device is not compatible with the mainline driver.

Peripheral Type Hardware Mainline Driver
Status
Analog Digital Converter stmpe811 Y
Audio wm8994 Y
Battery max17042 P
Camera s5k5ccgx (front)
s5k6bbgx (back)
-
Charger unknown P
CPU Temperature Sensor nct1008 Y
Display Panel cmc623 P
GPS bcm4751 P
GPU tegra host1x Y
HDMI Connector sii9234 -
Sensors
  • gyroscope
  • accelerometer
  • compass
  • light sensor

  • mpu3050
  • kxtf9
  • ak8975
  • bh1721fvc
P
Touch Digitizer mxt1386 Y
Vibration Motor isa1200 P
Voltage Regulators tps6586x Y
Wifi / Bluetooth bcm4330 Y
3G Modem xmm6260 -
3.5mm Jack sec_jack P
30-pin accessory port unknown -
Mainline Driver Status Legend
Code Meaning
Y Mainline driver
P Forward ported driver
- No driver -- driver has not been forward ported

See also