Jump to content

Qualcomm Snapdragon 425/427/430/435 (MSM8917/MSM8920/MSM8937/MSM8940): Difference between revisions

From postmarketOS Wiki
Bczeman (talk | contribs)
Current mainline status
Modem: ah nope
 
(7 intermediate revisions by 2 users not shown)
Line 11: Line 11:
| mainline = yes
| mainline = yes
| community_page = https://github.com/msm89x7-mainline  
| community_page = https://github.com/msm89x7-mainline  
| status_cpu =  
| status_cpu = Y
| status_uart =  
| status_uart = Y
| status_storage =  
| status_storage = Y
| status_usb =  
| status_usb = Y
| status_display =  
| status_display = Y
| status_gpu =  
| status_gpu = Y
| status_pinctrl =  
| status_pinctrl = Y
| status_i2c =  
| status_i2c = Y
| status_audio =  
| status_audio = Y
| status_video =  
| status_video = N
| status_thermal =  
| status_thermal = Y
| status_wifi =  
| status_wifi = Y
| status_bluetooth =  
| status_bluetooth = Y
| status_modem =  
| status_modem = P
| status_camera =  
| status_camera = P
| status_suspend =  
| status_suspend = N
| status_spi = Y
| status_gps = N
| status_npu = -
| status_npu = -
| status_sata = -
| status_ethernet = -
}}
}}


Line 49: Line 53:
| status_pinctrl = Y
| status_pinctrl = Y
| status_i2c = Y
| status_i2c = Y
| status_audio = P
| status_audio = Y
| status_video = N
| status_video = N
| status_thermal = Y
| status_thermal = Y
| status_wifi = Y
| status_wifi = Y
| status_bluetooth = Y
| status_bluetooth = Y
| status_modem = N
| status_modem = P
| status_camera = P
| status_camera = P
| status_suspend = N
| status_suspend = N
| status_spi = Y
| status_gps = N
| status_npu = -
| status_npu = -
| status_sata = -
| status_ethernet = -
}}
}}


Line 101: Line 109:
| mainline = yes
| mainline = yes
| community_page = https://github.com/msm89x7-mainline
| community_page = https://github.com/msm89x7-mainline
| status_cpu = P
| status_cpu = Y
| status_uart = Y
| status_storage = Y
| status_usb = Y
| status_display = Y
| status_gpu = Y
| status_pinctrl = Y
| status_i2c = Y
| status_audio = Y
| status_video = N
| status_thermal = Y
| status_wifi = Y
| status_bluetooth = Y
| status_modem = P
| status_camera = N
| status_suspend = N
| status_spi = Y
| status_gps = N
| status_npu = -
| status_sata = -
| status_ethernet = -
}}
 
{{Infobox soc
| name = MSM8940
| codenames =
| manufacturer = Qualcomm
| arch = aarch64
| cpu = 8x 1.4 GHz ARM Cortex-A53
| gpu = Adreno 505
| year = 2016
| process = 28
| mainline = yes
| community_page = https://github.com/msm89x7-mainline
| status_cpu = Y
| status_uart = Y
| status_uart = Y
| status_storage = Y
| status_storage = Y
| status_usb = Y
| status_usb = Y
| status_display = Y
| status_gpu = Y
| status_pinctrl = Y
| status_i2c = Y
| status_audio = Y
| status_video = N
| status_thermal = Y
| status_wifi = Y
| status_bluetooth = Y
| status_modem = N
| status_camera = N
| status_suspend = N
| status_spi = Y
| status_gps = N
| status_npu = -
| status_sata = -
| status_ethernet = -
}}
{{Infobox soc
| name = SDM429
| codenames =
| manufacturer = Qualcomm
| arch = aarch64
| cpu = 4x 2 GHz ARM Cortex-A53
| gpu = Adreno 504
| year = 2019
| process = 12
| mainline = no
| community_page = https://github.com/msm89x7-mainline
| status_cpu =
| status_uart =
| status_storage =
| status_usb =
| status_display =  
| status_display =  
| status_gpu =  
| status_gpu =  
| status_pinctrl = Y
| status_pinctrl =  
| status_i2c = Y
| status_i2c =  
| status_audio =  
| status_audio =  
| status_video =  
| status_video =  
Line 117: Line 193:
| status_camera =  
| status_camera =  
| status_suspend =  
| status_suspend =  
| status_spi =
| status_gps =
| status_npu = -
| status_npu = -
| status_sata = -
| status_ethernet = -
}}
}}


{{Infobox soc
{{Infobox soc
| name = MSM8940
| name = SDM439
| codenames =  
| codenames =  
| manufacturer = Qualcomm
| manufacturer = Qualcomm
| arch = aarch64
| arch = aarch64
| cpu = 8x 1.4 GHz ARM Cortex-A53
| cpu = 8x 2 GHz ARM Cortex-A53
| gpu = Adreno 505
| gpu = Adreno 505
| year = 2016
| year = 2018
| process = 28
| process = 12
| mainline = yes
| mainline = no
| community_page = https://github.com/msm89x7-mainline
| community_page = https://github.com/msm89x7-mainline
| status_cpu = P
| status_cpu =  
| status_uart = Y
| status_uart =  
| status_storage = Y
| status_storage =  
| status_usb = Y
| status_usb =  
| status_display =  
| status_display =  
| status_gpu =  
| status_gpu =  
| status_pinctrl = Y
| status_pinctrl =  
| status_i2c = Y
| status_i2c =  
| status_audio =  
| status_audio =  
| status_video =  
| status_video =  
Line 147: Line 227:
| status_camera =  
| status_camera =  
| status_suspend =  
| status_suspend =  
| status_spi =
| status_gps =
| status_npu = -
| status_npu = -
| status_sata = -
| status_ethernet = -
}}
}}


Line 237: Line 321:


== CPU ==
== CPU ==
There is currently no working clock driver and rely on the bootloader for providing clock frequency. So 8 cores will be slower than 4 cores on MSM8937/8940 platform.
<del>There is currently no working clock driver and rely on the bootloader for providing clock frequency. So 8 cores will be slower than 4 cores on MSM8937/8940 platform.</del>
 
== Modem ==
Modem can be enabled on msm8917 and msm8937, but manual steps are needed to make it visible for ModemManager:
 
<syntaxhighlight lang="shell-session">
$ doas qmicli -d qrtr://0 --dpm-open-port="hw-data-ep-type=bam-dmux,hw-data-ep-iface-number=0,hw-data-rx-id=42,hw-data-tx-id=42"
$ doas qmicli -d qrtr://0 --dms-set-operating-mode=online
$ doas rc-service modemmanager restart
</syntaxhighlight>
 
MM not doing this automatically is tracked in [https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/610 ModemManager#610]
 
The 2nd line might not actually be required (TODO: confirm).
 
The modem boots when the <code>rmtfs</code> service starts. To boot successfully, Motorola (at least) devices need firmware served by <code>tqftpserv</code> (see [https://gitlab.postmarketos.org/postmarketOS/pmaports/-/blob/master/device/community/soc-qcom-msm8953/moto-modem-rfs-setup.openrc moto-modem-rfs-setup.openrc]), Sony devices need a <code>ta</code> service.


== See Also ==
== See Also ==

Latest revision as of 02:55, 27 January 2025

🚧 This page is a work-in-progress. Some information contained within may be inaccurate or incomplete.
Qualcomm QM215
Manufacturer Qualcomm
Name QM215
Architecture aarch64
CPU 4x 1.3 GHz ARM Cortex-A53
GPU Adreno 308
Year 2019
Process 28nm
Mainline yes
Community Page https://github.com/msm89x7-mainline
Components
CPU
Works
UART
Works
Storage
Works
USB
Works
Display
Works
GPU
Works
Pinctrl
Works
I²C
Works
SPI
Works
Audio
Works
Video
Broken
Thermal
Works
WiFi
Works
Bluetooth
Works
Modem
Partial
GPS
Broken
Camera
Partial
Suspend
Broken


Qualcomm MSM8917
Manufacturer Qualcomm
Name MSM8917
Architecture aarch64
CPU 4x 1.4 GHz ARM Cortex-A53
GPU Adreno 308
Year 2016
Process 28nm
Mainline yes
Community Page https://github.com/msm89x7-mainline
Components
CPU
Works
UART
Works
Storage
Works
USB
Works
Display
Works
GPU
Works
Pinctrl
Works
I²C
Works
SPI
Works
Audio
Works
Video
Broken
Thermal
Works
WiFi
Works
Bluetooth
Works
Modem
Partial
GPS
Broken
Camera
Partial
Suspend
Broken


Qualcomm MSM8920
Manufacturer Qualcomm
Name MSM8920
Architecture aarch64
CPU 4x 1.4 GHz ARM Cortex-A53
GPU Adreno 308
Year 2017
Process 28nm
Components
CPU
No data
UART
No data
Storage
No data
USB
No data
Display
No data
GPU
No data
Pinctrl
No data
I²C
No data
SPI
No data
Audio
No data
Video
No data
Thermal
No data
WiFi
No data
Bluetooth
No data
Modem
No data
GPS
No data
Camera
No data
Suspend
No data
Ethernet
No data
SATA
No data


Qualcomm MSM8937
Manufacturer Qualcomm
Name MSM8937
Architecture aarch64
CPU 8x 1.4 GHz ARM Cortex-A53
GPU Adreno 505
Year 2016
Process 28nm
Mainline yes
Community Page https://github.com/msm89x7-mainline
Components
CPU
Works
UART
Works
Storage
Works
USB
Works
Display
Works
GPU
Works
Pinctrl
Works
I²C
Works
SPI
Works
Audio
Works
Video
Broken
Thermal
Works
WiFi
Works
Bluetooth
Works
Modem
Partial
GPS
Broken
Camera
Broken
Suspend
Broken


Qualcomm MSM8940
Manufacturer Qualcomm
Name MSM8940
Architecture aarch64
CPU 8x 1.4 GHz ARM Cortex-A53
GPU Adreno 505
Year 2016
Process 28nm
Mainline yes
Community Page https://github.com/msm89x7-mainline
Components
CPU
Works
UART
Works
Storage
Works
USB
Works
Display
Works
GPU
Works
Pinctrl
Works
I²C
Works
SPI
Works
Audio
Works
Video
Broken
Thermal
Works
WiFi
Works
Bluetooth
Works
Modem
Broken
GPS
Broken
Camera
Broken
Suspend
Broken


Qualcomm SDM429
Manufacturer Qualcomm
Name SDM429
Architecture aarch64
CPU 4x 2 GHz ARM Cortex-A53
GPU Adreno 504
Year 2019
Process 12nm
Mainline no
Community Page https://github.com/msm89x7-mainline
Components
CPU
No data
UART
No data
Storage
No data
USB
No data
Display
No data
GPU
No data
Pinctrl
No data
I²C
No data
SPI
No data
Audio
No data
Video
No data
Thermal
No data
WiFi
No data
Bluetooth
No data
Modem
No data
GPS
No data
Camera
No data
Suspend
No data


Qualcomm SDM439
Manufacturer Qualcomm
Name SDM439
Architecture aarch64
CPU 8x 2 GHz ARM Cortex-A53
GPU Adreno 505
Year 2018
Process 12nm
Mainline no
Community Page https://github.com/msm89x7-mainline
Components
CPU
No data
UART
No data
Storage
No data
USB
No data
Display
No data
GPU
No data
Pinctrl
No data
I²C
No data
SPI
No data
Audio
No data
Video
No data
Thermal
No data
WiFi
No data
Bluetooth
No data
Modem
No data
GPS
No data
Camera
No data
Suspend
No data


MSM8917, MSM8937, MSM8940 are Qualcomm SoCs released in 2016.

MSM8920 is a improved version of MSM8917 (higher clocked GPU and faster modem) released in 2017.

QM215 is a stripped-down version of MSM8917 released in 2019 for low-end devices.

According to Wikipedia, MSM8917/8920/8937/8940 are pin and software compatible, and are software compatible with SDM429/439/450/632, MSM8953/8953Pro.

Devices

QM215 (Qualcomm 215)

Device Codename Mainline Category
Nokia 2780 Flip nokia-weeknd Y testing

MSM8917 (Snapdragon 425)

Device Codename Mainline Category
Huawei MediaPad T3 10 huawei-agassi Y testing
Motorola Moto E5 motorola-nora Y testing
Samsung Galaxy J2 Pro 2018 samsung-j2y18lte testing
Samsung Galaxy J4+ samsung-j4primelte testing
Samsung Galaxy J6+ samsung-j6primelte N testing
Wiko View wiko-v12bnlite testing
Xiaomi Redmi 4A xiaomi-rolex Y testing
Xiaomi Redmi 5A xiaomi-riva Y testing
Xiaomi Redmi Go xiaomi-tiare testing
Xiaomi Redmi Note 5A xiaomi-ugglite Y testing

MSM8920 (Snapdragon 427)

Device Codename Mainline Category
Motorola Moto E4 motorola-perry testing

MSM8937 (Snapdragon 430)

Device Codename Mainline Category
Asus Max M1 asus-x00p N testing
BQ Aquaris U bq-chaozu testing
BQ Aquaris U Plus bq-tenshi testing
HMD Global Nokia 5 nokia-nd1 P testing
HMD Global Nokia 6 nokia-ple N testing
Huawei Honor 7 (AUM) huawei-aum P testing
Lenovo K5 Play lenovo-l38011 P testing
Lenovo K6 Note lenovo-karatep testing
Lenovo K6 Power lenovo-karate testing
Motorola Moto E5 Play motorola-james testing
Motorola Moto E5 Plus motorola-hannah Y testing
Motorola Moto G5 motorola-cedric P testing
Motorola Moto G5s motorola-montana Y testing
Motorola Moto G6 Play motorola-aljeter testing
Pantech SKY I'm Back pantech-ef71 testing
Qualcomm Snapdragon 430 qcom-msm89x7 Y testing
Xiaomi Redmi 3S xiaomi-land Y testing
Xiaomi Redmi 4 Standart xiaomi-prada Y testing

MSM8940 (Snapdragon 435)

Device Codename Mainline Category
LG Stylo 3 Plus lg-sf340n N testing
Xiaomi Redmi 4x xiaomi-santoni Y testing
Xiaomi Redmi Note 5A Prime xiaomi-ugg Y testing

SDM429 (Snapdragon 429)

Device Codename Mainline Category
Samsung Galaxy Tab A 8.0 (2019) samsung-gtowifi n testing

SDM439 (Snapdragon 439)

Device Codename Mainline Category
HMD Global Nokia 4.2 nokia-panther N testing
HMD Global Nokia 4.2 nokia-panther N testing
Xiaomi Redmi 7A xiaomi-pine testing
Xiaomi Redmi 8 xiaomi-olive testing

CPU

There is currently no working clock driver and rely on the bootloader for providing clock frequency. So 8 cores will be slower than 4 cores on MSM8937/8940 platform.

Modem

Modem can be enabled on msm8917 and msm8937, but manual steps are needed to make it visible for ModemManager:

$ doas qmicli -d qrtr://0 --dpm-open-port="hw-data-ep-type=bam-dmux,hw-data-ep-iface-number=0,hw-data-rx-id=42,hw-data-tx-id=42"
$ doas qmicli -d qrtr://0 --dms-set-operating-mode=online
$ doas rc-service modemmanager restart

MM not doing this automatically is tracked in ModemManager#610

The 2nd line might not actually be required (TODO: confirm).

The modem boots when the rmtfs service starts. To boot successfully, Motorola (at least) devices need firmware served by tqftpserv (see moto-modem-rfs-setup.openrc), Sony devices need a ta service.

See Also