IoT Yocto v22.1 - 2022 Aug 03
IoT Yocto v22.1 release provides two hardware configurations supported by separate software configurations:
Genio 1200 lands on Linux Kernel 5.15 (
mtk-v5.15-dev
) and Yocto Kirkstone.Genio 350 is supported by Linux Kernel 5.10 (
mtk-v5.10
) and Yocto Dunfell, same as the previous release.
We plan to upgrade the support for Genio 350 to Kernel 5.15 and Yocto Kirkstone in future releases.
Supported Hardware
This release supports following boards based on MT8365(Genio 350) and MT8395(Genio 1200) MediaTek SoC families:
Genio 1200-Demo Board (deprecated in v23.1)
Notable New Features and Changes in v22.1
MT8395 SoC and Genio 1200-demo (deprecated in v23.1) board support on Linux kernel version 5.15, notably:
AI Processor Unit (APU) support through MediaTek Neuron SDK for MT8395
Hardware video decoder and encoder support for MT8395
HDMI & DisplayPort support for MT8395
Wi-Fi & Bluetooth connectivity with external M.2 MT7921 PCIe module (AzureWave AW-XB468NF) for Genio 1200-demo (deprecated in v23.1) board
In this release, the template configuration is builds Public images that skips access controlled repositories. Please update the NDA_BUILD config if you have access to proprietary source packages.
Prebuilt Images
Board |
Prebuilt Image |
MD5 Checksum |
---|---|---|
|
||
|
Public & Private Prebuilt Images
IoT Yocto v22.1 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 AIoT 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 access permissions to AIoT GitLab group. This lacks some proprietary features and also some proprietary components are provided in binary-only format.
Private images, on the other hand, requires access to private repositories in AIoT 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
Software Packages
Important
Please read and agree AIoT Software License Agreement before accessing or using IoT Yocto software. If you do not agree to the terms and conditions of AIoT Software License Agreement, you must not access or use the software.
To download IoT Yocto recipes for v22.1 release, determine the SoC and board hardware you’d like to use first:
Genio 1200
For MT8395 & Genio 1200-demo (deprecated in v23.1), use the following manifest:
repo init -u https://gitlab.com/mediatek/aiot/bsp/manifest.git -b refs/tags/rity-kirkstone-v22.1
Genio 350
For MT8365 & Genio 350-EVK, use the following manifest:
repo init -u https://gitlab.com/mediatek/aiot/bsp/manifest.git -b refs/tags/rity-dunfell-v22.1
Private (NDA) configuration
In v22.1 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.
Feature Support Status - MT8365(Genio 350)
Yocto LTS Dunfell 3.1
Linux Kernel based on LTS version 5.10.113
ATF upgraded to v2.6
U-Boot upgraded to v2022.01
OPTEE upgraded to 3.16
These symbol represents 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.
Category |
Feature |
Dunfell with Kernel 5.10 |
---|---|---|
Boot |
Bootloader :: TF-A |
V |
Boot |
Bootloader :: U-Boot |
V |
Boot |
Boot Device :: eMMC |
V |
Linux Kernel |
Version :: Kernel 5.10 |
V |
Linux Kernel |
Kernel :: 64-bit |
V |
Yocto |
3.1 Dunfell (LTS) |
V |
Yocto |
4.0 Kirkstone (LTS) |
– |
Security |
TEE OS :: OP-TEE |
V |
Security |
Secure Boot (root of trust) |
V |
Power Mgnt |
Suspend to RAM (S3) |
V |
Power Mgnt |
USB Host Suspend & Remote Wakeup |
V |
Power Mgnt |
CPU Idle |
V |
Power Mgnt |
CPU Hotplug |
V |
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 |
Video Processing |
MDP (Multimedia Data Path) |
V |
Video Processing |
GStreamer :: convert plug-in |
V |
Camera |
UVC |
V |
Camera |
YUV Sensor |
V |
Camera |
Gstreamer :: v4l2src plug-ins |
V |
Camera |
libcamera :: simplepipe |
V |
Camera |
Multi-Sensor :: YUV(4)+YUV(4) |
V |
Video |
HW Decode :: H.264 |
V |
Video |
HW Decode :: H.265 |
V |
Video |
HW Decode :: VP9 |
V |
Video |
HW Decode :: MPEG-4 |
V |
Video |
HW Encode :: H.264 |
V |
Video |
HW Encode :: H.265 |
– |
Video |
GStreamer :: video4linux2 plug-ins |
V |
Display |
TX :: External Bridge :: DPI to HDMI :: IT66121FN |
V |
Display |
TX :: MIPI-DSI |
V |
Display |
Multi-Display :: DSI + DPI to HDMI |
V |
Display |
Compositor :: Wayland :: Weston |
V |
Display |
GStreamer :: waylandsink plug-in |
V |
Display |
Backend :: Direct Render Manager |
V |
Display |
I2C :: Touch Panel :: Goodix GT9271 |
V |
Audio |
IN :: PDM :: DMIC |
V |
Audio |
IN :: I2S :: AMIC |
V |
Audio |
IN :: UAC :: 1.0 |
V |
Audio |
OUT :: Analog :: JACK |
V |
Audio |
OUT :: I2S :: JACK |
V |
Audio |
Gstreamer :: alsasink plugins |
V |
Audio |
ALSA-lib |
V |
Audio |
OUT :: HDMI Audio |
V |
GPU |
EGL :: Display Backend :: Wayland |
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 |
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 OTG |
V |
Peripheral |
USB :: 2.0 Host Only |
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 |
App Framework |
Qt (Yocto meta-qt) |
V |
Tools |
Flash Tool :: genio-flash |
V |
Tool |
Factory Tool :: eFuse Writer |
V |
Tool |
ADB (Android Debug Bridge) |
V |
MT7663 |
Wi-Fi :: Wi-Fi 5 |
V |
MT7663 |
SDIO Module :: AzureWave (AW-CB451NF) |
V |
MT7663 |
Wi-Fi :: WPA3 :: STA |
V |
Feature Support Status - MT8395(Genio 1200)
Yocto LTS Kirkstone 4.0.2
Linux Kernel based on LTS version 5.15.37
ATF upgraded to v2.6
U-Boot upgraded to v2022.04
OPTEE upgraded to 3.16
These symbol represents 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.
Category |
Feature |
K5.15 + Kirkstone |
---|---|---|
HDK |
Genio 1200-Demo Board |
V |
Boot |
Bootloader :: TF–A |
V |
Boot |
Bootloader :: U–Boot |
V |
Boot |
Boot Device :: eMMC |
V |
Boot |
Boot Device :: UFS |
O |
Boot |
SystemReady IR |
– |
Linux Kernel |
Kernel :: 64-bit |
V |
Yocto |
3.1 Dunfell (LTS) |
– |
Yocto |
4.0 Kirkstone (LTS) |
V |
Security |
TEE OS :: OP-TEE |
V |
Security |
Secure Boot (root of trust) |
– |
Power Mgnt |
Suspend to RAM (S3) |
V |
Power Mgnt |
USB Host Suspend & Remote Wakeup |
– |
Power Mgnt |
CPU Idle |
V |
Power Mgnt |
CPU Hotplug |
V |
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 |
Camera |
UVC (USB Video Class) |
V |
Camera |
YUV Sensor |
– |
Camera |
RAW Sensor + ISP |
– |
Display |
TX :: HDMI |
V |
Display |
TX :: eDP |
V |
Display |
TX :: DP |
V |
Display |
TX :: MIPI-DSI |
– |
Display |
Multi–Display :: eDP + HDMI |
V |
Display |
Multi–Display :: eDP + DP |
V |
Display |
Compositor :: Wayland :: Weston |
V |
Display |
GStreamer :: waylandsink plug–in |
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 :: I2S :: PIN |
V |
Audio |
Gstreamer :: alsasink plugins |
V |
Audio |
ALSA–lib |
V |
Audio |
Audio Jack Detection |
– |
GPU |
EGL :: Display Backend :: Wayland |
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 |
TFLite Interpreter :: GPU Delegate |
V |
AI/ML |
Neuron SDK :: Neuron Runtime :: APUSYS Backend |
V |
AI/ML |
Neuron SDK :: Compiler :: ncc_tflite |
V |
Peripheral |
I2C |
V |
Peripheral |
UART |
V |
Peripheral |
UART :: DMA |
– |
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 :: Display |
V |
Peripheral |
GPIO |
V |
Peripheral |
MSDC :: eMMC |
V |
Peripheral |
MSDC :: SD Card |
V |
Peripheral |
Storage :: UFS |
O |
Peripheral |
Ethernet :: Gigabit (RGMII) |
V |
App Framework |
Qt (Yocto meta-qt) |
V |
App Framework |
ROS (Yocto meta-ros) |
– |
Tool |
Flash Tool |
V |
Tool |
Factory Tool :: eFuse Writer |
V |
Tool |
ADB (Android Debug Bridge) |
V |
Tool |
SDK :: Yocto SDK |
V |
MT7921 |
Wi-Fi :: Wi-Fi 6 |
V |
MT7921 |
Bluetooth :: Bluetooth 5.2 |
V |
MT7921 |
Bluetooth :: Host :: BlueZ :: GATT |
V |
MT7921 |
PCIe Module :: AzureWave (#AW-XB468NF) |
V |
MT7921 |
Wi-Fi :: WPA3 :: STA |
V |
MT7921 |
Wi-Fi :: WPA3 :: SoftAP |
– |
Image |
HW Decode :: JPEG |
– |
Image |
HW Encode :: JPEG |
– |
Video Processing |
MDP (Multimedia Data Path) |
V |
Video Processing |
GStreamer :: v4l2convert plug-in |
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 |
Notable Software Limitations for MT8395
Video encoder only support to 4K 30fps
Embedded Display Port only support up to 2K 60fps
MIPI-DSI display interfaces are not supported
USB Peripheral/Host dual-role requires timeout when switching roles
Fixed Issues from v22.0.1
Genio 1200-demo: HDMI does not work when eDP is enabled
Genio 1200-demo: Display Port over USB-C port does not work
Known Issues
Genio 350-evk: Instabilities with video encode/decode H.264
Genio 350-evk: Unstable camera frame rate
Genio 350-evk: HDMI resolution switch can be slow
Genio 350-evk: modetest permission denied sometimes
Genio 350-evk: AIOT-1241: Incomplete Suspend/Resume support
Genio 1200-demo: AIOT-1283: UART1 is occupied by firmware and not available for use
Genio 1200-demo: AIOT-1224: DisplayPort audio playback does not resume after suspend/resume operations
Genio 1200-demo: AIOT-1260: Occasionally Weston may fail to start when connected to HDMI display output
Genio 1200-demo: AIOT-1216: DisplayPort may fail to connect to monitors with Type-C receptacles
Genio 1200-demo: AIOT-1266: DisplayPort may fail to show display output after unplugging and replugging the cable
Genio 1200-demo: AIOT-1223: System console may freeze when suspend-resume under heavy stress
Genio 1200-demo: AIOT-1268: infra_ao_gce clock kernel warning when entering suspend Mode
Genio 1200-demo: AIOT-1248: H264 decode failed for resolution < 720P with avimux