Jump to content

Microsoft Lumia 950 XL (microsoft-cityman)

From postmarketOS Wiki
Revision as of 23:01, 9 March 2020 by Drebrez (talk | contribs) (Update chipset)
Microsoft Lumia 950 XL
Lumia 950 XL booting GNOME with Bluetooth status shown
Lumia 950 XL booting GNOME with Bluetooth status shown
Manufacturer Microsoft
Name Lumia 950 XL
Codename msft-950xl
Released 2015
Hardware
Chipset Qualcomm MSM8994 Snapdragon 810
CPU Cortex-A53 (4), Cortex-A57 (4)
GPU Adreno 430
Display 1440x2560 AMOLED
Storage 32GB eMMC and SD card slot
Memory 3GB
Architecture aarch64
Software
Original software Windows 10 Mobile
postmarketOS
Category testing
Pre-built images no
Mainline yes
postmarketOS kernel 4.18
Features
Flashing
Broken
USB Networking
Broken
Internal storage
No data
SD card
No data
Battery
Broken
Screen
Works
Touchscreen
Works
Multimedia
3D Acceleration
Broken
Audio
Broken
Camera
Broken
Camera Flash
No data
Connectivity
WiFi
Partial
Bluetooth
Works
GPS
Broken
NFC
No data
Modem
Calls
Broken
SMS
Broken
Mobile data
Broken
Miscellaneous
FDE
Broken
USB OTG
No data
HDMI/DP
No data
Sensors
Accelerometer
Broken
Magnetometer
No data
Ambient Light
No data
Proximity
No data
Hall Effect
No data
Haptics
No data
Barometer
No data


Contributors

Maintainer(s)

Users owning this device


How to enter flash mode

Windows Phone flash mode can be entered using WPInternals, thor2 or Windows Device Recovery Tool.

Most WoA images have USB mass storage mode available with Power + VolDown key sequence on boot. Alternatively, enter USB mass storage mode via WPInternals.

Because Lumia 950 XL uses standardized UEFI firmware, it is not necessary to flash the device once it is unlocked. Simply install boot-shim and the UEFI firmware similar to the way installing Windows 10 ARM on Lumia 950 XL, partition (Do not delete any partitions before and including EFIESP) and copy files to the device and it will boot.

Warning: Do not touch anything inside DPP partition or it will cause permanent damage to the device

Progress

A slightly patched kernel is available at https://dev.azure.com/imbushuo-personal/_git/Kernel.

Although Lumia 950 XL supports ACPI, the arm64 ACPI support for Qualcomm platforms is limited to Windows-only. Hence a device tree is necessary for successful bring-up. The current device tree is available at https://dev.azure.com/imbushuo-personal/_git/Device%20Tree?version=GBml-4.18-950xl.

The progress is generic for all Linux distros including Debian and pmOS.

  • Processor bring-up using PSCI
  • I2C, GPIO, UART and a few more simple low-speed I/O
  • GCC clocks (RPM clocks do not work yet)
  • Synaptics Touchscreen via I2C
  • FrameBuffer via UEFI GOP @ 1080x1920
  • Bluetooth via UART. Need rampatch and TLV firmware blobs similar to other QCA6174 chipsets.
  • PCIe Root Port, the QCA6174 Wi-Fi NIC is visible, ath10k driver starts but currently stalls the system. Need rampatch and TLV firmware blobs similar to other QCA6174 chipsets.

Booting

  • Unlock the device using WPInternals
  • Install boot-shim and UEFI firmware
  • Partition the device, create a new ESP partition for aarch64 (keep the ARM32 one) and a partition for the root filesystem
  • Unpack root filesystem, install GRUB ARM64, kernel and device tree into the new ESP partition

A reference boot entry:

linux /vmlinuz-4.18.6-lumia-950xl-uefi nomodeset acpi=off video=efifb boot_delay=200 root=UUID=<Root Partition UUID>
initrd /initrd.img-4.18.6-lumia-950xl-uefi
devicetree /msm8994-microsoft-lumia-950xl.dtb

See also