IoT Yocto v22.2 - 2022 Dec 12

IoT Yocto v22.2 release supports two hardware configurations based on Yocto Kirkstone and Linux 5.15:

  • Genio 1200 lands on Linux Kernel 5.15 (mtk-v5.15-dev) and Yocto Kirkstone.

  • Genio 350 has been migrated to Linux Kernel 5.15 (mtk-v5.15-dev) and Yocto Kirkstone, same as Genio 1200.

Supported Hardware

This release supports following boards based on MT8365(Genio 350) and MT8395(Genio 1200) MediaTek SoC families:

Notable Changes in v22.2

  • mtk-v5.15-dev kernel is no longer compatible with Yocto Dunfell:

    This is due to more drivers being maintained out-of-tree in v22.2, and the changes are not compatible with Dunfell recipes in meta-mediatek-bsp. If you need to use Yocto Dunfell with Genio 350, please keep using mtk-v5.10 instead.

  • Partition adjustment:

    v22.2 merges the home and rootfs partitions into a single partition. This allows developers to expand the rootfs partition size to install additional packages for evaluation, without rebuilding the entire image.

  • Additional pre-integrated packages in prebuilt images:

    The downloadable prebuilt images (rity-demo-image) has integrated more packages for evaluation:

    If you’d like to build images without these additional evaluation packages, please build the new image recipe rity-bsp-image instead.

  • multilib support disabled by default:

    v22.2 now disables multilib by default. As a result, there are no lib64 directory in root file system. All the libraries in lib are now 64-bit. You could still enable multilib support for your own projects if 32-bit support is required. However, all the Genio board support prebuilt binaries are available in 64-bit only.

  • Move more proprietary drivers out-of-tree and requires loading additional DTBO:

    Drivers that do not conform to upstream Linux LTS 5.15 interfaces or behaviors are being moved outside of kernel source tree, to minimize impact to upstream drivers. In v22.2, the IoT Yocto’s video codec driver for Genio 1200 must be enabled by loading additional DTBO file video.dtbo:

    genio-flash --load-dtbo video.dtbo
    

Prebuilt Images Download

Board

Prebuilt Image

MD5 Checksum

Genio 350-EVK

download private image

fc17b774d6fac072bb212058357aafac

Genio 350-EVK

download public image

13b8309a8e40b9a6d554e2c665c8b151

Public & Private Prebuilt Images

IoT Yocto v22.2 is available in two different packages groups:

  • You don’t need a GitLab account to download both private and public prebuilt images, but you need to agree to the Software License Agreement.

  • You don’t need a GitLab account to build the public image configurations.

  • You need a GitLab account and contracts to MediaTek to access and build the private image.

Public images are built with packages that are available without explicit access permissions to the GitLab group. This lacks some proprietary features, and some proprietary components are provided in binary-only format.

Private images, on the other hand, requires access to private repositories in the GitLab group. In this release, the private image provides these additional features on top of the public configuration:

  • Xtensa-ANN support on Genio 350-EVK

  • Neuron SDK support on Genio 1200-demo (deprecated in v23.1)

  • MT7663 proprietary Wi-Fi driver on Genio 350-EVK

  • eFuse writer

  • ISP support on Genio 1200-demo (deprecated in v23.1)

Source Code Download

Important

Please read and agree the Software License Agreement before accessing or using IoT Yocto software. If you do not agree to the terms and conditions of the Software License Agreement, you must not access or use the software.

To download IoT Yocto recipes for v22.2 release, use the tag rity-kirkstone-v22.2 to download Yocto Kirkstone recipes for both Genio 1200 and Genio 350 boards:

repo init -u https://gitlab.com/mediatek/aiot/bsp/manifest.git -b refs/tags/rity-kirkstone-v22.2

To fetch source code and build images using these Yocto recipes, please refer to steps in Get Started with IoT Yocto

Private (NDA) configuration

In v22.2 release configures to public image by default (NDA_BUILD = "0"). To build the private image configuration, set the configuration flag NDA_BUILD = "1" in local.conf:

echo NDA_BUILD = \"1\" >> ${BUILD_DIR}/conf/local.conf

Before building with the bitbake commands.

Please refer to Get Started with IoT Yocto for detailed steps.

Tools

genio-tools is released to load built images to the development boards. Please refer to Get Started with IoT Yocto and Genio Tools for detailed usage.

Please note that there are new DTBOs added in this release:

Major Software Package Versions

  • Yocto LTS Kirkstone 4.0.5

  • Linux Kernel based on LTS version 5.15.37

  • ATF version v2.6

  • U-Boot upgraded to v2022.10

  • OPTEE version 3.16

Feature Support Status - MT8395(Genio 1200)

New Features in v22.2 for MT8395(Genio 1200)

  • A reference secure boot flow support is now available for MT8395 (requires NDA).

  • Wi-Fi & Bluetooth connectivity module AzureWave AW-XB468NF now supports: - additional BlueZ profiles (HID, HoG) - Wi-Fi STA mode.

  • DSI display interface on Genio 1200-Demo board and related multi-display combinations (DSI+DP, DSI+HDMI) are now enabled.

  • eDP display throughput increase from 2K60Hz to 4K60Hz on MT8395 / Genio 1200-Demo board.

  • Additional ROS2 Yocto meta-layer support for MT8395 on Kirkstone and Kernel 5.15. This is provided as a separate layer and is not included in prebuilt images.

  • Ethernet TSN test environment integration for MT8395 / Genio 1200-Demo board. A test guide documentation and pre-test report are provided (requires NDA).

  • Preliminary support for MT8395 internal ISP and IMX214 sensor. The is support is in early stages and currently it only serves purpose for CSI0 interface hardware verification. (requires NDA). (Note: If MT8395 internal ISP is enabled, there will be additional 125 V4L2 devices under /dev. Please refer to V4L2 Device Node.)

  • Maximum throughput of the H.264 & H.265 hardware video encoder upgrades to 4K60 from 4K30 for MT8395.

Genio 1200-Demo Board DTBOs in v22.2

Certain external hardware components, and some software modules, are required to be enabled by loading dtbo files. The full list of DTBOs for Genio 1200-Demo board is:

  • video.dtbo : to enable hardware video encoders and decoders

  • display-dp.dtbo : to enable DisplayPort (will disable the default HDMI output)

  • display-dsi.dtbo : to enable DSI display path and panel

  • display-edp4k.dtbo: to enable 4K eDP display path and panel

  • panel-boe-ne135fbm.dtbo : to enable 2K eDP display path and panel

  • camera-imx214-csi0.dtbo : to enable ISP + IMX214 on CSI0

Please refer to this page to load DTBOs during flashing process.

Notable Software Limitations for MT8395(Genio 1200) in v22.2

  • DisplayPort output only supports DisplayPort over Type C(DPoC), direct output from a DisplayPort connector is not supported.

  • Low power performance during suspend is not fully optimized.

Feature List for Genio 1200-Demo Board in v22.2

These symbols represent the supporting status:

  • V: function enabled by software and available on hardware board.

  • O: software integrated but cannot validate due to hardware board limitation.

  • --: not supported in this release; development on-going.

MT8395 Supported Features

Category

Feature

K5.15 + Kirkstone

Requires NDA/SLA

HDK

Genio 1200-Demo Board

V

Boot

Bootloader :: TF-A

V

Boot

Bootloader :: U-Boot

V

Boot

Boot Storage :: eMMC

V

Boot

Boot Storage :: UFS

O

Boot

Boot Device :: eMMC

V

Boot

Boot Device :: UFS

O

Boot

Boot Device :: SD Card

Boot

Boot Device :: USB

Boot

OTA

Boot

SystemReady IR

Linux Kernel

Version :: Kernel 5.15

V

Linux Kernel

Kernel :: 64-bit

V

Yocto

3.1 Dunfell (LTS)

Yocto

4.0 Kirkstone (LTS)

V

System

RTC

V

System

Watchdog

V

Security

TEE OS :: OP-TEE

V

Security

Secure Boot (root of trust)

V

V

Security

Hardware KDF (Key Derivation Function)

V

V

Security

Anti-Rollback

Security

Anti-Clone

Security

Full Disk Encryption

Security

File Base Encryption

Security

SELinux

Power Mgnt

Suspend to Idle (S0)

Power Mgnt

Suspend to RAM (S3)

V

Power Mgnt

Suspend to Disk (S4)

Power Mgnt

USB Host Suspend & Remote Wakeup

V

Power Mgnt

CPU Idle

V

Power Mgnt

CPU Hotplug

V

Power Mgnt

Power Charger

Power Mgnt

PMIC (Regulator Framework)

V

Power Mgnt

Clock Manager (Linux CCF)

V

Power Mgnt

Thermal Framework (Governor/Cooling)

V

Power Mgnt

DVFS :: cpufreq

V

Power Mgnt

DVFS :: gpufreq

V

Power Mgnt

Auto Power On

Image

HW Decode :: JPEG

Image

HW Encode :: JPEG

V

Image

GStreamer :: video4linux :: v4l2jpegenc

V

Video Processing

MDP (Multimedia Data Path)

V

Video Processing

GStreamer :: video4linux :: v4l2convert

V

Camera

UVC

V

Camera

CAMSV+YUV

Camera

ISP+RAW

V

V

Camera

ISP :: AE

V

V

Camera

ISP :: AWB

V

V

Camera

ISP :: AF

O

V

Camera

ISP :: MCNR

V

V

Camera

Single Sensor :: RAW(4 lane)

V

V

Camera

Multi-Sensor :: RAW(4 lane)+RAW(4 lane)

Camera

RAW Sensor :: IMX214

V

Camera

Gstreamer :: video4linux :: v4l2src

V

Camera

libcamera :: simplepipe

Video

HW Decode :: H.264

V

Video

HW Decode :: H.265

V

Video

HW Decode :: VP8

V

Video

HW Decode :: VP9

V

Video

HW Decode :: AV1

Video

HW Decode :: MPEG-4

V

Video

HW Encode :: H.264

V

Video

HW Encode :: H.265

V

Video

GStreamer :: video4linux2 :: v4l2h264dec

V

Video

GStreamer :: video4linux2 :: v4l2h265dec

V

Video

GStreamer :: video4linux2 :: v4l2vp8dec

V

Video

GStreamer :: video4linux2 :: v4l2vp9dec

V

Video

GStreamer :: video4linux2 :: v4l2mpeg4dec

V

Video

GStreamer :: video4linux2 :: v4l2h264enc

V

Video

GStreamer :: video4linux2 :: v4l2h265enc

V

Display

TX :: Interface :: DSI

V

Display

TX :: Interface :: DSI :: Touch :: Goodix GT9271

V

Display

TX :: Interface :: eDP

V

Display

TX :: Interface :: HDMI

V

Display

TX :: Interface :: DP (Type-C)

V

Display

TX :: Interface :: DP (Direct Output)

Display

TX :: Single Display :: DSI

V

Display

TX :: Single Display :: eDP

V

Display

TX :: Single Display :: HDMI

V

Display

TX :: Single Display :: DP

V

Display

TX :: Multi-Display :: DSI + HDMI

V

Display

TX :: Multi-Display :: DSI + DP

V

Display

TX :: Multi-Display :: eDP + HDMI

V

Display

TX :: Multi-Display :: eDP + DP

V

Display

TX :: Multi-Display :: eDP + DSI

Display

TX :: Multi-Display :: DP + HDMI

Display

TX :: Multi-Display :: eDP + DP + HDMI

Display

TX :: Wi-Fi Display

Display

TX :: Boot Logo

Display

PQ : Gamma

Display

Compositor :: Wayland :: Weston

V

Display

GStreamer :: waylandsink

V

Display

Backend :: Direct Render Manager

V

Audio

IN :: PDM :: DMIC

V

Audio

IN :: I2S :: PIN

V

Audio

IN :: UAC :: 1.0

V

Audio

IN :: Headset :: JACK

V

Audio

OUT :: Headset :: JACK

V

Audio

OUT :: UAC :: 1.0

V

Audio

OUT :: DP Audio

V

Audio

OUT :: HDMI Audio

V

Audio

OUT :: I2S :: PIN

V

Audio

Jack :: Detection

Audio

Gstreamer :: alsasink

V

Audio

ALSA-lib

V

GPU

EGL :: Display Backend :: Wayland

V

GPU

Graphics API :: EGL :: 1.4

V

GPU

Graphics API :: OpenGL ES :: 3.2

V

GPU

Graphics API :: Vulkan :: 1.2

V

GPU

Computation API :: OpenCL :: 3.0

V

AI/ML

TFLite Interpreter :: ArmNN Delegate :: CPU Backend

V

AI/ML

TFLite Interpreter :: ArmNN Delegate :: GPU Backend

V

AI/ML

Neuron SDK :: Neuron Runtime :: APUSYS Backend

V

V

AI/ML

Neuron SDK :: Compiler :: ncc_tflite

V

V

Peripheral

I2C

V

Peripheral

UART

V

Peripheral

UART :: DMA

Peripheral

USB :: TYPE-C :: MT6360 + IT5205

V

Peripheral

USB :: 2.0 Host Only

V

Peripheral

USB :: 2.0 Device Only

V

Peripheral

USB :: 2.0 Host+Device (Dual-Role-Switch)

V

Peripheral

USB :: 3.0 Host Only

V

Peripheral

USB :: 3.0 Device Only

V

Peripheral

USB :: 3.0 Host+Device (Dual-Role-Switch)

V

Peripheral

PCIe :: Gen2 (1 lane)

V

Peripheral

PCIe :: Gen3 (2 lane)

V

Peripheral

SPI :: Master

V

Peripheral

PWM :: General

O

Peripheral

PWM :: Display

V

Peripheral

GPIO

V

Peripheral

MSDC :: eMMC

V

Peripheral

MSDC :: SD Card

V

Peripheral

MSDC :: SDIO

O

Peripheral

KeyPad Scanner

Peripheral

Ethernet :: Gigabit (RGMII)

V

Peripheral

Ethernet :: TSN (Time Sensitive Network)

V

Peripheral

Ethernet :: WoL (Wake-on-Lan)

MT7921

PCIe Module :: AzureWave (#AW-XB468NF)

V

MT7921

Wi-Fi :: Wi-Fi 6

V

MT7921

Bluetooth :: Bluetooth 5.2

V

MT7921

Bluetooth :: Host :: BlueZ

V

MT7921

Bluetooth :: Host :: BlueZ :: GATT

V

MT7921

Bluetooth :: Host :: BlueZ :: HID

V

MT7921

Bluetooth :: Host :: BlueZ :: HoGP

V

MT7921

Wi-Fi :: WPA3

V

MT7921

Wi-Fi :: STA

V

MT7921

Wi-Fi :: SoftAP

Modem

5G :: Quectel T700 PCIe Module

O

V

App Framework

Qt (Yocto meta-qt)

V

App Framework

ROS (Yocto meta-ros)

V

Tool

Flash Tool + Download Agent

V

Tool

ADB (Android Debug Bridge)

V

Tool

SDK :: Yocto SDK

V

Tool

Stress Test Suite

V

Tool

Benchmark Suite

V

Tool

Security :: eFuse Writer

V

V

Tool

Ethernet :: TSN Test Suite

V

V

Tool

ISP :: ImagiQ (ISP Tuning Tool)

Tool

ISP :: CCT (Camera Calibration Tool)

Demo

AI Demo App (GstInference)

V

Known Issues for Genio 1200 in v22.2

ID

Description

AUTO00206525

[G12000-demo] Video: Once suspend is blocked by USB device mode. Suspend/Resume will fail doing video decode

AUTO00206411

[G12000-demo] Video: Once suspend is blocked by USB device mode. Suspend/Resume will fail doing video encode

AUTO00205311

[G12000-demo] Video: Video playback will terminate after 3.5 hr play in stress test environment

AUTO00206485

[G12000-demo] Video: Kernel Oops when transcoding H.264 FHD content using gstreamer (randomly). Okay with 4K content

AUTO00201126

[G12000-demo] ISP Capture: Random crash after open&close the preview/video/capture streams in stress environment

AUTO00205100

[G12000-demo] ISP Capture: In-consistency exposure result in continues stress capture environment

AUTO00205170

[G12000-demo] ISP Capture: mosaic or broken line on the captured JPEG image (randomly)

AUTO00203844

[G12000-demo] DP: type-c to type-c can’t connect (randomly)

AUTO00199081

[G12000-demo] infra_ao_gce clock core unprepared when entering suspend mode

AUTO00207435

[G12000-demo] wifi: failed to set network with WPA3-SAE

Feature Support Status - MT8365(Genio 350)

New Features in v22.2 for MT8365(Genio 350)

  • Genio 350 has migrated to Kernel v5.15 and Yocto Kirkstone.

  • H.265 hardware video encoder support enabled for Genio 350.

Genio 350-EVK Board DTBOs in v22.2

Certain external hardware components, and some software modules, are required to be enabled by loading dtbo files. The full list of DTBOs for Genio 350-EVK board is:

  • video.dtbo : to enable hardware video encoders and decoders

  • camera-ap1302-ar0430-single-csi0.dtbo : to enable single camera module on CSI0

  • camera-ap1302-ar0430-single-csi1.dtbo : to enable single camera module on CSI1

  • camera-ap1302-ar0430-dual.dtbo : to enable both camera modules on both CSI0 and CSI1

  • net-ethernet.dtbo : to enable the ethernet port (disables the default HDMI output)

  • panel-startek-kd070fhfid015.dtbo : to enable the DSI panel

Please refer to this page to load DTBOs during flashing process.

Notable Software Limitations for MT8365(Genio 350) in v22.2

  • Low power performance during suspend is not optimized for MT8365(Genio 350).

Feature List for Genio 350-EVK Board in v22.2

These symbols represent the supporting status:

  • V: function enabled by software and available on hardware board.

  • O: software integrated but cannot validate due to hardware board limitation.

  • --: not supported in this release; development on-going.

MT8365 Supported Features

Category

Feature

K5.15 + Kirkstone

Requires NDA/SLA

HDK

Genio 350-EVK

V

Boot

Bootloader :: TF-A

V

Boot

Bootloader :: U-Boot

V

Boot

Boot Storage :: eMMC

V

Boot

Boot Device :: eMMC

V

Boot

Boot Device :: SD Card

Boot

Boot Device :: USB

Boot

OTA

Linux Kernel

Version :: Kernel 5.15

V

Linux Kernel

Kernel :: 64-bit

V

Yocto

3.1 Dunfell (LTS)

Yocto

4.0 Kirkstone (LTS)

V

System

RTC

V

System

Watchdog

V

Security

TEE OS :: OP-TEE

V

Security

Secure Boot (root of trust)

V

V

Security

Hardware KDF (Key Derivation Function)

V

V

Security

Anti-Rollback

Security

Anti-Clone

Security

Full Disk Encryption

Security

File Base Encryption

Security

SELinux

Power Mgnt

Suspend to Idle (S0)

Power Mgnt

Suspend to RAM (S3)

V

Power Mgnt

Suspend to Disk (S4)

Power Mgnt

USB Host Suspend & Remote Wakeup

V

Power Mgnt

CPU Idle

V

Power Mgnt

CPU Hotplug

V

Power Mgnt

Power Charger

Power Mgnt

PMIC (Regulator framework)

V

Power Mgnt

Clock Manager (Linux CCF)

V

Power Mgnt

Thermal framework (Governor/Cooling)

V

Power Mgnt

DVFS :: cpufreq

V

Power Mgnt

DVFS :: gpufreq

V

Power Mgnt

Auto Power On

Image

HW Decode :: JPEG

Image

HW Encode :: JPEG

Video Processing

MDP (Multimedia Data Path)

V

Video Processing

GStreamer :: video4linux :: v4l2convert

V

Camera

UVC

V

Camera

CAMSV+YUV

V

Camera

ISP+RAW

Camera

Single Sensor :: YUV(4 lane)

V

Camera

Multi-Sensor :: YUV(4 lane)+YUV(4 lane)

V

Camera

YUV Sensor :: OnSemi AP1302+AR0430

V

Camera

Gstreamer :: video4linux :: v4l2src

V

Camera

libcamera :: simplepipe

V

Video

HW Decode :: H.264

V

Video

HW Decode :: H.265

V

Video

HW Decode :: VP8

V

Video

HW Decode :: VP9

V

Video

HW Decode :: AV1

Video

HW Decode :: MPEG-4

V

Video

HW Encode :: H.264

V

Video

HW Encode :: H.265

V

Video

GStreamer :: video4linux2 :: v4l2h264dec

V

Video

GStreamer :: video4linux2 :: v4l2h265dec

V

Video

GStreamer :: video4linux2 :: v4l2vp8dec

Video

GStreamer :: video4linux2 :: v4l2vp9dec

V

Video

GStreamer :: video4linux2 :: v4l2mpeg4dec

V

Video

GStreamer :: video4linux2 :: v4l2h264enc

V

Video

GStreamer :: video4linux2 :: v4l2h265enc

V

Display

TX :: Interface :: DSI

V

Display

TX :: Interface :: DSI :: Touch :: Goodix GT9271

V

Display

TX :: Interface :: DPI to HDMI Bridge:: IT66121FN

V

Display

TX :: Multi-Display :: DSI + HDMI

V

Display

TX :: Wi-Fi Display

Display

TX :: Boot Logo

Display

PQ : Gamma

Display

Compositor :: Wayland :: Weston

V

Display

GStreamer :: waylandsink

V

Display

Backend :: Direct Render Manager

V

Audio

IN :: PDM :: DMIC

V

Audio

IN :: I2S :: AMIC

V

Audio

IN :: UAC :: 1.0

V

Audio

IN :: Headset :: JACK

V

Audio

OUT :: Analog :: JACK

V

Audio

OUT :: Headset :: JACK

V

Audio

OUT :: UAC :: 1.0

V

Audio

OUT :: HDMI Audio

V

Audio

Jack :: Detection

Audio

Gstreamer :: alsasink

V

Audio

ALSA-lib

V

GPU

EGL :: Display Backend :: Wayland

V

GPU

Graphics API :: EGL :: 1.4

V

GPU

Graphics API :: OpenGL ES :: 3.2

V

GPU

Graphics API :: Vulkan :: 1.2

V

GPU

Computation API :: OpenCL :: 3.0

V

AI/ML

TFLite Interpreter :: ANN Delegate :: VP6 Backend

V

V

AI/ML

TFLite Interpreter :: ArmNN Delegate :: CPU Backend

V

AI/ML

TFLite Interpreter :: ArmNN Delegate :: GPU Backend

V

Peripheral

I2C

V

Peripheral

UART

V

Peripheral

UART :: DMA

Peripheral

USB :: 2.0 Host Only

V

Peripheral

USB :: 2.0 Host+Device (Dual-Role-Switch)

V

Peripheral

SPI :: Master

V

Peripheral

PWM :: General

V

Peripheral

PWM :: Display

V

Peripheral

GPIO

V

Peripheral

MSDC :: eMMC

V

Peripheral

MSDC :: SD Card

V

Peripheral

MSDC :: SDIO

V

Peripheral

KeyPad Scanner

V

Peripheral

Ethernet :: 10M/100M (RMII)

V

Peripheral

Ethernet :: WoL (Wake-on-Lan)

MT7663

SDIO Module :: AzureWave (AW-CB451NF)

V

MT7663

Wi-Fi :: Wi-Fi 5

V

V

MT7663

Wi-Fi :: WPA3 :: STA

V

V

App Framework

Qt (Yocto meta-qt)

V

App Framework

ROS (Yocto meta-ros)

V

Tool

Flash Tool + Download Agent

V

Tool

ADB (Android Debug Bridge)

V

Tool

SDK :: Yocto SDK

V

Tool

Stress Test Suite

V

Tool

Benchmark Suite

V

Tool

Security :: eFuse Writer

V

V

Demo

AI Demo App (GstInference)

V

Known Issues for Genio 350 in v22.2

ID

Description

AUTO00206514

[G350-EVK] Video: Video playback will start to jitter after 1 hr play in stress test environment

AUTO00200978

[G350-EVK] HDMI: Display may observe some broken line when screen content changes rapidly (special scenario)

AUTO00207429

[G350-EVK] Camera: AR0430+AP1302 camera module will freeze if it is under a low ambient light environment during the boot process