Genio Pro 5100 Pre-Release 1

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.

:warning: 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.

:information_source: 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:

https://download.mediatek.com/aiot/download/prebuilt/v26.1-pr/scarthgap_k7.99_v26.1_genio-pro-5100-evk_private_260930090617_dev.tar.gz

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-flash will 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.

:information_source: Info

A known issue: after flashing, the fastboot reboot command may return FAILED (Status read failed ...), but the board does in fact reboot.

Booting and Login

After flashing:

  1. Connect UART0 to USB 2.0 Type C (CON2801) to your workstation PC
  2. Connect USB3_DP TypeC (CON5701) to your workstation PC
  3. Configure your serial terminal to use baud rate 921600.
  4. Press the on-board RST button to perform a hardware reset

Then:

  1. Log in on the UART0 console using account root (no password required).

    :information_source: Info

    The UART0 baud rate on Genio Pro 5100 is 921600, the same as other Genio EVK bootloaders.

  2. You can also use adb shell and adb push / adb pull to transfer files.

    • adb reboot is not supported.
  3. 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/Linux
    

    and 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:

  • :white_check_mark: = enabled and can be evaluated with Genio Pro 5100 EVK.
  • :check_mark: = enabled in BSP, but cannot be verified on the out-of-box EVK configuration.
  • :cross_mark: = 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 :white_check_mark:
Boot Bootloader :: U-Boot :white_check_mark:
Boot Boot Storage :: UFS :white_check_mark:
Boot OS Boot Device :: UFS :white_check_mark:
Boot Boot Standard :: FIP Boot :white_check_mark:
Linux Kernel Version :: Kernel Y26 :white_check_mark:
Linux Kernel Kernel :: 64-bit :white_check_mark:
Yocto 5.0 Scarthgap (LTS) :white_check_mark:
System Watchdog :white_check_mark:
Power Mgmt Kernel :: PMIC (Regulator framework) :white_check_mark:
Power Mgmt Clock Manager (Linux CCF) :white_check_mark:
Power Mgmt Thermal Framework :white_check_mark:
Power Mgmt Thermal Framework :: Cooling Device :: CPU :white_check_mark:
Power Mgmt Thermal Framework :: Cooling Device :: External Fan :white_check_mark:
Power Mgmt DVFS :: cpufreq :white_check_mark:
Power Mgmt DVFS :: gpufreq :white_check_mark:
Power Mgmt Auto Power On :white_check_mark:
Display TX :: External Bridge :: DSI to HDMI® :: IT6162C :white_check_mark:
Display TX :: Single Display :: DSI-to-HDMI® :white_check_mark:
Display TX :: Single Display :: eDP :check_mark:
Display Display Server :: Wayland :white_check_mark:
Display Display Server :: Wayland :: Weston :white_check_mark:
Display Direct Render Manager (DRM) :white_check_mark:
Display Linux Framebuffer (fbdev) :white_check_mark:
Audio IN :: I2S :white_check_mark:
Audio OUT :: I2S :white_check_mark:
Audio OUT :: I2S to HDMI® :: IT6162C :cross_mark:
Audio ALSA-lib :white_check_mark:
GPU Arm Mali GPU Driver Stack :: MESA Panfrost :white_check_mark:
GPU Graphics API :: EGL :white_check_mark:
GPU Graphics API :: OpenGL ES :white_check_mark:
GPU Graphics API :: Vulkan :white_check_mark:
GPU Computation API :: OpenCL :cross_mark:
AI/ML NeuroPilot :: Analytical AI :: Host Compiler :: Ubuntu 22.04 (x86_64) :white_check_mark:
AI/ML NeuroPilot :: Analytical AI :: Benchmark Tool :white_check_mark:
AI/ML NeuroPilot :: GenAI :: LLM Inference Tool :white_check_mark:
AI/ML NeuroPilot :: GenAI :: VLM Inference Tool :white_check_mark:
AI/ML TFLite Interpreter :: Stable Delegate :: NPU Backend :white_check_mark:
AI/ML ONNXRuntime :: CPU-EP :: CPU Backend :white_check_mark:
AI/ML ONNXRuntime :: Neuron-EP :: NPU Backend :white_check_mark:
AI/ML NNStreamer :white_check_mark:
Peripheral I2C :white_check_mark:
Peripheral UART :white_check_mark:
Peripheral UART :: DMA :white_check_mark:
Peripheral UART :: HW Flow Control (4-wire) :white_check_mark:
Peripheral USB :: TYPE-C :: USB 3.0 :white_check_mark:
Peripheral USB :: 2.0 Host Only :white_check_mark:
Peripheral USB :: 2.0 Device Only :white_check_mark:
Peripheral USB :: 3.0 Host Only :white_check_mark:
Peripheral USB :: 3.0 Device Only :white_check_mark:
Peripheral USB :: UVC :white_check_mark:
Peripheral PCIe :: Gen4 1L / 2L :white_check_mark:
Peripheral SPI :: Master :white_check_mark:
Peripheral PWM :white_check_mark:
Peripheral Linux :: GPIO :white_check_mark:
Peripheral MSDC :: SD Card :white_check_mark:
Peripheral Storage :: UFS :white_check_mark:
Peripheral Ethernet :: Gigabit (RGMII) :white_check_mark:
Peripheral CAN :: MCP2518 (SPI) + MCP2562 :white_check_mark:
Wi-Fi/BT (MT7925) Wi-Fi :: Wi-Fi 7 :white_check_mark:
Wi-Fi/BT (MT7925) Wi-Fi :: Wi-Fi 7 :: MLO :white_check_mark:
Wi-Fi/BT (MT7925) Wi-Fi :: STA :white_check_mark:
Wi-Fi/BT (MT7925) Bluetooth :: Bluetooth 5.4 :white_check_mark:
Wi-Fi/BT (MT7925) Bluetooth :: Host :: BlueZ :white_check_mark:
Wi-Fi/BT (MT7925) Bluetooth :: Host :: BlueZ :: GATT :white_check_mark:
Wi-Fi/BT (MT7925) Bluetooth :: Host :: BlueZ :: HID :white_check_mark:
Wi-Fi/BT (MT7925) Bluetooth :: Host :: BlueZ :: HoGP :white_check_mark:
App Framework Container :: Docker :white_check_mark:
Tool Flash Tool :: x86_64 :: Windows 11 :white_check_mark:
Tool Flash Tool :: x86_64 :: Ubuntu 22.04 :white_check_mark:
Tool Build Env :: x86_64 :: Ubuntu 22.04 :white_check_mark:
Tool ADB (Android Debug Bridge) :white_check_mark:

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:

  • :white_check_mark: = enabled in PR1.
  • PR2 (11/M) = planned for PR2 (mid-November 2026).
  • :cross_mark: = not enabled / out of scope.
Category Port Label (ID) Enabled
Power MINI DIN-DC 12V (CON401) :white_check_mark:
Power 12V for FAN (CON3601) :white_check_mark:
Power Type C for current monitor (CON801) PR2 (11/M)
Ethernet 1GbE Ethernet (J4801) :white_check_mark:
Ethernet 2.5Gb Ethernet (CON5001) PR2 (11/M)
Connectivity PCIe M.2 Key E For Wi-Fi card (CON3301) :white_check_mark:
Connectivity SMA Conn. (CON5802) :white_check_mark:
Connectivity SMA Conn. (CON5803) :white_check_mark:
USB & storage USB3 TYPE A (CON5301) :white_check_mark:
USB & storage USB3 TYPE A (CON5302) :white_check_mark:
USB & storage USB3 TYPE A (CON5303) :white_check_mark:
USB & storage USB 2.0 Type-A (CON2701) :white_check_mark:
USB & storage USB 2.0 Type-C (CON2601) :white_check_mark:
USB & storage Micro SD (CON4002) :white_check_mark:
USB & storage & Display USB3_DP TypeC (CON5701) — USB Gadget (ADB) only; DPoC display and USB Host functions not available :white_check_mark:
Display & Touch HDMI Con. (CON501) :white_check_mark:
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) :white_check_mark:
Audio HDMI Con. (CON501) PR2 (11/M)
Audio Audio Board Header (CON5801) PR2 (11/M)
Audio Audio (ADC) Board Header (J5802) :cross_mark:
Camera Camera CSI-2 4 lane (CON4501) :cross_mark:
Camera Camera CSI-5 4 lane (CON4502) :cross_mark:
Camera IPEX 30 pin (CON4401) :cross_mark:
Camera CSI-3 CPHY (CON3901) :cross_mark:
Peripheral Raspberry Pi HATs (J1919) — RPi UART, GPIO, SPI, I2C, PWM, I2S :white_check_mark:
Peripheral CAN FD (U4604) :white_check_mark:
Peripheral UART2 (CON1809) :white_check_mark:
Peripheral UART3 (CON1808) :cross_mark:
Peripheral SPI5 (CON4601) :cross_mark:
Keypad Power Key (SW2801) PR2 (11/M)
Keypad Reset Key (SW2804) :white_check_mark:
Keypad Volume up (SW2802) PR2 (11/M)
Keypad Volume down (SW2803) PR2 (11/M)
Debug UART0 to USB 2.0 Type C (CON2801) :white_check_mark:
Debug Tooling Test Con. (J1401) :cross_mark:
Debug JTAG (CON1901) :cross_mark:
High Speed External Storage PCIe M.2 Key M for NVMe (CON3501) :white_check_mark:
5G/GPS USB3.0 M.2 Key B for 5G/GPS (CON5402) :cross_mark:
5G/GPS Nano SIM (CON3401) :cross_mark:
Peripheral Connectivity SDIO M.2 Key E For WiFi Card (CON3402) :cross_mark:

Note: The three USB3 TYPE A ports (CON5301 to CON5303) 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:

  1. Sign up for a Genio Developer account and validate it via email.
  2. Sign the electronic NDA for Genio from the Genio Developer Account Center (“Advanced Resource Access”). Wait until the status shows Valid.
  3. 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.
  4. 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.
  5. Run the MediaTek-provided scripts/genio-account-setup.py (symlinked by the repo tool 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-pr1 with the branch name rity/scarthgap. Note that the branch tip changes weekly and may differ from this pre-release.

If you have completed the Git01 account setup, repo sync will symlink scripts/genio-account-setup.py into 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-apusys is 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 ports CON5301, CON5302 and CON5303.

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 your local.conf file.

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-evk is linux-mtk-staging instead of linux-mtk.
  • The kernel branch name is mtk-staging instead of mtk-v6.6.
  • The bootloader is currently packaged into a single FIP binary located in UFS ufsboot0, built by recipe u-boot-fip.
    The bootloaders GPT partition still exists in the disk image but it is currently empty.
  • The download agent has changed from recipe lk to u-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-staging instead of mtk-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.