IoT Yocto v26.1-dev Pre-Release 1 for Genio Pro 5100 EVK
Last Update: 2026-09-30
This guide shows you how to build and flash the development snapshot (Pre-Release 1, PR1) of IoT Yocto v26.1-dev for the Genio Pro 5100 (MT8894) EVK and SoC.
Pre-release — do not use in production
PR1 is an unofficial, untested development snapshot for evaluation only, with no support or warranty. Design, features, and APIs are subject to change without notice.
For the Genio Pro 5100 EVK, please contact your MediaTek sales representative.
Overview
The document describes brief steps on how to build the in-development IoT Yocto v26.1-dev for the Genio Pro 5100 EVK board.
For explanation on topics not mentioned in the document, please refer to MediaTek IoT Yocto Developer Guide for details. Please note that the documentation is in the preliminary phase and is subject to changes without notice.
Note on the v26.0 release mechanism change
Starting from IoT Yocto v26.0, the access-controlled (NDA) source repositories have migrated from GitLab (
gitlab.com/mediatek/aiot/nda) to the MediaTek Git01 service. The public manifest and public recipes remain on GitLab. Because of this change, the account setup flow is now based on a Genio Developer account + Git01 account, instead of a plain GitLab NDA account. See the Genio Developer and Git01 Account Setup guide.
PR1 Prebuilt Image
The prebuilt PR1 image for Genio Pro 5100 EVK can be downloaded from:
The md5sum of the tarball file is 187de6836b825be67a0434db5328202d.
Flashing
Install the development version of genio-tools to support Genio Pro 5100:
pip install --pre -U genio-tools==1.8.0a1
The --pre option installs development versions. After installation, check the version:
genio-flash --version
It should be 1.8.0a1 or later.
To flash the IoT Yocto image to the Genio Pro 5100 EVK board, change directory to the extracted image, then run:
$ genio-flash
- If the FTDI (USB-C UART) is connected and not occupied,
genio-flashwill automatically reset the board into USB Download Mode. - If it does not enter USB Download Mode automatically, hold down KPCOL0 on the EVK and press RESET once to enter USB DL mode.
Troubleshooting
If genio-flash stops at < waiting for any device > the first time you flash a Genio Pro 5100 EVK, open the Windows Device Manager and check whether “USB download gadget” shows a yellow warning icon. If so, update its driver to Android Bootloader Device as described in the troubleshooting guide, then flashing will continue.
Info
A known issue: after flashing, the
fastboot rebootcommand may returnFAILED (Status read failed ...), but the board does in fact reboot.
Booting and Login
After flashing:
- Connect UART0 to USB 2.0 Type C (
CON2801) to your workstation PC - Connect USB3_DP TypeC (
CON5701) to your workstation PC - Configure your serial terminal to use baud rate
921600. - Press the on-board
RSTbutton to perform a hardware reset
Then:
-
Log in on the UART0 console using account
root(no password required).
InfoThe UART0 baud rate on Genio Pro 5100 is 921600, the same as other Genio EVK bootloaders.
-
You can also use
adb shellandadb push/adb pullto transfer files.adb rebootis not supported.
-
The Linux kernel version of the prebuilt image is:
root@genio-pro-5100-evk:~# uname -a Linux genio-pro-5100-evk 7.2.0-rc3-next-20260714-mtk-staging+g19f2d6181ccb #1 SMP PREEMPT_DYNAMIC Tue Sep 29 05:20:19 UTC 2026 aarch64 GNU/Linuxand the Yocto build info is:
root@genio-pro-5100-evk:~# cat /etc/buildinfo ----------------------- Build Configuration: | ----------------------- DISTRO = rity-demo DISTRO_VERSION = 26.1-dev ----------------------- Layer Revisions: | ----------------------- meta = HEAD:3a3d07f625aee7b87ea1026526b756447c357652 meta-poky = HEAD:3a3d07f625aee7b87ea1026526b756447c357652 meta-yocto-bsp = HEAD:3a3d07f625aee7b87ea1026526b756447c357652 meta-arm = HEAD:0a4b911d9fd63ab29c4532a907fae3282dbdcfe4 meta-arm-toolchain = HEAD:0a4b911d9fd63ab29c4532a907fae3282dbdcfe4 meta-clang = HEAD:b4532c75af7b1957b10cc4d5377fc4cfa0b1cbf6 meta-mediatek-bsp = HEAD:7489c936774cc7d651a3bf17931a1fca105f3cba meta-mediatek-tsn = HEAD:9e780f424ba2b1f56090113e96acf8f90aabf0ed meta-mediatek-bluedroid = HEAD:d514847ecb8bcc1002cc96b257529bbb5d929cca meta-mediatek-demo = HEAD:815a43e8c1d5850c7d4d633d0dd4d532186b859f meta-asix = HEAD:d2551230c1fc4a0bebd2d2f0b5e3e9a0aee678e2 meta-nn = HEAD:815e148c1788e695f6a951230f97c1083f4e0c04 meta-security = HEAD:b13f1705d723650de61277670c8a76aadea4cfdd meta-multimedia = HEAD:b5874ea07d69919d9b40d59f2c2f0bbd24bc3259 meta-networking = HEAD:b5874ea07d69919d9b40d59f2c2f0bbd24bc3259 meta-oe = HEAD:b5874ea07d69919d9b40d59f2c2f0bbd24bc3259 meta-python = HEAD:b5874ea07d69919d9b40d59f2c2f0bbd24bc3259 meta-perl = HEAD:b5874ea07d69919d9b40d59f2c2f0bbd24bc3259 meta-filesystems = HEAD:b5874ea07d69919d9b40d59f2c2f0bbd24bc3259 meta = HEAD:631d365b87928f161f6fe798ff75f4f18faafd05 meta-rity-bringup = HEAD:631d365b87928f161f6fe798ff75f4f18faafd05 meta-rity-demo = HEAD:631d365b87928f161f6fe798ff75f4f18faafd05 meta-tensorflow = HEAD:eeee54cfa3c51c1fd99604a0d5f173096bdcf1da meta-lts-mixins = HEAD:96deb45139df027473faf0938fe006d33c45c375 meta-chromium = HEAD:e0d522af1130852159b75847649381ad9f11efbc meta-virtualization = HEAD:ee1ec1ee542389a3fc3692fdd232f9dd86c849a5
Scope and Limitations
Pre-Release 1 (PR1) is an early bring-up milestone. This section lists the features that are expected to be available in the PR1 build for Genio Pro 5100. Feature support will continue to expand in the next pre-release (PR2) and beyond.
Status legend:
= enabled and can be evaluated with Genio Pro 5100 EVK.
= enabled in BSP, but cannot be verified on the out-of-box EVK configuration.
= not supported in BSP.
In scope for PR1
The following features are expected to be supported in the PR1 build:
| Category | Feature | Status |
|---|---|---|
| Boot | Bootloader :: TF-A | |
| Boot | Bootloader :: U-Boot | |
| Boot | Boot Storage :: UFS | |
| Boot | OS Boot Device :: UFS | |
| Boot | Boot Standard :: FIP Boot | |
| Linux Kernel | Version :: Kernel Y26 | |
| Linux Kernel | Kernel :: 64-bit | |
| Yocto | 5.0 Scarthgap (LTS) | |
| System | Watchdog | |
| Power Mgmt | Kernel :: PMIC (Regulator framework) | |
| Power Mgmt | Clock Manager (Linux CCF) | |
| Power Mgmt | Thermal Framework | |
| Power Mgmt | Thermal Framework :: Cooling Device :: CPU | |
| Power Mgmt | Thermal Framework :: Cooling Device :: External Fan | |
| Power Mgmt | DVFS :: cpufreq | |
| Power Mgmt | DVFS :: gpufreq | |
| Power Mgmt | Auto Power On | |
| Display | TX :: External Bridge :: DSI to HDMI® :: IT6162C | |
| Display | TX :: Single Display :: DSI-to-HDMI® | |
| Display | TX :: Single Display :: eDP | |
| Display | Display Server :: Wayland | |
| Display | Display Server :: Wayland :: Weston | |
| Display | Direct Render Manager (DRM) | |
| Display | Linux Framebuffer (fbdev) | |
| Audio | IN :: I2S | |
| Audio | OUT :: I2S | |
| Audio | OUT :: I2S to HDMI® :: IT6162C | |
| Audio | ALSA-lib | |
| GPU | Arm Mali GPU Driver Stack :: MESA Panfrost | |
| GPU | Graphics API :: EGL | |
| GPU | Graphics API :: OpenGL ES | |
| GPU | Graphics API :: Vulkan | |
| GPU | Computation API :: OpenCL | |
| AI/ML | NeuroPilot :: Analytical AI :: Host Compiler :: Ubuntu 22.04 (x86_64) | |
| AI/ML | NeuroPilot :: Analytical AI :: Benchmark Tool | |
| AI/ML | NeuroPilot :: GenAI :: LLM Inference Tool | |
| AI/ML | NeuroPilot :: GenAI :: VLM Inference Tool | |
| AI/ML | TFLite Interpreter :: Stable Delegate :: NPU Backend | |
| AI/ML | ONNXRuntime :: CPU-EP :: CPU Backend | |
| AI/ML | ONNXRuntime :: Neuron-EP :: NPU Backend | |
| AI/ML | NNStreamer | |
| Peripheral | I2C | |
| Peripheral | UART | |
| Peripheral | UART :: DMA | |
| Peripheral | UART :: HW Flow Control (4-wire) | |
| Peripheral | USB :: TYPE-C :: USB 3.0 | |
| Peripheral | USB :: 2.0 Host Only | |
| Peripheral | USB :: 2.0 Device Only | |
| Peripheral | USB :: 3.0 Host Only | |
| Peripheral | USB :: 3.0 Device Only | |
| Peripheral | USB :: UVC | |
| Peripheral | PCIe :: Gen4 1L / 2L | |
| Peripheral | SPI :: Master | |
| Peripheral | PWM | |
| Peripheral | Linux :: GPIO | |
| Peripheral | MSDC :: SD Card | |
| Peripheral | Storage :: UFS | |
| Peripheral | Ethernet :: Gigabit (RGMII) | |
| Peripheral | CAN :: MCP2518 (SPI) + MCP2562 | |
| Wi-Fi/BT (MT7925) | Wi-Fi :: Wi-Fi 7 | |
| Wi-Fi/BT (MT7925) | Wi-Fi :: Wi-Fi 7 :: MLO | |
| Wi-Fi/BT (MT7925) | Wi-Fi :: STA | |
| Wi-Fi/BT (MT7925) | Bluetooth :: Bluetooth 5.4 | |
| Wi-Fi/BT (MT7925) | Bluetooth :: Host :: BlueZ | |
| Wi-Fi/BT (MT7925) | Bluetooth :: Host :: BlueZ :: GATT | |
| Wi-Fi/BT (MT7925) | Bluetooth :: Host :: BlueZ :: HID | |
| Wi-Fi/BT (MT7925) | Bluetooth :: Host :: BlueZ :: HoGP | |
| App Framework | Container :: Docker | |
| Tool | Flash Tool :: x86_64 :: Windows 11 | |
| Tool | Flash Tool :: x86_64 :: Ubuntu 22.04 | |
| Tool | Build Env :: x86_64 :: Ubuntu 22.04 | |
| Tool | ADB (Android Debug Bridge) |
Not yet in PR1
Several major feature areas are not part of PR1. Many of them are targeted for the next pre-release (PR2),
currently scheduled for mid-November 2026, and the remainder for milestones beyond the official v26.1 release.
These areas include:
- Display — DisplayPort and DPoC outputs (target: PR2).
- Ethernet — 2.5Gbps Ethernet (target: PR2).
- Hardware video codec — H.264 / H.265 / VP9 decode and encode, and JPEG (target: PR2).
- Audio — most input and output paths, including DMIC, TDM, UAC, and Pipewire (target: PR2).
- Security — Secure Boot, OP-TEE, and eFuse (target: PR2).
- Application frameworks — ROS 2 (target: PR2).
- Camera / ISP — the full RAW and YUV sensor stack, 3A, and multi-sensor (planned for a later milestone).
- Others — the Chromium browser, HiFi5 / SOF audio, and ISP tuning tools (planned for a later milestone).
EVK Hardware Ports
The following table lists the physical ports and connectors on the Genio Pro 5100 IoT EVK (RDK) board and their software-enablement status in IoT Yocto. Some ports are out of scope for IoT Yocto and are marked accordingly.
Legend:
= enabled in PR1.- PR2 (11/M) = planned for PR2 (mid-November 2026).
= not enabled / out of scope.
| Category | Port Label (ID) | Enabled |
|---|---|---|
| Power | MINI DIN-DC 12V (CON401) | |
| Power | 12V for FAN (CON3601) | |
| Power | Type C for current monitor (CON801) | PR2 (11/M) |
| Ethernet | 1GbE Ethernet (J4801) | |
| Ethernet | 2.5Gb Ethernet (CON5001) | PR2 (11/M) |
| Connectivity | PCIe M.2 Key E For Wi-Fi card (CON3301) | |
| Connectivity | SMA Conn. (CON5802) | |
| Connectivity | SMA Conn. (CON5803) | |
| USB & storage | USB3 TYPE A (CON5301) | |
| USB & storage | USB3 TYPE A (CON5302) | |
| USB & storage | USB3 TYPE A (CON5303) | |
| USB & storage | USB 2.0 Type-A (CON2701) | |
| USB & storage | USB 2.0 Type-C (CON2601) | |
| USB & storage | Micro SD (CON4002) | |
| USB & storage & Display | USB3_DP TypeC (CON5701) — USB Gadget (ADB) only; DPoC display and USB Host functions not available | |
| Display & Touch | HDMI Con. (CON501) | |
| Display & Touch | DSI1 4 lane LCM (CON702) | PR2 (11/M) |
| Display & Touch | DSI1 4 lane LCM Touch Connector (CON701) | PR2 (11/M) |
| Display & Touch | DSI2 4 lane LCM (CON4101) | PR2 (11/M) |
| Display & Touch | EDP 1.4b-4 lane (CON3801) | |
| Audio | HDMI Con. (CON501) | PR2 (11/M) |
| Audio | Audio Board Header (CON5801) | PR2 (11/M) |
| Audio | Audio (ADC) Board Header (J5802) | |
| Camera | Camera CSI-2 4 lane (CON4501) | |
| Camera | Camera CSI-5 4 lane (CON4502) | |
| Camera | IPEX 30 pin (CON4401) | |
| Camera | CSI-3 CPHY (CON3901) | |
| Peripheral | Raspberry Pi HATs (J1919) — RPi UART, GPIO, SPI, I2C, PWM, I2S | |
| Peripheral | CAN FD (U4604) | |
| Peripheral | UART2 (CON1809) | |
| Peripheral | UART3 (CON1808) | |
| Peripheral | SPI5 (CON4601) | |
| Keypad | Power Key (SW2801) | PR2 (11/M) |
| Keypad | Reset Key (SW2804) | |
| Keypad | Volume up (SW2802) | PR2 (11/M) |
| Keypad | Volume down (SW2803) | PR2 (11/M) |
| Debug | UART0 to USB 2.0 Type C (CON2801) | |
| Debug | Tooling Test Con. (J1401) | |
| Debug | JTAG (CON1901) | |
| High Speed External Storage | PCIe M.2 Key M for NVMe (CON3501) | |
| 5G/GPS | USB3.0 M.2 Key B for 5G/GPS (CON5402) | |
| 5G/GPS | Nano SIM (CON3401) | |
| Peripheral Connectivity | SDIO M.2 Key E For WiFi Card (CON3402) |
Note: The three USB3 TYPE A ports (
CON5301toCON5303) require 3rd-party proprietary firmware to work.
See Edit local.conf section below.
Known Issues
- HDMI display output is fixed to FullHD resolution.
- HDMI display connection is unstable. It may be flickering or lost connection.
- OpenCL is currently not enabled.
Build Host Environment Setup
The IoT Yocto codebase is hosted across two services:
- GitLab — public repos (including the manifest and public recipes), which can be accessed without special permission.
- MediaTek Git01 — restricted repos, which require you to create a MediaTek Genio Developer account and sign an NDA before you can access them.
To build the full (NDA) image, you must first set up your Git01 access. Please refer to Genio Developer and Git01 Account Setup. In short:
- Sign up for a Genio Developer account and validate it via email.
- Sign the electronic NDA for Genio from the Genio Developer Account Center (“Advanced Resource Access”). Wait until the status shows Valid.
- From your Profile page, use the Create Account button under “NDA for Genio” to create a Git01 account. Credentials are emailed to you once the account is created.
- Generate a Git01 HTTP access token from the Git01 HTTP Credentials page and store it securely. This token is used as your Git password when fetching over HTTPS.
- Run the MediaTek-provided
scripts/genio-account-setup.py(symlinked by therepotool at manifest sync time, or run manually from the project root) to configure your environment for HTTPS fetching from Git01.
Before building the IoT Yocto image, please refer to the following links to correctly set up your build environment:
Additional Package
More packages need to be installed in addition to packages mentioned in Setup Build Environment:
$ sudo apt install libssl-dev
Building
Step 1: Download recipes
The rity/scarthgap manifest branch is a development branch that is updated every week, so its tip does not correspond to the PR1 snapshot. To reproduce exactly this PR1 pre-release, pin the manifest to the PR1 snapshot tag instead of the branch tip:
$ mkdir iot-yocto; cd iot-yocto
$ export PROJ_ROOT=`pwd`
$ repo init -u https://gitlab.com/mediatek/aiot/bsp/manifest.git -b refs/tags/rity-scarthgap-v26.1-pr1
$ repo sync -j 12
The rity-scarthgap-v26.1-pr1 tag points at manifest commit 04aa89d9.
If you prefer to track the latest in-development code instead of this PR1 snapshot, replace
refs/tags/rity-scarthgap-v26.1-pr1with the branch namerity/scarthgap. Note that the branch tip changes weekly and may differ from this pre-release.
If you have completed the Git01 account setup,
repo syncwill symlinkscripts/genio-account-setup.pyinto the project root. Run it once to configure your Git01 HTTPS credentials before the NDA recipes are fetched.
Step 2: Configure build environment
$ export TEMPLATECONF=$PROJ_ROOT/src/meta-rity/meta/conf/templates/default
$ source src/poky/oe-init-build-env
$ export BUILD_DIR=`pwd`
Step 3: Edit local.conf
$ echo 'NDA_BUILD = "1"' >> $BUILD_DIR/conf/local.conf
$ echo 'DISTRO_FEATURES:append = " mt8894-apusys"' >> $BUILD_DIR/conf/local.conf
$ echo 'DL_DIR = "${TOPDIR}/../downloads"' >> $BUILD_DIR/conf/local.conf
$ echo 'SSTATE_DIR = "${TOPDIR}/../sstate-cache"' >> $BUILD_DIR/conf/local.conf
NDA_BUILD = "1"produces the full image and fetches the private components from Git01 (this requires a valid Git01 account). As of Pre-Release 1, Genio Pro 5100 EVK only supports NDA_BUILD.mt8894-apusysis mandatory to enable the NPU (APUSYS) support for Genio Pro 5100 EVK.
Note that for the on-board PCIe to USB hub to work, a commercially licensed proprietary firmware is required.
Please visit https://www.renesas.com/en/products/upd720201?tab=software-tools to read the license terms and download and install the firmware
if you want to enable USB 3.0 Type-A portsCON5301,CON5302andCON5303.If and only if you have read and agree to the license terms, accept the license by adding the line
LICENSE_FLAGS_ACCEPTED:append = " commercial-Renesas-EULA"to yourlocal.conffile.
Step 4: Fetch and build image
The Genio Pro 5100 EVK boots from UFS storage and uses a single MACHINE:
MACHINE=genio-pro-5100-evk
$ export MACHINE=genio-pro-5100-evk
$ bitbake rity-demo-image
You can also build rity-bsp-image instead to reduce the image size.
Note: Genio Pro 5100 v26.1-dev is at development stage. Some subsystems may still be in progress and are subject to change in later pre-releases.
Please refer to the release notes and feature table above for the current support status and limitation.
Hardware Settings
For further hardware details, please refer to the document MT8894 Evaluation Kit User Guide.
The document is not publicly available and is provided separately with the EVK board.
Major Design Changes and Development Notes
The BSP support for Genio Pro 5100(MT8894) lands in a set of new branches and recipes:
- The Yocto kernel recipe for machine
genio-pro-5100-evkislinux-mtk-staginginstead oflinux-mtk. - The kernel branch name is
mtk-staginginstead ofmtk-v6.6. - The bootloader is currently packaged into a single FIP binary located in UFS
ufsboot0, built by recipeu-boot-fip.
ThebootloadersGPT partition still exists in the disk image but it is currently empty. - The download agent has changed from recipe
lktou-boot-da. The implementation of the download agent for MT8894 has changed
from LK (Little Kernel) to Trusted-Firmware-A and U-Boot. - The U-Boot branch name is
mtk-staginginstead ofmtk-v2022.10. - The Trusted-Firmware-A branch name is also
mtk-staging.
The branch name mtk-staging means that these branches are periodically rebased on top of the upstream mainline branch.
This means the git history of these mtk-staging branches is unstable and can change anytime.
IoT Yocto v26.1-dev Pre-Release 1 is still capable of building images for other active Genio SoCs and EVKs, e.g. genio-720-evk-ufs.
However, other Genio SoCs continue to use the same recipes and BSP branches as in v26.0.
Only the Genio Pro 5100 (MT8894) BSP is supported by the new recipes and branches.