nyuuzyou/wikis huggingface dataset:
MediaTek Glossary

See also: Glossary
== A ==
* AFE - Analog front-end
* APC - see devapc below
* APDMA - Application Processor Direct Memory Access
* APMIXEDSYS - Application Processor Mixed System (?)
* AUXADC - Auxillary Analog-to-Digital Converter
== B ==
* BTIF - Bluetooth Interface (serial interface similar to UART)
* BROM - Boot ROM (read-only memory)
== C ==
* CCI - Cache Coherent Interconnect
* CCIF - CPU-CPU Interface
* CQDMA - Command Queue Direct Memory Access
== D ==
* DCM - Digital Clock Manager
* DCQ - Display Command Queue
* devapc - Device Automatic Power Control
* DispRDMA - Display Read Direct Memory Access
* DISPSYS - Display System
* DVFS - Dynamic Voltage Frequency Scaler
== E ==
* EINTC - External Interrupt Controller
* EMI - External Memory Interface
== F ==
* FHCTL - Frequency Hoping Control
== G ==
* GPT - General-purpose timer
== H ==
== I ==
* INFRACFG - Infrastructure System Configuration
* INFRASYS - Infrastructure System
== J ==
== K ==
== L ==
* LARB - Local Arbiter
== M ==
* MCI - Mediatek Coherence Interface
* MCUSYS - Microcontroller Unit System
* MDSYS - Modem System
* MFG - MFlexGraphics (GPU system)
* MMSYS - Multimedia System
* M4U/MMMMU - Multimedia Memory Management Unit
* MNL - Mediatek Navigation Library
* MTKFB - MediaTek Framebuffer
* MSDC - Memory Stick and SD card Controller
== N ==
== O ==
* OVL - Overlay Engine
== P ==
* PERICFG - Peripheral System Configuration
* PERISYS - Peripheral System
* PWRAP - PMIC (Power management integrated circuit) Wrapper
== Q ==
== R ==
* RSZ - PQ Engine Resize
== S ==
* SMI - Smart Memory Interface
* SVS - Smart Voltage Scaling
* SCPSYS: System Control Processor System
* SYS_CIRQ - System Interrupt Controller
== T ==
* TOPCKGEN - Top Clock Generator
* TOPRGU - Top Reset Generation Unit
== U ==
== V ==
== W ==
* WDT - Watchdog
== X ==
== Y ==
== Z ==
MediaTek Helio G99 (MT6789/MT8781)

The MediaTek Helio G99 is a mid-range SoC for tablets and gaming smartphones released in 2022. Two variants exist, MT6789 and MT8781, which are very similar and can use the same dts.https://github.com/HelloVolla/android_kernel_volla_mt8781/blob/887784fd446bb91e5ef3defc274eda8f64224316/arch/arm64/boot/dts/mediatek/M101TBR200/mt6789.dts
== Devices ==
=== MT6789 ===
=== MT8781 ===
== References ==
MediaTek Helio P10 (MT6755)

MT6755 (or Helio P10) is a low-end MediaTek SoC released in 2014 and used in many cheap devices.
== Devices ==
=== Helio P10 (MT6755) ===
=== Helio P15 (MT6750) ===
== Mainline fork ==
There is a mainline kernel fork on GitLab where development is currently active.
Most information for MediaTek Helio P23 (MT6763) is also applicable here, most of that should be consolidated to a generic MediaTek mainlining page...
== Who's working on it ==
* User:Adomerle
MediaTek Helio P65 (MT6768)

MT6769Z (or Helio G85) is a mid-range ARMv8.2-A (64-bit) MediaTek SoC released in 2020. It is based on based on MT6768 (or Helio P65) platform similarly to how SDM636 is a part of the Qualcomm SDM660 family. This SoC family is also rather closely related to MediaTek MT8183 which is mainlined and used by various Chromebooks.
== Devices ==
=== Helio G88 (MT6769H) ===
=== Helio G85 (MT6769Z) ===
=== Helio G80 (MT6769T) ===
== USB ==
== Display ==
== I2C ==
== SPI ==
== Mainline fork ==
There is a mainline kernel fork on GitLab @ mtk-mainline/mt6768/linux where development is currently (2022-11-03 / v6.1-rc3) not active.
Most information for MediaTek Helio P23 (MT6763) is also applicable here, most of that should be consolidated to a generic MediaTek mainlining page...
== Who's working on it ==
* User:Deathmist
* User:Cvbnm90i
== See also ==
*
MediaTek Helio P90 (MT6779)

=== Devices ===
=== Specifications ===
* 6x Cortex-A55 @ 2.0 GHz, 2x Cortex-A75 @ 2.2 GHz, 
* PowerVR GM9446
=== More information ===
To boot Linux on devices with this SoC, you need to modify the device tree so that the bootloader can pass its merge checks.
To see what you need to add, you need to get serial output from the lk bootloader, most commonly it's passed to UART0, which can be the debug header on your specific board (if there is one)
MediaTek Kompanio 500 (MT8183)

MT8183 (or Kompanio 500, formely Helio P60T) is a mid-range MediaTek SoC for Chromebooks released in 2019. MT6771 (Helio P60/P70) is a very similar SoC that is designed for smartphones, such that one can include the MT8183 dtsi when constructing a MT6771 device dts.
== Devices ==
MediaTek MT6735

MT6735 is a low-end Mediatek SoC released in 2014 and used in many cheap devices. Variants include the MT6735P and MT6735M with CPU clocks lowered to 1.0 GHz. Mediatek also released some other variants in 2016 including MT6737 with a 1.25 GHz CPU clock, and MT6737T with a 1.5 GHz CPU clock.
Codenamed Denali-3, MT6753 is a SoC that shares the same architecture of MT6735 while having double the ARM Cortex-A53 CPUs in a dual cluster arrangement, as well as an ARM Mali-T720 MP3 GPU.
== Variants ==
SoC line 	Denali-1 	Denali-2 	Denali-3
SoCs 	MT6735 MT6737 MT6737T 	MT6735M MT6735P MT6737M 	MT6753
CPU 	Cluster 0: 4x ARM Cortex-A53	Cluster 0: 4x ARM Cortex-A53	Cluster 0: 4x ARM Cortex-A53
Cluster 1: 4x ARM Cortex-A53
GPU 	ARM Mali-T720 MP2 	ARM Mali-T720 MP 	ARM Mali-T720 MP3
MMC controllers	3x MediaTek MSDC 	2x MediaTek MSDC 	3x MediaTek MSDC
GPIO Pins 	204 	198 	204
== Devices ==
== U-Boot ==
The U-Boot port for mt6735 is being actively developed and is available at https://gitlab.com/alifilhan0/u-boot The purpose of this port is to replace the stock mediatek lk, which, due to its quirks, does not allow the development of mainline linux to continue. Also, as a bonus, you can get linux boot from a microsd card or even a usb flash drive (via usb otg).
But at the moment, development has just begun and U-Boot is not working on this SoC yet, but you can fix it! If you are interested in the mainline on mt6735 join #mt6735-foss:matrix.org or here https://github.com/arzam16/linux-mt6577/issues/1
== MMIO Block Overview ==
Base addresses of a few memory-mapped I/O blocks on MT6735 are shown here. MT6735M might have some slight differences:
Address 	Block
0x10000000	Infrastructure System
0x10001000	PMIC Wrapper
0x10002000	Peripheral System
0x10004000	General Purpose Timer
0x10206000	eFuse controller
0x10209000	AP Mixed System
0x10210000	Top Clock Generator
0x10211000	Pin Controller
0x10220000	ARM Global Interrupt Controller
0x11002000	UART 0
0x11003000	UART 1
0x11004000	UART 2
0x11005000	UART 3
0x11200000	USB Host Controller (Inventra MUSB with MediaTek wrapper)
0x11210000	USB Physical Layer (MediaTek T-PHY)
== eFuse Controller ==
This SoC has an efuse controller with several efuses used for storing calibration and performance data used for thermal management and frequency scaling, as well as a few efuses for security features such as SLA (Serial Link Authorization), SBC (Secure Boot) and DAA (Download Agent Authentication). Some Known efuses are listed here:
Offset	Bit	Bit	Bit	Bit	Bit	Bit	Bit	Bit
Offset	7 	6 	5 	4 	3 	2 	1 	0
0x0060	 	 	 	 	SLA	DAA	SBC	
== See also ==
* Mainline Linux tree with extra patches for MT6735
* U-Boot port
* Old mainline attempt
* MTK-bypass/exploit_mt6735
Meizu 16th (meizu-m1882)

== Contributors ==
* ChPu437
== Users owning this device ==
== How to enter flash mode ==
Press and hold and when the phone is off to enter fastboot. 
== Installation ==
(If there's only one contributor, all the "I" refers to ChPu437, if else, then plz contact me to replace them. I know this is inappropriate but forgive me plz XD)
Generally, just simply follow SDM845 Mainlining Guide until you got a boot image, but you DO need some little modification to really boot PostmarketOS with a working framebuffer.
During "Creating a framebuffer" section, you'll need to do some extra modification to the template dts node, to keep it simple, just follow these steps instead.
Insert these under the chosen node:
#address-cells = <2>;
#size-cells = <2>;
ranges;
framebuffer0: framebuffer@9d400000 {
	compatible = "simple-framebuffer";
	reg = <0x0 0x9d400000 0x0 (1080 * 2160 * 4)>;
	width = <1080>;
	height = <2160>;
	stride = <(1080 * 4)>;
	format = "a8r8g8b8";
};
And for the reserved-memory node, use this instead:
reserved-memory {
	#address-cells = <2>;
	#size-cells = <2>;
	ranges;
	linux,cma {
		compatible = "shared-dma-pool";
		alloc-ranges = <0 0x00000000 0 0xffffffff>;
		reusable;
		alignment = <0 0x400000>;
		size = <0 0x2c00000>;
		linux,cma-default;
	};
	framebuffer_region@9d400000 {
		reg = <0x0 0x9d400000 0x0 0x02400000>;
		no-map;
	};
};
For the kernel to generate the initramfs, linux-postmarketos-qcom-sdm845 would be okay, you can also use the kernel you've been working on above, there won't be many differences at this moment, as the phone can almost only boot.
Continue follow the guide until the fastboot boot process. Since the phone cannot be directly booted by fastboot boot, this is what you should do:
fastboot flash boot mainline-boot.img
Then reboot the device, and you will get a few penguins with dmesg scrolling up on the display if nothing goes wrong.
== Status ==
Though you'll get some errors during the bootup (probably caused by the dts), the phone can boot with a framebuffer and *potentially* usb networking support
=== Known issue ===
* As you can see, most of the hardware didn't work now, especially touchscreen, which is important to interact with a smartphone.
* Though framebuffer works, it gets a rather poor refresh rate at approximately 1 frames per sec. This was once reported in another project trying to port WoA(Windows on Arm) to SDM845-based devices, but it seems that they managed to solve this. Maybe this can be of great value in reference.
=== Note on usb networking ===
Enable CONFIG_USB_ETH and CONFIG_USB_ETH_RNDIS and use the common kernel to build initramfs, then you should get usb network and ssh working.
=== Note on partition layout ===
For I need to use the phone both porting and daily use, I shrinked my userdata and created 2 new partitions for boot partition and the rootfs. Other layouts should be fine if they don't go against the partition layout.
== See also ==
SDM845 Mainlining
SDM845 Mainline Kernel
Meizu 16th hardware specs
Meizu M2 (meizu-mblu2)

== Contributors ==
* Akash Rawat
== Maintainer(s) ==
== Users owning this device ==
== How to enter flash mode ==
=== Bootloader Unlocking ===
The device has to be with unlocked bootloader. Locked bootloader may be unlocked with a Flyme 6.2.2.0G:
http://flymeos.com/firmwarelist?modelId=18&type=1
for the international phone(don't know about chinese) version using amonet:
https://forum.xda-developers.com/t/tool-unbrick-unlock-amonet-for-meizu-m2.3945812/.
=== Recovery Mode ===
*Turn the device off (or restart also works)
* Hold and button
* Once you feel vibration and phone turns on, release button
* Keep holding until you get to recovery.
== Installation ==
* Install Orangefox recovery:
https://orangefox.download/device/mblu2
* Just follow the Installation from recovery mode.
=== Tested UIs ===
* Weston - works
* Mate - works
* xfce4 - boots(panels, cursor are displayed even cursor moves for some time but after some time freezes and reboots) (including msm-fb-refresher and disabling CONFIG_ANDROID_LOW_MEMORY_KILLER in config didn't work.)
=== WiFi ===
=== USB Internet ===
Follow USB Internet page
== See also ==
* Initial merge request
* 
* 
* Fix Hardbrick Meizu M2 easily without dongle
* Amonet for Meizu M2
Meizu M2 Note (meizu-m571)

== Contributors ==
TheBads
== Maintainer(s) ==
TheBads (?)
== How to enter flash mode ==
The device has to be with unlocked bootloader.
https://www.youtube.com/watch?v=X2xwfxQ3ll4
Needs special software (SP Flash tool), drivers and phone to be turned off.
Connecting phone to PC while software is running will allow software to "hook" it (when booting phone temporarily exposes itself) and flash custom firmware
== Installation ==
Fastboot doesn't allow flashing on this phone.
pmOS can be installed either using a Recovery ZIP through TWRP or using MediaTek's SP Flash Tool.
=== Install using Recovery ZIP ===
Follow the Installation from recovery mode guide.
== Status ==
Work on port hasn't started.
== Development notes ==
=== Kernels ===
There are several candidate kernels for the port:
# Official kernel sources
## Android branch.
# Unofficial sources
## Moyster LineageOS kernel.
Mepo

Mepo is a fast, simple, and hackable OSM map viewer for desktop & mobile Linux devices (like the PinePhone, Librem 5, pmOS devices etc.) and both environment's various user interfaces (Wayland & X inclusive). Mepo works both offline and online, features a minimalist both touch/mouse and keyboard compatible interface, and offers a UNIX-philosophy inspired underlying design, exposing a powerful command language called Mepolang capable of being scripted to provide things like custom bounding-box search scripts, bookmarks, and more.
Mepo in development was explicitly designed with postmarketOS UI environments as a targeted primary usecase. To this end, Phosh, Sxmo, and Plasma Mobile were all tested in development and work well with Mepo. Additionally X desktop environments (like i3) and Wayland enviroments (like sway) work with mepo. Being based on SDL it will generally run faster then other map applications.
== Installation ==
Mepo is available on postmarketOS edge but not on postmarketOS stable currently. The reason for this is that zig (which mepo is written in) is not available on Alpine outside of Alpine's testing repository. On postmarketOS edge to install Mepo run:
apk add mepo-scripts
If you wish to use Mepo on postmarketOS stable you may either use the Mepo Flatpak or pull from the testing alpine repository. See the installation guide on Mepo's documentation website for more details.
== Integrations ==
Mepo integrates with Nominatim and Overpass for POI searches, GraphHopper for routing, and Geoclue for location services. Unlike other OSM map applications, these integrations take the form of shellscripts (and are thus user-editable) and utilize Mepo's plain-text DSL / API called Mepolang; mepolang can additionally be used by end-users to create their own custom scripts.
== Pictures ==
File:Mepo_demo.png|thumb|left|Mepo on the desktop showing POI results
File:Mepo_Phone_POIS.jpeg|thumb|left|Mepo on the Pinephone showing POI results
File:Mepo_Phone_Routing.jpeg|thumb|left|Mepo on the Pinephone with routing
== Links ==
* Mepo Documentation Website
* Mepo Install Guide
* Mepo User Guide
* Srht Project page
* Mepo Alpine Package
* Demo Videos showing usage on pmOS phone & screencasts
* postmarketOS podcast discussing Mepo 
== See also ==
Osmin
Category:Apps
Meshtastic

Meshtastic is an open-source off-grid decentralized network based on Lora technology.
=== Getting started ===
Once you purchased a node and flash it using the meshtastic web flasher you can connect to your node from your pmos phone using a serial, bluetooth or wifi link.
=== Available tools ===
* meshtastic python cli let you communicate with your node from command line.
* Gtk-meshtastic-client is an adaptive graphical client for linux from Chris Talbot.
=== Installing tools ===
==== Automatically ====
Support is being added to Alpine for the tools above at the moment. You can install both by using mrtest with 
==== Manually ====
===== Meshtastic python cli =====
The python cli and libraries are in the process of being packaged for Alpine. 
At the moment, the easiest way to install it is through pip (py3-pip), doing :
$ sudo pip install meshtastic --break-system-packages
===== Gtk Meshtastic Client =====
The gtk client is also in the process of being packaged.
Beware, you'll need libadwaita >=1.6 which is currently not in v24.06 ...
You'll have first to install the meson build system as well as cmake (and make sure git is here too) : 
$ sudo apk add meson cmake git
You'll also need some dependencies :
$ sudo apk add gtk4.0-dev libadwaita-dev gobject-introspection-dev libshumate-dev py3-gobject3
Then clone the git repository :
$ git clone https://gitlab.com/kop316/gtk-meshtastic-client.git
Go in the gtk-meshtastic-client directory, setup the build and then compile :
$ cd gtk-meshtastic-client/
$ meson setup _build -Dprefix=/usr --sysconfdir=/etc
$ meson compile -C _build
You can install gtk-meshtastic-client using meson install
$ meson install -C _build
=== Using Meshtastic ===
You can connect to your node via serial port, bluetooth or a TCP connexion.
==== Forward TCP connection to your phone ====
Let's say you want to access a node at home through internet (to test transmission for instance). You can export your node's stream port to your phone using ssh, normally it's port number 4403.
Lets say you have an ssh gateway to your home network at mybox.net and your node's hostname is meshtastic
$ ssh -L 4403:meshtastic:4403 mybox.net
You can then specify localhost as your TCP host.
Microsoft Lumia 535 (msft-chakra)

== Maintainers ==
* Ivoszbg
* Konradybcio
== Users owning this device ==
== What works ==
* Phone boots
* EFIFB
== Installation ==
1. Install pmbootstrap
2. Flash my custom EFIESP partition according to your device model
3. Boot to dev menu using volume down + power button
4. Select USB Mass Storage Mode and run my modified WPI from visual studio. Reboot when done and let the phone boot to windows phone os
3. Setup pmbootstrap:
$ pmbootstrap init
...
Vendor [microsoft]: microsoft <- enter this
Device codename [chakra]: chakra <- enter this
User interface [weston]: <- choose your preferred UI
...
4. Install the custom edk2 implementation made by Konradybcio
5. Get the compiled kernel, dtb, initrd and rootfs, download my custom startup.nsh, then boot to mass storage mode and put the kernel, dtb, initrd and startup.nsh into the EFIESP partition
6. Format the DATA partition as ext4 and extract the rootfs in it
== Additional info ==
Mainline is WIP, the global clock controller is ported to mainline and emmc works. Nothing is purged into the postmarketos repo so installation won't work right now.
== Links ==
* GSMArena-page
* Phonedb-page
* mainline kernel
Microsoft Lumia 640 (microsoft-dempsey)

== Contributors ==
* Maxnet
* WolfLink115
== Users owning this device ==
== Current porting status ==
* Mainline boots and has touch, screen, and side keys working.
* All 4 cores are now up!
* NFC available!
* USB is currently being tested, I can't personally confirm if USB networking is working but someone with a Lumia 735 said it is for them.
* Proximity is working on tesla, just needs testing on dempsey
* WLAN & BT being looked at
== Installation ==
===Unlocking bootloader===
See the general guide Unlocking the Bootloader for instructions.
===Install developer menu and bootshim===
After you have unlocked the bootloader of your phone, you will have to install the developer menu and bootshim onto your phone. This is made easy by the LumiaQuickStart script.
* Clone the LumiaQuickStart repo 
* Use WPInternals to reboot your phone into mass storage mode.
* Run install.ps1 as administrator. Provide the path to EFIESP (Windows might also have mounted it inside MainOS). 
After the script finishes, you should see a boot menu upon restart, which means we're ready to.
===Install lk2nd===
* Download emmc_appsboot.mbn 
* Copy emmc_appsboot.mbn to your phone's EFIESP folder
* Unmount mass storage and restart your phone by holding the volume down and power buttons for a few seconds
If all went well, you should enter lk2nd by pressing volume up on the bootmenu or holding volume up on the NOKIA bootlogo.
== See also ==
=== Internal links ===
* Qualcomm Snapdragon 400 (MSM8226)
* Windows Phone
=== External links ===
* Close to mainline linux kernel w/ support for dempsey and a few other msm8x26 lumias on msm8x26 branch. Use msm8x26-touchscreen branch for touchscreen, until it gets committed into msm8x26.
* EDK2 for dempsey, tesla, makepeace and superman. This does boot Linux!
* LittleKernel for tesla and some other lumias. This does not boot Linux!! Useful for chain loading lk2nd to dump regulators when porting a lumia to linux.
* Boot shim used to boot EDK2.
* Compiling EDK2
* Installing EDK2
* Booting Linux from eMMC
* unbrick guide If you manage to brick the Lumia 640 (the RM-1073 version, not tested on others!!) into Qualcomm EDL mode, then this guide can help you unbrick it.
Microsoft Lumia 640 XL (microsoft-makepeace)

== Contributors ==
* exkc
== Users owning this device ==
== Guides (Should work in theory for the other Lumia's specified in the EDK2 port as well.) ==
Here's a nice guide written by WolfLink115 which explains how to compile/install EDK2 and boot Linux:
* Compiling EDK2
* Installing EDK2
* Booting Linux from eMMC
* If you manage to brick the Lumia 640 (the RM-1073 version, not tested on 640 XL) into Qualcomm EDL mode, then this guide can help you unbrick it.
== See also ==
=== Internal links ===
* Qualcomm Snapdragon 400 (MSM8226)
* Windows Phone
* Nokia Lumia 630 (nokia-moneypenny)
* Microsoft_Lumia_640_(microsoft-dempsey)
=== External links ===
* a working lk2nd for 630(it also work on 640XL)
* Close to mainline linux kernel w/ support for dempsey and a few other msm8x26 lumias on msm8x26 branch. Use msm8x26-touchscreen branch for touchscreen, until it gets committed into msm8x26.
* EDK2 for dempsey, tesla, makepeace and superman. This does boot Linux!
* LittleKernel for tesla and some other lumias. This does not boot Linux!! Useful for chain loading lk2nd to dump regulators when porting a lumia to linux.
* Boot shim used to boot EDK2 and lk2nd.
Microsoft Lumia 950 (microsoft-talkman)

== Contributors ==
* SunshineBiscuit
* Konrad Dybcio
== Maintainer(s) ==
== Users owning this device ==
== How to enter flash mode ==
Windows Phone flash mode can be entered using WPInternals, thor2 or Windows Device Recovery Tool.
Most WoA images have USB mass storage mode available with Power + VolDown key sequence on boot. Alternatively, enter USB mass storage mode via WPInternals.
Because Lumia 950 uses standardized UEFI firmware, it is not necessary to flash the device once it is unlocked. Simply install boot-shim and the UEFI firmware similar to the way installing Windows 10 ARM on Lumia 950, partition (Do not delete any partitions before and including EFIESP) and copy files to the device and it will boot.
Warning: Do not touch anything inside DPP partition or it will cause permanent damage to the device
== Progress ==
A slightly patched kernel is available at https://dev.azure.com/imbushuo-personal/_git/Kernel.
A more patched and more functional kernel is available at https://github.com/WOA-Project/linux.
Although Lumia 950 supports ACPI, the arm64 ACPI support for Qualcomm platforms is limited to Windows-only. Hence a device tree is necessary for successful bring-up. The current device tree is available at 
here (old) or right there.
The progress is generic for all Linux distros.
* Processor bring-up and reset using PSCI (EL1) or spin-table (EL2, WIP!)
* I2C, GPIO, UART and a few more simple low-speed I/O
* GCC clocks
* Synaptics Touchscreen via I2C
* FrameBuffer via UEFI GOP @ 1080x1920
* Bluetooth via UART. Need rampatch and TLV firmware blobs similar to other QCA6174 chipsets.
* PCIe Root Port, the QCA6174 Wi-Fi NIC is visible, ath10k driver starts but currently stalls the system. Need rampatch and TLV firmware blobs similar to other QCA6174 chipsets.
== Booting ==
* Unlock the device using WPInternals
* Install boot-shim and UEFI firmware
* Partition the device, create a new ESP partition for aarch64 (keep the ARM32 one) and a partition for the root filesystem
* Unpack root filesystem, install GRUB ARM64, kernel and device tree into the new ESP partition
A reference boot entry:
linux /vmlinuz-4.18.6-lumia-950-uefi nomodeset acpi=off video=efifb boot_delay=200 root=UUID=<Root Partition UUID>
initrd /initrd.img-4.18.6-lumia-950xl-uefi
devicetree /msm8992-microsoft-lumia-talkman.dtb
== See also ==