Samsung Galaxy Tab 4 10.1 SM-T530NU · samsung-matissewifi Qualcomm MSM8226 Snapdragon 400 · armv7 RO-OS · downstream 3.4.113 (Phase 1)
Galaxy Tab 4 · 2014 · Intake — Phase 0 · no console yet

The Magazine-UX tablet,
mid boot-loop, closing in.

A 2014 TouchWiz tablet arriving RO-OS-first: hardware fully mapped via PIT, a downstream 3.4.113 kernel built 22 revisions deep, and still no way to read why it resets. The USB-ACM shell r21 was built to provide does not exist on this tree — those configfs symbols are absent from 3.4 — so the crash is still unread.

Kernel
3.4.113 · r22
Codec
WCD9304 SLIMbus
SoC
MSM8226 · Adreno 305
Android life
4.4 KitKat → 5.0 Lollipop
5%hw parity
1 of 20 subsystems confirmed

Hardware

Every subsystem, and exactly where it stands. No boot to a shell yet — be honest about it.

WorkingIn progressBlocked / portingNot started

Partition mapping (PIT)

MAPPED

Full 30-entry PIT read via Heimdall — BOOT 10 MiB, SYSTEM 2.25 GiB confirmed; EFS flagged for backup before any flash.

print-pit · 2026-05-09

Kernel port (downstream 3.4.113)

BOOT-LOOP · r22

LineageOS msm8226 fork pinned and built through 22 revisions. QCDT DTB packaging solved; Samsung cmdline reverse-engineered from TWRP. r20 got past the early-kernel cliff — screen now lights briefly before reset.

lineage-18.1 · 3fa1853e

Debug console (USB-ACM)

RETRACTED · r22

The r21 plan does not work on this tree. CONFIG_USB_CONFIGFS*/USB_F_ACM do not exist in 3.4, so oldconfig dropped them all — there is no /dev/ttyACM0 and there never was. This kernel uses android_usb, not configfs gadgets.

android_usb · not configfs

First boot to shell

NOT YET

No confirmed console output from real hardware, and no working plan to get one yet — the ACM route is closed. The crash sits somewhere in late kernel init or early userspace.

—

Display panel

ID TBD

10.1in 1280×800 IPS via a TC358764 DSI-LVDS bridge; mdss_mdp.panel= set from TWRP but unverified against real silicon.

TC358764 · WXGA

Backlight

QUEUED

Not reachable until the panel driver lands.

—

Touchscreen

PROBE PENDING

Atmel mXT540T or similar — exact part TBD by I2C probe once a shell exists.

mXT540T? · I2C

WiFi

QUEUED

Broadcom BCM4334 SDIO — same brcmfmac + NVRAM path already proven on lg-hammerhead.

BCM4334 · SDIO

Bluetooth

QUEUED

BCM4334, UART-attached.

BCM4334 · UART

Audio out

QUEUED

WCD9304 codec over SLIMbus + Q6AFE — the first SLIMbus device in the fleet.

WCD9304 · SLIMbus

Audio in / mic

QUEUED

Same WCD9304/Q6AFE path as audio-out.

WCD9304

Battery + charger

DRIVER TBD

Samsung-internal fuel gauge, likely max17048 — the wrong driver path risks shutdown loops before it can even be diagnosed.

max17048?

Battery intelligence (batteryd)

BLOCKED

Needs a working charger/fuel-gauge driver first — mid-SoC cap + SoH telemetry queued directly behind it.

batteryd

Sensors

TYPE UNCONFIRMED

MPU-6500 accel/gyro, AK8963 mag, BH1721 ALS — typical for the matissewifi class, not yet probed on this unit.

MPU-6500 · AK8963

GPU accel

QUEUED

Adreno 305 (a3xx) — freedreno-capable, and a3xx needs no proprietary GPU firmware blob.

Adreno 305 · a3xx

Compositor / Wayland

QUEUED

sway on the wlroots GLES2 path — Track 4 keeps effects minimal by design.

sway · GLES2

USB networking / SSH

QUEUED

micro-B 2.0; no OTG-host advertised but the SoC supports it. Same 172.16.42.1 pattern as the rest of the fleet.

usb0 (planned)

Gesture nav + haptics + dt2w

BLOCKED

Fleet-standard touch-UX bar — blocked on the touchscreen driver landing first.

Track 4 floor

Cameras

QUEUED

1.3 MP front, 3 MP rear, no flash.

—

Cellular modem

N/A

MODEM/APNHLOS partitions exist (shared board SW with the LTE sibling) but this WiFi-only SKU has no radio hardware behind them.

WiFi-only SKU

Beyond Android

Kernel-level capabilities the frozen 2014 TouchWiz firmware never allowed — the parity ceiling this bring-up is aimed at, not just the floor.

⚡

Battery intelligence

batteryd will cap charge at a mid-SoC band and track State-of-Health once the fuel-gauge driver lands — this pack is already 12 years old.

Stock TouchWiz just trickled it to 100% and left it there, 24/7.
a3

Firmware-free GPU

Adreno 305 (a3xx) accelerates through mainline freedreno with zero proprietary GPU firmware.

Unlike the closed Adreno driver stack TouchWiz shipped — a3xx is the last Adreno generation that needs no signed blob to render.
⇄

Gesture navigation

Swipe-based nav with haptic commit and paired audio cues, once the touch driver lands.

Track 4's minimal-effects budget, but the same felt-parity floor as the flagship — no dependency on TouchWiz's on-screen nav bar.
◱

Double-tap-to-wake

Wake-from-black is on the roadmap the moment the Atmel touch driver probes.

A fleet-standard rung, not a bonus — stock Magazine UX only woke on the physical Home button.
K

A kernel that keeps moving

Phase 1 targets the downstream 3.4.113 fork just to get pixels; Phase 2 (unscoped) swaps it for a living mainline kernel.

Android froze permanently at 4.4 KitKat — no fresh mainline msm8226 DTS exists yet in this repo; nearest reference is the Lumia 640 XL's mozart.dts.

Road to RO-OS

Eight rungs, one ladder — every device in the fleet climbs the same one.

P0Boots
P1Access
P2Display+Touch
P3Connectivity
P4Core I/O
P5GPU+Wayland
P6RO-OS shell
P7Full parity

Where matissewifi stands

Sitting at P0 — hardware is fully mapped (PIT, boot-image format, cmdline) but the kernel has never reached a confirmed console. r20 got past the early black-screen cliff. r21 tried to read the crash through a USB-CDC-ACM shell; that plan is retracted — those configfs symbols do not exist in this 3.4 tree, so there is no /dev/ttyACM0 and never was. r22 corrects the record and adds no functional kernel delta.

Target track

Track 4 — Essential (with Tegra Note 7): weak GPU, ≤1.5 GB RAM, sway/Sxmo with minimal effects. The felt-parity floor — snappy touch-boost, haptics on gesture commit, paired audio cues, double-tap-to-wake — is identical to every other track; only the richness ceiling is lower here.

What P6 means

The bespoke RO read-only shell running: double-tap-wake, DPMS blank/wake, rotation, and swipe gestures live end-to-end. RO itself isn't ported to any device yet fleet-wide — the 6T is the intended first target — but every device, including this one, is scoped to eventually carry it.

P0P1P2P3P4P5P6P7
~5%~15%~30%~45% ~60%~75%~90%100%

Live sprint

What's on the bench right now.

In flight

First boot — still no console, and the ACM plan was wrong

✓
Hardware fully mapped via PIT

Full 30-entry partition table read with Heimdall (2026-05-09). BOOT confirmed 10 MiB — comfortable next to TN7's 8 MiB — SYSTEM 2.25 GiB, EFS flagged for backup before any flash.

heimdall print-pit → builds/tab4/print-pit.txt ✓
✓
Boot-image format cracked

aboot rejects an appended-DTB zImage — it wants a QCDT v1 blob, discovered by dissecting a working TWRP image. Kernel now emits /boot/dt.img via dtbtool; Samsung's exact cmdline (vmalloc, panel select, board_rev) was pulled from TWRP's live /proc/cmdline.

r15–r20 · QCDT + cmdline reverse-engineered ✓
3
The USB-ACM debug shell was retracted

r20’s cmdline fix got the kernel measurably further — the screen now lights briefly before reset, versus instant black-screen before. r21 then wired ro-os.debug-shell over USB-CDC ACM to read the crash. That plan was invalid and is withdrawn. The CONFIG_USB_CONFIGFS* / USB_F_ACM symbols it enabled do not exist in this 3.4 tree, so oldconfig silently dropped every one — there is no /dev/ttyACM0 on this kernel and there never was. This downstream tree predates configfs gadgets; its USB is android_usb. r22 corrects the comments to that reality and carries no functional kernel delta.

retracted at r22 · symbols absent from 3.4 · audit 06263e40

The die, and what it drives

Every block coloured by what has been proven on hardware; every wire labelled with the bus it really runs on. The idle engines read as the holes they are — nothing here is illustrative.

MSM8226 · SNAPDRAGON 400 QUAD A7 acpuclock · interactive ADRENO 305 KGSL · no DRM on 3.4 MDSS · DSI FB_MSM, not KMS VIDC V4L2 venus · undocumented Q6 LPASS SLIMbus · Q6AFE WCNSS PRONTO Wi-Fi + BT, on-die MSM CAMERA CSIPHY·CSID·ISPIF·CPP SDCC · eMMC 16 G · SYSTEM rootfs USB g_android legacy sysfs gadget TSENS · BCL thermal · undocumented HOST PC RNDIS · 172.16.42.1 the entire bring-up plan ODIN / LOKE Heimdall 2.1.0 · 04e8:685d BOOT 10 MiB · SYSTEM 2300 MiB no fastboot on this device USB-ACM CONSOLE configfs-only → absent on 3.4 no /dev/ttyACM0. we are blind android_usb · functions=rndis · enable=1 download mode does not exist TC358764 DSI → LVDS bridge cmdline pins this panel WXGA PANEL 10.1" 1280×800 IPS P0 — blocks everything visual BACKLIGHT via TC path · FB_MSM_BACKLIGHT unset TOUCH — TWO DRIVERS ATMEL mXT1188S =y CYPRESS CYTTSP4 =y which one is real: i2c probe decides MIPI-DSI · mdss_dsi_tc358764_wxga_video LVDS i2c · address unknown doc guessed "Atmel mXT540T" — no such symbol in the defconfig WCD9306 "TAPAN" SLIMbus codec + Q6AFE SND_SOC_MSM8226=y SPEAKERS / MICS no UCM written yet · P3 HEADSET + DETECT SAMSUNG_JACK · undocumented SMB358 CHARGER P2 · wrong paths shut the device down sec_battery BATTERY_SAMSUNG + OF_BATTERYDATA no discrete fuel-gauge symbol SLIMbus i2c · PMIC PM8226 doc said WCD9304, and "likely max17048" — both refuted by the defconfig K2HH ACCEL ST · doc guessed MPU-6500 HALL SENSOR folio lid · SW_LID win, undocumented IR BLASTER MC96FR116 + LIRC · undocumented CAMERAS 3 MP / 1.3 MP full MSM camera stack =y i2c / MIPI-CSI MAGNETOMETER no driver enabled — present? LIGHT SENSOR no driver enabled — present? PROXIMITY no driver enabled — present? NOTIF LED LEDS_QPNP=y — exposed? RTC QPNP PMIC RTC · undocumented an I2C bus scan on the first boot collapses this entire row NOT PRESENT — GPS · NFC · FINGERPRINT · HDMI/MHL · CELLULAR RADIO MODEM and APNHLOS partitions exist because Samsung shares board software with the LTE variant. There is no radio behind them. REFUTED BY THE DEFCONFIG — BCM4334 brcmfmac SDIO Wi-Fi, BCM4334 UART Bluetooth. Neither symbol is set; the radio is the SoC's own WCNSS Pronto. A P2 TODO still targets it.
energized — proven on hardware charging — in progress derezzed — blocked dormant — parked / no path

no cyan on this page — by construction