In arm64 Linux development, hardware configuration is separated from driver logic. Drivers interact with the hardware through Device Tree Source ( .dts and .dtsi ) files located in the kernel source tree under arch/arm64/boot/dts/qcom/msm8953.dtsi .
Check linux-msm mailing list. Basic boot possible on 5.4+ with msm8953.dtsi .
Install a cross-compiler like aarch64-linux-gnu- . Configuration: make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig Use code with caution. This selects the base configuration for 64-bit ARM boards. Build Execution:
Mainline Linux interacts with the MSM8953 secure environment via the Power State Coordination Interface (PSCI). CPU hotplugging, cluster idle states, and system reboots are routed through Secure Monitor Calls ( smc ) to the primary TrustZone firmware. 3. Critical Driver Subsystems Subsystem Architecture Block Diagram
| Feature | Downstream (4.4/4.9) | Mainline (6.x) | |--------|----------------------|----------------| | GPU | Full msm (kgsl) | Freedreno (works) | | Display | Full | Partial | | Audio | Full ALSA | Minimal | | Modem | Yes (rmnet, qmi) | No | | WiFi/BT | Yes (wcnss) | No / partial | | Camera | Yes | No | | PMIC | Full | Basic reg/hwmon | | Stability | High (but legacy) | Medium (basic I/O works) |
Whether you are building against an (e.g., 3.18/4.9) or an upstream mainline kernel (6.x). Share public link
Connects the SoC to the PM8953 Power Management IC (PMIC). Almost every driver depends on this bus to toggle voltage regulators. 2. The Foundation: Device Tree Nodes ( .dts and .dtsi )
Diving Deep into the MSM8953 for ARM64: Driver Landscape, Mainline Challenges, and Custom Kernels