Jump to content

Xiaomi POCO F3 (xiaomi-alioth): Difference between revisions

From postmarketOS Wiki
Jenneron (talk | contribs)
move to non-booting
Nikroks (talk | contribs)
m Add unixbench score
 
(12 intermediate revisions by 9 users not shown)
Line 3: Line 3:
{{Infobox device
{{Infobox device
| manufacturer = Xiaomi
| manufacturer = Xiaomi
| name = Poco F3
| name = POCO F3
| codename = xiaomi-alioth
| codename = xiaomi-alioth
| image = File:xiaomi-alioth.png
| image = File:xiaomi-alioth.png
| imagecaption = Official image for the smartphone
| imagecaption = Official image for the smartphone
| releaseyear = 2021
| releaseyear = 2021
| originalsoftware = Android 11  
| originalsoftware = Android
| chipset = Qualcomm Snapdragon 870 5G (SM8250-AC)
| originalversion = 11
| extendedversion = 13
| pmoskernel =
| chipset = Qualcomm Snapdragon 870 (SM8250-AC)
| cpu = Octa-core (1x3.2 GHz Kryo 585 & 3x2.42 GHz Kryo 585 & 4x1.80 GHz Kryo 585)
| cpu = Octa-core (1x3.2 GHz Kryo 585 & 3x2.42 GHz Kryo 585 & 4x1.80 GHz Kryo 585)
| gpu = Adreno 650
| gpu = Adreno 650
Line 16: Line 19:
| memory = 6/8 GB RAM
| memory = 6/8 GB RAM
| architecture = aarch64
| architecture = aarch64
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) -->
| type = handset
| status_usbnet = Y <!-- USB networking does work? then put Y here and delete this comment -->
| whet_dhry = 9463.8
| status_flashing = Y <!-- Flashing with "pmbootstrap flasher" works? Put Y here. It works the same for everything coming below. -->
<!-- Features -->
| status_touch = Y <!-- Touch screen is working? You can also answer these questions with P for partially. -->
<!-- the following status_* questions should be answered with Y for yes, P for partial, N for no, - for N/A or unavailable, or left blank for untested or unknown -->
| status_screen = Y <!-- The display is working? -->
| status_usbnet = Y
| status_wifi = N <!-- Wireless network works? -->
| status_flashing = Y
| status_xwayland = <!-- Showing X11 applications in a Wayland compositor (Weston, KWin, ...) works? -->
| status_emmc = Y
| status_fde = <!-- When installing with full disk encryption, can you type in the password with the on screen keyboard? -->
| status_touch = Y
| status_mainline = P <!-- Instead of a Linux kernel fork, it is possible to run mainline. -->
| status_screen = Y
| status_battery = <!-- Charging the battery with charging-sdl is possible -->
| status_wifi = Y
| status_3d = <!-- Hardware accelerated 3D graphics (e.g. with freedreno) -->
| status_fde =
| status_accel = <!-- The sensor that measures proper acceleration works -->
| status_mainline = P
| status_audio = <!-- Using the device's speakers/headphone jack works -->
| status_battery = Y
| status_bluetooth = <!-- It's possible to pair and use other devices via the bluetooth protocol -->
| status_3d = Y
| status_camera = <!-- Taking photos and videos works. -->
| status_audio = P
| status_gps = <!-- The Global Positioning System sensor works.  -->
| status_bluetooth = Y
| status_mobiledata = <!-- Connecting to the Internet via cellular network. -->
| status_camera = P
| status_sms = <!-- Sending and receiving short messages works as intended. -->
| status_gps = N
| status_calls = <!-- Talking to other people over the cellular network. -->
| status_mobiledata = N
| status = <!-- Text displayed in the "not booting" table on the Devices page , e.g "kernel compiles, doesn't boot" -->
| status_sms = N
| status_otg = <!-- USB-OTG adapters work, e.g. to connect an USB flash drive to the device -->
| status_calls = N
| status_nfc = <!-- Near-Field Communication (NFC) works -->
| status_otg = Y
| booting = no <!-- The device is booting at all, can be yes/no *IMPORTANT* -->
| status_nfc = Y


<!-- you can also use these lines if you need to:
| status_accel = Y
Version of the kernel that pmos is running
| status_magnet = Y
| pmoskernel = 4.19.113
| status_light = Y
see Unixbench page on wiki
| status_proximity = N
| whet_dhry = 0.0
| status_hall = -
-->
| status_barometer = -
}}
| status_powersensor = -
 
| status_dvb = -
| status_cameraflash = Y
| status_keyboard = -
| status_touchpad = -
| status_usba = -
| status_hdmidp = -
| status_irtx = Y
| status_irrx = -
| status_stylus = -
| status_sdcard = -
| status_haptics = N
| status_ethernet = -
 
| booting = yes
| packaged = no
}}{{Based on SoC|Qualcomm_Snapdragon_865/865%2B/870_(SM8250)|Snapdragon 870}}


== Contributors ==
== Contributors ==
* [[User:Nikroks|Nikroks]]
* RodoMa92
* RodoMa92
* Weijia
* Weijia


== Maintainer(s) ==
== Maintainer(s) ==
<!-- Only if this device doesn't run on linux-postmarketos yet! -->
* [[User:Nikroks|Nikroks]]
<!-- This person needs to be willing to answer questions from users of this device -->


== Users owning this device ==
== Users owning this device ==
{{Device owners}}
{{Device owners}}
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page -->
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}-->
<!-- you may need to purge page cache to see changes (more->purge cache)-->
<!-- you can use {{My devices}} on your profile page to show table with all your devices -->


== How to enter flash mode ==
== How to enter flash mode ==
Volume down + power to enter fastboot mode, volume up + power to enter recovery mode.
* '''Bootloader''': Power on the device with both {{Button|Power}} and {{Button|Volume Down}} buttons.
* '''Recovery''': Power on the device with both {{Button|Power}} and {{Button|Volume Up}} buttons.
* '''Fastbootd''': Reboot into bootloader mode first and then run <code>fastboot reboot fastboot</code> from a computer.


== Installation ==
== Installation ==
Flash LineageOS once, then follow the [[Installation_guide|installation guide]].
{{note|'''Note:''' The device has not yet been merged into pmaports. Use manual installation.}}
PostmarketOS [[Installation|Installation guide.]]
 
== Status ==
{| class="wikitable sortable"
|+ Features
|-
! Component !! Model !! Notes
|-
| class="feature feature-yes" | Screen || samsung,ams667xx01 || 90/120Hz are supported
|-
| class="feature feature-yes" | Battery || qcom,pm8150b-fg ||
|-
| class="feature" rowspan = 2 | Charger || class="feature-yes" | qcom,pm8150b-charger ||
|-
| class="feature-no" | ti,bq2597x-standalone || Used as pump for pm8150b-charger
|-
| class="feature feature-yes" | Internal<br>storage || jedec,ufs-2.0<br>qcom,sm8250-qmp-ufs-phy ||
|-
| class="feature feature-yes" | Touchscreen || focaltech,ft3658 @ 0x0 || Connected via spi4
|-
| class="feature feature-yes" | GPU || qcom,adreno-650 || Requires a650 (unsigned) & a650-zap (signed) firmware
|-
| class="feature feature-yes" | SBA-MUX || fcs,fsa4480 @ 0x42 || Connected via i2c15
|-
| class="feature feature-yes" | Flash LED || qcom,spmi-flash-led || Connected via pm8150l spmi
|-
| class="feature feature-yes" | WiFi || rowspan = 2 | qca6391 || Requires ath11k (unsigned) firmware
|-
| class="feature feature-yes" | Bluetooth || Requires qca (unsigned) firmware
|-
| class="feature feature-yes" | NFC || qcom,nq-nci @ 0x28 || Connected via i2c1
|-
| class="feature feature-no" | Modem || sdx55m || SDX55m is not supported by mainline
|-
| class="feature feature-yes" | USB OTG || usb-c-connector || Switches by pm8150b typec controller
|-
| class="feature feature-yes" | Sensors || hexagonrpcd<br>libSSC || Managed by SDSP-remoteproc<br>Requires signed SDSP firmware
|-
| class="feature feature-no" | Haptics || awinic,aw8697 || Connected via i2c11
|}


It is recommended to flash to the userdata partition instead of super:
{| class="wikitable sortable"
|+ Camera sensors
|-
! Type !! Sensor !! EEPROM !! Actuator !! Bus
|-
| Main D-Phy || class="feature feature-yes" | sony,imx582 @ 0x10 || class="feature feature-yes" | giantec,gt24p128e @ 0x51 || class="feature feature-yes" | dongwoon,dw9800@ 0xc || cci0_i2c0
|-
| Ultra Wide D-Phy || class="feature feature-no" | sony,imx355 @ 0x1a || class="feature feature-yes" | giantec,gt24p64e @ 0x50 || - || cci1_i2c0
|-
| Macro D-Phy || class="feature feature-yes" | samsung,s5k5e9 @ 0x2d || class="feature feature-yes" | puya,p24c64f @ 0x52 || class="feature feature-yes" | dongwoon,dw9800@ 0xc || cci0_i2c1
|-
| Front D-Phy || class="feature feature-no" | samsung,s5k3t2 @ 0x10 || class="feature feature-yes" | puya,p24c64f @ 0x51 || - || cci1_i2c1
|}
'''Note:'''<br>
* EEPROMs work, but sensor drivers can't work with EEPROMs yet. Libcamera doesn't support it either?


<syntaxhighlight lang="shell-session">
{| class="wikitable sortable"
$ pmbootstrap flasher flash_rootfs --partition userdata
|+ Audio
</syntaxhighlight>
|-
! Codec !! Appointments !! Bus !! Notes
|-
| rowspan = 2 class="feature feature-yes" | cirrus,cs35l41 || EAR Speaker || i2c3 @ 0x40 ||
|-
| Main Speaker || i2c3 @ 0x41 ||
|-
| rowspan = 2 class="feature feature-no" | qcom,wcd9380-codec || Chassis microphones x3 ||
|-
| Analog I/O audio port || ||
|}
 
== Known issues ==
'''* Changing brightness causes graphical artifacts'''


== Serial UART ==
== Serial UART ==
[[File:Alioth uart.jpg|500px|TX is easily accessible, red wire on photo. RX is under a metal shield on the other side of the board. ]]
UART TX is below the sub board connector on the left size of a 0402 capacitor. Baud - 115200.
UART TX is below the sub board connector on the left size of a 0402 capacitor. Baud - 115200.
For ground you can use the metal shielding.
For ground you can use the metal shielding.
[[File:Alioth uart.jpg|500px|TX is easily accessible, red wire on photo. RX is under a metal shield on the other side of the board. ]]


== See also ==
== See also ==
<!--
* [https://github.com/mainlining/linux/tree/nikroks/alioth Mainline Kernel Source]
Link to related GitLab issues or merge requests like the following (replace CHANGEME with the ID, e.g. 1234):
* [https://github.com/N1kroks/firmware-xiaomi-alioth Firmware repo]
* {{MR|CHANGEME|pmaports}} Initial merge request
* {{issue|CHANGEME|pmaports}} Some related issue
You can also add normal web links:
* [https://redmine.replicant.us/projects/replicant/wiki/GalaxyS2I9100 Replicant wiki page]
-->
<!--
If you manage to get your device packages merged, uncomment links below and change DEVICE_CODENAME with the actual one.
* {{Device package|DEVICE_CODENAME}}
* {{Kernel package|DEVICE_CODENAME}}
-->

Latest revision as of 15:56, 17 March 2025


This device has been tested with postmarketOS, but its device package has not yet been added to the postmarketOS repositories.
This means that it cannot be selected in pmbootstrap.
Xiaomi POCO F3
Official image for the smartphone
Official image for the smartphone
Manufacturer Xiaomi
Name POCO F3
Codename xiaomi-alioth
Released 2021
Type handset
Hardware
Chipset Qualcomm Snapdragon 870 (SM8250-AC)
CPU Octa-core (1x3.2 GHz Kryo 585 & 3x2.42 GHz Kryo 585 & 4x1.80 GHz Kryo 585)
GPU Adreno 650
Display 1080x2400 AMOLED, 120Hz, HDR10+, 1300 nits (peak)
Storage 128/256 GB UFS 3.1
Memory 6/8 GB RAM
Architecture aarch64
Software
Original software Android
Original version 11
Extended version 13
postmarketOS
Category testing
Pre-built images no
Mainline partial
Unixbench Whet/Dhry score 9463.8
Features
Flashing
Works
USB Networking
Works
Internal storage
Works
Battery
Works
Screen
Works
Touchscreen
Works
Multimedia
3D Acceleration
Works
Audio
Partial
Camera
Partial
Camera Flash
Works
IR TX
Works
Connectivity
WiFi
Works
Bluetooth
Works
GPS
Broken
NFC
Works
Modem
Calls
Broken
SMS
Broken
Mobile data
Broken
Miscellaneous
FDE
No data
USB OTG
Works
Sensors
Accelerometer
Works
Magnetometer
Works
Ambient Light
Works
Proximity
Broken
Haptics
Broken

Contributors

Maintainer(s)

Users owning this device


How to enter flash mode

  • Bootloader: Power on the device with both Power and Volume Down buttons.
  • Recovery: Power on the device with both Power and Volume Up buttons.
  • Fastbootd: Reboot into bootloader mode first and then run fastboot reboot fastboot from a computer.

Installation

Note Note: The device has not yet been merged into pmaports. Use manual installation.

PostmarketOS Installation guide.

Status

Features
Component Model Notes
Screen samsung,ams667xx01 90/120Hz are supported
Battery qcom,pm8150b-fg
Charger qcom,pm8150b-charger
ti,bq2597x-standalone Used as pump for pm8150b-charger
Internal
storage
jedec,ufs-2.0
qcom,sm8250-qmp-ufs-phy
Touchscreen focaltech,ft3658 @ 0x0 Connected via spi4
GPU qcom,adreno-650 Requires a650 (unsigned) & a650-zap (signed) firmware
SBA-MUX fcs,fsa4480 @ 0x42 Connected via i2c15
Flash LED qcom,spmi-flash-led Connected via pm8150l spmi
WiFi qca6391 Requires ath11k (unsigned) firmware
Bluetooth Requires qca (unsigned) firmware
NFC qcom,nq-nci @ 0x28 Connected via i2c1
Modem sdx55m SDX55m is not supported by mainline
USB OTG usb-c-connector Switches by pm8150b typec controller
Sensors hexagonrpcd
libSSC
Managed by SDSP-remoteproc
Requires signed SDSP firmware
Haptics awinic,aw8697 Connected via i2c11
Camera sensors
Type Sensor EEPROM Actuator Bus
Main D-Phy sony,imx582 @ 0x10 giantec,gt24p128e @ 0x51 dongwoon,dw9800@ 0xc cci0_i2c0
Ultra Wide D-Phy sony,imx355 @ 0x1a giantec,gt24p64e @ 0x50 - cci1_i2c0
Macro D-Phy samsung,s5k5e9 @ 0x2d puya,p24c64f @ 0x52 dongwoon,dw9800@ 0xc cci0_i2c1
Front D-Phy samsung,s5k3t2 @ 0x10 puya,p24c64f @ 0x51 - cci1_i2c1

Note:

  • EEPROMs work, but sensor drivers can't work with EEPROMs yet. Libcamera doesn't support it either?
Audio
Codec Appointments Bus Notes
cirrus,cs35l41 EAR Speaker i2c3 @ 0x40
Main Speaker i2c3 @ 0x41
qcom,wcd9380-codec Chassis microphones x3
Analog I/O audio port

Known issues

* Changing brightness causes graphical artifacts

Serial UART

UART TX is below the sub board connector on the left size of a 0402 capacitor. Baud - 115200. For ground you can use the metal shielding.

TX is easily accessible, red wire on photo. RX is under a metal shield on the other side of the board.

See also