booting droid 4 xt894 with current kernel

booting hp t410 with current kernel

booting n8x0 with current kernel

unofficial n800 usb host mode

dynamic tick timer for linux

unofficial omap linux patches

linux for psion 5mx and revo kernel patches

proboot linux bootloader for psion 5mx pro

xpsitouch linux touch panel button handler for psion

linux fast serial port enabler for w83627hf

amd 76x native power management for linux

misc amd64 stuff for linux

powerbook 5300/1400 trex pcmcia driver for linux

pjb-100 personal jukebox usb driver for linux-2.6

xawtv-3.76 patch for remote X11 displays

dog toys



Here are some instructions to get droid 4 xt894 and bionic xt875 booted with
the mainline kernel.

As of Linux v5.12, most features work execpt for the camera, voice call
support, and GNSS. There are pending out-of-tree patches needed for voice
calls and GNSS. Camera support needs at least a camera sensor driver.
3D acceleration needs binary blobs but is known to work with Wayland and
sway at least.

List of some interesting links to follow the development:

- Sebastian Reichel's mainline kernel status matrix and other information
- Jonathan Bakker's patches for pvr blobs and wlroots
- Michael Allwright's pending omap4 camera patch for staging driver
- pending mdm6600 patch for reflashing the modem
- linux kernel v5.3 pending droid 4 patches for modem and gnss
- v5.12-rc pvr kernel module patches based on linux_openpvrsgx tree
- starting safestrap recovery from droid4-kexecboot
- newbies guide to make droid4 into linux phone
- droid4-kexecboot bootloader images
- diagram for droid4 audio wiring
- attempt to fix xorg rotation for manual mode LCDs
- maemo leste images
- postmarketOS issue 1275
- sailfishOS test images

Debug UART

There is a debug uart at tty[SO]2 multiplexed with the USB connector. To use
it, you need a custom cable with D+ and D- connected to a 3.3V UART. You need
to leave VBUS disconnected to avoid the connector getting multiplexed back to
USB. It's easiest to make the custom UART by ordering a micro-USB-B breakout
board and connecting the USB serial cable wires to it. I used the sparkfun
break out board here, others should work fine too.

The wire connections are:
d-	device uart tx	usb serial rx ftdi yellow, pl2303 white
d+	device uart rx	usb serial tx ftdi orange, pl2303 green
gnd	device ground	usb serial gnd
vbus	do not connect


With droid4-kexecboot, there is no need to unlock the device compared to
using SafeStrap and ddroid. Please just follow the instructions in the

For using older setup for booting with SafeStrap and ddroid, Sebastian Reichel
has written some instructions on device table, rooting and install.


Note that droid 4 has few limitations. Some eMMC partitions are locked down,
and changing the first two partitions risks bricking the system. So it's best
to treat eMMC as a giant bootloader for kexec with just few usable partitions :)

So far it seems that the following partitions can be reformatted to
be used for Linux

mmcblk1p23	webtop		1.3GB
mmcblk1p22	preinstall	608MB
mmcblk1p25	emstorage	8GB	only if SafeStrap is not used

Also note that droid 4's modem is locked to be usable only with verizon
network in the U.S, in other countries any operator seems to work. The
mdm6600 modem can be used with ModemManager and qmicli for data and GPS.

The W3GLTE modem responds USB UART AT commands if powered, but is unable
to access the SIM card. It seems W3GLTE needs to read the SIM information
from mdm6600 over TS 27.010 n_gsm UART mux. There is some information
available here, and some reviews here and here.


Droid 4 has a Motorola custom PMIC called cpcap. It's connected over
SPI and controls things like regulators, USB and audio. Linux now has
various cpcap devices supported for regulators, battery charging and USB.
Unfortunately there is no documentation available for cpcap, but some
of the internal components like charging and ADC seem simlar to the ones
documented in NXP PMIC MC1378UG.pdf.

If you plan on working on adding more support, please coordinate the
effort on linux-omap mailing list to avoid duplicate work.

GPIO connectors

There are two GPIO pins amongst the wireless charger pins in the back
next to the battery. The GPIO pins are 1.8V and need also the padconf
registers configured with pinctrl in the dts if used.

            +----- cpcap-ind-chrgcmpl gpio_118 gpios = <&gpio4 22 0>
Battery     o o -- cpcap-ind-chrgterm gpio_121 gpios = <&gpio4 25 0>
            o o -- GND
            +----  5V max 1500mA


back to main page