The Snapdragon X Elite system on chip (SoC) has been garnering attention for its remarkable performance in Windows on Arm PCs. At the same time, we’ve kept our eye on Linux. We’ve been keeping up our traditional efforts to make it easier to boot Linux on Arm®-based PCs by upstreaming a consistent flow of patchsets for the Linux kernel.
In this post, I’ll describe our track record in supporting Linux on laptops with Windows on Snapdragon and how that continues with the Snapdragon X Elite. You’ll see what’s already merged in the mainline Linux kernel, what’s pending and what’s on our roadmap. (This is a summary of our presentation “Linux with Upstream Kernel
On Snapdragon X Elite Compute Platform” at Embedded Open Source Summit. See below for details and links.)
SoCs with Windows on Snapdragon, with consistent Linux support
Collaborating with Lenovo, Arm and Linaro on the AArch64 laptops GitHub project, we’ve built Linux support into several generations of our SoCs with Windows on Snapdragon. We’ve ensured that you could boot Linux on many of the laptops powered by our previous generation of SoCs. Notable models include the Lenovo Yoga C630 (Snapdragon 850), the Lenovo Flex 5G (Snapdragon 8cx Gen 1) and the Lenovo ThinkPad X13s (Snapdragon 8cx Gen 3).
It’s been our priority not only to support Linux on our premium-tier SoCs, but to support it pronto. In fact, within one or two days of publicly announcing each generation of Snapdragon 8, we’ve posted the initial patchset for Linux kernel support. Snapdragon X Elite was no exception: we announced on October 23 of last year and posted the patchset the next day. That was the result of a lot of pre-announcement work to get everything up and running on Linux and Debian.
The Snapdragon X Elite is built around custom Qualcomm CPUs called Qualcomm Oryon, with 12 cores, a clock speed of up to 3.8 GHz and a single- and dual-core boost up to 4.3 GHz. Its Qualcomm Adreno GPU offers up to 4.6 TFLOPs and its neural processing unit (NPU) delivers 45 TOPs for AI workloads. The SoC has received high marks for performance from reviewers like The Register, Tom’s Guide, Digital Trends, Gizmochina and thurrott.com.
Boot firmware
The boot stack on Snapdragon X Elite supports standard UEFI-based boot. Linux boots up using devicetrees, and all standard bootloaders, including Grub and system-d boot, should just work out of the box. We use Grub to boot into Debian, and to dual-boot Windows and Debian.
We’re working closely with upstream communities on an open problem with the UEFI-based BIOS while booting with devicetrees. The problem is that, when you have more than one devicetree blob (DTB) packed into the firmware package flashed on the device, there is no standard way of selecting a devicetree to pass on to the kernel. OEMs commonly put multiple DTBs into the firmware package so it will support devices with slightly different SKUs, so we’re keen to solve this problem. (See the Embedded Open Source Summit presentation on this topic by my colleague Elliot Berman. Links below.)
The image below depicts the boot flow of Linux on this SoC:
Status of the mainline Linux kernel
Here are all the features we've merged into Linux kernel versions 6.8 and 6.9 in the time since the announcement:
|
Pinctrl (TLMM) Interconnect Clocks (GCC/RPMHCC) Powerdomains (RPMh) SMMU QUP (SPI/I2C/UART) System cache PMC8380 PMIC |
Sound machine driver DWC3 Reference board support (CRD/QCP) ADSP/CDSP support Multimedia clocks Phy (PCIe/eDP/USB) SSD-NVMe over PCIe |
For kernel versions 6.10 and 6.11, we’re also working on merging more features in these areas:
|
USB host On-board display (eDP) GPU Memory DCVS CPUFreq Speakers/MIC/Headset |
Battery External DP Suspend/Resume Camera Video |
In short, our roadmap for the next six months includes work in these areas:
- End-to-end hardware video decoding, on Firefox and Chrome
- Implementation of the libcamera-SoftISP camera solution
- GPU and CPU performance optimizations
- Power optimizations (Suspend/DCVS)
- Making our firmware openly available (in Linux-firmware)
- Access to easy installers (Ubuntu and Debian)
Your turn
We’ve published an experimental, raw disk image for a Debian installer, the one we use internally for our compute reference devices (CRDs). Instructions include creating small partitions next to your Windows partition and installing from the image. Note that the installer works only on our reference device. We hope to work closely with OEMs and distro vendors soon to create similar, easy-to-use installers for commercially available devices powered by the Snapdragon X Elite.
If you want to follow or contribute to our work, search on X1E80100 in the Linux Kernel Mailing List archive. You’ll see what we’re doing in areas like display, GPU, video, audio, camera and power management. Let us know what you need.
And, for more details and code snippets, see these presentations from Embedded Open Source Summit 2024, with links to slide decks and video:

