Qualcomm Snapdragon 835 (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 |
No data |
Storage |
Works |
USB |
Partial |
Display |
Partial |
GPU |
No data |
Pinctrl |
Works |
I²C |
Works |
SPI |
No data |
Audio |
No data |
Video |
No data |
Thermal |
No data |
WiFi |
Partial |
Bluetooth |
Works |
Modem |
No data |
GPS |
No data |
Camera |
No data |
NPU |
No data |
Suspend |
No data |
Ethernet |
No data |
SATA |
No data |
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
No results
UFS internal storage
WARNING: 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.
Real-time clock (RTC)
The RTC module found on the PM8998 PMIC block works with CONFIG_RTC_DRV_PM8XXX
enabled. It can be easily tested from userspace like so:
# cd /sys/class/rtc/rtc0/ # echo $((`cat since_epoch`+120)) > wakealarm
After running that and fully powering down the device it should power on by itself soon afterwards (2 minutes later to be exact).
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
- User:Deathmist (@deathmist on Matrix)
- User:R0551 (@r0551 on Matrix)
- User:Degdag (@degdag on Matrix)
(feel free to add yourself here if you're working on MSM8998 mainlining!)