The following features provided by the MSM8916 SoC are supported in mainline and should work on most MSM8916-based devices after the device tree has been set up:
- Internal/External Storage (eMMC/SD card)
- GPU, Display (Note: There are many different display panels and each needs a custom panel driver...)
- Sound (Note: Some devices use a custom speaker amplifier instead of the one provided by PM8916...)
Certain components (e.g. touchscreen, sensors, ...) are device-specific. With a bit of luck, some will be already supported by mainline, others won't.
The first MSM8916 devices using mainline were added in pmaports!582. The following components are involved when running mainline on MSM8916 devices.
The close-to-mainline Linux kernel fork with patches that have not been accepted/submitted upstream yet. Patches in the
master branch are generally in good shape unless marked otherwise. Submit a PR to add new patches there.
The reference bootloader provided by Qualcomm for MSM8916 is open-source and based on Little Kernel (LK). Most devices will use this bootloader in a more or less modified form. On Samsung devices for example, the standard Fastboot interface was replaced by their proprietary download mode.
lk2nd is a fork of the reference bootloader with the goal to provide an unified boot interface on all MSM8916 devices. It provides a standard Fastboot interface (even on Samsung devices!). It also used for a number of mainline quirks (e.g. to set a WiFi/BT MAC address in the device tree; without lk2nd, WiFi/BT does not work out of the box). Eventually, more quirks may be added in the future. It is therefore recommended for all mainline MSM8916 devices. Porting it is generally much easier than porting mainline.
The shared device package in postmarketOS. It contains shared dependencies and configuration files.
- MSM8916-based device
- UART if possible (with a bit of luck you may get USB working without UART)