Here are some instructions to get droid 4 xt894 booted with mainline kernel.
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
Sebastian Reichel has written some instructions on device table, rooting
and install. There used to be pretty good instructions on how to unlock
droid 4 and install cyanogenmod here. Basically after installing SafeStrap,
you have the kexec tools needed to boot mainline kernel with appended dtb.
It will multiplex the debug UART on, so you will have some console output.
To boot v4.10-rc1 and later mainline kernels built with omap2plus_defconfig,
please download the mainline kernel and mainline kexec tools and read the README
file here ddroid4-mainline-kexec-0.3.tar.xz. The sha256sum for
the file is here.
Additionally you may want to create an installable SafeStrap ROM image. To do
clone the ddroid git repo, and follow the instructions in the README file.
You will also need the kexec tools above.
Note that droid 4 has few limitations. The eMMC partitions are locked down,
and changing them risks bricking the system. So it's best to treat eMMC
as a giant bootloader for kexec with just few usable partitions :) At least
mmcblk1p23 webtop partition can be reformatted as ext4 and used as a root
Also note that droid 4's modem is locked to be usable only with verizon
netowrk in the U.S, in other countries any operator seems to work. There's
some more information available here.
Droid 4 has a motorola custom PMIC called cpcap. It's connected over
SPI and controls things like regulators, USB and audio. Linux v4.11 will
have basic MFD CPCAP driver merged. And the related regulator driver is also
heading into Linux next.
The keyboard is using omap4-keypad driver and just needs to be configured.
I also managed to get the LCD working with the n950-display branch.
The lm3532 LCD backlight works with the TI LMU driver patches.
Looks like HDMI is working too but only with console right now and only if
you plug it in before loading the modules.
I have posted some work-in-progress patches against current Linux next to
here. As patches get posted and applied to Linux next, and there are omapdrm
changes in Linux next, you need to use the Linux next tag as specified
in the tar.gz name. For the kernel .config, I'm just using patched up
I'm currently working on CPCAP ADC and USB PHY drivers. And with the ADC
driver we can also read battery status. And after that we can enable battery
charging. The ADC driver is needed to detect USB VBUS and ID pin states.
Adding support for CPCAP RTC and watchdog should be possible now if somebody
has spare cycles to upstream Linux device drivers :) The CPCAP audio I know
nothing about, except it seems to use McBSP like twl4030 for example. The
modems should be both on EHCI/OHCI USB bus but I have not played with them,
they probably need some GPIO pin toggled to enable them and maybe some PHY
If you plan on working on adding more support, please coordinate the work
on linux-omap mailing list to avoid duplicate work.