Jump to content

Qualcomm Snapdragon 730/730G/732G (SM7150): Difference between revisions

From postmarketOS Wiki
JIaxyga (talk | contribs)
m Venus IR v1.2.40 -> Venus IR v1.2.X
Adrian (talk | contribs)
m Undo revision 69897 by Daniel6745 (talk)
Tag: Undo
 
(18 intermediate revisions by 3 users not shown)
Line 24: Line 24:
| status_spi = Y
| status_spi = Y
| status_audio = P
| status_audio = P
| status_video =
| status_video = N
| status_thermal = Y
| status_thermal = Y
| status_wifi = Y
| status_wifi = Y
| status_bluetooth = Y
| status_bluetooth = Y
| status_modem = Y
| status_modem = Y
| status_gps = Y
| status_gps = P
| status_camera =
| status_camera = P
| status_npu = N
| status_suspend = Y
| status_suspend = Y
| status_ethernet = -
}}
}}


Line 80: Line 82:
* '''N''': Feature is not currently supported.
* '''N''': Feature is not currently supported.


{|class="wikitable"
{|class="wikitable" style="display: block; overflow-x: auto"
! Component !! Part !! Driver !! Status !! Notes
! Component !! Part !! Driver !! Status !! Notes
|-
|-
Line 94: Line 96:
| SD-Card (3.0) || qcom,sdhci-msm-v5 || class="feature feature-yes" | Y ||
| SD-Card (3.0) || qcom,sdhci-msm-v5 || class="feature feature-yes" | Y ||
|-
|-
| rowspan = 3 | USB Type C
| rowspan = 4 | USB Type C
| USB 2.0 || || class="feature feature-partial" | P || Peripheral mode only
| USB 2.0 || qcom,dwc3 <br> snps,dwc3 <br> qcom,qusb2-v2-phy|| class="feature feature-yes" | Y ||
|-
|-
| USB 3.1 || || class="feature feature-no" | N || rowspan =2 | Need a device that has this for tests
| USB 3.1 || || class="feature feature-no" | N || rowspan =2 | Need a device that has this for tests
Line 101: Line 103:
| DisplayPort 1.4 || || class="feature feature-no" | N
| DisplayPort 1.4 || || class="feature feature-no" | N
|-
|-
| rowspan = 3 | Display
| OTG || qcom,pm8150b-typec <br> qcom,pm8150b-vbus-reg || class="feature feature-yes" | v6.9 ||
|-
| rowspan = 2 | Display
| SimpleFB || simple-framebuffer || class="feature feature-yes" | Y ||
| SimpleFB || simple-framebuffer || class="feature feature-yes" | Y ||
|-
|-
| DPU 5_2 (885) || rowspan =2 | qcom,sm7150-dpu || class="feature feature-yes" | WIP ||
| DPU 5_2 (885) || qcom,sm7150-dpu || class="feature feature-yes" | v6.11 ||
|-
|-
| DPU 5_2 (885) with <abbr title="Display Stream Compression">DSC</abbr> 1.1 || class="feature feature-no" | N || Broken only for video panel?
| GPU || Adreno 618 (610-825MHz) || qcom,adreno-618.0 </br> qcom,adreno || class="feature feature-yes" | Y ||
|-
|-
| GPU || Adreno 618 (610-825MHz) || qcom,adreno-618.0 </br> qcom,adreno || class="feature feature-yes" | Y ||
| rowspan = 2 | Pinctrl
| TLMM 114 GPIOs || qcom,sm7150-tlmm || class="feature feature-yes" | v6.4 ||
|-
|-
| Pinctrl || 114 GPIOs || qcom,sm7150-tlmm || class="feature feature-yes" | v6.4 ||
| LPASS TLMM 32 GPIOs<br>(18 SSC & 14 AUDIO) || qcom,sm7150-lpass-lpi-pinctrl || class="feature feature-yes" | WIP ||
|-
|-
| rowspan = 4 | QUP x15
| rowspan = 4 | QUP x15
Line 153: Line 158:
| GPS || class="feature feature-yes" | Y ||
| GPS || class="feature feature-yes" | Y ||
|-
|-
| Camera || || || class="feature feature-no" | N ||
| Camera || || qcom,sm7150-camss || class="feature feature-partial" | WIP ||
|-
|-
| NPU || NPU 120 (600-700MHz) || || class="feature feature-no" | N ||
| NPU || NPU 120 (600-700MHz) || || class="feature feature-no" | N ||
Line 162: Line 167:
|-
|-
| rowspan = 2 | Regulators
| rowspan = 2 | Regulators
| RPMH || qcom,pm6150-rpmh-regulators <br> qcom,pm8150l-rpmh-regulators || class="feature feature-yes" | Y ||
| RPMH || qcom,pm6150-rpmh-regulators <br> qcom,pm6150l-rpmh-regulators <br> qcom,pm8009-rpmh-regulators (optional) || class="feature feature-yes" | Y ||
|-
|-
| RPMHPD || qcom,sm7150-rpmhpd || class="feature feature-yes" | v6.6 ||
| RPMHPD || qcom,sm7150-rpmhpd || class="feature feature-yes" | v6.6 ||
Line 173: Line 178:
| CDSP || qcom,sc7180-cdsp-pas || class="feature feature-yes" | Y ||
| CDSP || qcom,sc7180-cdsp-pas || class="feature feature-yes" | Y ||
|-
|-
| Interconnects || || qcom,sm7150-mc-virt <br> qcom,sm7150-config-noc <br> qcom,sm7150-system-noc <br> qcom,sm7150-aggre1-noc <br> qcom,sm7150-aggre2-noc <br> qcom,sm7150-mmss-noc <br> qcom,sm7150-compute-noc <br> qcom,sm7150-dc-noc <br> qcom,sm7150-gem-noc <br> qcom,osm-l3 || class="feature feature-yes" |  WIP ||
| Interconnects || || qcom,sm7150-mc-virt <br> qcom,sm7150-config-noc <br> qcom,sm7150-system-noc <br> qcom,sm7150-aggre1-noc <br> qcom,sm7150-aggre2-noc <br> qcom,sm7150-mmss-noc <br> qcom,sm7150-compute-noc <br> qcom,sm7150-dc-noc <br> qcom,sm7150-gem-noc <br> qcom,osm-l3 || class="feature feature-yes" |  v6.9 ||
|-
|-
| rowspan = 6 | Clocks
| rowspan = 6 | Clocks
Line 182: Line 187:
| GPU Clock Controller || qcom,sc7180-gpucc || class="feature feature-yes" | Y ||
| GPU Clock Controller || qcom,sc7180-gpucc || class="feature feature-yes" | Y ||
|-
|-
| Display Clock Controller || qcom,sm7150-dispcc || class="feature feature-yes" | WIP ||
| Display Clock Controller || qcom,sm7150-dispcc || class="feature feature-yes" | v6.11 ||
|-
|-
| Video Clock Controller || qcom,sm7150-videocc || class="feature feature-yes" | WIP ||
| Video Clock Controller || qcom,sm7150-videocc || class="feature feature-yes" | v6.11 ||
|-
|-
| Camera Clock Controller || qcom,sm7150-camcc || class="feature feature-yes" | WIP ||
| Camera Clock Controller || qcom,sm7150-camcc || class="feature feature-yes" | v6.11 ||
|-
|-
| LLCC || Last Level Cache Controller || qcom,sm7150-llcc || class="feature feature-yes" | v6.4 ||
| LLCC || Last Level Cache Controller || qcom,sm7150-llcc || class="feature feature-yes" | v6.4 ||
|-
|-
| rowspan = 10 | PMIC
| rowspan = 9 | PMIC
| Buttons || gpio-keys || class="feature feature-yes" | Y ||
| Buttons || gpio-keys || class="feature feature-yes" | Y ||
|-
|-
| Fuel gauge || qcom,qpnp-qg || class="feature feature-no" | N ||
| Fuel gauge || qcom,pm6150-qg || class="feature feature-partial" | WIP ||
|-
|-
| rowspan = 3 | Charger
| rowspan = 3 | Charger
| qcom,qpnp-smb5 || class="feature feature-no" | N ||
| qcom,qpnp-smb5 || class="feature feature-no" | WIP ||
|-
|-
| qcom,smb1355 (optional) || class="feature feature-no" | N ||
| qcom,smb1355 (optional) || class="feature feature-no" | N ||
Line 202: Line 207:
| qcom,smb1390 (optional) || class="feature feature-no" | N ||
| qcom,smb1390 (optional) || class="feature feature-no" | N ||
|-
|-
| Haptics || qcom,pmi632-vib || class="feature feature-yes" | WIP ||
| Haptics || qcom,pmi632-vib || class="feature feature-yes" | v6.11 ||
|-
|-
| Notification LED || qcom,pm8150l-lpg || class="feature feature-yes" | Y ||
| Notification LED || qcom,pm6150l-lpg || class="feature feature-yes" | v6.10 ||
|-
|-
| Flashlight || qcom,spmi-flash-led || class="feature feature-yes" | v6.4 ||
| Flashlight || qcom,spmi-flash-led || class="feature feature-yes" | v6.4 ||
|-
|-
| Wled || qcom,pm8150l-wled ||  class="feature feature-yes" | v6.6 ||
| Wled || qcom,pm6150l-wled ||  class="feature feature-yes" | v6.6 ||
|-
| IR TX || ||  class="feature feature-no" | N ||
|-
|-
| Sensors || [https://wiki.postmarketos.org/wiki/Qualcomm_Snapdragon_Sensor_Core SSC] || || class="feature feature-no" | N ||
| Sensors || [https://wiki.postmarketos.org/wiki/Qualcomm_Snapdragon_Sensor_Core SSC] || || class="feature feature-yes" | Y ||
|}
|}
== Known Issues ==
* Venus doesn't initialize with error -110:
<syntaxhighlight lang="text">
[  16.337065] qcom-venus aa00000.video-codec: wait for cpu and video core idle fail (-110)
[  16.347265] qcom-venus: probe of aa00000.video-codec failed with error -110
</syntaxhighlight>


== SMMU ==
== SMMU ==
Line 247: Line 257:
| <&apps_smmu 0x1e60 0x0>
| <&apps_smmu 0x1e60 0x0>
|}
|}
== Known Issues ==
* DSC doesn't work on video panels.<br>
Based on dmesg, we can say that the DSC parameters were received correctly and initialization was successful. But still sending commands is unsuccessful.
<source>
[  63.008627] panel-huaxing-nt36672c ae94000.dsi.0: sending command 0xff failed: -22
</source>
* Venus doesn't initialize with error -110:
<source>
[  16.337065] qcom-venus aa00000.video-codec: wait for cpu and video core idle fail (-110)
[  16.347265] qcom-venus: probe of aa00000.video-codec failed with error -110
</source>
* On all xiaomi except surya adsp crashes after a minute:
<source>
[  55.582662] qcom_q6v5_pas 62400000.remoteproc: fatal error received: err_qdi.c:1040:EF:sensor_process:0x1:TMR_CLNT_1:0xe5:dog_virtual_user.c:240:USER-PD DOG detects stalled initialization, triage with IMAGE OWNER
[  55.582733] remoteproc remoteproc0: crash detected in 62400000.remoteproc: type fatal error
[  55.582871] remoteproc remoteproc0: handling crash #1 in 62400000.remoteproc
[  55.582880] remoteproc remoteproc0: recovering 62400000.remoteproc
</source>
* Bluetooth doesn't work without reverting [https://github.com/torvalds/linux/commit/6945795bc81ab7be22750ecfb365056688f2fada some commit] from upstream.
== GPS ==
Install [https://gitlab.com/gpsd/gpsd/-/merge_requests/139 GPSD with the Qualcomm PDS patch], configure it to use <code>pds://any</code> as the device during runtime and you should be good to go.


== Gallery ==
== Gallery ==
Line 278: Line 265:


== Join us ==
== Join us ==
Feel free to join us at [https://matrix.to/#/#sm7150-mainline:matrix.org #sm7150-mainline:matrix.org] on Matrix.
Feel free to join us on OFTC at [https://webchat.oftc.net/?channels=%23sm7150-mainline #sm7150-mainline] or on Matrix at [https://matrix.to/#/#sm7150-mainline:matrix.org #sm7150-mainline:matrix.org].


== Who's working on it ==
== Who's working on it ==
* [[User:JIaxyga]]
* [[User:JIaxyga]]
* [[User:Adrian]]
* [[User:Ungeskriptet]]
* [[User:Ungeskriptet]]


__FORCETOC__
__FORCETOC__

Latest revision as of 22:03, 2 February 2025

Qualcomm SM7150
SM7150 in ceramic BGA package
SM7150 in ceramic BGA package
Manufacturer Qualcomm
Name SM7150
Codenames sdmmagpie
Architecture aarch64
CPU
  • SM7150-AA/AB: 2 + 6 cores (2.2 GHz Kryo 470 Gold + 1.8 GHz Kryo 470 Silver
  • SM7150-AC: 2 + 6 cores (2.3 GHz Kryo 470 Gold + 1.8 GHz Kryo 470 Silver
GPU Adreno 618
NPU 120
Year 2019/2020
Process 8nm
Mainline yes
Community Page https://github.com/sm7150-mainline
Components
CPU
Works
UART
Works
Storage
Works
USB
Works
Display
Works
GPU
Works
Pinctrl
Works
I²C
Works
SPI
Works
Audio
Partial
Video
Broken
Thermal
Works
WiFi
Works
Bluetooth
Works
Modem
Works
GPS
Partial
Camera
Partial
NPU
Broken
Suspend
Works
SATA
No data


SM7150-AA (Snapdragon 730), SM7150-AB (Snapdragon 730G) and SM7150-AC (Snapdragon 732G) are premium mid-range Qualcomm SoCs released in 2019 and 2020. Internal msm codename for this platform is sdmmagpie.

Devices

Snapdragon 730

Device Codename Mainline
Xiaomi Mi 9T / Redmi K20 xiaomi-davinci Y

Snapdragon 730G

Device Codename Mainline
Google Pixel 4a google-sunfish Y
Lenovo Tab P11 Pro lenovo-j706f
Motorola Moto G9 Plus motorola-odessa
Samsung Galaxy A71 samsung-a71 Y
Xiaomi Mi Note 10 / Mi CC9 Pro xiaomi-tucana Y
Xiaomi Mi Note 10 Lite xiaomi-toco Y

Snapdragon 732G

Device Codename Mainline
Xiaomi Mi 11 Lite 4G xiaomi-courbet Y
Xiaomi POCO X3 NFC xiaomi-surya Y
Xiaomi Redmi Note 10 Pro xiaomi-sweet Y
Xiaomi Redmi Note 12 Pro (4G) xiaomi-sweet_k6a Y

Mainline

A work in progress mainline kernel is being developed here.

There is a dedicated SM7150 Mainlining guide that explains how to get started.

  • Kernel release, e.g. v6.4: the feature was incorporated upstream as of this release.
  • WIP: Feature works or works partially in community kernel fork. Not upstream yet.
  • Y: The feature works with a generic or compatible driver.
  • N: Feature is not currently supported.
Component Part Driver Status Notes
SoC Snapdragon 730/730G/732G WIP
CPU Kryo Gold 470 (2.2-2.3GHz)
Kryo Silver 470 (1.8GHz)
qcom,kryo470 Y
Storage UFS (2.1 gear 3) qcom,sm7150-ufshc
qcom,ufshc
jedec,ufs-2.0
v6.4
eMMC (5.1) qcom,sdhci-msm-v5 Y Not tested
SD-Card (3.0) qcom,sdhci-msm-v5 Y
USB Type C USB 2.0 qcom,dwc3
snps,dwc3
qcom,qusb2-v2-phy
Y
USB 3.1 N Need a device that has this for tests
DisplayPort 1.4 N
OTG qcom,pm8150b-typec
qcom,pm8150b-vbus-reg
v6.9
Display SimpleFB simple-framebuffer Y
DPU 5_2 (885) qcom,sm7150-dpu v6.11
GPU Adreno 618 (610-825MHz) qcom,adreno-618.0
qcom,adreno
Y
Pinctrl TLMM 114 GPIOs qcom,sm7150-tlmm v6.4
LPASS TLMM 32 GPIOs
(18 SSC & 14 AUDIO)
qcom,sm7150-lpass-lpi-pinctrl WIP
QUP x15 UART qcom,geni-uart Y
I2C qcom,geni-i2c Y
SPI qcom,geni-spi Y
CCI I2C qcom,msm8996-cci Y
Audio wcd9375 N
wcd9340 (optional) N
wcd9341 (optional) N
MI2S qcom,sm8250-sndcard Y
bluetooth audio Y
Video Venus Venus IR v1.2.X N Error -110
Thermal TSENS Y
PMIC SENS Y
WCN3980
WCN3990
WCN3998
WiFi qcom,wcn3990-wifi Y
Bluetooth qcom,wcn3990-bt Y
Modem Calls qcom,sc7180-ipa
IPA v4.2
Y Voice call audio not working
SMS Y
Mobile data Y
GPS Y
Camera qcom,sm7150-camss WIP
NPU NPU 120 (600-700MHz) N
Suspend Y
RAM console (ramoops) Y
Regulators RPMH qcom,pm6150-rpmh-regulators
qcom,pm6150l-rpmh-regulators
qcom,pm8009-rpmh-regulators (optional)
Y
RPMHPD qcom,sm7150-rpmhpd v6.6
RemoteProcs MPSS qcom,sc7180-mpss-pas Y
ADSP qcom,sc7180-adsp-pas Y
CDSP qcom,sc7180-cdsp-pas Y
Interconnects qcom,sm7150-mc-virt
qcom,sm7150-config-noc
qcom,sm7150-system-noc
qcom,sm7150-aggre1-noc
qcom,sm7150-aggre2-noc
qcom,sm7150-mmss-noc
qcom,sm7150-compute-noc
qcom,sm7150-dc-noc
qcom,sm7150-gem-noc
qcom,osm-l3
v6.9
Clocks Global Clock Controller qcom,sm7150-gcc v6.4
RPM Clock Controller qcom,sc7180-rpmh-clk Y
GPU Clock Controller qcom,sc7180-gpucc Y
Display Clock Controller qcom,sm7150-dispcc v6.11
Video Clock Controller qcom,sm7150-videocc v6.11
Camera Clock Controller qcom,sm7150-camcc v6.11
LLCC Last Level Cache Controller qcom,sm7150-llcc v6.4
PMIC Buttons gpio-keys Y
Fuel gauge qcom,pm6150-qg WIP
Charger qcom,qpnp-smb5 WIP
qcom,smb1355 (optional) N
qcom,smb1390 (optional) N
Haptics qcom,pmi632-vib v6.11
Notification LED qcom,pm6150l-lpg v6.10
Flashlight qcom,spmi-flash-led v6.4
Wled qcom,pm6150l-wled v6.6
Sensors SSC Y

Known Issues

  • Venus doesn't initialize with error -110:
[   16.337065] qcom-venus aa00000.video-codec: wait for cpu and video core idle fail (-110)
[   16.347265] qcom-venus: probe of aa00000.video-codec failed with error -110

SMMU

There are 6 valid IOMMU stream match registers on the Xiaomi POCO X3 NFC provided by the bootloader:

1 SDC1 <&apps_smmu 0x340 0xf>
2 SDC2 <&apps_smmu 0x2a0 0xf>
3 SDC4 <&apps_smmu 0x2c0 0xf>
4 USB <&apps_smmu 0x540 0x0>
5 UFS <&apps_smmu 0x300 0xf>
6 MDSS <&apps_smmu 0x800 0x440>
7 PCI0 <&apps_smmu 0x1e60 0x0>

Gallery

Join us

Feel free to join us on OFTC at #sm7150-mainline or on Matrix at #sm7150-mainline:matrix.org.

Who's working on it