Qualcomm Snapdragon 835 (MSM8998)

From postmarketOS
Jump to: navigation, search
Qualcomm MSM8998
Manufacturer Qualcomm
Name MSM8998
Architecture aarch64
CPU 4x 2.45 GHz Kryo 280 Gold, 4x 1.9 GHz Kryo 280 Silver
GPU Adreno 540
Year 2017
Process 10nm
Mainline yes
Components
CPU
Works
UART
Storage
Works
USB
Partial
Display
Partial
GPU
Pinctrl
Works
I²C
Works
Audio
Video
Thermal
WiFi
Partial
Bluetooth
Works
Modem
Camera


MSM8998 (or Snapdragon 835) is a high-end Qualcomm SoC released in 2017 with mainline support originally added for the MTP (proven reference design) board towards the end of 2018.

Devices

Device Codename Mainline
Essential Phone (PH1) essential-mata N
F(x)tec Pro1 fxtec-pro1
OnePlus 5/5T oneplus-cheeseburger, oneplus-dumpling P
Xiaomi Mi 6 xiaomi-sagit P

UFS internal storage

IF YOUR DEVICE IS A SONY XPERIA DO NOT NEVER EVER EVER TRY TO ENABLE UFS ON NON-VENDOR/NON-SODP KERNELS! IT WILL ERASE THE CHIP CLEAN (INCLUDING THE BOOTLOADER!) CONSIDER YOURSELF WARNED

To enable the device's internal UFS 2.1 host controller (and 14nm UFS QMP PHY), compile the kernel with the following modules enabled:

CONFIG_SCSI_UFS_QCOM=y
CONFIG_PHY_QCOM_QMP=y

You can optionally set CONFIG_SCSI_SCAN_ASYNC=y for some additional speedup while booting. Consider also enabling CONFIG_QFMT_V2 if you intend on writing data to a userdata partition formatted by Android where disk quotas are normally enabled by default for ext4 volumes.

Bluetooth

Getting Bluetooth to work should be trivial assuming you compile the kernel with the following modules enabled:

CONFIG_RFKILL=m
CONFIG_BT_RFCOMM=y
CONFIG_BT_BNEP=y
CONFIG_BT_HIDP=y
CONFIG_BT_HS=y
CONFIG_BT_LE=y

After those are set and you've copied the needed kernel modules over to the rootfs in /lib/modules/ you just need the following firmware files in /lib/firmware/qca/:

crbtfw21.tlv
crnv21.bin

Those can be supplied directly from linux-firmware and they should work fine, but if not you'll need to grab the files from your device's firmware partitions.

See also

linux-mainline-oneplus5 A mainline kernel fork with some patches for MSM8998 and OnePlus 5/5T support (check the 5.7 branch commits for a "step-by-step guide")

OnePlus_5_(oneplus-cheeseburger)#Mainline_kernel

Who's working on it

(feel free to add yourself here if you're working on MSM8998 mainlining!)