https://wiki.postmarketos.org/api.php?action=feedcontributions&user=Konradybcio&feedformat=atompostmarketOS - User contributions [en]2024-03-28T16:42:06ZUser contributionsMediaWiki 1.39.6https://wiki.postmarketos.org/index.php?title=Sony_Xperia_5_II_(sony-pdx206)&diff=34359Sony Xperia 5 II (sony-pdx206)2022-12-17T22:09:13Z<p>Konradybcio: edo WILL die if you poke at ufs, DO NOT ATTEMPT!</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = Xperia 5 II<br />
| codename = sony-pdx206<br />
| image = File:CHANGE_ME_TO_DEVICE_CODENAME.jpg<br />
| imagecaption = CHANGE_ME<br />
| releaseyear = 2020<br />
| originalsoftware = Android 10 on kernel 4.14<br />
| chipset = Qualcomm Snapdragon 865 5G (SM8250)<br />
| cpu = Octa-core (1x2.84 GHz Kryo 585 & 3x2.42 GHz Kryo 585 & 4x1.80 GHz Kryo 585)<br />
| gpu = Adreno 650<br />
| storage = 128GB/?<br />
| display = 1080x2520 6.1" OLED<br />
| memory = 8GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = N<!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. --><br />
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = P<!-- The display is working? --><br />
| status_wifi = <!-- Wireless network works? --><br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = Y<!-- Instead of a Linux kernel fork, it is possible to run mainline. --><br />
| status_battery = <!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = <!-- Connecting to the Internet via cellular network. --><br />
| status_sms = <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = <!-- Talking to other people over the cellular network. --><br />
| status = <!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" --><br />
| status_otg = <!-- USB-OTG adapters work, e.g. to connect an USB flash drive to the device --><br />
| status_nfc = <!-- Near-Field Communication (NFC) works --><br />
| status_irtx = <!-- Infrared (IR) port works --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_magnet = <!-- Magnetometer works --><br />
| status_light = <!-- Ambient light sensor works --><br />
| status_proximity = <!-- Proximity sensor works --><br />
| status_hall = <!-- Hall effect sensor works --><br />
| booting = Y <!-- The device is booting at all, can be yes/no *IMPORTANT* --><br />
<br />
<!-- you can also use these lines if you need to:<br />
if the device haven't originally ran Android OS, e.g. Nokia N900<br />
| n-android = ✔<br />
Version of the kernel that pmos is running<br />
| pmoskernel = ?<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Konradybcio|Konrad Dybcio]] (@konradybcio)<br />
* [[User:dodoradio|Dodoradio]] (@dodoradio)<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Before you can flash PostmarketOS, you'll need to unlock your bootloader as described on [https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader/ Sony's open devices portal]. This may potentially void your warranty, be warned, and read the warnings that Sony provide also. <br />
<br />
Once you've finished these steps, your device will have been wiped. Set up android if you want, you won't have any reason to get rid of it because UFS doesn't work at the moment (see below). Then, either: <br />
* Power off the device. Holding up on the volume rocker, plug the device into a computer.<br />
* (or, on android) get an adb shell and run <code>adb reboot bootloader</code>.<br />
<br />
== Installation ==<br />
no actual aport at the moment. <br />
{{warning|DO NOT NEVER EVER EVER TRY TO ENABLE UFS ON NON-VENDOR/NON-SODP KERNELS! IT WILL ERASE THE CHIP CLEAN (INCLUDING THE BOOTLOADER!) CONSIDER YOURSELF WARNED}}<br />
For more info on UFS see below<br />
<br />
Because UFS doesn't work, you'll want to flash the rootfs to an sdcard. Use <code>pmbootstrap install --sdcard=/dev/path-to-sdcard-device</code>. Take a look at [https://wiki.postmarketos.org/wiki/Partition_Layout partitioning] to understand what's going on here. <br />
<br />
You'll need to flash some empty bytes to the dtbo due to a bootloader bug. Get a file with two empty bytes and then flash it with <code>fastboot flash dtbo emptystuff.img</code><br />
<br />
Then flash the kernel as usual, by putting the device into flash mode (fastboot) and then running <code>pmbootstrap flasher flash-kernel</code>.<br />
<br />
== Status ==<br />
This device belongs to the Sony Edo platform, which is the Xperia 1 II (pdx203), Xperia 5 II (this one, pdx206) and the 2020 Xperia PRO (pdx204). This might warrant a common platform page if anyone gets their hands on another Edo.<br />
<br />
The defining features of the Xperia 5 II compared to other Edo is as follows:<br />
* 128GB UFS + 8GB RAM. GSMArena mentions a 256GB variant but it's not certain that it exists.<br />
* lack of TOF depth camera<br />
* smaller display resolution (both other Edo have 1644 x 3840), running at 120hz (other Edo run at 60hz)<br />
* smaller overall body<br />
<br />
Work has been done on the device trees in the mainline kernel by the folks over at [https://somainline.org somainline]. The device does boot, USB networking and ssh work, and the framebuffer works, so x11 UIs should work.<br />
<br />
== UFS ==<br />
The phone's internal storage is UFS. Sony's past devices have had a bug that will erase the phone's entire internal storage if you try to start up UFS on mainline, because one of the UFS commands is misimplemented. This includes wiping the bootloader, bricking the device FOR EVER. <br />
<br />
We currently have UFS disabled in the device tree, which renders the device's internal storage unusable but means there is no chance of anything getting bricked. It should be possible to patch out this command and reenable UFS in dts on a device-specific kernel eventually.<br />
<br />
== See also ==<br />
<!--<br />
Link to related GitLab issues or merge requests like the following (replace CHANGEME with the ID, e.g. 1234):<br />
* {{MR|CHANGEME|pmaports}} Initial merge request<br />
* {{issue|CHANGEME|pmaports}} Some related issue<br />
You can also add normal web links:<br />
* [https://redmine.replicant.us/projects/replicant/wiki/GalaxyS2I9100 Replicant wiki page]<br />
--><br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--><br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/qcom/sm8250-sony-xperia-edo-pdx206.dts Mainline device tree]<br />
* [https://docs.somainline.org/platform/sm8250/sony/pdx206/ Page at somainline]</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Category:Devices_with_known_UART_pinout&diff=26592Category:Devices with known UART pinout2022-03-29T11:38:05Z<p>Konradybcio: Created page with "This category lets users find devices with known UART (or any other debug interface for that matter) easily, for example to help one make a purchase decision for a development..."</p>
<hr />
<div>This category lets users find devices with known UART (or any other debug interface for that matter) easily, for example to help one make a purchase decision for a development device.</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Xiaomi_Mi_9_(xiaomi-cepheus)&diff=26591Xiaomi Mi 9 (xiaomi-cepheus)2022-03-29T11:36:42Z<p>Konradybcio: Add to "Devices with known UART pinout" category</p>
<hr />
<div>[[Category:Devices with known UART pinout]]<br />
<br />
{{Infobox device<br />
| manufacturer = Xiaomi<br />
| name = Mi 9<br />
| codename = xiaomi-cepheus<br />
| image = File:Xiaomi-cepheus-netboot.jpg<br />
| imagecaption = Mi 9<br />
| releaseyear = 2019<br />
| category = testing<br />
| originalsoftware = Android 9.0, up to 10, MIUI 11<br />
| chipset = Qualcomm SM8150 Snapdragon 855<br />
| cpu = 8-core (1x 2.84 GHz Kryo 485 & 3x 2.42 GHz Kryo 485 & 4x 1.78 GHz Kryo 485)<br />
| gpu = Adreno 640<br />
| storage = 64/128/256 GB<br />
| display = 1080 x 2340<br />
| memory = 6/8 GB<br />
| architecture = aarch64<br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = P<br />
| status_wifi = <br />
| status_xwayland = <br />
| status_fde = -<br />
| status_mainline = P <br />
| status_battery = Y<br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth = <br />
| status_camera = <br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| status = none<br />
| booting = yes<br />
| pmoskernel = <br />
| whet_dhry = 7735.4<br />
| status_otg = <br />
| status_irtx = -<br />
}}{{Based on SoC|Qualcomm_Snapdragon_855_(SM8150)|Snapdragon 855}}<br />
<br />
__TOC__<br />
<br />
== Contributors ==<br />
<!-- * ''[[user:handle|Nick name]]'' --><br />
''[[user:Alexeymin|Alexey Min]]''<br />
<br />
== Maintainer(s) ==<br />
<!-- * ''[[user:handle|Nick name]]'' --><br />
''[[user:Alexeymin|Alexey Min]]''<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
=== Bootloader Unlocking ===<br />
Like other Xiaomi devices, the user will have to acquire the bootloader unlock key: https://en.miui.com/unlock<br />
<br />
The device will not unlock if the device isn't 7 days old (from the time when your device connects to internet and powered on, and linked with Mi Account)<br />
<br />
=== Recovery mode ===<br />
* Turn the device off (or restart also works)<br />
* Hold {{button|Volume Up}} and {{button|Power}} button<br />
* Once you feel vibration and phone turns on, release {{button|Power}} button<br />
* Keep holding {{button|Volume Up}} until you get to recovery.<br />
<br />
=== Flashing (Download, Fastboot) mode ===<br />
* Same as recovery, but this time hold the {{button|Volume Down}} and {{button|Power}} keys.<br />
<br />
The device supports booting images using <code>fastboot boot</code> / <code>pmbootstrap flasher boot</code>.<br />
<br />
== Installation ==<br />
To boot mainline kernel you need to erase dtbo partition and disable vbmeta.<br />
{{note|first make sure you have backups of the following partition images (or you have them in your stock Android or Lineage ROM): <code>boot.img</code>, <code>dtbo.img</code>, <code>vbmeta.img</code>}}<br />
{{note|mainline port currently does not contain any useful features!}}<br />
<br />
* pmbootstrap init # select xiaomi, cepheus, console ui (currently you probably don't need anything else)<br />
* pmbootstrap install --no-firewall<br />
* pmbootstrap initfs hook_add debug-shell / netboot # optional<br />
* fastboot erase dtbo<br />
* pmbootstrap flasher flash_vbmeta # this flashes vbmeta with verity disabled flag<br />
* pmbootstrap flasher flash boot && fastboot reboot / pmbootstrap flasher boot # ?<br />
<br />
== Installation (downstream port) ==<br />
Unlike with mainline kernel, here you don't need to erase dtbo partition.<br />
{{note|first make sure you have backups of vbmeta partition (or you have it in your stock Android or Lineage ROM)}}<br />
<br />
* pmbootstrap init # select xiaomi, cepheus-downstream, confirm Y, select console ui (currently you probably don't need anything else)<br />
* pmbootstrap install --no-firewall<br />
* pmbootstrap flasher flash_vbmeta # this flashes vbmeta with verity disabled flag<br />
* pmbootstrap flasher flash_rootfs<br />
* pmbootstrap flasher flash_kernel<br />
* fastboot reboot<br />
<br />
== Extra information ==<br />
=== Partition layout ===<br />
<div class="toccolours mw-collapsible mw-collapsed" style="width: 620px; overflow: auto;"><br />
Partition layout:<br />
<div class="mw-collapsible-content"><br />
<pre class="shell"><br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 abl -> /dev/block/sde35<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 ablbak -> /dev/block/sde36<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 aop -> /dev/block/sde15<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 aopbak -> /dev/block/sde16<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 apdp -> /dev/block/sde8<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 bk01 -> /dev/block/sda4<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 bk02 -> /dev/block/sda5<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 bk03 -> /dev/block/sda6<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 bk04 -> /dev/block/sda7<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 bk05 -> /dev/block/sda10<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 bk06 -> /dev/block/sda13<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 bk07 -> /dev/block/sda15<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 bk08 -> /dev/block/sda20<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 bk09 -> /dev/block/sda22<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 bk31 -> /dev/block/sdd1<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 bk32 -> /dev/block/sdd3<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 bk33 -> /dev/block/sdd5<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 bk41 -> /dev/block/sde5<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 bk42 -> /dev/block/sde12<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 bk43 -> /dev/block/sde23<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 bk44 -> /dev/block/sde30<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 bk45 -> /dev/block/sde39<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 bk47 -> /dev/block/sde50<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 bk51 -> /dev/block/sdf2<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 bk52 -> /dev/block/sdf3<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 bluetooth -> /dev/block/sde26<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 boot -> /dev/block/sde49<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 cache -> /dev/block/sda29<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 catecontentfv -> /dev/block/sde28<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 catefv -> /dev/block/sde18<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 cateloader -> /dev/block/sde31<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 cdt -> /dev/block/sdd2<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 cmnlib -> /dev/block/sde19<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 cmnlib64 -> /dev/block/sde21<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 cmnlib64bak -> /dev/block/sde22<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 cmnlibbak -> /dev/block/sde20<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 core_nhlos -> /dev/block/sde51<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 cust -> /dev/block/sda30<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 dbg -> /dev/block/sda3<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 ddr -> /dev/block/sdd4<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 devcfg -> /dev/block/sde13<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 devcfgbak -> /dev/block/sde14<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 devinfo -> /dev/block/sda17<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 dip -> /dev/block/sde27<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 dsp -> /dev/block/sde48<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 dtbo -> /dev/block/sde45<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 frp -> /dev/block/sda9<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 fsc -> /dev/block/sdf1<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 fsg -> /dev/block/sde40<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 gsort -> /dev/block/sde44<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 hyp -> /dev/block/sde42<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 hypbak -> /dev/block/sde43<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 ifaa -> /dev/block/sde46<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 imagefv -> /dev/block/sdf4<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 keymaster -> /dev/block/sde24<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 keymasterbak -> /dev/block/sde25<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 keystore -> /dev/block/sda8<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 limits -> /dev/block/sde4<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 logdump -> /dev/block/sda25<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 logfs -> /dev/block/sda14<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 logo -> /dev/block/sde47<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 metadata -> /dev/block/sda19<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 minidump -> /dev/block/sda26<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 misc -> /dev/block/sda11<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 modem -> /dev/block/sde52<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 modemst1 -> /dev/block/sdf5<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 modemst2 -> /dev/block/sdf6<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 msadp -> /dev/block/sde9<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 multiimgoem -> /dev/block/sde1<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 multiimgqti -> /dev/block/sde2<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 oem_misc1 -> /dev/block/sda18<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 oops -> /dev/block/sda16<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 persist -> /dev/block/sda23<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 persistbak -> /dev/block/sda24<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 qupfw -> /dev/block/sde6<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 qupfwbak -> /dev/block/sde7<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 rawdump -> /dev/block/sda27<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 recovery -> /dev/block/sda28<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 secdata -> /dev/block/sde3<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 splash -> /dev/block/sda21<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 spunvm -> /dev/block/sde41<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 ssd -> /dev/block/sda2<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 storsec -> /dev/block/sde11<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 switch -> /dev/block/sda1<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 system -> /dev/block/sde54<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 toolsfv -> /dev/block/sde34<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 tz -> /dev/block/sde37<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 tzbak -> /dev/block/sde38<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 uefisecapp -> /dev/block/sde32<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 uefisecappbak -> /dev/block/sde33<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 uefivarstore -> /dev/block/sde17<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 userdata -> /dev/block/sda31<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 vbmeta -> /dev/block/sde10<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 vendor -> /dev/block/sde53<br />
lrwxrwxrwx 1 root root 16 1971-12-18 13:45 vm-data -> /dev/block/sda12<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 xbl -> /dev/block/sdb2<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 xbl_config -> /dev/block/sdb1<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 xbl_configbak -> /dev/block/sdc1<br />
lrwxrwxrwx 1 root root 15 1971-12-18 13:45 xblbak -> /dev/block/sdc2<br />
<br />
$ sudo busybox fdisk -l<br />
Note: sector size is 4096 (not 512)<br />
Found valid GPT with protective MBR; using GPT<br />
<br />
Disk /dev/sdf: 65536 sectors, 256M<br />
Logical sector size: 4096<br />
Disk identifier (GUID): fead433a-45f5-7b1c-4f17-9e5a276e3c76<br />
Partition table holds up to 32 entries<br />
First usable sector is 6, last usable sector is 8186<br />
<br />
Number Start (sector) End (sector) Size Name<br />
1 6 69 256K fsc<br />
2 70 255 744K bk51<br />
3 256 511 1024K bk52<br />
4 512 1023 2048K imagefv<br />
5 1024 3071 8192K modemst1<br />
6 3072 5119 8192K modemst2<br />
7 5120 8186 11.9M last_parti<br />
Note: sector size is 4096 (not 512)<br />
Found valid GPT with protective MBR; using GPT<br />
<br />
Disk /dev/sda: 112214016 sectors, 64.0M<br />
Logical sector size: 4096<br />
Disk identifier (GUID): 6bf2d432-e5e3-d03b-e45c-737163689e9a<br />
Partition table holds up to 32 entries<br />
First usable sector is 6, last usable sector is 14026746<br />
<br />
Number Start (sector) End (sector) Size Name<br />
1 6 7 8192 switch<br />
2 8 15 32768 ssd<br />
3 16 23 32768 dbg<br />
4 24 31 32768 bk01<br />
5 32 63 128K bk02<br />
6 64 127 256K bk03<br />
7 128 255 512K bk04<br />
8 256 383 512K keystore<br />
9 384 511 512K frp<br />
10 512 1023 2048K bk05<br />
11 1024 2047 4096K misc<br />
12 2048 3071 4096K vm-data<br />
13 3072 4095 4096K bk06<br />
14 4096 6143 8192K logfs<br />
15 6144 8191 8192K bk07<br />
16 8192 12287 16.0M oops<br />
17 12288 16383 16.0M devinfo<br />
18 16384 20479 16.0M oem_misc1<br />
19 20480 24575 16.0M metadata<br />
20 24576 32603 31.3M bk08<br />
21 32604 40959 32.6M splash<br />
22 40960 49151 32.0M bk09<br />
23 49152 65535 64.0M persist<br />
24 65536 81919 64.0M persistbak<br />
25 81920 98303 64.0M logdump<br />
26 98304 131071 128M minidump<br />
27 131072 163839 128M rawdump<br />
28 163840 180223 64.0M recovery<br />
29 180224 245759 256M cache<br />
30 245760 507903 1024M cust<br />
31 507904 14026746 51.5G userdata<br />
Note: sector size is 4096 (not 512)<br />
Found valid GPT with protective MBR; using GPT<br />
<br />
Disk /dev/sdb: 16384 sectors, 64.0M<br />
Logical sector size: 4096<br />
Disk identifier (GUID): 8492cc0f-bc06-ccf4-503c-12506a977b64<br />
Partition table holds up to 32 entries<br />
First usable sector is 6, last usable sector is 2042<br />
<br />
Number Start (sector) End (sector) Size Name<br />
1 6 133 512K xbl_config<br />
2 134 1925 7168K xbl<br />
3 1926 2042 468K last_parti<br />
Note: sector size is 4096 (not 512)<br />
Found valid GPT with protective MBR; using GPT<br />
<br />
Disk /dev/sdc: 16384 sectors, 64.0M<br />
Logical sector size: 4096<br />
Disk identifier (GUID): 20d6b4ac-e894-aa85-f848-30ef7a612310<br />
Partition table holds up to 32 entries<br />
First usable sector is 6, last usable sector is 2042<br />
<br />
Number Start (sector) End (sector) Size Name<br />
1 6 133 512K xbl_configbak<br />
2 134 1925 7168K xblbak<br />
3 1926 2042 468K last_parti<br />
Note: sector size is 4096 (not 512)<br />
Found valid GPT with protective MBR; using GPT<br />
<br />
Disk /dev/sdd: 65536 sectors, 256M<br />
Logical sector size: 4096<br />
Disk identifier (GUID): c56e2ee2-0467-b3c1-b445-8ccafb33c002<br />
Partition table holds up to 32 entries<br />
First usable sector is 6, last usable sector is 8186<br />
<br />
Number Start (sector) End (sector) Size Name<br />
1 6 13 32768 bk31<br />
2 14 45 128K cdt<br />
3 46 261 864K bk32<br />
4 262 517 1024K ddr<br />
5 518 773 1024K bk33<br />
6 774 8186 28.9M last_parti<br />
Note: sector size is 4096 (not 512)<br />
Found valid GPT with protective MBR; using GPT<br />
<br />
Disk /dev/sde: 12582912 sectors, 0<br />
Logical sector size: 4096<br />
Disk identifier (GUID): bf0ad734-2424-987e-e115-25eb5eb0690b<br />
Partition table holds up to 64 entries<br />
First usable sector is 6, last usable sector is 1572858<br />
<br />
Number Start (sector) End (sector) Size Name<br />
1 6 13 32768 multiimgoem<br />
2 14 21 32768 multiimgqti<br />
3 22 29 32768 secdata<br />
4 30 37 32768 limits<br />
5 38 63 104K bk41<br />
6 64 95 128K qupfw<br />
7 96 127 128K qupfwbak<br />
8 128 191 256K apdp<br />
9 192 255 256K msadp<br />
10 256 287 128K vbmeta<br />
11 288 319 128K storsec<br />
12 320 383 256K bk42<br />
13 384 447 256K devcfg<br />
14 448 511 256K devcfgbak<br />
15 512 639 512K aop<br />
16 640 767 512K aopbak<br />
17 768 895 512K uefivarstore<br />
18 896 1023 512K catefv<br />
19 1024 1279 1024K cmnlib<br />
20 1280 1535 1024K cmnlibbak<br />
21 1536 1791 1024K cmnlib64<br />
22 1792 2047 1024K cmnlib64bak<br />
23 2048 2303 1024K bk43<br />
24 2304 2559 1024K keymaster<br />
25 2560 2815 1024K keymasterbak<br />
26 2816 3071 1024K bluetooth<br />
27 3072 3327 1024K dip<br />
28 3328 3583 1024K catecontentfv<br />
29 3584 5631 8192K bk44<br />
30 5632 6143 2048K bk44<br />
31 6144 6655 2048K cateloader<br />
32 6656 7167 2048K uefisecapp<br />
33 7168 7679 2048K uefisecappbak<br />
34 7680 8191 2048K toolsfv<br />
35 8192 8703 2048K abl<br />
36 8704 9215 2048K ablbak<br />
37 9216 10239 4096K tz<br />
38 10240 11263 4096K tzbak<br />
39 11264 12287 4096K bk45<br />
40 12288 14335 8192K fsg<br />
41 14336 16383 8192K spunvm<br />
42 16384 18431 8192K hyp<br />
43 18432 20479 8192K hypbak<br />
44 20480 24575 16.0M gsort<br />
45 24576 32767 32.0M dtbo<br />
46 32768 49151 64.0M ifaa<br />
47 49152 65535 64.0M logo<br />
48 65536 81919 64.0M dsp<br />
49 81920 114687 128M boot<br />
50 114688 120319 22.0M bk47<br />
51 120320 163839 170M core_nhlos<br />
52 163840 245759 320M modem<br />
53 245760 638975 1536M vendor<br />
54 638976 1556479 3584M system<br />
55 1556480 1572858 63.9M last_parti<br />
</pre><br />
</div><br />
</div><br />
<br />
=== Getting logs through debug UART ===<br />
Tested! It works extremely well and the TX pin is easily accessible even without soldering.<br />
For the ground you can force a breadboard pin into some metal shield. Be careful not to break the back being of a glassy material, so use a piece of plastic such as a credit card (not to scratch the metal edges) to unstick the glue in the edges. To get the credit card into the edges you must first heat them with a phono or with a gas stove and then with a suction cup lift the back (opposing the strength of the glue). Never bend the back too much to avoid the risk of breaking it, but it is relatively flexible and always keeping in mind that it is a glassy material you will not have to leave defects, let alone cracks. If you care about aesthetics and plan to combine a mess, I recommend you put a spare back on the cart, they have a paltry price. The image below indicates which are the serial pins, this is the upper board.<br /><br />
[[File:Xiaomi-cepheus_UART_pins.jpg|457px]]<br />
[[File:Xiaomi-cepheus-UART-pins-schematic.jpg|600px]]<br />
<br />
=== Other xiaomi phones on sm8150 ===<br />
* xiaomi-raphael (Mi 9T Pro / Redmi K20 Pro)<br />
* xiaomi-andromeda (Mi Mix 3 5G)<br />
* xiaomi-vayu (POCO X3 Pro) (sm8150-ac aka Snapdragon 860)<br />
<br />
== Links ==<br />
<!-- * {{MR|1095|pmaports}} Initial merge request --><br />
* [https://gitlab.com/postmarketOS/pmaports/-/commits/cepheus pmaports WIP branch]<br />
* [https://www.gsmarena.com/xiaomi_mi_9-9507.php GSMARENA]<br />
* Deviceinfo HW pages: for cepheus: [http://www.deviceinfohw.ru/devices/item.php?item=94479 1] [http://www.deviceinfohw.ru/devices/item.php?item=556101 2] (for [http://www.deviceinfohw.ru/devices/item.php?item=556175 raphael])</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Apple_Macbook_Air_M1_(apple-MacBookAir10,1)&diff=26552Apple Macbook Air M1 (apple-MacBookAir10,1)2022-03-27T21:07:57Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Apple<br />
| name = MacBook Air<br />
| codename = MacBookAir10,1<br />
| image = File:MacBookAir10,1.jpg<br />
| imagecaption = MacBook Air M1 2020<br />
| releaseyear = 2020<br />
| originalsoftware = macOS 11.0<br />
| chipset = Apple M1<br />
| cpu = 3.2 GHz 8cores (4× Apple Firestorm high-performance + 4× Apple Icestorm high-efficiency)<br />
| gpu = Apple-designed integrated graphics (either 7 or 8 cores dependent on base spec)<br />
| storage = 128GB (education only), 256GB, 512GB, 1TB, 2TB<br />
| display = 13.3", native 2560 x 1600 pixels (16:10, 227 ppi) IPS<br />
| memory = 8/16 GB LPDDR4 @ 4266 MT/s<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = <br />
| status_flashing = <br />
| status_touch = -<br />
| status_screen = <br />
| status_wifi = <br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline = <br />
| status_battery = <br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth = <br />
| status_camera = <br />
| status_gps = -<br />
| status_mobiledata = -<br />
| status_sms = -<br />
| status_calls = -<br />
| status = <br />
| booting = no<br />
| n-android = ✔<br />
| status_otg = -<br />
}}<br />
{{note|'''Note:''' for active development see https://asahilinux.org/ .}}<br />
== Contributors ==<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<br />
== How to enter flash mode ==<br />
for DFU mode: https://support.apple.com/en-gb/guide/apple-configurator-2/apdd5f3c75ad/mac<br />
<br />
== Installation ==<br />
<br />
<br />
== See also ==<br />
This device does currently boot and works to a degree, it has a actively developed Linux port (https://asahilinux.org/), as well as a somewhat working port by corellium that is claimed to be "completely usable" yet lacks any optimisation (https://www.corellium.com/blog/linux-m1)</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=What_can_vendors_do_to_help&diff=20032What can vendors do to help2021-06-19T00:43:11Z<p>Konradybcio: Created page with "The [#postmarketOS-mainline https://matrix.to/#/!KuvFdgCUXMBkgiDjsE:postmarketos.org?via=matrix.org&via=kde.org&via=postmarketos.org] Matrix channel is home to many Mainline-L..."</p>
<hr />
<div>The [#postmarketOS-mainline https://matrix.to/#/!KuvFdgCUXMBkgiDjsE:postmarketos.org?via=matrix.org&via=kde.org&via=postmarketos.org] Matrix channel is home to many Mainline-Linux-on-phones efforts. While the members are a crucial part of the procedure of getting pure Linux reliably on their devices, the vendors can significantly help with this process!<br />
<br />
<br />
== Making debug ports available ==<br />
<br />
Homegrown developers often view their phones (and other devices) as black boxes, as they lack technical reference manuals and other useful pieces of information. This is where debug ports come in: from debugging an error in BSP code, to getting output from a fresh port of Linux, BSD or any other kernel/OS, it is crucial for many to have a way of communicating with the device that requires little to no setup. Many manufacturers, like Samsung, SONY or Xiaomi have exposed debug interfaces in one way or another (be it via the USB port, or pins on the motherboard), which let devs have a far easier time knowing what's going on with their code.<br />
<br />
<br />
== Not using (double-)signed firmware and other high-security features ==<br />
<br />
Linux and Android, while they do have their security flaws (as every piece of software does - no code is perfect), are often plenty secure for an average user. Vendors tend to lock down their devices in ways that even a potential attacker would probably not bother exploiting. Requiring the firmware to be signed essentially removes the possibility of creating aftermarket solutions, as the chip won't function properly if the signature doesn't match the manufacturer's. While sounding like a feature, it is indeed a fatal flaw. When the vendor support ends, say 2 years after the device's release, users are stuck with potentially unsafe firmware that they are not able to replace. It does not have to be that way, as it seems not to be enforced by either chipmakers or OS makers. Yet many device manufacturers choose to blow given fuses, or otherwise set some bits that disallow tinkering on your own.<br />
<br />
<br />
== Sharing schematics ==<br />
<br />
Many OEMs take pride in their devices. Why not share the excitement with us, consumers on a deeper level? Having the access to schematics is often crucial for exploring new OS options. For example, how is one going to know whether it's safe to power on regulator A without regulator B if one isn't told how/whether these are connected? And then, how would one know the precise model number of a part, so that new developments can include the required code for it?<br />
<br />
<br />
== Sharing design quirks ==<br />
<br />
Everybody makes mistakes. After all, we're just humans. It's a part of our nature. Do not be ashamed of the mistakes you've made in your design. Instead, embrace them by giving us, the developers a warning and an explanation on what can we do to overcome them. If, for example, your memory chip erases itself when it gets a certain command - tell us! We'll figure out how not to pass the deadly bitstreams to the chip, making it safer for device owners.<br />
<br />
<br />
== Making devices available to developers ==<br />
<br />
The postmarketOS-mainline chat includes some prominent developers, who have proven their abilities by getting Mainline Linux (and various other pieces of software) to run on off-the-shelf consumer devices, like phones or tablets, that were never meant to be used with it. These people are often limited by two factors: lack of time and devices to develop on. While the first one is often a very complicated subject that can not be solved in a simple manner, the latter one very much could be. Some device makers are known for providing devices to known developers (like [https://pine64.org Pine64]). It's a great way to provide people with tools they need to build a better future for Free and Open Source projects. It's not even about giving them access to the latest and greatest - quite contrary in fact! postmarketOS's motto mentions a "10 year lifecycle", which - proven by the likes of ST-Ericsson U8500 being mainlined (i.e. having the Mainline Linux kernel ported to them) - is in fact possible! On the other hand, it's a good way to dispose of old stock in a responsible way :wink:<br />
<br />
<br />
== Choosing hardware wisely ==<br />
<br />
There are some chips that are known for their closed nature, likes of which are PowerVR GPUs, or MediaTek SoCs - mainly due to the lack of public documentation and lackluster Open Source codebases. While price is often a great factor, there are vendors who choose their chips solely for the purpose of building a device as Freedom-respecting as possible (such as [https://puri.sm Purism] with their I.MX8MQ-powered phone). This also goes for Wi-Fi/Bluetooth chips, basebands and other components, including the smallest ones, like sound codecs.<br />
<br />
<br />
== Releasing the source code ==<br />
<br />
The GPL2 License requires one to make the source code of a modified program available at request. Sadly, many vendors violate the license by not releasing their modified versions of the Linux kernel and sweeping it under the rug. This harms the Open Source movement, as we cannot just guess what was inside and reverse engineering a monolithic kernel is not a pretty task, even with 95% of the common source available.<br />
<br />
<br />
<br />
<br />
== But why? ==<br />
<br />
While many for-profit companies see no use in preserving electronic devices for longer, the buyers certainly do. This plays very well with the recent Right to Repair movements, because people realize that they do not need to swap out their hardware every year or so. Apart from saving money, keeping your devices for longer is a net positive for the planet, keeping them out of landfills.</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=ST-Ericsson_NovaThor_U8500&diff=18182ST-Ericsson NovaThor U85002021-03-22T16:42:38Z<p>Konradybcio: typo fix</p>
<hr />
<div>{{Infobox soc<br />
| name = NovaThor U8500<br />
| image = File:Phos-on-st-ericsson-href.jpg<br />
| imagecaption = Phosh running on the ST-Ericsson U8500 HREF (Hardware Reference Design)<br />
| manufacturer = ST-Ericsson<br />
| arch = armv7<br />
| cpu = 2x 1 GHz ARM Cortex-A9<br />
| gpu = ARM Mali-400 MP<br />
| year = 2011<br />
| process = 40<br />
| mainline = yes<br />
| status_cpu = Y<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = Y<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio =<br />
| status_video =<br />
| status_thermal = Y<br />
| status_wifi = -<br />
| status_bluetooth = -<br />
| status_modem =<br />
| status_gps = -<br />
| status_camera =<br />
}}<br />
<br />
== Devices with this chipset ==<br />
<br />
This chipset is used similarly in the following devices:<br />
<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='ST-Ericsson NovaThor U8500' OR Devices.chipset='[[ST-Ericsson NovaThor U8500]]' OR Devices.chipset='NovaThor U8500'<br />
|more results text=<br />
}}<br />
<br />
Other devices using this chipset but not yet ported to postmarketOS (remove once they are ported):<br />
<br />
* Samsung Galaxy Beam GT-I8530 codename samsung-gavini ({{wikipedia|Samsung_Galaxy_Beam_i8530|wikipedia}})<br />
* Sony Xperia Go (sony-lotus) ({{wikipedia|Sony_Xperia_Go|wikipedia}})<br />
* Sony Xperia Sola (sony-pepper) ({{wikipedia|Sony_Xperia_sola|wikipedia}})<br />
* Motorola XT760<br />
* HTC Desire 400 dual SIM<br />
<br />
==Charging==<br />
<br />
[[File:samsung-universal-charger.jpg|thumb|right|Samsung universal charger of a type that can charge the Li-Ion batteries for all U8500 mobile phones.]]<br />
The U8500 has a companion power management IC (PMIC, also known as analog baseband, AB) ASIC called AB8500/AB8505 that takes care of the charging. In difference from many other charging ICs this chip is not autonoumous and will not charge the phone without the right software to instruct it, respond to interrupts etc. So in short: the phone will not charge unless the kernel has started and provides the right driver for the charger portions of the AB8500.<br />
<br />
The mainline kernel for the U8500 does not as of now (2021-03-20) yet support charging. To work with these phones an external battery charger is recommended, or you have to regularly revert to the original firmware just to charge, and if your battery depletes completely before you do that you have a problem.<br />
<br />
[https://www.wish.com/product/54f7cb97cffbbb398a4f7d79?share=web This type of charger at Wish] can charge all of these batteries. It is a noname product simply named "Multi-connector USB Battery charger" that originates in China and often found in webstores such as Aliexpress or Wish. The charger comes with a US plug, so you may additionally need a US-to-european power converter to use it.<br />
<br />
== Flash and SDcard Layout on Samsung NovaThor U8500 Devices ==<br />
<br />
When working with these devices, we install U-Boot, the kernel (<code>zImage</code>) and a small initial ramdisk (<code>initrd</code>) in the internal flash of the phone. The installation is done in three steps:<br />
<br />
# U-Boot is installed on the Samsung U8500 devices using the Samsung open source flashing tool '''Heimdall'''. This is the open source reimplementation of Samsungs ''Odin'' tool. This has to be done manually ''before'' you can use <code>pmbootstrap</code>.<br />
# The kernel and inital ramdisk is then installed using U-Boot. After installing U-Boot, any time we want to reflash the phone internal eMMC kernel image and initial ramdisk, we do this using U-Boot's ''fastboot'' implementation, and on the host side we use the Android '''fastboot''' command-line tool to do the reflashing of new kernels. <code>pmbootstrap flash</code> will hide these details, but it's good to know.<br />
# The root filesystem for PostmarketOS will be stored on the external SDcard, so you will need to set up an SDcard using <code>pmbootstrap install --sdcard=/dev/nnnn</code>.<br />
<br />
== U-Boot on Samsung NovaThor U8500 Devices ==<br />
<br />
There is a port of (mainline) U-Boot for U8500 currently maintained at: https://github.com/novathor-mainline/u-boot<br />
<br />
It contains a board called <code>stemmy</code>, which is intended for all Samsung devices using U8500 (see above). It provides a simple Android fastboot interface as replacement for Samsung's proprietary flashing procedure. As a device tree compatible bootloader, it can be also used to boot mainline without any hacks in the Linux kernel.<br />
<br />
{{note|'''Note:''' In this case, U-Boot does '''not''' replace the Samsung bootloader. Instead, it is packaged into an Android boot image (if necessary), and flashed to the Android boot partition replacing the Linux kernel. The kernel will be loaded from an offset into the boot partition.}}<br />
<br />
=== Installation ===<br />
<br />
Heimdall [https://github.com/Benjamin-Dobell/Heimdall can be found here] but is packaged into most major Linux distributions such as Debian, Ubuntu and Fedora.<br />
<br />
Pre-built images are available from: https://github.com/novathor-mainline/u-boot/releases. Alternatively, you can build it from source. See [[#Building]] below.<br />
<br />
Choose the Android boot image (<code>u-boot.img</code>) or the raw binary (<code>u-boot.bin</code>), depending on your device. Most newer devices (e.g. <code>samsung-golden</code> and <code>samsung-skomer</code>) use the Android boot image format, but some older (e.g. <code>samsung-janice</code>) use the raw binary.<br />
<br />
{| class="wikitable"<br />
|+ U-boot binary format per phone<br />
|-<br />
! Product name !! Model !! Codename !! U-Boot<br />
|-<br />
| Galaxy S Advance || GT-I9070 || Janice || <code>u-boot.bin</code><br />
|-<br />
| Galaxy Ace 2 || GT-I8160 || Codina || ?<br />
|-<br />
| Galaxy S III mini || GT-I8190N || Golden || <code>u-boot.img</code><br />
|-<br />
| Xcover 2 || GT-S7710 || Skomer || <code>u-boot.img</code><br />
|-<br />
| Galaxy Beam || GT-I8530 || Gavini || ?<br />
|}<br />
<br />
Install it normally to the boot partition replacing the default Kernel (notice capital K on Kernel):<br />
<br />
heimdall flash --Kernel u-boot.[bin|img]<br />
<br />
=== Usage ===<br />
U-Boot will try to boot an Android boot image from the <code>boot</code> partition by default. Pressing one of the volume keys during boot allows to change that behavior:<br />
* <code>Volume Down</code>: Enter Fastboot mode<br />
* <code>Volume Up</code>: Boot into recovery (<code>recovery</code> partition)<br />
<br />
{{note|'''Note:''' Since the <code>boot</code> partition is already used for U-Boot itself, U-Boot reads the Android boot image with 1 MB offset from the <code>boot</code> partition. This offset is applied automatically when using <code>fastboot flash boot boot.img</code>.}}<br />
<br />
In Fastboot mode, kernels can be directly booted from RAM using <code>fastboot boot ...</code>. Alternatively, partitions can be flashed using <code>fastboot flash <partition> ...</code>.<br />
<br />
U-Boot itself can be also flashed from U-Boot using <code>fastboot flash u-boot u-boot.img</code> (in this case, it will not apply the offset for the <code>boot</code> partition).<br />
<br />
=== Building ===<br />
'''Requirements:''' ARM cross compiler (e.g. <code>arm-none-eabi-gcc</code>)<br />
<br />
export CROSS_COMPILE=arm-none-eabi-<br />
make stemmy_defconfig<br />
make<br />
<br />
If your device uses Android boot images, package it into an Android boot image:<br />
mkbootimg --kernel u-boot.bin --base=0x00000000 --kernel_offset=0x00100000 --ramdisk_offset=0x02000000 --tags_offset=0x00000100 --output=u-boot.img<br />
<br />
== Kernel Hacking on NovaThor U8500 ==<br />
<br />
These sections detail some tricks needed when working on kernel development.<br />
<br />
Some details can be found at the external page for [[https://dflund.se/~triad/krad/ux500/ Ux500 mainline work]].<br />
<br />
=== Assembling a Custom boot.img ===<br />
<br />
When used with PostmarketOS the <code>boot.img</code> that you flash into the phone should come out of the [[Installing pmbootstrap|pmbootstrap]] utility, but if you for some reason want to assemble the <code>boot.img</code> using some prefabricated kernel, ramdisk and device tree, the process is like this this:<br />
<br />
mkbootimg --kernel zImage --ramdisk initrd --second foo.dtb --base=0x00000000 --kernel_offset=0x00008000 --ramdisk_offset=0x02000000 --second_offset=0x00f00000 --tags_offset=0x00000100 --output=boot.img<br />
<br />
Or using <code>abootimg</code>:<br />
<br />
abootimg --create boot.img -k zImage -r initrd -s foo.dtb -c "pagesize=0x800" -c "kerneladdr=0x8000" -c "ramdiskaddr=0x02000000" -c "secondaddr=0x00f00000" -c "tagsaddr=0x100"<br />
<br />
Notice how this puts the device tree binary <code>foo.dtb</code> into the "second bootloader firmware".<br />
<br />
If you are booting PostmarkeOS with a custom kernel, the <code>initrd</code> you pass must better be a PostmarkeOS initramfs. This can be found in a path like <code>.local/var/pmbootstrap/chroot_native/mnt/rootfs_samsung-skomer/boot/initramfs-postmarketos-stericsson</code>. The initrd is used to set up, detect and load the rest of the rootfs from the SDcard volume so it is pretty vital.<br />
<br />
=== Flashing a Custom Kernel ===<br />
<br />
You install a custom kernel into the device by booting into U-Boot as described above, go to '''fastboot''' mode by holding down {{Button|Power}} + {{Button|Volume Down}} or by holding {{Button|Volume Down}} while you insert the serial cable. Then you can flash a new kernel image like this:<br />
<br />
fastboot flash boot boot.img<br />
<br />
After this reboot the phone and your new kernel should start.<br />
<br />
== See also ==<br />
* This chipset has a [{{wikipedia|NovaThor|wikipedia page}}]<br />
<br />
[[Category:Chipsets]]</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=User:Konradybcio&diff=17988User:Konradybcio2021-03-17T21:24:44Z<p>Konradybcio: /* Owns devices */</p>
<hr />
<div><div style="float: right;"><br />
{{User mainline|yes}}<br />
{{User main device|Xiaomi_Mi_8_(xiaomi-dipper)}}<br />
</div><br />
<br />
<br />
I mainline things<br />
<br />
<br />
== Contact ==<br />
Matrix: @konradybcio:matrix.org<br />
<br />
== Owns devices ==<br />
{{My devices}}<br />
{{Owns device|Apple_iPhone_5s_(apple-iphone5s)|Made out of parts, dead-ish battery}}<br />
{{Owns device|Asus_Zenfone_2_Laser/Selfie_(1080p)_(asus-z00t)|Z00T, I mainlined the thing! But it's not on the lists yet..}}<br />
{{Owns device|Microsoft_Lumia_535_(msft-chakra)|Boots upstream Linux, but no drivers (YET!)}}<br />
{{Owns device|Motorola_Moto_G_2014_(motorola-titan)|Screen's a tiny bit broken}}<br />
{{Owns device|Sony_Ericsson_Xperia_X8_(semc-shakira)|It needs binary tools to package its ancient 2.6 kernel into a proprietary .sin and then flashable .ftf formats}}<br />
{{Owns device|Sony_Xperia_XA2_(sony-pioneer)|}}<br />
{{Owns device|Sony_Xperia_XZ_(sony-kagura)|}}<br />
{{Owns device|Sony_Xperia_Z1_(sony-honami)|Vibration motor sometimes works (apparently mainline driver is smarter than stock, lol)}}<br />
{{Owns device|Xiaomi_Mi_8_(xiaomi-dipper)|Daily driver}}</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_450/625/626/632_(MSM8953)&diff=17491Qualcomm Snapdragon 450/625/626/632 (MSM8953)2021-02-21T10:16:54Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8953<br />
| codenames = msmtitanium/apqtitanium<br />
| manufacturer = Qualcomm<br />
| arch = aarch64<br />
| cpu = 8x 1.8/2.0/2.2 GHz ARM Cortex-A53 (SDM450/625/626)<br />
4x 1.8 GHz Kryo250 Gold +<br />
4x 1.8 GHz Kryo250 Silver (SDM632)<br />
| gpu = Adreno 506<br />
| year = 2016<br />
| process = 14<br />
| mainline = partial<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = Y<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = Y<br />
| status_video = Y<br />
| status_thermal = Y<br />
| status_wifi = Y<br />
| status_bluetooth = Y<br />
| status_modem = P<br />
| status_camera = <br />
<br />
}}<br />
<br />
[https://www.qualcomm.com/products/snapdragon-450-mobile-platform SDM450]/[https://www.qualcomm.com/products/snapdragon-625-mobile-platform SDM625]/[https://www.qualcomm.com/products/snapdragon-626-mobile-platform SDM626]/[https://www.qualcomm.com/products/snapdragon-632-mobile-platform SDM632]/[https://www.qualcomm.com/products/apq8053 APQ8053] are Qualcomm SoCs released from 2016. According to Wikipedia, SDM450/625/626/632 are all pin and software compatible. <br />
<br />
<br />
== Devices ==<br />
=== Snapdragon 450 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline,Category<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting and (Devices.chipset='Qualcomm MSM8953 Snapdragon 450' or Devices.chipset='Qualcomm Snapdragon 450 SDM450')<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 625 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline,Category<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting and Devices.chipset='Qualcomm MSM8953 Snapdragon 625'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 626 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline,Category<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting and Devices.chipset='Qualcomm MSM8953 Snapdragon 626'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 632 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline,Category<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting and Devices.chipset='Qualcomm SDM632 Snapdragon 632'<br />
|more results text=<br />
}}<br />
<br />
== CPU ==<br />
All cores are working on different clock speeds for each clusters. Marked as partial because there is no support for CPU Idle.<br />
<br />
== Display ==<br />
Display works with both simplefb and msm-drm (with FB takeover). Dual DSI configuration is not tested.<br />
<br />
== GPU ==<br />
GPU preemption (only supported on some 5xx GPUs) is disabled because of deadlock problem in msm drm driver. <br />
<br />
== Audio ==<br />
Audio works. MSM8953 uses an updated codec from as MSM8916 (cajon-v2). Each device needs its own alsa ucm conf file, you can find examples from MSM8916 here: https://github.com/msm8916-mainline/alsa-ucm-conf .<br />
<br />
== Video Encoder / Decoder (Venus) ==<br />
Venus works. It exposes 2 v4l2 devices, one for encode and one for decode. They can be used via gstreamer, or mpv. For mpv, you need to add <code>hwdec=auto</code> to your <code>~/.config/mpv/mpv.conf</code>. Sample files can be obtained from http://samplemedia.linaro.org/ SDM450 based devices are limited by the firmware to 1080p encode/decode, while SDM625/632 based devices are able to do 4Kp30 decode, and 1080p encode. Supported formats are: VP8, VP9, MPEG2, H.264 and H.265.<br />
<br />
== Modem ==<br />
The modem boots, but unlike older qcom modems which use SMD to communicate, it uses QRTR. QRTR support in userspace tools is still in the initial stages, as of now only libqmi seems to support it. A patched version of ofono with rudimentary qrtr support is available here: https://github.com/msm8953-mainline/ofono<br />
This MR adds basic support for QRTR modems in modem manager: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/409<br />
<br />
Using either the patched ofono or modem manager, it is possible to get the modem to connect to a network. Sending/Receiving SMSs works as expected. For dual sim devices, these instructions may be needed. Phone calls require <code>q6voiced</code>, with the following in <code>/etc/conf.d/q6voiced</code><br />
<source lang="shell"><br />
q6voice_card=0<br />
q6voice_device=4<br />
</source><br />
Mobile data doesn't work, because IPAv2 isn't supported yet on mainline.<br />
<br />
== Mainlining ==<br />
MSM8953 is almost as great platform to get started with mainlining as MSM8916! The [[MSM8916 Mainlining]] guide is quite relevant to it.</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_SmartWatch_3_(sony-tetra)&diff=16428Sony SmartWatch 3 (sony-tetra)2021-01-12T00:08:55Z<p>Konradybcio: it's not qcom!</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = SmartWatch 3<br />
| codename = sony-tetra<br />
| image = File:sony-tetra.jpg<br />
| imagecaption = SmartWatch 3 in fastboot mode<br />
| releaseyear = 2014<br />
| originalsoftware = Android Wear 1.5 (Android 6.0)<br />
| chipset = Broadcom BCM23550<br />
| cpu = ARM Cortex-A7, 1200 MHz<br />
| gpu = VideoCore IV<br />
| storage = 4 GB<br />
| display = 320×320<br />
| memory = 512 MB<br />
| architecture = armv7<br />
| status_usbnet = <br />
| status_flashing = <br />
| status_touch = <br />
| status_screen = <br />
| status_wifi = <br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline = <br />
| status_battery =<br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls =<br />
| status = Kernel compiles, not tested <br />
| booting = no<br />
}}<br />
<br />
== Contributors ==<br />
* Rudloff<br />
<br />
== Maintainer(s) ==<br />
* Rudloff<br />
<br />
== What works ==<br />
The kernel builds.<br />
<br />
== Not tested ==<br />
Everything else<br />
<br />
== What does not work ==<br />
<br />
== How to enter flash mode ==<br />
# Hold the power button until you see "Insert USB" (do not insert USB cable yet).<br />
# Double press the power button.<br />
# Double press the power button again.<br />
<br />
== See also ==<br />
* [https://github.com/Rudloff/pmbootstrap/tree/feature/sony-tetra WIP kernel branch]<br />
* [https://android.googlesource.com/kernel/bcm/+/android-bcm-tetra-3.10-lollipop-mr1-wear-release Android kernel]<br />
* [https://github.com/AsteroidOS/meta-tetra-hybris AsteroidOS port]</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_450/625/626/632_(MSM8953)&diff=16386Qualcomm Snapdragon 450/625/626/632 (MSM8953)2021-01-10T14:15:37Z<p>Konradybcio: codename</p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8953<br />
| codenames = msmtitanium/apqtitanium<br />
| manufacturer = Qualcomm<br />
| arch = aarch64<br />
| cpu = 8x 1.8/2.0/2.2 GHz ARM Cortex-A53 (SDM450/625/626)<br />
4x 1.8 GHz Kryo250 Gold +<br />
4x 1.8 GHz Kryo250 Silver (SDM632)<br />
| gpu = Adreno 506<br />
| year = 2016<br />
| process = 14<br />
| mainline = partial<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = Y<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = Y<br />
| status_video =<br />
| status_thermal = Y<br />
| status_wifi = Y<br />
| status_bluetooth = Y<br />
| status_modem = P<br />
| status_camera = <br />
<br />
}}<br />
<br />
[https://www.qualcomm.com/products/snapdragon-450-mobile-platform SDM625]/[https://www.qualcomm.com/products/snapdragon-625-mobile-platform SDM625]/[https://www.qualcomm.com/products/snapdragon-626-mobile-platform SDM626]/[https://www.qualcomm.com/products/snapdragon-632-mobile-platform SDM632]/[https://www.qualcomm.com/products/apq8053 APQ8053] are Qualcomm SoCs released from 2016. According to Wikipedia, SDM450/625/626/632 are all pin and software compatible. <br />
<br />
<br />
== Devices ==<br />
=== Snapdragon 450 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline,Category<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting and (Devices.chipset='Qualcomm MSM8953 Snapdragon 450' or Devices.chipset='Qualcomm Snapdragon 450 SDM450')<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 625 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline,Category<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting and Devices.chipset='Qualcomm MSM8953 Snapdragon 625'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 626 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline,Category<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting and Devices.chipset='Qualcomm MSM8953 Snapdragon 626'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 632 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline,Category<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting and Devices.chipset='Qualcomm SDM632 Snapdragon 632'<br />
|more results text=<br />
}}<br />
<br />
== CPU ==<br />
All cores are working on different clock speeds for each clusters. Marked as partial because there is no support for CPU Idle.<br />
<br />
== Display ==<br />
Display works with both simplefb and msm-drm (with FB takeover). Dual DSI configuration is not tested.<br />
<br />
== GPU ==<br />
GPU preemption (only supported on some 5xx GPUs) is disabled because of deadlock problem in msm drm driver. <br />
<br />
== Audio ==<br />
Audio works. MSM8953 uses an updated codec from as MSM8916 (cajon-v2). Each device needs its own alsa ucm conf file, you can find examples from MSM8916 here: https://github.com/msm8916-mainline/alsa-ucm-conf .<br />
<br />
== Video Encoder / Decoder (Venus) ==<br />
Venus boots and registers, but doesn't quite work yet. Further investigation is necessary...<br />
TODO: Add test commands and files to test venus<br />
<br />
== Modem ==<br />
The modem boots and responds to commands, but unlike older qcom modems which use SMD to communicate, it uses qrtr. qrtr support in userspace tools is still in the initial stages, as of now only libqmi seems to support it. A patched version of ofono with rudimentary qrtr support is available here: https://github.com/msm8953-mainline/ofono<br />
<br />
== Mainlining ==<br />
MSM8953 is almost as great platform to get started with mainlining as MSM8916! The [[MSM8916 Mainlining]] guide is quite relevant to it.</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_835_(MSM8998)&diff=16385Qualcomm Snapdragon 835 (MSM8998)2021-01-10T13:48:25Z<p>Konradybcio: /* Who's working on it */</p>
<hr />
<div>{{Infobox soc<br />
| manufacturer = Qualcomm<br />
| name = MSM8998<br />
| codenames = msmcobalt/apqcobalt<br />
| arch = aarch64<br />
| cpu = 4x 2.45 GHz Kryo 280 Gold, 4x 1.9 GHz Kryo 280 Silver<br />
| gpu = Adreno 540<br />
| year = 2017<br />
| process = 10<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = <br />
| status_storage = Y<br />
| status_usb = P<br />
| status_display = P<br />
| status_gpu = N<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <br />
| status_video = <br />
| status_thermal = <br />
| status_wifi = Y<br />
| status_bluetooth = Y<br />
| status_modem = <br />
| status_camera = <br />
}}<br />
<br />
[https://www.qualcomm.com/products/snapdragon-835-mobile-platform MSM8998] (or Snapdragon 835) is a high-end Qualcomm SoC released in 2017 with mainline support originally added for the [https://patchwork.kernel.org/cover/10586661/ MTP (proven reference design) board] towards the end of 2018.<br />
<br />
== Devices ==<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting AND Devices.chipset='Qualcomm MSM8998 Snapdragon 835'<br />
|more results text=<br />
}}<br />
<br />
== Booting ==<br />
Assuming you derived your board DTS from the MSM8998 MTP ones, you'll likely notice a built kernel doesn't actually boot without any changes. This has been [https://patchwork.kernel.org/project/linux-arm-msm/patch/20191003064449.2201-1-saiprakash.ranjan@codeaurora.org/ tracked down to CoreSight tracing activating], which seems to cause kernel panics on retail hardware. As per the linked patch, simply delete the added <code>etf</code>, <code>etm*</code>, <code>etr</code>, <code>funnel*</code>, <code>replicator1</code> & <code>stm</code> nodes from your DTS.<br />
<br />
Additionally enabling some options such as <code>CONFIG_MSM_GPUCC_8998</code> may still cause the kernel to panic anyway. To avoid disabling "unused clocks" during <code>late_initcall()</code>, append <code>clk_ignore_unused</code> to your cmdline which can be done via [https://github.com/ggrandou/abootimg modifying the bootimg], [https://www.kernel.org/doc/Documentation/devicetree/usage-model.txt bootargs on DTS] or [https://cateee.net/lkddb/web-lkddb/CMDLINE.html setting CONFIG_CMDLINE in defconfig].<br />
<br />
== Display ==<br />
Support for displays is currently marked as partial since mainline MSM8998 is completely missing device tree bindings for the [https://lore.kernel.org/patchwork/patch/1151028/ MMCC], MDSS, MDP5 & DSI (as of 2020-11-16). However, unofficial patches for these [https://github.com/JamiKettunen/linux-mainline-oneplus5/commits/5ec1add02a6b1b617b90fc556b76a07db9cca3c4 are floating around] and they seem to be fully working (as tested on the OnePlus 5 with a Samsung S6E3FA5 DSI cmd mode panel on Linux 5.10)!<br />
<br />
For starters your best bet would be to setup <code>simplefb</code> though which utilizes the device framebuffer left active by the UEFI bootloader (Qualcomm XBL).<br />
<br />
{{note|<b>NOTE:</b> Devices using DSC (Display Stream Compression) like the Pixel 2 XL will mostly likely not support simplefb!}}<br />
<br />
1. Enable <code>CONFIG_FB_SIMPLE</code> in your defconfig<br />
<br />
2. Apply a patch like this one to <b>your</b> board DTS while (as needed) replacing <code>1080</code> with the screen width and <code>1920</code> with the screen height (in pixels):<br />
<div class="toccolours mw-collapsible mw-collapsed" style="width: 900px; overflow: auto;"><br />
<code>$ cat msm8998-simplefb.patch</code><br />
<div class="mw-collapsible-content"><br />
--- a/arch/arm64/boot/dts/qcom/msm8998-oneplus-cheeseburger.dtsi<br />
+++ b/arch/arm64/boot/dts/qcom/msm8998-oneplus-cheeseburger.dtsi<br />
@@ -10,10 +10,36 @@<br />
aliases {<br />
serial0 = &blsp2_uart1;<br />
serial1 = &blsp1_uart3;<br />
+ display0 = &framebuffer0;<br />
};<br />
<br />
chosen {<br />
- stdout-path = "serial0:115200n8";<br />
+ #address-cells = <2>;<br />
+ #size-cells = <2>;<br />
+ ranges;<br />
+<br />
+ /* HACK: Use "display0" for simplefb; for UART console use "serial0:115200n8" instead */<br />
+ stdout-path = "display0";<br />
+<br />
+ /*<br />
+ * Address and size extracted on-device using the following:<br />
+ * # strings /dev/block/bootdevice/by-name/xbl | grep 'Display Reserved'<br />
+ */<br />
+ framebuffer0: framebuffer@9d400000 {<br />
+ compatible = "simple-framebuffer";<br />
+ reg = <0 0x9d400000 0 0x2400000>;<br />
+ width = <1080>;<br />
+ height = <1920>;<br />
+ stride = <(1080 * 4)>;<br />
+ format = "a8r8g8b8";<br />
+ };<br />
+ };<br />
+<br />
+ reserved-memory {<br />
+ cont_splash_mem: memory@9d400000 {<br />
+ reg = <0 0x9d400000 0 0x2400000>;<br />
+ no-map;<br />
+ };<br />
};<br />
<br />
vph_pwr: vph-pwr-regulator {<br />
</div><br />
</div><br />
<br />
== USB ==<br />
Enabling USB on MSM8998 boards will differ between devices which use a USB 3.0 and USB 2.0 port.<br />
<br />
Needed modules on defconfig side should include the following (and even <code>QUSB2</code> can be dropped later if it turns out your device doesn't use this):<br />
CONFIG_USB_CONFIGFS=y<br />
CONFIG_PHY_QCOM_QMP=y<br />
CONFIG_PHY_QCOM_QUSB2=y<br />
<br />
In general (and for USB 3.0 devices) the following in your DTS should be enough and you'll hopefully see the device detected on your host (assuming the kernel is configured with the needed modules):<br />
<br />
&usb3_dwc3 {<br />
dr_mode = "peripheral"; /* Force to peripheral until we have Type-C hooked up */<br />
};<br />
<br />
For USB 2.0 devices utilizing the QUSB PHY however that alone isn't enough and you should <b>remove</b> the <code>usb3phy</code> node entirely from your DTS & add the following configuration:<br />
<div class="toccolours mw-collapsible mw-collapsed" style="width: 500px; overflow: auto;"><br />
MSM8998 USB 2.0 configuration (DTS)<br />
<div class="mw-collapsible-content"><br />
&usb3 {<br />
/* Disable USB3 pipe_clk requirement */<br />
qcom,select-utmi-as-pipe-clk;<br />
};<br />
<br />
&usb3_dwc3 {<br />
/* Drop the unused USB 3 SuperSpeed PHY */<br />
phys = <&qusb2phy>;<br />
phy-names = "usb2-phy";<br />
<br />
/* We can only operate at USB 2.0 speeds */<br />
maximum-speed = "high-speed";<br />
};<br />
</div><br />
</div><br />
<br />
In case you've adjusted the <code>l24</code> regulator minimum value below <code>3088000</code> μV to match downstream and USB doesn't work with no (obvious) issues on device <code>dmesg</code>, try setting it back to to this higher 3.08V value to see if it helps; [https://github.com/JamiKettunen/linux-mainline-oneplus5/commit/489b48b2aba961737a3c435c3333780c2f54050a this was the case on the OnePlus 5] for example.<br />
<br />
== UFS internal storage ==<br />
{{warning|IF YOUR DEVICE IS A SONY XPERIA DO NOT NEVER EVER EVER TRY TO ENABLE UFS ON NON-VENDOR/NON-SODP KERNELS! IT WILL ERASE THE CHIP CLEAN (INCLUDING THE BOOTLOADER!) CONSIDER YOURSELF WARNED}}<br />
<br />
To enable the device's internal UFS 2.1 host controller (and 14nm UFS QMP PHY), compile the kernel with the following modules enabled:<br />
CONFIG_SCSI_UFS_QCOM=y<br />
CONFIG_PHY_QCOM_QMP=y<br />
<br />
You can optionally set <code>CONFIG_SCSI_SCAN_ASYNC=y</code> for some additional speedup while booting. Consider also enabling <code>CONFIG_QFMT_V2</code> if you intend on writing data to a <code>userdata</code> partition formatted by Android where disk quotas are normally enabled by default for <code>ext4</code> volumes.<br />
<br />
== WLAN ==<br />
For WLAN to work you need:<br />
<br />
1. On the kernel side:<br />
* The MSS (modem) remoteproc needs to be running with firmware extracted from the device partitions<br />
* DTS needs to point to the firmware filenames under <code>/lib/firmware/</code><br />
2. On the userspace side:<br />
* Follow steps from [https://github.com/jhugo/linux/blob/5.5rc2_wifi/README jhugo's 5.5 MSM8998 Wi-Fi README] (it's not perfect but should work)<br />
* Place all needed device firmware files to <code>/lib/firmware/</code><br />
* Install the following pmOS packages: <code>pd-mapper</code>, <code>tqftpserv</code>, <code>qrtr</code> & <code>rmtfs</code><br />
* Enable the services (<code>rc-update add SERVICE_NAME boot</code>) for all of the above except <code>qrtr</code> (it's started automatically if needed)<br />
* Run <code>diag-router</code> from https://github.com/andersson/diag in case MSS remoteproc keeps crashing and networks can be seen in e.g. <code>nmtui</code> soon after booting<br />
(This is a rough sketch; expect it to become detailed very soon!)<br />
<br />
== Bluetooth ==<br />
Getting Bluetooth to work should be trivial assuming you compile the kernel with the following modules enabled:<br />
CONFIG_RFKILL=m<br />
CONFIG_BT_RFCOMM=y<br />
CONFIG_BT_BNEP=y<br />
CONFIG_BT_HIDP=y<br />
CONFIG_BT_HS=y<br />
CONFIG_BT_LE=y<br />
<br />
After those are set and you've copied the needed kernel modules over to the rootfs in <code>/lib/modules/</code> you just need the following firmware files in <code>/lib/firmware/qca/</code>:<br />
crbtfw21.tlv<br />
crnv21.bin<br />
<br />
Those can be supplied directly from <code>[https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/qca linux-firmware]</code> and they should work fine, but if not you'll need to grab the files from your device's firmware partitions.<br />
<br />
== Real-time clock (RTC) ==<br />
The RTC module found on the PM8998 PMIC block works with <code>CONFIG_RTC_DRV_PM8XXX</code> enabled. It can be easily tested from userspace like so:<br />
# cd /sys/class/rtc/rtc0/<br />
# echo $((`cat since_epoch`+120)) > wakealarm<br />
<br />
After running that and fully powering down the device it should power on by itself soon afterwards (2 minutes later to be exact).<br />
<br />
== See also ==<br />
[https://github.com/JamiKettunen/linux-mainline-oneplus5 linux-mainline-oneplus5] A mainline kernel fork with some patches for MSM8998 and OnePlus 5/5T support (check the [https://github.com/JamiKettunen/linux-mainline-oneplus5/commits/linux-5.7 5.7 branch commits] for a "step-by-step guide")<br />
<br />
[[OnePlus_5_(oneplus-cheeseburger)#Mainline_kernel]]<br />
<br />
== Who's working on it ==<br />
* [[User:Deathmist]] (@deathmist on Matrix)<br />
* [[User:R0551]] (@r0551 on Matrix)<br />
* [[User:Degdag]] (@degdag on Matrix)<br />
* [[User:kalube]] (@kalube on Matrix) [working on Pixel 2 XL]<br />
* [https://github.com/SoMainline/ SoMainline] [working on F(x)tec Pro1 & SoMC Yoshino]<br />
(feel free to add yourself here if you're working on MSM8998 mainlining!)</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_835_(MSM8998)&diff=16384Qualcomm Snapdragon 835 (MSM8998)2021-01-10T13:46:58Z<p>Konradybcio: codename</p>
<hr />
<div>{{Infobox soc<br />
| manufacturer = Qualcomm<br />
| name = MSM8998<br />
| codenames = msmcobalt/apqcobalt<br />
| arch = aarch64<br />
| cpu = 4x 2.45 GHz Kryo 280 Gold, 4x 1.9 GHz Kryo 280 Silver<br />
| gpu = Adreno 540<br />
| year = 2017<br />
| process = 10<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = <br />
| status_storage = Y<br />
| status_usb = P<br />
| status_display = P<br />
| status_gpu = N<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <br />
| status_video = <br />
| status_thermal = <br />
| status_wifi = Y<br />
| status_bluetooth = Y<br />
| status_modem = <br />
| status_camera = <br />
}}<br />
<br />
[https://www.qualcomm.com/products/snapdragon-835-mobile-platform MSM8998] (or Snapdragon 835) is a high-end Qualcomm SoC released in 2017 with mainline support originally added for the [https://patchwork.kernel.org/cover/10586661/ MTP (proven reference design) board] towards the end of 2018.<br />
<br />
== Devices ==<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting AND Devices.chipset='Qualcomm MSM8998 Snapdragon 835'<br />
|more results text=<br />
}}<br />
<br />
== Booting ==<br />
Assuming you derived your board DTS from the MSM8998 MTP ones, you'll likely notice a built kernel doesn't actually boot without any changes. This has been [https://patchwork.kernel.org/project/linux-arm-msm/patch/20191003064449.2201-1-saiprakash.ranjan@codeaurora.org/ tracked down to CoreSight tracing activating], which seems to cause kernel panics on retail hardware. As per the linked patch, simply delete the added <code>etf</code>, <code>etm*</code>, <code>etr</code>, <code>funnel*</code>, <code>replicator1</code> & <code>stm</code> nodes from your DTS.<br />
<br />
Additionally enabling some options such as <code>CONFIG_MSM_GPUCC_8998</code> may still cause the kernel to panic anyway. To avoid disabling "unused clocks" during <code>late_initcall()</code>, append <code>clk_ignore_unused</code> to your cmdline which can be done via [https://github.com/ggrandou/abootimg modifying the bootimg], [https://www.kernel.org/doc/Documentation/devicetree/usage-model.txt bootargs on DTS] or [https://cateee.net/lkddb/web-lkddb/CMDLINE.html setting CONFIG_CMDLINE in defconfig].<br />
<br />
== Display ==<br />
Support for displays is currently marked as partial since mainline MSM8998 is completely missing device tree bindings for the [https://lore.kernel.org/patchwork/patch/1151028/ MMCC], MDSS, MDP5 & DSI (as of 2020-11-16). However, unofficial patches for these [https://github.com/JamiKettunen/linux-mainline-oneplus5/commits/5ec1add02a6b1b617b90fc556b76a07db9cca3c4 are floating around] and they seem to be fully working (as tested on the OnePlus 5 with a Samsung S6E3FA5 DSI cmd mode panel on Linux 5.10)!<br />
<br />
For starters your best bet would be to setup <code>simplefb</code> though which utilizes the device framebuffer left active by the UEFI bootloader (Qualcomm XBL).<br />
<br />
{{note|<b>NOTE:</b> Devices using DSC (Display Stream Compression) like the Pixel 2 XL will mostly likely not support simplefb!}}<br />
<br />
1. Enable <code>CONFIG_FB_SIMPLE</code> in your defconfig<br />
<br />
2. Apply a patch like this one to <b>your</b> board DTS while (as needed) replacing <code>1080</code> with the screen width and <code>1920</code> with the screen height (in pixels):<br />
<div class="toccolours mw-collapsible mw-collapsed" style="width: 900px; overflow: auto;"><br />
<code>$ cat msm8998-simplefb.patch</code><br />
<div class="mw-collapsible-content"><br />
--- a/arch/arm64/boot/dts/qcom/msm8998-oneplus-cheeseburger.dtsi<br />
+++ b/arch/arm64/boot/dts/qcom/msm8998-oneplus-cheeseburger.dtsi<br />
@@ -10,10 +10,36 @@<br />
aliases {<br />
serial0 = &blsp2_uart1;<br />
serial1 = &blsp1_uart3;<br />
+ display0 = &framebuffer0;<br />
};<br />
<br />
chosen {<br />
- stdout-path = "serial0:115200n8";<br />
+ #address-cells = <2>;<br />
+ #size-cells = <2>;<br />
+ ranges;<br />
+<br />
+ /* HACK: Use "display0" for simplefb; for UART console use "serial0:115200n8" instead */<br />
+ stdout-path = "display0";<br />
+<br />
+ /*<br />
+ * Address and size extracted on-device using the following:<br />
+ * # strings /dev/block/bootdevice/by-name/xbl | grep 'Display Reserved'<br />
+ */<br />
+ framebuffer0: framebuffer@9d400000 {<br />
+ compatible = "simple-framebuffer";<br />
+ reg = <0 0x9d400000 0 0x2400000>;<br />
+ width = <1080>;<br />
+ height = <1920>;<br />
+ stride = <(1080 * 4)>;<br />
+ format = "a8r8g8b8";<br />
+ };<br />
+ };<br />
+<br />
+ reserved-memory {<br />
+ cont_splash_mem: memory@9d400000 {<br />
+ reg = <0 0x9d400000 0 0x2400000>;<br />
+ no-map;<br />
+ };<br />
};<br />
<br />
vph_pwr: vph-pwr-regulator {<br />
</div><br />
</div><br />
<br />
== USB ==<br />
Enabling USB on MSM8998 boards will differ between devices which use a USB 3.0 and USB 2.0 port.<br />
<br />
Needed modules on defconfig side should include the following (and even <code>QUSB2</code> can be dropped later if it turns out your device doesn't use this):<br />
CONFIG_USB_CONFIGFS=y<br />
CONFIG_PHY_QCOM_QMP=y<br />
CONFIG_PHY_QCOM_QUSB2=y<br />
<br />
In general (and for USB 3.0 devices) the following in your DTS should be enough and you'll hopefully see the device detected on your host (assuming the kernel is configured with the needed modules):<br />
<br />
&usb3_dwc3 {<br />
dr_mode = "peripheral"; /* Force to peripheral until we have Type-C hooked up */<br />
};<br />
<br />
For USB 2.0 devices utilizing the QUSB PHY however that alone isn't enough and you should <b>remove</b> the <code>usb3phy</code> node entirely from your DTS & add the following configuration:<br />
<div class="toccolours mw-collapsible mw-collapsed" style="width: 500px; overflow: auto;"><br />
MSM8998 USB 2.0 configuration (DTS)<br />
<div class="mw-collapsible-content"><br />
&usb3 {<br />
/* Disable USB3 pipe_clk requirement */<br />
qcom,select-utmi-as-pipe-clk;<br />
};<br />
<br />
&usb3_dwc3 {<br />
/* Drop the unused USB 3 SuperSpeed PHY */<br />
phys = <&qusb2phy>;<br />
phy-names = "usb2-phy";<br />
<br />
/* We can only operate at USB 2.0 speeds */<br />
maximum-speed = "high-speed";<br />
};<br />
</div><br />
</div><br />
<br />
In case you've adjusted the <code>l24</code> regulator minimum value below <code>3088000</code> μV to match downstream and USB doesn't work with no (obvious) issues on device <code>dmesg</code>, try setting it back to to this higher 3.08V value to see if it helps; [https://github.com/JamiKettunen/linux-mainline-oneplus5/commit/489b48b2aba961737a3c435c3333780c2f54050a this was the case on the OnePlus 5] for example.<br />
<br />
== UFS internal storage ==<br />
{{warning|IF YOUR DEVICE IS A SONY XPERIA DO NOT NEVER EVER EVER TRY TO ENABLE UFS ON NON-VENDOR/NON-SODP KERNELS! IT WILL ERASE THE CHIP CLEAN (INCLUDING THE BOOTLOADER!) CONSIDER YOURSELF WARNED}}<br />
<br />
To enable the device's internal UFS 2.1 host controller (and 14nm UFS QMP PHY), compile the kernel with the following modules enabled:<br />
CONFIG_SCSI_UFS_QCOM=y<br />
CONFIG_PHY_QCOM_QMP=y<br />
<br />
You can optionally set <code>CONFIG_SCSI_SCAN_ASYNC=y</code> for some additional speedup while booting. Consider also enabling <code>CONFIG_QFMT_V2</code> if you intend on writing data to a <code>userdata</code> partition formatted by Android where disk quotas are normally enabled by default for <code>ext4</code> volumes.<br />
<br />
== WLAN ==<br />
For WLAN to work you need:<br />
<br />
1. On the kernel side:<br />
* The MSS (modem) remoteproc needs to be running with firmware extracted from the device partitions<br />
* DTS needs to point to the firmware filenames under <code>/lib/firmware/</code><br />
2. On the userspace side:<br />
* Follow steps from [https://github.com/jhugo/linux/blob/5.5rc2_wifi/README jhugo's 5.5 MSM8998 Wi-Fi README] (it's not perfect but should work)<br />
* Place all needed device firmware files to <code>/lib/firmware/</code><br />
* Install the following pmOS packages: <code>pd-mapper</code>, <code>tqftpserv</code>, <code>qrtr</code> & <code>rmtfs</code><br />
* Enable the services (<code>rc-update add SERVICE_NAME boot</code>) for all of the above except <code>qrtr</code> (it's started automatically if needed)<br />
* Run <code>diag-router</code> from https://github.com/andersson/diag in case MSS remoteproc keeps crashing and networks can be seen in e.g. <code>nmtui</code> soon after booting<br />
(This is a rough sketch; expect it to become detailed very soon!)<br />
<br />
== Bluetooth ==<br />
Getting Bluetooth to work should be trivial assuming you compile the kernel with the following modules enabled:<br />
CONFIG_RFKILL=m<br />
CONFIG_BT_RFCOMM=y<br />
CONFIG_BT_BNEP=y<br />
CONFIG_BT_HIDP=y<br />
CONFIG_BT_HS=y<br />
CONFIG_BT_LE=y<br />
<br />
After those are set and you've copied the needed kernel modules over to the rootfs in <code>/lib/modules/</code> you just need the following firmware files in <code>/lib/firmware/qca/</code>:<br />
crbtfw21.tlv<br />
crnv21.bin<br />
<br />
Those can be supplied directly from <code>[https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/qca linux-firmware]</code> and they should work fine, but if not you'll need to grab the files from your device's firmware partitions.<br />
<br />
== Real-time clock (RTC) ==<br />
The RTC module found on the PM8998 PMIC block works with <code>CONFIG_RTC_DRV_PM8XXX</code> enabled. It can be easily tested from userspace like so:<br />
# cd /sys/class/rtc/rtc0/<br />
# echo $((`cat since_epoch`+120)) > wakealarm<br />
<br />
After running that and fully powering down the device it should power on by itself soon afterwards (2 minutes later to be exact).<br />
<br />
== See also ==<br />
[https://github.com/JamiKettunen/linux-mainline-oneplus5 linux-mainline-oneplus5] A mainline kernel fork with some patches for MSM8998 and OnePlus 5/5T support (check the [https://github.com/JamiKettunen/linux-mainline-oneplus5/commits/linux-5.7 5.7 branch commits] for a "step-by-step guide")<br />
<br />
[[OnePlus_5_(oneplus-cheeseburger)#Mainline_kernel]]<br />
<br />
== Who's working on it ==<br />
* [[User:Deathmist]] (@deathmist on Matrix)<br />
* [[User:R0551]] (@r0551 on Matrix)<br />
* [[User:Degdag]] (@degdag on Matrix)<br />
* [[User:kalube]] (@kalube on Matrix) [working on Pixel 2 XL]<br />
(feel free to add yourself here if you're working on MSM8998 mainlining!)</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_820/821_(MSM8996)&diff=16383Qualcomm Snapdragon 820/821 (MSM8996)2021-01-10T13:43:59Z<p>Konradybcio: codename</p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8996<br />
| codenames = msmthulium/apqthulium<br />
| manufacturer = Qualcomm<br />
| arch = aarch64<br />
| year = 2016<br />
| cpu = 2x 2.2/2.3 GHz Kryo, 2x 1.6 GHz Kryo<br />
| gpu = Adreno 530<br />
| process = 14<br />
| mainline = yes<br />
| status_cpu = P <!-- cpufreq is OOT/on the lists --><br />
| status_uart = Y<br />
| status_storage = P <!-- SDHCI/eMMC does not work, only UFS does --><br />
| status_usb = <br />
| status_display = Y<br />
| status_gpu = Y<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <!-- unknown, there is some codec stuff but no device upstream has sound configuration --><br />
| status_video = <br />
| status_thermal = Y<br />
| status_wifi = <!-- Note: Some devices use external WiFi/BT via SDIO/UART. This status tracks the WiFi/BT (mostly) built-into the SoC. --><br />
| status_bluetooth = <br />
| status_modem = <br />
| status_camera = <br />
}}<br />
<br />
[https://www.qualcomm.com/products/snapdragon-820-mobile-platform MSM8996]/[https://www.qualcomm.com/products/apq8096sg APQ8096] (or Snapdragon 820) is a Qualcomm SoC released in 2016, with great mainline support orginally added for the [https://www.96boards.org/product/dragonboard820c/ Dragonboard 820c]. There is also a slightly higher clocked (and supposedly less problematic architecture-wise) [https://www.qualcomm.com/products/snapdragon-821-mobile-platform MSM8996Pro] also known as Snapdragon 821.<br />
<br />
== Devices ==<br />
<br />
=== APQ8096(SG) (Snapdragon 820E, WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting AND Devices.chipset LIKE 'Qualcomm APQ8096% Snapdragon 820E'<br />
|more results text=<br />
}}<br />
=== MSM8996 (Snapdragon 820) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting AND Devices.chipset LIKE 'Qualcomm MSM8996 Snapdragon 820'<br />
|more results text=<br />
}}<br />
=== MSM8996Pro (Snapdragon 821) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting AND Devices.chipset LIKE 'Qualcomm MSM8996%Pro Snapdragon 821'<br />
|more results text=<br />
}}</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_660/630/636_(SDM660/SDM630/SDM636)&diff=16382Qualcomm Snapdragon 660/630/636 (SDM660/SDM630/SDM636)2021-01-10T13:39:19Z<p>Konradybcio: 630 has its own codename, 636 I can't find any</p>
<hr />
<div>{{Infobox soc<br />
| name = SDM630<br />
| codenames = msmtriton/apqtriton<br />
| manufacturer = Qualcomm<br />
| arch = aarch64<br />
| cpu = 4x Cortex-A53 PERF cluster + 4x Cortex-A53 PWR cluster<br />
| gpu = Adreno 508<br />
| year = 2017<br />
| process = 14<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = P<br />
| status_display = P<br />
| status_gpu = <br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <br />
| status_video = <br />
| status_thermal = P<br />
| status_wifi = <br />
| status_bluetooth = <br />
| status_modem = P<br />
| status_camera = <br />
}}<br />
<br />
{{Infobox soc<br />
| name = SDM636<br />
| codenames = <br />
| manufacturer = Qualcomm<br />
| arch = aarch64<br />
| cpu = 4x Kryo 260 Gold PERF cluster + 4x Kryo 260 Silver PWR cluster<br />
| gpu = Adreno 509<br />
| year = 2017<br />
| process = 14<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = P<br />
| status_display = <br />
| status_gpu = <br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <br />
| status_video = <br />
| status_thermal = <br />
| status_wifi = <br />
| status_bluetooth = <br />
| status_modem = <br />
| status_camera = <br />
}}<br />
<br />
{{Infobox soc<br />
| name = SDM660<br />
| codenames = msmfalcon/apqfalcon<br />
| manufacturer = Qualcomm<br />
| arch = aarch64<br />
| cpu = 4x 2.2 GHz Kryo 260 Gold, 4x 1.84 GHz Kryo 260 Silver<br />
| gpu = Adreno 512<br />
| year = 2017<br />
| process = 14<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = P<br />
| status_usb = P<br />
| status_display = <br />
| status_gpu = <br />
| status_pinctrl = Y<br />
| status_i2c = <br />
| status_audio = <br />
| status_video = <br />
| status_thermal = <br />
| status_wifi = <br />
| status_bluetooth = <br />
| status_modem = <br />
| status_camera = <br />
}}<br />
<br />
== General description ==<br />
[https://www.qualcomm.com/products/sdm660 SDM660]/636/[https://fccid.io/PY7-67442A/Schematics/Schematics-20171116-v1-PY7-67442A-Schematic-Diagram-3652761 630] are Qualcomm SoCs released in 2017, with mostly out-of-tree mainline support.<br />
<br />
According to [https://en.wikipedia.org/wiki/List_of_Qualcomm_Snapdragon_systems-on-chip#Snapdragon_630,_636_and_660_(2017) Wikipedia], they all are pretty similar. Their advantage is price; these SoCs are usually used in middle-range devices.<br />
<br />
Closest similar SoC is [[Qualcomm_Snapdragon_835_(MSM8998)|MSM8998 Snapdragon 835]] (which has decent mainline support), and it seems that several drivers from [[Qualcomm_Snapdragon_835_(MSM8998)|MSM8998]] can be reused for SDM660.<br />
<br />
== Devices ==<br />
=== SDM660 (Snapdragon 660) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='Qualcomm SDM660 Snapdragon 660'<br />
|more results text=<br />
}}<br />
<br />
=== SDM636 (Snapdragon 636) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='Qualcomm SDM636 Snapdragon 636'<br />
|more results text=<br />
}}<br />
<br />
=== SDM630 (Snapdragon 630) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='Qualcomm SDM630 Snapdragon 630'<br />
|more results text=<br />
}}<br />
<br />
== Battery/Charging == <br />
Most devices seem to use the PMIC-provided QPNP-charger which currently does not have a mainline driver.<br />
<br />
== CPU ==<br />
All cores are up, PSCI is working. Marked as partial because there is no support for CPU frequency scaling. <br />
It is advised to use only 4 CPUs for now due to the lack of cluster interconnect scaling, which results in 8 cores being slower than 4.<br />
<br />
== Display ==<br />
At least four 630 boards can successfully use display (both command- and video-mode) via DRM/MSM (and of course CPU rendering) with some (for now) out-of-tree patches.<br />
Most devices make use of PMIC-provided WLED backlight, which does have a mainline driver, but there happens to be an issue with it not working.<br />
<br />
== GPU ==<br />
Adreno 508/509/512 are not supported in the mainline kernel yet.<br />
<br />
There are patches sent to upstream for enabling support for those GPUs.<br />
See kholk commits to upstream for more info<br />
<br />
== Modem Subsystem ==<br />
The remote processor responsible for modem subsystem shows up and shows *some* signs of life, but neither the modem itself, nor the Wi-Fi chip currently work. The phone also gets very hot with it enabled, which might suggest it's not really fine right now. Of course it needs firmware.<br />
<br />
== Pinctrl ==<br />
Was ported from downstream kernel to mainline by [[User:opendata|opendata]] in 2018.<br />
<br />
== SMMUs / IOMMUs ==<br />
This platform is very picky about its SMMUs and therefore requires many downstream workarounds to be implemented. Upstream maintainers aren't exactly happy with that.<br />
<br />
https://patchwork.kernel.org/project/linux-arm-msm/list/?series=355881<br />
<br />
== Storage ==<br />
At least SDHCI (eMMC) was tested to work. UFS is untested (if anybody knows about a sdm630/36/60-based device using UFS, leave a note here!).<br />
<br />
== USB ==<br />
There is WIP support for USB 2.0 only (no USB 3) by [[User:Konradybcio|Konrad Dybcio]] in https://github.com/konradybcio/linux/commits/ninges_labs<br />
<br />
Do note that most devices only have USB 2.0 wired up in hardware.<br />
<br />
== WiFi ==<br />
Wireless network should be available via the ath10k_snoc driver, provided the modem subsystem is alive. It also needs firmware (which is possibly signed per-device or per-vendor - though it's unconfirmed!).<br />
<br />
== Work done so far ==<br />
=== Who is working on it ===<br />
* [[User:opendata]] worked on initial basic SoC support (pinctrl-sdm660, gcc-sdm660) (+ [https://gitlab.com/opendata26/linux/-/tree/nile-mainline-submit-2 various branches])<br />
* [https://developer.sony.com/posts/pavel-dubrova-selected-as-the-first-2018-hero-open-source-developer/ Pavel Dubrova] worked on SDM630 SoC support based on kernel 5.3. It is unknown where the sources are located.<br />
* [[User:Alexeymin]] tried to continue opendata's work. WIP Branch is in [https://gitlab.com/postmarketOS/linux-postmarketos/-/commits/qcom-sdm660/ linux-postmarketos] repo.<br />
* [[User:Konradybcio|Konrad Dybcio]] in https://github.com/konradybcio/linux/commits/ninges_labs (warning: frequent forcepushes!)<br />
* SoMainline on GitHub: https://github.com/SoMainline/linux/<br />
<br />
=== Upstream commits related to sdm630/636/660 ===<br />
<br />
Hopefully this can serve as history log, a step-by-step example of what needs to be done to bring new SoC support to mainline kernel from zero.<br />
<br />
commits merged in 4.20:<br />
* [https://github.com/torvalds/linux/commit/9cf0c526bc5874d77208751ae42f7e4c62bfdd4d pinctrl: qcom: Add sdm660 pinctrl driver] submitted by opendata<br />
* [https://github.com/torvalds/linux/commit/5db0b0a298d26c007e06a96d7e60849b4829a57c pinctrl: sdm660: Set tile property for pingroups]<br />
* [https://github.com/torvalds/linux/commit/f2a76a2955c0eb7514cdb5885e3d60a973301ae0 clk: qcom: Add Global Clock controller (GCC) driver for SDM660] by Taniya Das, who sent opendata's unsubmitted work after opendata had disappeared<br />
commits merged in 5.1:<br />
* [https://github.com/torvalds/linux/commit/4e2256d31f0f24107c36dae35a1d84dff0fced30 soc: qcom: smd-rpm: Add sdm660 compatible] by opendata<br />
commits merged in 5.6:<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=faf8e30acb219849725aa75302d36e0ffdb6a258 dt-bindings: arm: Add kryo260 compatible] by alexeymin<br />
commits merged in 5.8:<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=aab86bbbd3e32a10ca7e5cd1d3b9a473cf5909bb dt-bindings: arm: qcom: Add sdm630 and sdm660 SoCs] by alexeymin<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=feec34411d4c0a9759106ef4f7d563438b3881ae arm64: dts: qcom: Add SDM660 SoC support] done by opendata sent by alexeymin<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=23a6da79fe8b7f0b5725b40126a7b0638c016ef3 arm64: dts: qcom: Add Xiaomi Redmi Note 7 (lavender)] by alexeymin<br />
commits merged in 5.9:<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=30dee220c8502a478477cd503729994e8dc850c2 soc: qcom: socinfo: Add socinfo entry for SDM630] by konradybcio (why not do it for 636 and 660 in one go though?)<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b608013ac5b55a2e42d8734f29f9757b75d26165 clk: qcom: smd: Add support for SDM660 rpm clocks] by konradybcio<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4870c76c00d178956cf3e1c17aab6b00a61dc30f arm64: dts: qcom: pm660(l): Add base dts files] by konradybcio<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b190fb010664c769da16c5240be0e972cb3b267a arm64: dts: qcom: sdm630: Add sdm630 dts file] by konradybcio<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e781633b6067eee13001faa1175851e91143d738 arm64: dts: qcom: Add support for Sony Xperia XA2/Plus/Ultra (Nile platform)] by konradybcio<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=234d7d6b4cbfab0e900f12658053689bb3376141 arm64: dts: qcom: Add support for Sony Xperia 10/10 Plus (Ganges platform)] by Martin Botka<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=17cc38e7846b462e03b718d1ca231da96809407d pinctrl: qcom: spmi-gpio: Add pm660(l) compatibility] by konradybcio<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7203d3684eafd711bfa1ebda7d36b89f4ac20c4c Documentation: Document pm660(l) SPMI GPIOs compatible] by konradybcio<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b538304da7855f4e31f91f915f259936eb67a1e6 clk: qcom: gcc-sdm660: Add missing modem reset] by konradybcio<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3386af51d3bcebcba3f7becdb1ef2e384abe90cf clk: qcom: gcc-sdm660: Fix up gcc_mss_mnoc_bimc_axi_clk] by konradybcio<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=694dd304cc294b69db7191cec1d83e5a29c6a4b0 drm/msm/dsi: Add phy configuration for SDM630/636/660] by konradybcio<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=75c1437ceb77ffcdb9358688b3b56245c6ba3851 drm/msm/mdp5: Add MDP5 configuration for SDM630] by konradybcio<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=033f47f7f12168b39c10158551576b15dec61505 drm/msm/dsi: Add DSI configuration for SDM660] by konradybcio<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=974b7115a73d8d3ff77cfd6f69408d20c1bb7d06 drm/msm/mdp5: Add MDP5 configuration for SDM636/660] by konradybcio<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cfbf813e598125293493341bc2238acdf6ba6a6f mailbox: qcom: Add sdm660 hmss compatible] by konradybcio<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e9bb4a068b206f61ef01057cfeafdb852fb244c5 regulator: core: Enlarge max OF property name length to 64 chars] by kholk<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=328816c2033160a6929fb0c6f0018b7c8d75cefe regulator: qcom_spmi: Add support for new regulator types] by kholk<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0074c4472dcb20e989d9870c0b3aba42d0aa44b8 regulator: qcom_spmi: Add PM660/PM660L regulators] by kholk<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f9f061a5486f6a87e32fac80223ae44d4aefc06f regulator: dt-bindings: Document the PM660/660L SPMI PMIC entries] by kholk<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6d849653b00f2336efcd371fe85a7eb31bb094e9 regulator: qcom_smd: Add PM660/PM660L regulator support] by kholk<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=f627691db72921f300e333fbbfe8349142a94807 regulator: dt-bindings: Document the PM660/PM660L PMICs entries] by kholk<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0b5a21870694ab4c75a783f77b158840908f04a1 Merge series "Support for PM660/PM660L SPMI and SMD regulators" from kholk]<br />
<br />
To be merged in linux-5.10 (currently in linux-next/master):<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=326407d2c576995464fda64e92b5e37f3589e5ee arm64: dts: sdm630: Temporarily disable SMMUs by default] by konradybcio<br />
* [https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=d46e5a39f9be9288f1ce2170c4c7f8098f4e7f68 clk: qcom: gcc-sdm660: Fix wrong parent_map] by konradybcio<br />
<br />
<br />
see also:<br />
* [https://www.phoronix.com/scan.php?page=news_item&px=Linux-SDM630-SDM660-Patches Article on Phoronix, Linux-SDM630-SDM660-Patches]</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_800/801_(MSM8974)&diff=16334Qualcomm Snapdragon 800/801 (MSM8974)2021-01-08T18:02:15Z<p>Konradybcio: add codenames</p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8974<br />
| codenames = msmcopper/apqcopper<br />
| manufacturer = Qualcomm<br />
| arch = armv7<br />
| cpu = 4x 2.26/2.36/2.45 GHz Krait 400<br />
| gpu = Adreno 330<br />
| year = 2013<br />
| process = 28<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = P<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <br />
| status_video = <br />
| status_thermal = Y<br />
| status_wifi = Y<br />
| status_bluetooth = Y<br />
| status_modem = P<br />
| status_camera = <br />
}}<br />
<br />
[https://www.qualcomm.com/products/snapdragon-processors-800 MSM8274/MSM8674/APQ8074/MSM8974AA] (or Snapdragon 800) is a Qualcomm SoC released in 2013, with decent mainline support. There is also a slightly higher clocked MSM8974Pro-AB and a final, supposedly less hot [https://www.qualcomm.com/products/snapdragon-processors-801 MSM8974v3/MSM8974Pro-AC] also known as Snapdragon 801. The early (MSM8974v1) versions seem to not have been used in production devices. Shipped with either PM8841+PM8941 or PM8084+PM8941 (Pro-AC variants).<br />
<br />
The combination of (most?) vendors not using msm-id & board-id and little-differing naming scheme of various revisions of this SoC can be highly misleading and lead to misunderstandings.<br />
<br />
== Devices ==<br />
=== Snapdragon 800 (MSM8x74v2.x[-AA]) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74 Snapdragon 800' OR Devices.chipset LIKE 'Qualcomm MSM8%74AA Snapdragon 800'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 (MSM8x74Pro-AB) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74AB Snapdragon 801' OR Devices.chipset LIKE 'Qualcomm MSM8%74AB-AB Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 "Final" (MSM8x74Pro-AC) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74AC Snapdragon 801' OR Devices.chipset LIKE 'Qualcomm MSM8%74PRO-AC Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 800 (APQ8074v2.x[-AA]) (WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm APQ8074%AA Snapdragon 800' OR Devices.chipset LIKE 'Qualcomm APQ8074 Snapdragon 800'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 (APQ8074Pro-AB) (WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm APQ8074%AB Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 "Final" (APQ8074Pro-AC) (WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm APQ8074%AC Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
== To-do list for mainline ==<br />
* Fix up and resubmit [https://lists.linuxfoundation.org/pipermail/iommu/2014-June/008993.html this IOMMU series]<br />
* Fix up and resubmit [https://lkml.org/lkml/2018/4/7/66 this BMS series]<br />
* Write and submit a driver for audio codec(s?) partially in [https://github.com/flto/linux/commits/msm8974 flto's tree]<br />
* Check if drm/msm/adreno/a3xx is in line with latest downstream ([https://github.com/LineageOS/android_kernel_sony_msm8974/tree/lineage-18.0/drivers/gpu/msm this] seems like a good reference)<br />
* Fix up mesa by comparing kgsl and freedreno RD dumps like is described [https://gitlab.freedesktop.org/freedreno/freedreno/-/wikis/Reverse-Engineering-Tools here]<br />
* Add DVFS for various components<br />
* Clean up the device tree (can somebody sort arch/arm/boot/dts trees by vendor while at it?)<br />
* Clean up and submit various drivers (like camss) from [https://github.com/flto/linux/commits/msm8974 flto's tree]<br />
* Test, test test :)</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Template:Infobox_soc&diff=16333Template:Infobox soc2021-01-08T18:01:44Z<p>Konradybcio: Add "Codenames" field for alternative naming of the SoC</p>
<hr />
<div>{{Infobox<br />
| name=Infobox<br />
| bodystyle=<br />
| title = {{{manufacturer|}}} {{{name|}}}<br />
| titlestyle = <br />
<br />
|header1 =<br />
|label1 = Manufacturer<br />
|data1 = {{{manufacturer|}}}<br />
|header2 =<br />
|label2 = Name<br />
|data2 = {{{name|}}}<br />
|header3 =<br />
|label3 = Codenames<br />
|data3 = {{{codenames|}}}<br />
|header4 =<br />
|label4 = Architecture<br />
|data4 = {{{arch|}}}<br />
|header5 =<br />
|label5 = CPU<br />
|data5 = {{{cpu|}}}<br />
|header6 =<br />
|label6 = GPU<br />
|data6 = {{{gpu|}}}<br />
|header7 =<br />
|label7 = Year<br />
|data7 = {{{year|}}}<br />
|header8 =<br />
|label8 = Process<br />
|data8 = {{{process|}}}nm<br />
|header9 =<br />
|label9 = Mainline<br />
|data9 = {{{mainline|}}}<br />
|header10 = Components<br />
|label10 = <br />
|data10 = <br />
|header11 =<br />
|label11 = <abbr title="SMP (bring up secondary CPU cores), CPU frequency scaling, CPUidle">CPU</abbr><br />
|data11 = {{Feature|{{{status_cpu|}}}}}<br />
|header12 =<br />
|label12 = UART<br />
|data12 = {{Feature|{{{status_uart|}}}}}<br />
|header13 =<br />
|label13 = <abbr title="eMMC, SD cards, UFS, ...">Storage</abbr><br />
|data13 = {{Feature|{{{status_storage|}}}}}<br />
|header14 =<br />
|label14 = USB<br />
|data14 = {{Feature|{{{status_usb|}}}}}<br />
|header15 =<br />
|label15 = Display<br />
|data15 = {{Feature|{{{status_display|}}}}}<br />
|header16 =<br />
|label16 = GPU<br />
|data16 = {{Feature|{{{status_gpu|}}}}}<br />
|header17 =<br />
|label17 = Pinctrl<br />
|data17 = {{Feature|{{{status_pinctrl|}}}}}<br />
|header18 =<br />
|label18 = I²C<br />
|data18 = {{Feature|{{{status_i2c|}}}}}<br />
|header19 =<br />
|label19 = Audio<br />
|data19 = {{Feature|{{{status_audio|}}}}}<br />
|header20 =<br />
|label20 = <abbr title="Hardware-accelerated video de/encoding">Video</abbr><br />
|data20 = {{Feature|{{{status_video|}}}}}<br />
|header21 =<br />
|label21 = Thermal<br />
|data21 = {{Feature|{{{status_thermal|}}}}}<br />
|header22 =<br />
|label22 = WiFi<br />
|data22 = {{Feature|{{{status_wifi|}}}}}<br />
|header23 =<br />
|label23 = Bluetooth<br />
|data23 = {{Feature|{{{status_bluetooth|}}}}}<br />
|header24 =<br />
|label24 = <abbr title="Calls, SMS, Internet">Modem</abbr><br />
|data24 = {{Feature|{{{status_modem|}}}}}<br />
|header25 =<br />
|label25 = GPS<br />
|data25 = {{Feature|{{{status_gps|}}}}}<br />
|header26 =<br />
|label26 = Camera<br />
|data26 = {{Feature|{{{status_camera|}}}}}<br />
|header27 =<br />
|label27 = Suspend<br />
|data27 = {{Feature|{{{status_suspend|}}}}}<br />
}}<br />
<br />
<noinclude><br />
{{#cargo_declare:_table=Socs|Manufacturer=String|Name=String|Codenames=String|Arch=String|Year=String|Process=Integer|Cpu=String|Gpu=String|Mainline=Boolean|StatusCpu=String|StatusUart=String|StatusStorage=String|StatusUsb=String|StatusDisplay=String|StatusGpu=String|StatusPinctrl=String|StatusI2c=String|StatusAudio=String|StatusVideo=String|StatusThermal=String|StatusWiFi=String|StatusBluetooth=String|StatusModem=String|StatusGps=String|StatusCamera=String|StatusSuspend=String}}<br />
</noinclude><br />
<includeonly><br />
[[Category:Socs]]<br />
{{#cargo_store:_table=Socs|Manufacturer={{{manufacturer|}}}|Name={{{name|}}}|Codenames={{{codenames|}}}|Arch={{{arch|}}}|Year={{{year|}}}|Process={{{process|}}}|Cpu={{{cpu|}}}|Gpu={{{gpu|}}}|Mainline={{{mainline|}}}|StatusCpu={{{status_cpu|}}}|StatusUart={{{status_uart|}}}|StatusStorage={{{status_storage|}}}|StatusUsb={{{status_usb|}}}|StatusDisplay={{{status_display|}}}|StatusGpu={{{status_gpu|}}}|StatusPinctrl={{{status_pinctrl|}}}|StatusI2c={{{status_i2c|}}}|StatusAudio={{{status_audio|}}}|StatusVideo={{{status_video|}}}|StatusThermal={{{status_thermal|}}}|StatusWiFi={{{status_wifi|}}}|StatusBluetooth={{{status_bluetooth|}}}|StatusModem={{{status_modem|}}}|StatusGps={{{status_gps|}}}|StatusCamera={{{status_camera|}}}|StatusSuspend={{{status_suspend|}}} }}<br />
</includeonly></div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_800/801_(MSM8974)&diff=16330Qualcomm Snapdragon 800/801 (MSM8974)2021-01-08T14:45:50Z<p>Konradybcio: solve more qcom naming spaghetti</p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8974<br />
| manufacturer = Qualcomm<br />
| arch = armv7<br />
| cpu = 4x 2.26/2.36/2.45 GHz Krait 400<br />
| gpu = Adreno 330<br />
| year = 2013<br />
| process = 28<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = P<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <br />
| status_video = <br />
| status_thermal = Y<br />
| status_wifi = Y<br />
| status_bluetooth = Y<br />
| status_modem = P<br />
| status_camera = <br />
}}<br />
<br />
[https://www.qualcomm.com/products/snapdragon-processors-800 MSM8274/MSM8674/APQ8074/MSM8974AA] (or Snapdragon 800) is a Qualcomm SoC released in 2013, with decent mainline support. There is also a slightly higher clocked MSM8974Pro-AB and a final, supposedly less hot [https://www.qualcomm.com/products/snapdragon-processors-801 MSM8974v3/MSM8974Pro-AC] also known as Snapdragon 801. The early (MSM8974v1) versions seem to not have been used in production devices. Shipped with either PM8841+PM8941 or PM8084+PM8941 (Pro-AC variants).<br />
<br />
The combination of (most?) vendors not using msm-id & board-id and little-differing naming scheme of various revisions of this SoC can be highly misleading and lead to misunderstandings.<br />
<br />
== Devices ==<br />
=== Snapdragon 800 (MSM8x74v2.x[-AA]) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74 Snapdragon 800' OR Devices.chipset LIKE 'Qualcomm MSM8%74AA Snapdragon 800'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 (MSM8x74Pro-AB) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74AB Snapdragon 801' OR Devices.chipset LIKE 'Qualcomm MSM8%74AB-AB Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 "Final" (MSM8x74Pro-AC) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74AC Snapdragon 801' OR Devices.chipset LIKE 'Qualcomm MSM8%74PRO-AC Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 800 (APQ8074v2.x[-AA]) (WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm APQ8074%AA Snapdragon 800' OR Devices.chipset LIKE 'Qualcomm APQ8074 Snapdragon 800'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 (APQ8074Pro-AB) (WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm APQ8074%AB Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 "Final" (APQ8074Pro-AC) (WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm APQ8074%AC Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
== To-do list for mainline ==<br />
* Fix up and resubmit [https://lists.linuxfoundation.org/pipermail/iommu/2014-June/008993.html this IOMMU series]<br />
* Fix up and resubmit [https://lkml.org/lkml/2018/4/7/66 this BMS series]<br />
* Write and submit a driver for audio codec(s?) partially in [https://github.com/flto/linux/commits/msm8974 flto's tree]<br />
* Check if drm/msm/adreno/a3xx is in line with latest downstream ([https://github.com/LineageOS/android_kernel_sony_msm8974/tree/lineage-18.0/drivers/gpu/msm this] seems like a good reference)<br />
* Fix up mesa by comparing kgsl and freedreno RD dumps like is described [https://gitlab.freedesktop.org/freedreno/freedreno/-/wikis/Reverse-Engineering-Tools here]<br />
* Add DVFS for various components<br />
* Clean up the device tree (can somebody sort arch/arm/boot/dts trees by vendor while at it?)<br />
* Clean up and submit various drivers (like camss) from [https://github.com/flto/linux/commits/msm8974 flto's tree]<br />
* Test, test test :)</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=User:Stev47&diff=16328User:Stev472021-01-08T12:27:46Z<p>Konradybcio: fix {{My devices}}</p>
<hr />
<div>{{My devices}}<br />
{{Owns device|HTC_10_(htc-pme)}}</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_800/801_(MSM8974)&diff=15862Qualcomm Snapdragon 800/801 (MSM8974)2020-12-13T20:10:22Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8974<br />
| manufacturer = Qualcomm<br />
| arch = armv7<br />
| cpu = 4x 2.26/2.36/2.45 GHz Krait 400<br />
| gpu = Adreno 330<br />
| year = 2013<br />
| process = 28<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = P<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <br />
| status_video = <br />
| status_thermal = Y<br />
| status_wifi = Y<br />
| status_bluetooth = Y<br />
| status_modem = P<br />
| status_camera = <br />
}}<br />
<br />
[https://www.qualcomm.com/products/snapdragon-processors-800 MSM8274/MSM8674/APQ8074/MSM8974AA] (or Snapdragon 800) is a Qualcomm SoC released in 2013, with decent mainline support. There is also a slightly higher clocked MSM8974Pro-AB and a final, supposedly less hot [https://www.qualcomm.com/products/snapdragon-processors-801 MSM8974v3/MSM8974Pro-AC] also known as Snapdragon 801. The early (MSM8974v1) versions seem to not have been used in production devices.<br />
<br />
The combination of (most?) vendors not using msm-id & board-id and little-differing naming scheme of various revisions of this SoC can be highly misleading and lead to misunderstandings.<br />
<br />
== Devices ==<br />
=== Snapdragon 800 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74 Snapdragon 800' OR Devices.chipset LIKE 'Qualcomm MSM8%74AA Snapdragon 800'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74AB Snapdragon 801' OR Devices.chipset LIKE 'Qualcomm MSM8%74AB-AB Snapdragon 801' OR Devices.chipset LIKE 'Qualcomm MSM8%74AC Snapdragon 801' OR Devices.chipset <br />
LIKE 'Qualcomm MSM8%74PRO-AC Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 (WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='Qualcomm APQ8074AB Snapdragon 801' OR Devices.chipset='Qualcomm APQ8074AC Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
== To-do list for mainline ==<br />
* Fix up and resubmit [https://lists.linuxfoundation.org/pipermail/iommu/2014-June/008993.html this IOMMU series]<br />
* Fix up and resubmit [https://lkml.org/lkml/2018/4/7/66 this BMS series]<br />
* Write and submit a driver for audio codec(s?) partially in [https://github.com/flto/linux/commits/msm8974 flto's tree]<br />
* Check if drm/msm/adreno/a3xx is in line with latest downstream ([https://github.com/LineageOS/android_kernel_sony_msm8974/tree/lineage-18.0/drivers/gpu/msm this] seems like a good reference)<br />
* Fix up mesa by comparing kgsl and freedreno RD dumps like is described [https://gitlab.freedesktop.org/freedreno/freedreno/-/wikis/Reverse-Engineering-Tools here]<br />
* Add DVFS for various components<br />
* Clean up the device tree (can somebody sort arch/arm/boot/dts trees by vendor while at it?)<br />
* Clean up and submit various drivers (like camss) from [https://github.com/flto/linux/commits/msm8974 flto's tree]<br />
* Test, test test :)</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_800/801_(MSM8974)&diff=15813Qualcomm Snapdragon 800/801 (MSM8974)2020-12-09T23:44:23Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8974<br />
| manufacturer = Qualcomm<br />
| arch = armv7<br />
| cpu = 4x 2.26/2.36/2.45 GHz Krait 400<br />
| gpu = Adreno 330<br />
| year = 2013<br />
| process = 28<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = P<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <br />
| status_video = <br />
| status_thermal = Y<br />
| status_wifi = Y<br />
| status_bluetooth = Y<br />
| status_modem = P<br />
| status_camera = <br />
}}<br />
<br />
[https://www.qualcomm.com/products/snapdragon-processors-800 MSM8274/MSM8674/APQ8074/MSM8974AA] (or Snapdragon 800) is a Qualcomm SoC released in 2013, with decent mainline support. There is also a slightly higher clocked MSM8974Pro-AB and a final, supposedly less hot [https://www.qualcomm.com/products/snapdragon-processors-801 MSM8974v3/MSM8974Pro-AC] also known as Snapdragon 801. The early (MSM8974v1) versions seem to not have been used in production devices.<br />
<br />
The combination of (most?) vendors not using msm-id & board-id and little-differing naming scheme of various revisions of this SoC can be highly misleading and lead to misunderstandings.<br />
<br />
== Devices ==<br />
=== Snapdragon 800 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74 Snapdragon 800' OR Devices.chipset LIKE 'Qualcomm MSM8%74AA Snapdragon 800'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74AB Snapdragon 801' OR Devices.chipset LIKE 'Qualcomm MSM8%74AB-AB Snapdragon 801' OR Devices.chipset LIKE 'Qualcomm MSM8%74AC Snapdragon 801' OR Devices.chipset <br />
LIKE 'Qualcomm MSM8%74PRO-AC Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 (WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='Qualcomm APQ8074AB Snapdragon 801' OR Devices.chipset='Qualcomm APQ8074AC Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
== To-do list for mainline ==<br />
<br />
- Fix up and resubmit [https://lists.linuxfoundation.org/pipermail/iommu/2014-June/008993.html this IOMMU series]<br />
<br />
- Fix up and resubmit [https://lkml.org/lkml/2018/4/7/66 this BMS series]<br />
<br />
- Write and submit a driver for audio codec(s?)<br />
<br />
- Check if drm/msm/adreno/a3xx is in line with latest downstream<br />
<br />
- Fix up mesa by comparing kgsl and freedreno RD dumps like is described [https://gitlab.freedesktop.org/freedreno/freedreno/-/wikis/Reverse-Engineering-Tools here]<br />
<br />
- Add DVFS for various components<br />
<br />
- Clean up the device tree (can somebody sort arch/arm/boot/dts trees by vendor while at it?)<br />
<br />
- Clean up and submit various drivers (like camss) from [https://github.com/flto/linux/commits/msm8974 flto's tree]<br />
<br />
- Test, test test :)</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_Xperia_Z1_(sony-honami)&diff=15812Sony Xperia Z1 (sony-honami)2020-12-09T23:32:30Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = Xperia Z1<br />
| codename = sony-honami<br />
| image = File:honami.jpg<br />
| imagecaption = Sony Xperia Z1<br />
| releaseyear = 2013<br />
| originalsoftware = Android 4.2<br />
| chipset = Qualcomm MSM8974 Snapdragon 800<br />
| cpu = Quad-core 2.2 GHz Krait 400<br />
| gpu = Adreno 330<br />
| storage = 16 GB<br />
| display = 1080x1920<br />
| memory = 2 GB<br />
| architecture = armv7<br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = Y<br />
| status_wifi = Y<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = P<br />
| status_battery =<br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth =<br />
| status_camera =<br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| booting = yes<br />
}}<br />
<br />
== Contributors ==<br />
* limiter121<br />
* ata2001 (work on Z1C)<br />
<br />
== Maintainer(s) ==<br />
* limiter121<br />
<br />
== Device owners ==<br />
{{Device owners}}<br />
<br />
== What works ==<br />
* Display<br />
* Touchscreen<br />
* Network through USB<br />
* Telnet in initramfs<br />
* SSH<br />
* Wifi<br />
<br />
== What does not work ==<br />
`osk-sdl` doesn't work:<br />
<br />
<br />
<pre><br />
sony-honami:/home/r# osk-sdl -d a -n a -c /etc/osk.conf -v<br />
commandline read: osk-sdl<br />
commandline read: -d<br />
commandline read: a<br />
commandline read: -n<br />
commandline read: a<br />
commandline read: -c<br />
commandline read: /etc/osk.conf<br />
commandline read: -v<br />
(*) Direct/Thread: Started 'SigHandler' (1742) [CRITICAL - OTHER/0] <134492>...<br />
<br />
16:41, 29 May 2019 (EDT)16:41, 29 May 2019 (EDT)16:41, 29 May 2019 (EDT)16:41, 29 May 2019 (EDT)16:41, 29 May 2019 (EDT)| DirectFB 1.7.7 |16:41, 29 May 2019 (EDT)16:41, 29 May 2019 (EDT)16:41, 29 May 2019 (EDT)16:41, 29 May 2019 (EDT)16:41, 29 May 2019 (EDT)~<br />
(c) 2012-2015 DirectFB integrated media GmbH<br />
(c) 2001-2015 The world wide DirectFB Open Source Community<br />
(c) 2000-2004 Convergence (integrated media) GmbH<br />
----------------------------------------------------------------<br />
<br />
(*) DirectFB/Core: Single Application Core. (2018-10-03 11:56) <br />
(*) Direct/Memcpy: Using libc memcpy()<br />
(*) Direct/Thread: Started 'Fusion Dispatch' (1743) [MESSAGING - OTHER/0] <134492>...<br />
(*) Direct/Thread: Started 'VT Switcher' (1746) [CRITICAL - OTHER/0] <134492>...<br />
(*) Direct/Thread: Started 'VT Flusher' (1747) [DEFAULT - OTHER/0] <134492>...<br />
(*) DirectFB/FBDev: Found 'mdssfb_80000' (ID 0) with frame buffer at 0x00020000, 16320k (MMIO 0x00000000, 0k)<br />
(*) Direct/Modules: suppress module 'linux_input'<br />
(*) Direct/Thread: Started 'Keyboard Input' (1748) [INPUT - OTHER/0] <134492>...<br />
(*) DirectFB/Input: Keyboard 0.9 (directfb.org)<br />
(*) Direct/Thread: Started 'tslib Input' (1749) [INPUT - OTHER/0] <134492>...<br />
(*) DirectFB/Input: tslib touchscreen 0 0.1 (tslib)<br />
(*) Direct/Thread: Started 'PS/2 Input' (1750) [INPUT - OTHER/0] <134492>...<br />
(*) DirectFB/Input: IMPS/2 Mouse (1) 1.0 (directfb.org)<br />
(*) Direct/Thread: Started 'PS/2 Input' (1751) [INPUT - OTHER/0] <134492>...<br />
(*) DirectFB/Input: IMPS/2 Mouse (2) 1.0 (directfb.org)<br />
(*) DirectFB/Input: Hot-plug detection enabled with Input Hub Driver <br />
(*) DirectFB/Graphics: Generic Software Rasterizer 0.7 (directfb.org)<br />
(!) DirectFB/FBDev: No supported modes found in /etc/fb.modes and current mode not supported!<br />
(!) DirectFB/FBDev: Current mode's pixelformat: rgba 8/0, 8/8, 8/16, 8/24 (32bit)<br />
(!) DirectFB/Core/layers: Failed to initialize layer 0!<br />
--> A general initialization error occured<br />
(!) DirectFB/Core: Could not initialize 'layer_core' core!<br />
--> A general initialization error occured<br />
INFO: /home/buildozer/aports/main/sdl2/src/SDL2-2.0.9/src/video/directfb/SDL_DirectFB_video.c (239):A general initialization error occured<br />
Segmentation fault<br />
</pre><br />
<br />
== How to enter flash mode ==<br />
Press VOL UP while plugging the USB cable (fastboot mode)<br />
<br />
== Installation ==<br />
<br />
<br />
<!-- add more sections here as necessary, e.g. Wifi, ... --><br />
<br />
<br />
== Photos ==<br />
[[File:honami.jpg|100px]]<br />
[[File:honami-2.jpg|100px]]<br />
<br />
== Other Information ==<br />
* It should be possible to run [[The Mainline Kernel]] on the device. At least there is a <code>dts</code> file already in the 4.14 kernel: <code>arch/arm/boot/dts/qcom-msm8974-sony-xperia-honami.dts</code><br />
<br />
== Links ==<br />
* [https://github.com/sonyxperiadev/kernel Kernel source code]<br />
* [https://github.com/sonyxperiadev/device-sony-honami Android configuration]<br />
* [https://developer.sonymobile.com/open-devices/ Sony Open Devices (official tutorials, tools, code, etc.)]<br />
* {{MR|916}} Initial merge request<br />
* {{Device package|sony-honami}}<br />
* {{Kernel package|sony-honami}}</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_800/801_(MSM8974)&diff=15811Qualcomm Snapdragon 800/801 (MSM8974)2020-12-09T23:32:17Z<p>Konradybcio: remove TODO:, lookup is pretty generic now</p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8974<br />
| manufacturer = Qualcomm<br />
| arch = armv7<br />
| cpu = 4x 2.26/2.36/2.45 GHz Krait 400<br />
| gpu = Adreno 330<br />
| year = 2013<br />
| process = 28<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = P<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <br />
| status_video = <br />
| status_thermal = Y<br />
| status_wifi = Y<br />
| status_bluetooth = Y<br />
| status_modem = P<br />
| status_camera = <br />
}}<br />
<br />
[https://www.qualcomm.com/products/snapdragon-processors-800 MSM8274/MSM8674/APQ8074/MSM8974AA] (or Snapdragon 800) is a Qualcomm SoC released in 2013, with decent mainline support. There is also a slightly higher clocked MSM8974Pro-AB and a final, supposedly less hot [https://www.qualcomm.com/products/snapdragon-processors-801 MSM8974v3/MSM8974Pro-AC] also known as Snapdragon 801. The early (MSM8974v1) versions seem to not have been used in production devices.<br />
<br />
The combination of (most?) vendors not using msm-id & board-id and little-differing naming scheme of various revisions of this SoC can be highly misleading and lead to misunderstandings.<br />
<br />
== Devices ==<br />
=== Snapdragon 800 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74 Snapdragon 800' OR Devices.chipset LIKE 'Qualcomm MSM8%74AA Snapdragon 800'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74AB Snapdragon 801' OR Devices.chipset LIKE 'Qualcomm MSM8%74AB-AB Snapdragon 801' OR Devices.chipset LIKE 'Qualcomm MSM8%74AC Snapdragon 801' OR Devices.chipset <br />
LIKE 'Qualcomm MSM8%74PRO-AC Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 (WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='Qualcomm APQ8074AB Snapdragon 801' OR Devices.chipset='Qualcomm APQ8074AC Snapdragon 801'<br />
|more results text=<br />
}}</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_800/801_(MSM8974)&diff=15810Qualcomm Snapdragon 800/801 (MSM8974)2020-12-09T23:31:45Z<p>Konradybcio: /* Snapdragon 801 */</p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8974<br />
| manufacturer = Qualcomm<br />
| arch = armv7<br />
| cpu = 4x 2.26/2.36/2.45 GHz Krait 400<br />
| gpu = Adreno 330<br />
| year = 2013<br />
| process = 28<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = P<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <br />
| status_video = <br />
| status_thermal = Y<br />
| status_wifi = Y<br />
| status_bluetooth = Y<br />
| status_modem = P<br />
| status_camera = <br />
}}<br />
<br />
[https://www.qualcomm.com/products/snapdragon-processors-800 MSM8274/MSM8674/APQ8074/MSM8974AA] (or Snapdragon 800) is a Qualcomm SoC released in 2013, with decent mainline support. There is also a slightly higher clocked MSM8974Pro-AB and a final, supposedly less hot [https://www.qualcomm.com/products/snapdragon-processors-801 MSM8974v3/MSM8974Pro-AC] also known as Snapdragon 801. The early (MSM8974v1) versions seem to not have been used in production devices.<br />
<br />
The combination of (most?) vendors not using msm-id & board-id and little-differing naming scheme of various revisions of this SoC can be highly misleading and lead to misunderstandings.<br />
<br />
== Devices ==<br />
{{todo|Update the condition in the table to work generic.}}<br />
=== Snapdragon 800 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74 Snapdragon 800' OR Devices.chipset LIKE 'Qualcomm MSM8%74AA Snapdragon 800'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74AB Snapdragon 801' OR Devices.chipset LIKE 'Qualcomm MSM8%74AB-AB Snapdragon 801' OR Devices.chipset LIKE 'Qualcomm MSM8%74AC Snapdragon 801' OR Devices.chipset <br />
LIKE 'Qualcomm MSM8%74PRO-AC Snapdragon 801'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 (WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='Qualcomm APQ8074AB Snapdragon 801' OR Devices.chipset='Qualcomm APQ8074AC Snapdragon 801'<br />
|more results text=<br />
}}</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_800/801_(MSM8974)&diff=15809Qualcomm Snapdragon 800/801 (MSM8974)2020-12-09T23:29:59Z<p>Konradybcio: MSM8x74AB is marketed as 801, only AA or (no suffix) is 800</p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8974<br />
| manufacturer = Qualcomm<br />
| arch = armv7<br />
| cpu = 4x 2.26/2.36/2.45 GHz Krait 400<br />
| gpu = Adreno 330<br />
| year = 2013<br />
| process = 28<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = P<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <br />
| status_video = <br />
| status_thermal = Y<br />
| status_wifi = Y<br />
| status_bluetooth = Y<br />
| status_modem = P<br />
| status_camera = <br />
}}<br />
<br />
[https://www.qualcomm.com/products/snapdragon-processors-800 MSM8274/MSM8674/APQ8074/MSM8974AA] (or Snapdragon 800) is a Qualcomm SoC released in 2013, with decent mainline support. There is also a slightly higher clocked MSM8974Pro-AB and a final, supposedly less hot [https://www.qualcomm.com/products/snapdragon-processors-801 MSM8974v3/MSM8974Pro-AC] also known as Snapdragon 801. The early (MSM8974v1) versions seem to not have been used in production devices.<br />
<br />
The combination of (most?) vendors not using msm-id & board-id and little-differing naming scheme of various revisions of this SoC can be highly misleading and lead to misunderstandings.<br />
<br />
== Devices ==<br />
{{todo|Update the condition in the table to work generic.}}<br />
=== Snapdragon 800 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset LIKE 'Qualcomm MSM8%74 Snapdragon 800' OR Devices.chipset LIKE 'Qualcomm MSM8%74AA Snapdragon 800'<br />
|more results text=<br />
}}<br />
<br />
=== Snapdragon 801 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='Qualcomm MSM8974AB Snapdragon 801' OR Devices.chipset='Qualcomm MSM8974AB-AB Snapdragon 801' OR Devices.chipset='Qualcomm MSM8974AC Snapdragon 801' OR Devices.chipset='Qualcomm MSM8974PRO-AC Snapdragon 801'<br />
|more results text=<br />
}}<br />
=== Snapdragon 801 (WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='Qualcomm APQ8074AB Snapdragon 801' OR Devices.chipset='Qualcomm APQ8074AC Snapdragon 801'<br />
|more results text=<br />
}}</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_800/801_(MSM8974)&diff=15807Qualcomm Snapdragon 800/801 (MSM8974)2020-12-09T23:24:30Z<p>Konradybcio: APQ8974AC Pro (max ultra 5g) also exists</p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8974<br />
| manufacturer = Qualcomm<br />
| arch = armv7<br />
| cpu = 4x 2.26/2.36/2.45 GHz Krait 400<br />
| gpu = Adreno 330<br />
| year = 2013<br />
| process = 28<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = P<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <br />
| status_video = <br />
| status_thermal = Y<br />
| status_wifi = Y<br />
| status_bluetooth = Y<br />
| status_modem = P<br />
| status_camera = <br />
}}<br />
<br />
[https://www.qualcomm.com/products/snapdragon-processors-800 MSM8274/MSM8674/APQ8074/MSM8974AA] (or Snapdragon 800) is a Qualcomm SoC released in 2013, with decent mainline support. There is also a slightly higher clocked MSM8974Pro-AB and a final, supposedly less hot [https://www.qualcomm.com/products/snapdragon-processors-801 MSM8974v3/MSM8974Pro-AC] also known as Snapdragon 801. The early (MSM8974v1) versions seem to not have been used in production devices.<br />
<br />
The combination of (most?) vendors not using msm-id & board-id and little-differing naming scheme of various revisions of this SoC can be highly misleading and lead to misunderstandings.<br />
<br />
== Devices ==<br />
{{todo|Update the condition in the table to work generic.}}<br />
=== Snapdragon 800 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='Qualcomm MSM8974 Snapdragon 800' OR Devices.chipset='Qualcomm MSM8274AB Snapdragon 800'<br />
|more results text=<br />
}}<br />
=== Snapdragon 801 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='Qualcomm MSM8974AB Snapdragon 801' OR Devices.chipset='Qualcomm MSM8974AB-AB Snapdragon 801' OR Devices.chipset='Qualcomm MSM8974AC Snapdragon 801' OR Devices.chipset='Qualcomm MSM8974PRO-AC Snapdragon 801'<br />
|more results text=<br />
}}<br />
=== Snapdragon 801 (WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='Qualcomm APQ8074AB Snapdragon 801' OR Devices.chipset='Qualcomm APQ8074AC Snapdragon 801'<br />
|more results text=<br />
}}</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_800/801_(MSM8974)&diff=15805Qualcomm Snapdragon 800/801 (MSM8974)2020-12-09T23:19:35Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8974<br />
| manufacturer = Qualcomm<br />
| arch = armv7<br />
| cpu = 4x 2.26/2.36/2.45 GHz Krait 400<br />
| gpu = Adreno 330<br />
| year = 2013<br />
| process = 28<br />
| mainline = yes<br />
| status_cpu = P<br />
| status_uart = Y<br />
| status_storage = Y<br />
| status_usb = Y<br />
| status_display = Y<br />
| status_gpu = P<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <br />
| status_video = <br />
| status_thermal = Y<br />
| status_wifi = Y<br />
| status_bluetooth = Y<br />
| status_modem = P<br />
| status_camera = <br />
}}<br />
<br />
[https://www.qualcomm.com/products/snapdragon-processors-800 MSM8274/MSM8674/APQ8074/MSM8974AA] (or Snapdragon 800) is a Qualcomm SoC released in 2013, with decent mainline support. There is also a slightly higher clocked MSM8974Pro-AB and a final, supposedly less hot [https://www.qualcomm.com/products/snapdragon-processors-801 MSM8974v3/MSM8974Pro-AC] also known as Snapdragon 801. The early (MSM8974v1) versions seem to not have been used in production devices.<br />
<br />
The combination of (most?) vendors not using msm-id & board-id and little-differing naming scheme of various revisions of this SoC can be highly misleading and lead to misunderstandings.<br />
<br />
== Devices ==<br />
{{todo|Update the condition in the table to work generic.}}<br />
=== Snapdragon 800 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='Qualcomm MSM8974 Snapdragon 800' OR Devices.chipset='Qualcomm MSM8274AB Snapdragon 800'<br />
|more results text=<br />
}}<br />
=== Snapdragon 801 ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='Qualcomm MSM8974AB Snapdragon 801' OR Devices.chipset='Qualcomm MSM8974AB-AB Snapdragon 801' OR Devices.chipset='Qualcomm MSM8974AC Snapdragon 801' OR Devices.chipset='Qualcomm MSM8974PRO-AC Snapdragon 801'<br />
|more results text=<br />
}}<br />
=== Snapdragon 801 (WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Devices.chipset='Qualcomm APQ8074AB Snapdragon 801'<br />
|more results text=<br />
}}</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Template:SonyBLunlock&diff=15804Template:SonyBLunlock2020-12-09T22:56:39Z<p>Konradybcio: </p>
<hr />
<div><noinclude><br />
{{Template}}<br />
<br />
Explains the procedure of unlocking the bootloader on 2012+ SONY devices, hopefully reduces text copypaste.<br />
<br />
== Usage ==<br />
<br />
<pre><nowiki>{{SonyBLunlock}}</nowiki></pre><br />
<br />
</noinclude><br />
{{note|To use non-vendor OSes on SONY devices you need to unlock your bootloader. Not all devices can be unlocked easily.}}<br />
<br />
To check whether your phone can be unlocked:<br />
<br />
- Open the dialer app (the one where you key in the phone number)<br />
<br />
- Enter '*#*#7378423#*#*' ('*#*#SERVICE#*#*')<br />
<br />
- Go to 'Service info' - > 'Configuration'<br />
<br />
- Check 'Rooting status:'<br />
<br />
- 'Bootloader unlock allowed: Yes' means you can proceed<br />
<br />
- 'Bootloader unlock allowed: No' means you can't follow this procedure<br />
<br />
- 'Bootloader unlock allowed: Unknown' means pretty much the same thing as 'No'<br />
<br />
To unlock your bootloader:<br />
<br />
- Back up all of your data. It will be erased and your warranty may be void.<br />
<br />
- Download 'fastboot' binary for your OS, often found in official repos for Linux distros.<br />
<br />
- Find the IMEI of your device (IMEI of the first SIM slot for DS devices).<br />
<br />
- (Android 5.0/6.0+ devices): Enter Developer Settings and enable "OEM unlock".<br />
<br />
- Turn off your device.<br />
<br />
- Hold the [Volume +] button (while the phone is still off) and connect the phone to a computer.<br />
<br />
- If the notification LED turned blue, everything went well and you managed to enter fastboot mode.<br />
<br />
- Go to [https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader this website], scroll down, choose your device (or any device for that matter) from the drop-down list and enter your IMEI.<br />
<br />
- Copy the code that you received.<br />
<br />
- Open a terminal and enter 'fastboot oem unlock {KEY_THAT_YOU_OBTAINED}'.<br />
<br />
- You should see something like 'operation completed successfully (0.003s)'.<br />
<br />
- Congratulations, you can now use custom firmwares, just like pmOS :)</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Template:SonyBLunlock&diff=15803Template:SonyBLunlock2020-12-09T22:52:25Z<p>Konradybcio: </p>
<hr />
<div><noinclude><br />
{{Template}}<br />
<br />
Explains the procedure of unlocking the bootloader on 2012+ SONY devices, hopefully reduces text copypaste.<br />
<br />
== Usage ==<br />
<br />
<pre><nowiki>{{SonyBLunlock}}</nowiki></pre><br />
<br />
</noinclude><br />
{{note|To use non-vendor OSes on SONY devices you need to unlock your bootloader. Not all devices can be unlocked easily.}}<br />
<br />
To unlock your bootloader:<br />
<br />
- Back up all of your data. It will be erased and your warranty may be void.<br />
<br />
- Download `fastboot` binary for your OS, often found in official repos for Linux distros.<br />
<br />
- Find the IMEI of your device (IMEI of the first SIM slot for DS devices).<br />
<br />
- (Android 5.0/6.0+ devices): Enter Developer Settings and enable "OEM unlock".<br />
<br />
- Turn off your device.<br />
<br />
- Hold the [Volume +] button (while the phone is still off) and connect the phone to a computer.<br />
<br />
- If the notification LED turned blue, everything went well and you managed to enter fastboot mode.<br />
<br />
- Go to [https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader this website], scroll down, choose your device (or any device for that matter) from the drop-down list and enter your IMEI.<br />
<br />
- Copy the code that you received.<br />
<br />
- Open a terminal and enter `fastboot oem unlock {KEY_THAT_YOU_OBTAINED}`.<br />
<br />
- You should see something like `operation completed successfully (0.003s)`.<br />
<br />
- Congratulations, you can now use custom firmwares, just like pmOS :)</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Template:SonyBLunlock&diff=15802Template:SonyBLunlock2020-12-09T22:50:31Z<p>Konradybcio: Created page with "<noinclude> {{Template}} Explains the procedure of unlocking the bootloader on 2012+ SONY devices, hopefully reduces text copypaste. == Usage == <pre><nowiki>{{SonyBLunloc..."</p>
<hr />
<div><noinclude><br />
{{Template}}<br />
<br />
Explains the procedure of unlocking the bootloader on 2012+ SONY devices, hopefully reduces text copypaste.<br />
<br />
== Usage ==<br />
<br />
<pre><nowiki>{{SonyBLunlock}}</nowiki></pre><br />
<br />
</noinclude><br />
<includeonly><br />
{{note|To use non-vendor OSes on SONY devices you need to unlock your bootloader. Not all devices can be unlocked easily.}}<br />
<br />
To unlock your bootloader:<br />
<br />
- Back up all of your data. It will be erased and your warranty may be void.<br />
- Download `fastboot` binary for your OS, often found in official repos for Linux distros.<br />
- Find the IMEI of your device (IMEI of the first SIM slot for DS devices).<br />
- (Android 5.0/6.0+ devices): Enter Developer Settings and enable "OEM unlock".<br />
- Turn off your device.<br />
- Hold the [Volume +] button (while the phone is still off) and connect the phone to a computer.<br />
- If the notification LED turned blue, everything went well and you managed to enter fastboot mode.<br />
- Go to [https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader this website], scroll down, choose your device (or any device for that matter) from the drop-down list and enter your IMEI.<br />
- Copy the code that you received.<br />
- Open a terminal and enter `fastboot oem unlock {KEY_THAT_YOU_OBTAINED}`.<br />
- You should see something like `operation completed successfully (0.003s)`.<br />
- Congratulations, you can now use custom firmwares, just like pmOS :)<br />
</includeonly></div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_Xperia_XZ_Premium_(sony-maple)&diff=15776Sony Xperia XZ Premium (sony-maple)2020-12-08T22:02:28Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = Xperia XZ Premium<br />
| codename = sony-maple<br />
| image = File:sony-maple.png<br />
| imagecaption = Xperia XZ Premium<br />
| releaseyear = 2017<br />
| originalsoftware = Android 7.1 on Linux 4.4<br />
| chipset = Qualcomm MSM8998 Snapdragon 835<br />
| cpu = Octa-core (4x 2.45GHz Kryo 280 + 4x 1.9GHz Kryo 280)<br />
| gpu = Adreno 540<br />
| storage = 64GB UFS<br />
| display = 2160x3840 5.5" IPS LCD<br />
| memory = 4GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = <br />
| status_flashing = <br />
| status_touch = <br />
| status_screen = <br />
| status_wifi = <br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline = <br />
| status_battery = <br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth = <br />
| status_camera = <br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| booting = no <!-- not merged into pmaports --><br />
| pmoskernel = mainline<br />
<!-- | whet_dhry = --><br />
}}<br />
<br />
== Contributors ==<br />
<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Enter Developer options on Android and enable OEM Unlock<br />
<br />
Unlock your bootloader by following instructions here: https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader/<br />
<br />
Hold PWR and Vol+ until the LED becomes blue. Congratulations, you've entered fastboot.<br />
<br />
== Installation ==<br />
Just your standard "pmbootstrap flasher" procedure<br />
<br />
== See also ==<br />
<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_Xperia_XZ1_(sony-poplar)&diff=15775Sony Xperia XZ1 (sony-poplar)2020-12-08T22:02:05Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = Xperia XZ1<br />
| codename = sony-poplar<br />
| image = File:sony-poplar.png<br />
| imagecaption = Xperia XZ1<br />
| releaseyear = 2017<br />
| originalsoftware = Android 8.0 on Linux 4.4<br />
| chipset = Qualcomm MSM8998 Snapdragon 835<br />
| cpu = Octa-core (4x 2.45GHz Kryo 280 + 4x 1.9GHz Kryo 280)<br />
| gpu = Adreno 540<br />
| storage = 64GB UFS<br />
| display = 1080x1920 5.2" IPS LCD<br />
| memory = 4GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = <br />
| status_flashing = <br />
| status_touch = <br />
| status_screen = <br />
| status_wifi = <br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline = <br />
| status_battery = <br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth = <br />
| status_camera = <br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| booting = no <!-- not merged into pmaports --><br />
| pmoskernel = mainline<br />
<!-- | whet_dhry = --><br />
}}<br />
<br />
== Contributors ==<br />
<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Enter Developer options on Android and enable OEM Unlock<br />
<br />
Unlock your bootloader by following instructions here: https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader/<br />
<br />
Hold PWR and Vol+ until the LED becomes blue. Congratulations, you've entered fastboot.<br />
<br />
== Installation ==<br />
Just your standard "pmbootstrap flasher" procedure<br />
<br />
== See also ==<br />
<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_Xperia_XZ1_(sony-poplar)&diff=15774Sony Xperia XZ1 (sony-poplar)2020-12-08T21:58:23Z<p>Konradybcio: Created page with "{{Infobox device | manufacturer = Sony | name = Xperia XZ1 | codename = sony-poplar | image = File:sony-poplar.png | imagecaption = Xperia XZ1 | releaseyear = 2017 | originals..."</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = Xperia XZ1<br />
| codename = sony-poplar<br />
| image = File:sony-poplar.png<br />
| imagecaption = Xperia XZ1<br />
| releaseyear = 2017<br />
| originalsoftware = Android 8.0 on Linux 4.4<br />
| chipset = Qualcomm MSM8998 Snapdragon 835<br />
| cpu = Octa-core (4x 2.45GHz Kryo 280 + 4x 1.9GHz Kryo 280)<br />
| gpu = Adreno 540<br />
| storage = 64GB eMMC on sdhci5<br />
| display = 1080x1920 5.2" IPS LCD<br />
| memory = 4GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = <br />
| status_flashing = <br />
| status_touch = <br />
| status_screen = <br />
| status_wifi = <br />
| status_xwayland = <br />
| status_fde = <br />
| status_mainline = <br />
| status_battery = <br />
| status_3d = <br />
| status_accel = <br />
| status_audio = <br />
| status_bluetooth = <br />
| status_camera = <br />
| status_gps = <br />
| status_mobiledata = <br />
| status_sms = <br />
| status_calls = <br />
| booting = no <!-- not merged into pmaports --><br />
| pmoskernel = mainline<br />
<!-- | whet_dhry = --><br />
}}<br />
<br />
== Contributors ==<br />
<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Enter Developer options on Android and enable OEM Unlock<br />
<br />
Unlock your bootloader by following instructions here: https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader/<br />
<br />
Hold PWR and Vol+ until the LED becomes blue. Congratulations, you've entered fastboot.<br />
<br />
== Installation ==<br />
Just your standard "pmbootstrap flasher" procedure<br />
<br />
== See also ==<br />
<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_Xperia_XZ1_Compact_(sony-lilac)&diff=15773Sony Xperia XZ1 Compact (sony-lilac)2020-12-08T21:56:56Z<p>Konradybcio: Mention the bootloader unlocking procedure</p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = Xperia XZ1 Compact<br />
| codename = sony-lilac<br />
| image = File:Sony-lilac.jpeg|200px<br />
| imagecaption = <br />
| releaseyear = 2017<br />
| originalsoftware = Android 8.0 (Oreo), upgradable to Android 9.0 (Pie)<br />
| chipset = Qualcomm MSM8998 Snapdragon 835<br />
| cpu = Octa-core (4x2.45 GHz Kryo & 4x1.9 GHz Kryo)<br />
| gpu = Adreno 540<br />
| storage = 32 GB + microSD card slot<br />
| display = 720x1280 IPS<br />
| memory = 4 GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = <!-- USB networking does work? then put Y here and delete this comment --><br />
| status_flashing = <!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. --><br />
| status_touch = <!-- Touch screen is working? You can also answer these questions with P for partially. --><br />
| status_screen = Y<!-- The display is working? --><br />
| status_wifi = <!-- Wireless network works? --><br />
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? --><br />
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? --><br />
| status_mainline = <!-- Instead of a Linux kernel fork, it is possible to run mainline. --><br />
| status_battery = <!-- Charging the battery with charging-sdl is possible --><br />
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) --><br />
| status_accel = <!-- The sensor that measures proper acceleration works --><br />
| status_audio = <!-- Using the device's speakers/headphone jack works --><br />
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol --><br />
| status_camera = <!-- Taking photos and videos works. --><br />
| status_gps = <!-- The Global Positioning System sensor works. --><br />
| status_mobiledata = <!-- Connecting to the Internet via cellular network. --><br />
| status_sms = <!-- Sending and receiving short messages works as intended. --><br />
| status_calls = <!-- Talking to other people over the cellular network. --><br />
| status = kernel compiles, does not boot<!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" --><br />
| booting = no <!-- The device is booting at all, can be yes/no *IMPORTANT* --><br />
<br />
<!-- you can also use these lines if you need to:<br />
if the device haven't originally ran Android OS, e.g. Nokia N900<br />
| n-android = ✔<br />
Version of the kernel that pmos is running<br />
| pmoskernel = 4.4.194<br />
see Unixbench page on wiki<br />
| whet_dhry = 0.0<br />
Is OTG available, not used in wiki<br />
| status_otg = -<br />
--><br />
}}<br />
<br />
== Contributors ==<br />
* orson<br />
<br />
== Maintainer(s) ==<br />
<!-- Only if this device doesn't run on linux-postmarketos yet! --><br />
<!-- This person needs to be willing to answer questions from users of this device --><br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Enter Developer options on Android and enable OEM Unlock<br />
<br />
Unlock your bootloader by following instructions here: https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader/<br />
<br />
Hold PWR and Vol+ until the LED becomes blue. Congratulations, you've entered fastboot.<br />
<br />
== Force power off ==<br />
Hold [VOLUME +] and power button for several seconds.<br />
<br />
== Installation ==<br />
<!-- add more sections below as necessary, e.g. WiFi, photos, ... --><br />
<br />
== Notes ==<br />
Kernel boots up to the point where the phone displays "CHARGING MODE: error starting charging-sdl". It has been tested with firmware 47.2.A.10.107.<br />
<br />
Unfortunately USB networking does not work at the moment, so further investigation is difficult.<br />
<br />
The simplest method to see dmesg messages after a freeze during boot up:<br />
* boot a postmarketOS image (pmbootstrap flasher boot)<br />
* disconnect the USB cable as soon as the boot process starts (e.g. when Sony logo appears)<br />
* keep holding [VOLUME -] to start the recovery<br />
* in recovery, start terminal and run 'cat /sys/fs/pstore/console-ramoops'<br />
(based on [https://wiki.postmarketos.org/wiki/Troubleshooting:boot boot process troubleshooting wiki])<br />
<br />
== See also ==<br />
* [https://gitlab.com/orsonmmz/pmaports/-/tree/device/sony-lilac/device/testing/device-sony-lilac Device package (WIP)]<br />
* [https://gitlab.com/orsonmmz/pmaports/-/tree/device/sony-lilac/device/testing/linux-sony-lilac Kernel package (WIP)]<br />
<!--<br />
Link to related GitLab issues or merge requests like the following (replace CHANGEME with the ID, e.g. 1234):<br />
* {{MR|CHANGEME|pmaports}} Initial merge request<br />
* {{issue|CHANGEME|pmaports}} Some related issue<br />
You can also add normal web links:<br />
* [https://redmine.replicant.us/projects/replicant/wiki/GalaxyS2I9100 Replicant wiki page]<br />
--><br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* [https://gitlab.com/postmarketOS/pmaports/tree/master/device/device-DEVICE_CODENAME Device package]<br />
* [https://gitlab.com/postmarketOS/pmaports/tree/master/device/linux-DEVICE_CODENAME Kernel package]<br />
--></div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_Xperia_10_Plus_(sony-mermaid)&diff=15379Sony Xperia 10 Plus (sony-mermaid)2020-11-16T13:08:31Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = Xperia 10 Plus<br />
| codename = sony-mermaid<br />
| image = File:sony-kirin.jpg<br />
| imagecaption = Xperia 10 Plus<br />
| releaseyear = 2019<br />
| originalsoftware = Android 9.0 on Linux 4.4<br />
| chipset = Qualcomm SDM636 Snapdragon 636<br />
| cpu = 4x Cortex-A53 PERF cluster + 4x Cortex-A53 PWR cluster<br />
| gpu = Adreno 509<br />
| storage = 32GB eMMC on sdhci5<br />
| display = 1080x2520 IPS LCD<br />
| memory = 4GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = P<br />
| status_wifi = N<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = N<br />
| status_3d = N<br />
| status_accel = N<br />
| status_audio = N<br />
| status_bluetooth = N<br />
| status_camera = N<br />
| status_gps = N<br />
| status_mobiledata = N<br />
| status_sms = N<br />
| status_calls = N<br />
| booting = yes<br />
| pmoskernel = mainline<br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Konradybcio|Konrad Dybcio]] (@konradybcio)<br />
* [[User:DarkNeutrino|DarkNeutrino]] (@darkneutrino)<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Enter Developer options on Android and enable OEM Unlock<br />
<br />
Unlock your bootloader by following instructions here: https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader/<br />
<br />
Hold PWR and Vol+ until the LED becomes blue. Congratulations, you've entered fastboot.<br />
<br />
== Installation ==<br />
Make sure to flash the latest stock ROM (via [https://github.com/Androxyde/Flashtool Androxyde's Flashtool] or [https://developer.sony.com/develop/open-devices/get-started/flash-tool SONY Flash Tool] (notice the space in the tool from SONY))<br />
<br />
Then, flash the [https://developer.sony.com/develop/open-devices/downloads/software-binaries latest ODM binaries] for Ganges platform via (<code>fastboot flash oem IMAGE_NAME.img</code>)<br />
<br />
Lastly, follow the standard "pmbootstrap flasher" procedure.<br />
<br />
== See also ==<br />
* [[Sony_Ninges|Platform-common device page]]<br />
* [https://patchwork.kernel.org/project/linux-arm-msm/list/?submitter=190109 Konrad Dybcio's patchwork profile, new features will likely appear here.]<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_Xperia_10_(sony-kirin)&diff=15378Sony Xperia 10 (sony-kirin)2020-11-16T13:08:08Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = Xperia 10<br />
| codename = sony-kirin<br />
| image = File:sony-kirin.jpg<br />
| imagecaption = Xperia 10<br />
| releaseyear = 2019<br />
| originalsoftware = Android 9.0 on Linux 4.4<br />
| chipset = Qualcomm SDM630 Snapdragon 630<br />
| cpu = 4x Cortex-A53 PERF cluster + 4x Cortex-A53 PWR cluster<br />
| gpu = Adreno 508<br />
| storage = 64GB eMMC on sdhci5<br />
| display = 1080x2520 IPS LCD<br />
| memory = 3GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = P<br />
| status_wifi = N<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = N<br />
| status_3d = N<br />
| status_accel = N<br />
| status_audio = N<br />
| status_bluetooth = N<br />
| status_camera = N<br />
| status_gps = N<br />
| status_mobiledata = N<br />
| status_sms = N<br />
| status_calls = N<br />
| booting = yes<br />
| pmoskernel = mainline<br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Konradybcio|Konrad Dybcio]] (@konradybcio)<br />
* [[User:DarkNeutrino|DarkNeutrino]] (@darkneutrino)<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Enter Developer options on Android and enable OEM Unlock<br />
<br />
Unlock your bootloader by following instructions here: https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader/<br />
<br />
Hold PWR and Vol+ until the LED becomes blue. Congratulations, you've entered fastboot.<br />
<br />
== Installation ==<br />
Make sure to flash the latest stock ROM (via [https://github.com/Androxyde/Flashtool Androxyde's Flashtool] or [https://developer.sony.com/develop/open-devices/get-started/flash-tool SONY Flash Tool] (notice the space in the tool from SONY))<br />
<br />
Then, flash the [https://developer.sony.com/develop/open-devices/downloads/software-binaries latest ODM binaries] for Ganges platform via (<code>fastboot flash oem IMAGE_NAME.img</code>)<br />
<br />
Lastly, follow the standard "pmbootstrap flasher" procedure.<br />
<br />
== See also ==<br />
* [[Sony_Ninges|Platform-common device page]]<br />
* [https://patchwork.kernel.org/project/linux-arm-msm/list/?submitter=190109 Konrad Dybcio's patchwork profile, new features will likely appear here.]<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_Xperia_XA2_Ultra_(sony-discovery)&diff=15377Sony Xperia XA2 Ultra (sony-discovery)2020-11-16T13:07:46Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = Xperia XA2 Ultra<br />
| codename = sony-discovery<br />
| image = File:sony-disco.jpg<br />
| imagecaption = Xperia XA2 Ultra<br />
| releaseyear = 2018<br />
| originalsoftware = Android 8.0 on Linux 4.4<br />
| chipset = Qualcomm SDM630 Snapdragon 630<br />
| cpu = 4x Cortex-A53 PERF cluster + 4x Cortex-A53 PWR cluster<br />
| gpu = Adreno 508<br />
| storage = 32GB eMMC on sdhci5<br />
| display = 1080x1920 IPS LCD<br />
| memory = 3GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = P<br />
| status_wifi = N<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = N<br />
| status_3d = N<br />
| status_accel = N<br />
| status_audio = N<br />
| status_bluetooth = N<br />
| status_camera = N<br />
| status_gps = N<br />
| status_mobiledata = N<br />
| status_sms = N<br />
| status_calls = N<br />
| booting = yes<br />
| pmoskernel = mainline<br />
<!-- | whet_dhry = 1530 (4 cores only)--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Konradybcio|Konrad Dybcio]] (@konradybcio)<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Enter Developer options on Android and enable OEM Unlock<br />
<br />
Unlock your bootloader by following instructions here: https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader/<br />
<br />
Hold PWR and Vol+ until the LED becomes blue. Congratulations, you've entered fastboot.<br />
<br />
== Installation ==<br />
Make sure to flash the latest stock ROM (via [https://github.com/Androxyde/Flashtool Androxyde's Flashtool] or [https://developer.sony.com/develop/open-devices/get-started/flash-tool SONY Flash Tool] (notice the space in the tool from SONY))<br />
<br />
Then, flash the [https://developer.sony.com/develop/open-devices/downloads/software-binaries latest ODM binaries] for Nile platform via (<code>fastboot flash oem IMAGE_NAME.img</code>)<br />
<br />
Lastly, follow the standard "pmbootstrap flasher" procedure.<br />
<br />
== See also ==<br />
* [[Sony_Ninges|Platform-common device page]]<br />
* [https://patchwork.kernel.org/project/linux-arm-msm/list/?submitter=190109 Konrad Dybcio's patchwork profile, new features will likely appear here.]<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_Xperia_XA2_Plus_(sony-voyager)&diff=15376Sony Xperia XA2 Plus (sony-voyager)2020-11-16T13:07:29Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = Xperia XA2 Plus<br />
| codename = sony-voyager<br />
| image = File:sony-voyager.jpg<br />
| imagecaption = Xperia XA2 Plus<br />
| releaseyear = 2018<br />
| originalsoftware = Android 8.0 on Linux 4.4<br />
| chipset = Qualcomm SDM630 Snapdragon 630<br />
| cpu = 4x Cortex-A53 PERF cluster + 4x Cortex-A53 PWR cluster<br />
| gpu = Adreno 508<br />
| storage = 32GB eMMC on sdhci5<br />
| display = 1080x2160 IPS LCD<br />
| memory = 3GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = P<br />
| status_wifi = N<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = N<br />
| status_3d = N<br />
| status_accel = N<br />
| status_audio = N<br />
| status_bluetooth = N<br />
| status_camera = N<br />
| status_gps = N<br />
| status_mobiledata = N<br />
| status_sms = N<br />
| status_calls = N<br />
| booting = yes<br />
| pmoskernel = mainline<br />
<!-- | whet_dhry = 1530 (4 cores only)--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Konradybcio|Konrad Dybcio]] (@konradybcio)<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Enter Developer options on Android and enable OEM Unlock<br />
<br />
Unlock your bootloader by following instructions here: https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader/<br />
<br />
Hold PWR and Vol+ until the LED becomes blue. Congratulations, you've entered fastboot.<br />
<br />
== Installation ==<br />
Make sure to flash the latest stock ROM (via [https://github.com/Androxyde/Flashtool Androxyde's Flashtool] or [https://developer.sony.com/develop/open-devices/get-started/flash-tool SONY Flash Tool] (notice the space in the tool from SONY))<br />
<br />
Then, flash the [https://developer.sony.com/develop/open-devices/downloads/software-binaries latest ODM binaries] for Nile platform via (<code>fastboot flash oem IMAGE_NAME.img</code>)<br />
<br />
Lastly, follow the standard "pmbootstrap flasher" procedure.<br />
<br />
== See also ==<br />
* [[Sony_Ninges|Platform-common device page]]<br />
* [https://patchwork.kernel.org/project/linux-arm-msm/list/?submitter=190109 Konrad Dybcio's patchwork profile, new features will likely appear here.]<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_Xperia_XA2_(sony-pioneer)&diff=15375Sony Xperia XA2 (sony-pioneer)2020-11-16T13:07:13Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = Xperia XA2<br />
| codename = sony-pioneer<br />
| image = File:sony-pioneer.png<br />
| imagecaption = Xperia XA2<br />
| releaseyear = 2018<br />
| originalsoftware = Android 8.0 on Linux 4.4<br />
| chipset = Qualcomm SDM630 Snapdragon 630<br />
| cpu = 4x Cortex-A53 PERF cluster + 4x Cortex-A53 PWR cluster<br />
| gpu = Adreno 508<br />
| storage = 32GB eMMC on sdhci5<br />
| display = 1080x1920 IPS LCD<br />
| memory = 3GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = P<br />
| status_wifi = N<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = N<br />
| status_3d = Y<br />
| status_accel = N<br />
| status_audio = N<br />
| status_bluetooth = Y<br />
| status_camera = Y<br />
| status_gps = N<br />
| status_mobiledata = N<br />
| status_sms = N<br />
| status_calls = N<br />
| booting = yes<br />
| pmoskernel = mainline<br />
<!-- | whet_dhry = 1530 (4 cores only)--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Konradybcio|Konrad Dybcio]] (@konradybcio)<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Enter Developer options on Android and enable OEM Unlock<br />
<br />
Unlock your bootloader by following instructions here: https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader/<br />
<br />
Hold PWR and Vol+ until the LED becomes blue. Congratulations, you've entered fastboot.<br />
<br />
== Installation ==<br />
Make sure to flash the latest stock ROM (via [https://github.com/Androxyde/Flashtool Androxyde's Flashtool] or [https://developer.sony.com/develop/open-devices/get-started/flash-tool SONY Flash Tool] (notice the space in the tool from SONY))<br />
<br />
Then, flash the [https://developer.sony.com/develop/open-devices/downloads/software-binaries latest ODM binaries] for Nile platform via (<code>fastboot flash oem IMAGE_NAME.img</code>)<br />
<br />
Lastly, follow the standard "pmbootstrap flasher" procedure.<br />
<br />
== See also ==<br />
* [[Sony_Ninges|Platform-common device page]]<br />
* [https://patchwork.kernel.org/project/linux-arm-msm/list/?submitter=190109 Konrad Dybcio's patchwork profile, new features will likely appear here.]<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Konradybciohttps://wiki.postmarketos.org/index.php?title=User:Michael&diff=15267User:Michael2020-11-12T09:57:48Z<p>Konradybcio: fix devices table</p>
<hr />
<div>== Devices I Own ==<br />
<br />
{{My devices}}<br />
{{Owns device|PINE64_PinePhone_(pine64-pinephone)| PinePhone Ubports Edition}}</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_Ninges&diff=15166Sony Ninges2020-11-02T09:35:32Z<p>Konradybcio: </p>
<hr />
<div>== Introduction ==<br />
<br />
Ninges (or Ningles as some might argue) is a name commonly used by Sony fans (there are at least 7 of us!) to refer to Xperia Nile and Ganges platforms (sdm630/636, Xperia XA2 and 10 series).<br />
<br />
The devices are mostly the same under the hood with the biggest outstander being the 10 Plus (mermaid), as it features a slightly different SoC (sdm636).<br />
<br />
<br />
== Hardware ==<br />
<br />
{| class="wikitable"<br />
! Component<br />
! Model<br />
! Driver<br />
|-<br />
| Touchscreen<br />
| Synaptics / Novatek<br />
| RMI4 (nile)/ Novatek NT36xxx (ganges)<br />
|-<br />
| Rear camera<br />
| Check device page/over qcom CCI<br />
| QCOM_CCI<br />
|-<br />
| Camera flash<br />
| PMIC-based<br />
| ???<br />
|-<br />
| Front camera<br />
| Check device page/over qcom CCI<br />
| QCOM_CCI<br />
|-<br />
| LCD<br />
| Check device page<br />
| Panel names include device name<br />
|-<br />
| WiFi<br />
| Qualcomm WCN3980?<br />
| ???<br />
|-<br />
| Bluetooth<br />
| Qualcomm WCN3980/90?<br />
| qcom,wcn3998-bt<br />
|-<br />
| Modem<br />
| Inbuilt SDM modem<br />
| ???<br />
|-<br />
| GNSS/GPS<br />
| Inbuilt qcom solution<br />
| ???<br />
|-<br />
| NFC<br />
| NXP PN553<br />
| ncp,nxp-nci-i2c<br />
|-<br />
| Vibration motor<br />
| Qcom qpnp-haptics?<br />
| ???<br />
|-<br />
| Notification LED<br />
| Some PMIC-based thingy<br />
| LEDS_QCOM_LPG<br />
|-<br />
| Volume buttons<br />
| Vol- via gpio-keys, Vol+ via pm660 RESIN<br />
| ???<br />
|-<br />
| Power button<br />
| pm660 RESIN<br />
| POWER_RESET_QCOM_PON<br />
|-<br />
| Battery fuel gauge<br />
| pm660(l)-fg<br />
| *not yet ready*<br />
|}<br />
<br />
<br />
== Mainline ==<br />
<br />
These devices are all running a shared out-of-tree-but-mainline kernel and thus have more or less same features working.<br />
<br />
The goal is to achieve feature parity with PinePhone, or perhaps surpass it (these devices have some fancy-schmancy qcom features).<br />
<br />
<br />
== Hardware details ==<br />
<br />
==== Bluetooth ====<br />
<br />
/* Xperia XA2, sdm630 */<br />
[ 3.473375] Bluetooth: hci0: QCA Product ID :0x0000000a<br />
[ 3.473831] Bluetooth: hci0: QCA SOC Version :0x40020140<br />
[ 3.478019] Bluetooth: hci0: QCA ROM Version :0x00000201<br />
[ 3.483542] Bluetooth: hci0: QCA Patch Version:0x00000001<br />
[ 3.546618] Bluetooth: hci0: QCA controller version 0x01400201<br />
<br />
==== eMMC (Device-specific) ====<br />
<br />
/* Xperia XA2, sdm630 */<br />
[ 4.026849] mmcblk0: mmc0:0001 DD68MB 29.1 GiB<br />
<br />
==== SPMI Bus (SoC-specific) ====<br />
<br />
/* sdm630 */<br />
[ 2.255090] spmi spmi-0: PMIC arbiter version v3 (0x30000000)<br />
<br />
==== Touchscreen (Device-specific) ====<br />
<br />
/* Xperia XA2, sdm630 */<br />
[ 3.029342] rmi4_f01 rmi4-00.fn01: found RMI device, manufacturer: Synaptics, product: TD4322Test, fw id: 2610092<br />
<br />
<br />
Currently the kernel is stored at [https://github.com/konradybcio/linux/commits/ninges_labs this link], but it's force-pushed quite often.</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_820/821_(MSM8996)&diff=15148Qualcomm Snapdragon 820/821 (MSM8996)2020-11-01T11:39:10Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8996<br />
| manufacturer = Qualcomm<br />
| arch = aarch64<br />
| year = 2016<br />
| cpu = 2x 2.2/2.3 GHz Kryo, 2x 1.6 GHz Kryo<br />
| gpu = Adreno 530<br />
| process = 14<br />
| mainline = yes<br />
| status_cpu = P <!-- cpufreq is OOT/on the lists --><br />
| status_uart = Y<br />
| status_storage = P <!-- SDHCI/eMMC does not work, only UFS does --><br />
| status_usb = <br />
| status_display = Y<br />
| status_gpu = Y<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <!-- unknown, there is some codec stuff but no device upstream has sound configuration --><br />
| status_video = Y<br />
| status_thermal = Y<br />
| status_wifi = P <!-- some devices have external BCM solutions with upstream drivers, unknown for the recommended-or-bundled QC chipset --><br />
| status_bluetooth = P <!-- see above --><br />
| status_modem = P <!-- OOT DT part --><br />
| status_camera = Y <!-- camss is implemented, sensors are specific per-device --><br />
}}<br />
<br />
[https://www.qualcomm.com/products/snapdragon-820-mobile-platform MSM8996]/[https://www.qualcomm.com/products/apq8096sg APQ8096] (or Snapdragon 820) is a Qualcomm SoC released in 2016, with great mainline support orginally added for the [https://www.96boards.org/product/dragonboard820c/ Dragonboard 820c]. There is also a slightly higher clocked (and supposedly less problematic architecture-wise) [https://www.qualcomm.com/products/snapdragon-821-mobile-platform MSM8996Pro] also known as Snapdragon 821.<br />
<br />
== Devices ==<br />
<br />
=== APQ8096(SG) (Snapdragon 820E, WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting AND Devices.chipset LIKE 'Qualcomm APQ8096% Snapdragon 820E'<br />
|more results text=<br />
}}<br />
=== MSM8996 (Snapdragon 820) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting AND Devices.chipset LIKE 'Qualcomm MSM8996 Snapdragon 820'<br />
|more results text=<br />
}}<br />
=== MSM8996Pro (Snapdragon 821) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting AND Devices.chipset LIKE 'Qualcomm MSM8996%Pro Snapdragon 821'<br />
|more results text=<br />
}}</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_820/821_(MSM8996)&diff=15147Qualcomm Snapdragon 820/821 (MSM8996)2020-11-01T10:48:39Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8996<br />
| manufacturer = Qualcomm<br />
| arch = aarch64<br />
| year = 2016<br />
| cpu = 2x 2.2/2.3 GHz Kryo, 2x 1.6 GHz Kryo<br />
| gpu = Adreno 530<br />
| process = 14<br />
| mainline = yes<br />
| status_cpu = P <!-- cpufreq is OOT/on the lists --><br />
| status_uart = Y<br />
| status_storage = P <!-- SDHCI/eMMC does not work, only UFS does --><br />
| status_usb = <br />
| status_display = Y<br />
| status_gpu = Y<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <!-- unknown, there is some codec stuff but no device upstream has sound configuration --><br />
| status_video = Y<br />
| status_thermal = Y<br />
| status_wifi = P <!-- some devices have external BCM solutions with upstream drivers, unknown for the recommended-or-bundled QC chipset --><br />
| status_bluetooth = P <!-- see above --><br />
| status_modem = P <!-- OOT DT part --><br />
| status_camera = Y <!-- camss is implemented, sensors are specific per-device --><br />
}}<br />
<br />
[https://www.qualcomm.com/products/snapdragon-820-mobile-platform MSM8996]/[https://www.qualcomm.com/products/apq8096sg APQ8096] (or Snapdragon 820) is a Qualcomm SoC released in 2016, with great mainline support orginally added for the [https://www.96boards.org/product/dragonboard820c/ Dragonboard 820c]. There is also a slightly higher clocked (and supposedly less problematic architecture-wise) [https://www.qualcomm.com/products/snapdragon-821-mobile-platform MSM8996Pro] also known as Snapdragon 821.<br />
<br />
== Devices ==<br />
<br />
=== APQ8096 (Snapdragon 820E, WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting AND Devices.chipset LIKE 'Qualcomm APQ8096 Snapdragon 820E'<br />
|more results text=<br />
}}<br />
=== MSM8996 (Snapdragon 820) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting AND Devices.chipset LIKE 'Qualcomm MSM8996 Snapdragon 820'<br />
|more results text=<br />
}}<br />
=== MSM8996Pro (Snapdragon 821) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting AND Devices.chipset LIKE 'Qualcomm MSM8996%Pro Snapdragon 821'<br />
|more results text=<br />
}}</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_820/821_(MSM8996)&diff=15145Qualcomm Snapdragon 820/821 (MSM8996)2020-10-31T23:03:41Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8996<br />
| manufacturer = Qualcomm<br />
| arch = aarch64<br />
| year = 2016<br />
| cpu = 2x 2.2/2.3 GHz Kryo, 2x 1.6 GHz Kryo<br />
| gpu = Adreno 530<br />
| process = 14<br />
| mainline = yes<br />
| status_cpu = P <!-- cpufreq is OOT/on the lists --><br />
| status_uart = Y<br />
| status_storage = P <!-- SDHCI/eMMC does not work, only UFS does --><br />
| status_usb = <br />
| status_display = Y<br />
| status_gpu = Y<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <!-- unknown, there is some codec stuff but no device upstream has sound configuration --><br />
| status_video = Y<br />
| status_thermal = Y<br />
| status_wifi = P <!-- some devices have external BCM solutions with upstream drivers, unknown for the recommended-or-bundled QC chipset --><br />
| status_bluetooth = P <!-- see above --><br />
| status_modem = P <!-- OOT DT part --><br />
| status_camera = Y <!-- camss is implemented, sensors are specific per-device --><br />
}}<br />
<br />
== Devices ==<br />
<br />
=== APQ8096 (Snapdragon 820E, WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting AND Devices.chipset LIKE 'Qualcomm APQ8096 Snapdragon 820E'<br />
|more results text=<br />
}}<br />
=== MSM8996 (Snapdragon 820) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting AND Devices.chipset LIKE 'Qualcomm MSM8996 Snapdragon 820'<br />
|more results text=<br />
}}<br />
=== MSM8996Pro (Snapdragon 821) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting AND Devices.chipset LIKE 'Qualcomm MSM8996%Pro Snapdragon 821'<br />
|more results text=<br />
}}</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Qualcomm_Snapdragon_820/821_(MSM8996)&diff=15144Qualcomm Snapdragon 820/821 (MSM8996)2020-10-31T23:03:10Z<p>Konradybcio: add device lookup tables for all major versions of this soc</p>
<hr />
<div>{{Infobox soc<br />
| name = MSM8996<br />
| manufacturer = Qualcomm<br />
| arch = aarch64<br />
| year = 2016<br />
| cpu = 2x 2.2/2.3 GHz Kryo, 2x 1.6 GHz Kryo<br />
| gpu = Adreno 530<br />
| process = 14<br />
| mainline = yes<br />
| status_cpu = P <!-- cpufreq is OOT/on the lists --><br />
| status_uart = Y<br />
| status_storage = P <!-- SDHCI/eMMC does not work, only UFS does --><br />
| status_usb = <br />
| status_display = Y<br />
| status_gpu = Y<br />
| status_pinctrl = Y<br />
| status_i2c = Y<br />
| status_audio = <!-- unknown, there is some codec stuff but no device upstream has sound configuration --><br />
| status_video = Y<br />
| status_thermal = Y<br />
| status_wifi = P <!-- some devices have external BCM solutions with upstream drivers, unknown for the recommended-or-bundled QC chipset --><br />
| status_bluetooth = P <!-- see above --><br />
| status_modem = P <!-- OOT DT part --><br />
| status_camera = Y <!-- camss is implemented, sensors are specific per-device --><br />
}}<br />
<br />
== Devices ==<br />
<br />
=== APQ8096 (Snapdragon 820E, WiFi-only) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting AND Devices.chipset LIKE 'Qualcomm APQ8096'<br />
|more results text=<br />
}}<br />
=== MSM8996 (Snapdragon 820) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting AND Devices.chipset LIKE 'Qualcomm MSM8996'<br />
|more results text=<br />
}}<br />
=== MSM8996Pro (Snapdragon 821) ===<br />
{{#cargo_query:<br />
tables=Devices<br />
|fields=CONCAT( '[[', _pageName, '|',Manufacturer,' ',Name,']]' )=Device,Codename,StatusMainline=Mainline<br />
|order by=Devices.Manufacturer, Devices.Name<br />
|format=table<br />
|limit=9999<br />
|where=Booting AND Devices.chipset LIKE 'Qualcomm MSM8996%Pro'<br />
|more results text=<br />
}}</div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_Xperia_XA2_Ultra_(sony-discovery)&diff=15018Sony Xperia XA2 Ultra (sony-discovery)2020-10-24T22:24:54Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = Xperia XA2 Ultra<br />
| codename = sony-discovery<br />
| image = File:sony-disco.jpg<br />
| imagecaption = Xperia XA2 Ultra<br />
| releaseyear = 2018<br />
| originalsoftware = Android 8.0 on Linux 4.4<br />
| chipset = Qualcomm SDM630 Snapdragon 630<br />
| cpu = 4x Cortex-A53 PERF cluster + 4x Cortex-A53 PWR cluster<br />
| gpu = Adreno 508<br />
| storage = 32GB eMMC on sdhci5<br />
| display = 1080x1920 IPS LCD<br />
| memory = 3GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = P<br />
| status_wifi = N<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = N<br />
| status_3d = N<br />
| status_accel = N<br />
| status_audio = N<br />
| status_bluetooth = N<br />
| status_camera = N<br />
| status_gps = N<br />
| status_mobiledata = N<br />
| status_sms = N<br />
| status_calls = N<br />
| booting = yes<br />
| pmoskernel = mainline<br />
<!-- | whet_dhry = 1530 (4 cores only)--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Konradybcio|Konrad Dybcio]] (@konradybcio)<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Enter Developer options on Android and enable OEM Unlock<br />
<br />
Unlock your bootloader by following instructions here: https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader/<br />
<br />
Hold PWR and Vol+ until the LED becomes blue. Congratulations, you've entered fastboot.<br />
<br />
== Installation ==<br />
Just your standard "pmbootstrap flasher" procedure<br />
<br />
== See also ==<br />
* [[Sony_Ninges|Platform-common device page]]<br />
* [https://patchwork.kernel.org/project/linux-arm-msm/list/?submitter=190109 Konrad Dybcio's patchwork profile, new features will likely appear here.]<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_Xperia_XA2_Plus_(sony-voyager)&diff=15017Sony Xperia XA2 Plus (sony-voyager)2020-10-24T22:22:40Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = Xperia XA2 Plus<br />
| codename = sony-voyager<br />
| image = File:sony-voyager.jpg<br />
| imagecaption = Xperia XA2 Plus<br />
| releaseyear = 2018<br />
| originalsoftware = Android 8.0 on Linux 4.4<br />
| chipset = Qualcomm SDM630 Snapdragon 630<br />
| cpu = 4x Cortex-A53 PERF cluster + 4x Cortex-A53 PWR cluster<br />
| gpu = Adreno 508<br />
| storage = 32GB eMMC on sdhci5<br />
| display = 1080x2160 IPS LCD<br />
| memory = 3GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = P<br />
| status_wifi = N<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = N<br />
| status_3d = N<br />
| status_accel = N<br />
| status_audio = N<br />
| status_bluetooth = N<br />
| status_camera = N<br />
| status_gps = N<br />
| status_mobiledata = N<br />
| status_sms = N<br />
| status_calls = N<br />
| booting = yes<br />
| pmoskernel = mainline<br />
<!-- | whet_dhry = 1530 (4 cores only)--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Konradybcio|Konrad Dybcio]] (@konradybcio)<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Enter Developer options on Android and enable OEM Unlock<br />
<br />
Unlock your bootloader by following instructions here: https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader/<br />
<br />
Hold PWR and Vol+ until the LED becomes blue. Congratulations, you've entered fastboot.<br />
<br />
== Installation ==<br />
Just your standard "pmbootstrap flasher" procedure<br />
<br />
== See also ==<br />
* [[Sony_Ninges|Platform-common device page]]<br />
* [https://patchwork.kernel.org/project/linux-arm-msm/list/?submitter=190109 Konrad Dybcio's patchwork profile, new features will likely appear here.]<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_Xperia_XA2_(sony-pioneer)&diff=15016Sony Xperia XA2 (sony-pioneer)2020-10-24T22:22:21Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = Xperia XA2<br />
| codename = sony-pioneer<br />
| image = File:sony-pioneer.png<br />
| imagecaption = Xperia XA2<br />
| releaseyear = 2018<br />
| originalsoftware = Android 8.0 on Linux 4.4<br />
| chipset = Qualcomm SDM630 Snapdragon 630<br />
| cpu = 4x Cortex-A53 PERF cluster + 4x Cortex-A53 PWR cluster<br />
| gpu = Adreno 508<br />
| storage = 32GB eMMC on sdhci5<br />
| display = 1080x1920 IPS LCD<br />
| memory = 3GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = P<br />
| status_wifi = N<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = N<br />
| status_3d = Y<br />
| status_accel = N<br />
| status_audio = N<br />
| status_bluetooth = Y<br />
| status_camera = Y<br />
| status_gps = N<br />
| status_mobiledata = N<br />
| status_sms = N<br />
| status_calls = N<br />
| booting = yes<br />
| pmoskernel = mainline<br />
<!-- | whet_dhry = 1530 (4 cores only)--><br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Konradybcio|Konrad Dybcio]] (@konradybcio)<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Enter Developer options on Android and enable OEM Unlock<br />
<br />
Unlock your bootloader by following instructions here: https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader/<br />
<br />
Hold PWR and Vol+ until the LED becomes blue. Congratulations, you've entered fastboot.<br />
<br />
== Installation ==<br />
Just your standard "pmbootstrap flasher" procedure<br />
<br />
== See also ==<br />
* [[Sony_Ninges|Platform-common device page]]<br />
* [https://patchwork.kernel.org/project/linux-arm-msm/list/?submitter=190109 Konrad Dybcio's patchwork profile, new features will likely appear here.]<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_Xperia_XA2_(sony-pioneer)&diff=15015Sony Xperia XA2 (sony-pioneer)2020-10-24T22:21:45Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = Xperia XA2<br />
| codename = sony-pioneer<br />
| image = File:sony-pioneer.png<br />
| imagecaption = Xperia XA2<br />
| releaseyear = 2018<br />
| originalsoftware = Android 8.0 on Linux 4.4<br />
| chipset = Qualcomm SDM630 Snapdragon 630<br />
| cpu = 4x Cortex-A53 PERF cluster + 4x Cortex-A53 PWR cluster<br />
| gpu = Adreno 508<br />
| storage = 32GB eMMC on sdhci5<br />
| display = 1080x1920 IPS LCD<br />
| memory = 3GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = P<br />
| status_wifi = N<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = N<br />
| status_3d = Y<br />
| status_accel = N<br />
| status_audio = N<br />
| status_bluetooth = Y<br />
| status_camera = Y<br />
| status_gps = N<br />
| status_mobiledata = N<br />
| status_sms = N<br />
| status_calls = N<br />
| booting = yes<br />
| pmoskernel = mainline<br />
| whet_dhry = 1530<br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Konradybcio|Konrad Dybcio]] (@konradybcio)<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Enter Developer options on Android and enable OEM Unlock<br />
<br />
Unlock your bootloader by following instructions here: https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader/<br />
<br />
Hold PWR and Vol+ until the LED becomes blue. Congratulations, you've entered fastboot.<br />
<br />
== Installation ==<br />
Just your standard "pmbootstrap flasher" procedure<br />
<br />
== See also ==<br />
* [[Sony_Ninges|Platform-common device page]]<br />
* [https://patchwork.kernel.org/project/linux-arm-msm/list/?submitter=190109 Konrad Dybcio's patchwork profile, new features will likely appear here.]<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_Xperia_XA2_(sony-pioneer)&diff=15014Sony Xperia XA2 (sony-pioneer)2020-10-24T22:19:01Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = Xperia XA2<br />
| codename = sony-pioneer<br />
| image = File:sony-pioneer.png<br />
| imagecaption = Xperia XA2<br />
| releaseyear = 2018<br />
| originalsoftware = Android 8.0 on Linux 4.4<br />
| chipset = Qualcomm SDM630 Snapdragon 630<br />
| cpu = 4x Cortex-A53 PERF cluster + 4x Cortex-A53 PWR cluster<br />
| gpu = Adreno 508<br />
| storage = 32GB eMMC on sdhci5<br />
| display = 1080x1920 IPS LCD<br />
| memory = 3GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = P<br />
| status_wifi = N<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = N<br />
| status_3d = Y<br />
| status_accel = N<br />
| status_audio = N<br />
| status_bluetooth = Y<br />
| status_camera = Y<br />
| status_gps = N<br />
| status_mobiledata = N<br />
| status_sms = N<br />
| status_calls = N<br />
| booting = yes<br />
| pmoskernel = mainline<br />
| whet_dhry = 1530 (4 cores only)<br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Konradybcio|Konrad Dybcio]] (@konradybcio)<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Enter Developer options on Android and enable OEM Unlock<br />
<br />
Unlock your bootloader by following instructions here: https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader/<br />
<br />
Hold PWR and Vol+ until the LED becomes blue. Congratulations, you've entered fastboot.<br />
<br />
== Installation ==<br />
Just your standard "pmbootstrap flasher" procedure<br />
<br />
== See also ==<br />
* [[Sony_Ninges|Platform-common device page]]<br />
* [https://patchwork.kernel.org/project/linux-arm-msm/list/?submitter=190109 Konrad Dybcio's patchwork profile, new features will likely appear here.]<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Konradybciohttps://wiki.postmarketos.org/index.php?title=Sony_Xperia_10_Plus_(sony-mermaid)&diff=15013Sony Xperia 10 Plus (sony-mermaid)2020-10-24T21:48:31Z<p>Konradybcio: </p>
<hr />
<div>{{Infobox device<br />
| manufacturer = Sony<br />
| name = Xperia 10 Plus<br />
| codename = sony-mermaid<br />
| image = File:sony-kirin.jpg<br />
| imagecaption = Xperia 10 Plus<br />
| releaseyear = 2019<br />
| originalsoftware = Android 9.0 on Linux 4.4<br />
| chipset = Qualcomm SDM636 Snapdragon 636<br />
| cpu = 4x Cortex-A53 PERF cluster + 4x Cortex-A53 PWR cluster<br />
| gpu = Adreno 509<br />
| storage = 32GB eMMC on sdhci5<br />
| display = 1080x2520 IPS LCD<br />
| memory = 4GB<br />
| architecture = aarch64<br />
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) --><br />
| status_usbnet = Y<br />
| status_flashing = Y<br />
| status_touch = Y<br />
| status_screen = P<br />
| status_wifi = N<br />
| status_xwayland = Y<br />
| status_fde = <br />
| status_mainline = Y<br />
| status_battery = N<br />
| status_3d = N<br />
| status_accel = N<br />
| status_audio = N<br />
| status_bluetooth = N<br />
| status_camera = N<br />
| status_gps = N<br />
| status_mobiledata = N<br />
| status_sms = N<br />
| status_calls = N<br />
| booting = yes<br />
| pmoskernel = mainline<br />
}}<br />
<br />
== Contributors ==<br />
* [[User:Konradybcio|Konrad Dybcio]] (@konradybcio)<br />
* [[User:DarkNeutrino|DarkNeutrino]] (@darkneutrino)<br />
<br />
== Users owning this device ==<br />
{{Device owners}}<br />
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page --><br />
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}--><br />
<!-- you may need to purge page cache to see changes (more->purge cache)--><br />
<!-- you can use {{My devices}} on your profile page to show table with all your devices --><br />
<br />
== How to enter flash mode ==<br />
Enter Developer options on Android and enable OEM Unlock<br />
<br />
Unlock your bootloader by following instructions here: https://developer.sony.com/develop/open-devices/get-started/unlock-bootloader/<br />
<br />
Hold PWR and Vol+ until the LED becomes blue. Congratulations, you've entered fastboot.<br />
<br />
== Installation ==<br />
Just your standard "pmbootstrap flasher" procedure<br />
<br />
== See also ==<br />
* [[Sony_Ninges|Platform-common device page]]<br />
* [https://patchwork.kernel.org/project/linux-arm-msm/list/?submitter=190109 Konrad Dybcio's patchwork profile, new features will likely appear here.]<br />
<br />
<!--<br />
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.<br />
* {{Device package|DEVICE_CODENAME}}<br />
* {{Kernel package|DEVICE_CODENAME}}<br />
--></div>Konradybcio