Jump to content

Qualcomm Snapdragon 710 (SDM710)

From postmarketOS Wiki
Qualcomm SDM710
Manufacturer Qualcomm
Name SDM710
Architecture aarch64
CPU 2x 2.2 GHz Kryo 360 Gold
6x 1.7 GHz Kryo 360 Silver
GPU Adreno 616
Year 2018
Process 10nm
Mainline yes
Components
CPU
SMP (bring up secondary CPU cores), CPU frequency scaling, CPUidle
Works
UART
Untested
Storage
eMMC, SD cards, UFS, ...
Works
USB
Works
Display
Works
GPU
Works
Pinctrl
Works
I²C
Works
SPI
Serial Peripheral Interface
Works
Audio
Untested
Video
Hardware-accelerated video de/encoding
Untested
Thermal
Untested
WiFi
Untested
Bluetooth
Works
Modem
Calls, SMS, Internet
Works
GPS
Works
Camera
Partial
Suspend
Partial
Note Note: Support for this SoC is a work in progress


The Snapdragon 710 is a mid-range Qualcomm SoC released in 2018.

It's manufactured on TSMC's 10nm node, which makes it a better-binned version of SDM670 (manufactured on Samsung's 10nm node). Likely better power efficiency as well.

Differences compared to Qualcomm_Snapdragon_670_(SDM670):

  • CPU: Faster clocks (and different OPP tables).
  • GPU: Adreno 616 (instead of Adreno 615). Likely the same GPU under the hood.
  • Modem: Qualcomm X15 (instead of X12 in SDM670).
  • DSPs: Process bump.

Devices

Device Codename Category
Realme 3 Pro realme-rmx1851 downstream
Xiaomi Mi 9 Lite xiaomi-pyxis testing

CPU

SDM710 "Kryo Gold" cores run at 2.2GHz (as opposed to 2GHz on SDM670). This required adding missing OPP tables to CPU6 node.

Regulators/pincontrol

Work perfectly fine using SDM670 headers, including (seemingly) sleep state (still testing, therefore marked as partial).

Be aware that on most devices, SoC GPIO range 80-84 is usually reserved for fingerprint sensor and controlled by "secure world".

Without excluding them (gpio-reserved-ranges = <80 4>;), your device will likely crash early in boot process.

Display

We recommend using MSM8996_Mainlining#Simple_Framebuffer for initial bringup if you don't have UART on your device. Much like most newer Qualcomm platforms (2018+), XBL sets up the framebuffer at memory region 0x9c000000.

GPU and DPU work, although DT compatible string has to be set to qcom,adreno-615.0 (SDM670 default) as Linux driver doesn't recognize A616.

[ 0.698283] msm_dpu ae01000.display-controller: Unknown GPU revision: 6.1.6.

In reality, it doesn't matter - display and GPU works perfectly fine (assuming firmware is provided).

Much like SDM670, panel driver can be generated using panel driver generator as long as your device is using a single-DSI mode.

Storage

Both SDHC interfaces and UFS are working.

sdhci1 has been tested by User:Ysh on Realme_3_Pro_(realme-rmx1851).

sdhci2 and ufshc has been tested by User:Ellyqw on Xiaomi_Mi_9_Lite_(xiaomi-pyxis).

USB

Only gadget mode and USB2.0 speeds have been tested, due to vendors cheaping out (SoC supports USB3.1, but most vendors only wire up 2.0 signals).

UART

Default debug on this platform is uart12 located at memory address 0x00a90000.

However, uart12 node is missing from SDM670 devicetree. Furthermore, none of developers working on this SoC have access to UART testpoints on their devices - therefore, UART is considered as "not working". It should be trivial to add missing node and pincontrol if UART access is necessary.

Notes

At the moment, both people working on this SoC have their own respective forks that will be merged into upstream in the near future.

Who's working on it