i.MX8MM Linux Release B2021.06 (Buildroot)

  • i.MX8M-Mini Linux Release B2021.06 (Buildroot)

    This is a major release for all F&S boards and modules based on the i.MX8M-Mini CPU (Solo, Dual and Quad), i.e. PicoCoreMX8MM. More boards may be added to this family in the future. All these boards can work with software that is created from this release package.

    The release consists of two files:


    This is the main release itself containing all sources, the binary images, the documentation, examples and the toolchain.


    If you copy the contents of this archive to an SD card, you can install our precompiled standard system in a very straightforward and comfortable way on the board. The SD card archive is meant for people who just want to try a release first without having to download the quite large main archive. Its content is also contained in the main release archive, so if you want to download the main archive anyway, you don't need to bother with the SD card archive.

    These tar archives are compressed with bzip2. So to see the files, you first have to unpack the archives

    1. tar xvf fsimx8mm-B2021.06.tar.bz2

    This will create a directory fsimx8mm-B2021.06 that contains all the files of the release.

    Please read the file doc/FSiMX8MM_FirstSteps_eng.pdf. It describes the first steps when working with the board and gives references to further reading.

    !!!! Important !!!

    Please note that this release is only compatible with PicoCoreMX8MM of Board Revision 1.30. The Board Revision can be found at the top Site of the board, printed in golden letters. (PCoreMX8MM Rev 1.30 TOP) Please contact F&S if you are owning a PicocoreMX8MM revision 1.20 or lower and want to use this release.

    This does not apply for PCBs for DDR3L based PicocoreMX8Mx (Rev. 1.20 PCoreMX8Mx) Here, the release can be used from revision 1.20 upwards.

    !!!! Important !!!

    Please note that Buildroot releases use a 'B' for the version number. The version counting is independent form other releases.

    Here are some highlights of this release.

    1. New Boot concept for i.MX8MM based boards (fsimx8mm-Nboot)

    The fsimx8mm-NBoot is a first stage bootloader preinstalled to the boards, similar to the fsimx6 Nboot.It handles many board-specific configurations like the DRAM initialization or assembly variants so the user does not need to care about it.

    It does not yet offer the full functionality of the fsimx6 NBoot, like an own command line, but will be further developed in this direction.

    NBoot and U-Boot can be easily updated using the new fsimage command, that automatically flashes to the right hardware partitions.

    For more information on the fsimage command please see the Linux On F&S Baords documentation chapter "Command fsimage To Handle F&S Images"

    2. New Linux kernel 5.4.70

    The Linux kernel is now based on version 5.4.70.

    From https://kernelnewbies.org/Linux_5.4:

    This release includes the kernel lockdown mode, intended to strengthen the boundary between UID 0 and the kernel; virtio-fs, a high-performance virtio driver which allows a virtualized guest to mount a directory that has been exported on the host; fs-verity, for detecting file tampering, like dm-verity but works on files rather than block devices; dm-clone, which allows live cloning of dm targets; two new madvise() flags for improved app memory management on Android, support for new Intel/AMD GPUs, support for the exfat file system and removing theexperimental status of the EROFS file system; a new haltpoll cpuidle driver and governor that greatly improves performance for virtualized guests wanting to do guest-side polling on the idle loop; and blk-iocost, a I/O cgroup controller that attempts to calculate the cost of I/O more accurately. As always, there are many other new drivers and improvements.

    3. New eMMC-Image format sysimage

    We introduce a new image format for eMMC based boards, that contains a raw Uboot partition, a FAT32 Boot partition for Kernel and device trees, and an ext4 partition for the rootfs. This image can be flashed to the eMMC as a whole, allowing an easy update of the system at once. For further information please the Linux On F&S Baords documentation chapter Mass Storage Devices -> eMMC.

    Please note that the sysimage layout of Buildroot and Yocto currently differ so exchanging separate partitions between those two might not work.

    This will be fixed in future releases.

    4. Update to Buildroot 2021.02.2

    Buildroot 2021.02 has many many updated packages, for example Qt-5.12.2, busybox-1.33, wayland 1.18, weston-imx 9.0 and imx-gstreamer-1.16.2.

    We actually use buildroot-2021.02.2, which is a newer version that already has some more fixes.

    5. New toolchain fs-toolchain-9.3-armv8ahf

    It showed that some packages needed newer Kernelheaders to compile. So we have updated the toolchain again. Please use this new toolchain together with the code of this release.

    Remark: When changing the toolchain, you should always clear the compiler cache, e.g.

    rm -r ~/.ccache ~/.ccache-buildroot

    Otherwise the compiler may mix up precompiled code from the cache with newly compiled code, causing strange runtime errors.

    6. Documentation

    In the past, the documentation that was included in the release package itself was often superseded by newer versions on our website.

    But people continued to use the outdated version of the release, causing unnecessary complications.

    To avoid this, from now on only the software related documentation is directly included in the release and we have added a chapter to FSiMX8MM_FirstSteps_eng.pdf that contains direct links to the appropriate resources on our website. There you can download the newest versions of hardware documentations, schematics, layout files, certificates, accessories, add-ons, adapters and similar things.

    The software documentation is completely reworked. Them FSiMX8MM_FirstSteps_eng.pdf document now really only shows a basic introduction to the work with boards of the fsimx8mm architecture. And there is a new document LinuxOnFSBoards_eng.pdf that shows a more in-depth view of a Linux system in general and of the F&S versions of

    NBoot, U-Boot, Linux and Buildroot/Yocto in particular. This is still work in progress, some chapters are not fully done yet and will be revised in the future. Check our website from time to time to see if there is a newer version of this document.


    The following list shows the most noticable changes in this release in more detail since our last pre i.MX8M-Mini release. Please note that the source code is also used for other platforms. This is why you will also find references to other CPU types and F&S boards here in the


    u-boot-2018.03-fsimx8mm-B2021.06 (23.06.2021)


    Supported boards: PicoCoreMX8MM

    - Improve OTG support for fsimx8mm

    - Add fsimx8mx support

    - Add support for static board config

    - Add support to read phy address from device-tree for fec_mxc

    - Improve imx8mm_pins.h I2C* pads

    - Improve serial mxc driver clear fifo before reset

    - Improve spl setting for all fsimx8* boards

    - Fix fsimx8mx RAM timings

    - Improve DRAM size configuration for fsimx8mx

    - Improve DRAM size detection for fsimx8mx

    - Use legacy ethernet driver for fsimx8mx

    - Fix fsimx8mx nand defconfig

    - Improve support for static board config

    - Improve MIPI-DSI PMS restriction values

    - Fix build warnigs for n535521 mipi driver

    - Disable display support for fsimx8mx

    - Improve linux,cma size settings for fsimx8mx

    - Improve fsimx8mx defconfigs

    - Add fsimx8mx_nano support

    - Disable display support for fsimx8mx_nano

    - Improve fsimx8mx support

    - Improve bd71837 pmic driver

    - Add possibility to set cma size via DTS for fsimx8mx

    - Improve fixed config for fsimx8mx

    - Improve FDT support and naming for fsimx8mx-nano

    - Improve fsimx8mm target

    - Improve fec_mxc fixed link support for DM

    - Remove target fsimx8mx

    - Remove arch/arm/mach-imx/mx8mx

    - Fix compilation warnings for fsimx8mm

    - Improve feature support for fsimx8mm

    - Improve fsimx8mm SPL settings

    - Improve fsimx8mm mac address setup

    - Add support for I2C_GPIO to configure switch on fsimx8mm

    - Append for commit "Add support for I2C_GPIO to configure switch on fsimx8mm"

    - Also use memalign_simple() in SPL, not only malloc_simple()

    - Add Kconfig options to create a disassembler listing

    - New version of addfsheader as a script, remove old C version

    - Add fsimage script

    - Fix Kconfig prompt for MXC GPIO driver

    - Add streaming option to SDP protocol

    - Add fs_image library to load and handle F&S images on fsimx8mm

    - Change SPL on fsimx8mm to use F&S NBoot images to boot

    - Add nboot build process for fsimx8mm

    - Add fs_board_get_boot_device_from_fuses() to fs_board_common.c

    - cli_hush: Add support for indirect parameter expansion

    - mxs_nand: Reduce malloc usage in SPL

    - mxs_nand_spl: Do not stop when ONFI version is unknown

    - fs_image.c: Have two copies of BOARD-CFG and FIRMWARE

    - Use new MTD partition layout on fsimx8mm, clean up boot srategies

    - Have environment in NAND or MMC on fsimx8mm

    - Move fs_image.[ch] from fsimx8mm to common

    - fsimx8mm: Add nboot-info for BOARD-CFGs, use .*.tmp files in Makefile

    - fsimx8mm: Identify boot system with NXP boot devices

    - fdt_support.c: Fix bug in fdt_getprop_u32_default_node()

    - Allow using function fdt_print() from outside of cmd/fdt.c

    - Add fsimage command to handle NBoot images

    - fsimx8mm: Get rid of fs_nboot_args and use cfg_info instead

    - fsimx8mm: Add fuse subcommand for fsimage

    - Handle kernel, fdt and rootfs according to boot device

    - fsimx8mm: On eMMC, load environment from boot partition

    - Allow NAND environment offsets in device tree

    - fsimx8mm: When loading U-Boot, provide offset values from nboot-info

    - fsimx8mm: Have separate nboot-info for NAND and MMC

    - fsimx8mm: Add MMC loading/saving, refactor fsimage code

    - Also use indendation in scripts/fsimage.sh

    - Also write U-BOOT files in command fsimage save

    - Fix nand_spl_load_image() in case of bad blocks

    - fsimx8mm: Drop debug output, rename MTD partition Spl to NBoot

    - fsimx8mm: Handle device tree fixup more cleanly

    - Add CONFIG_SPL/TPL_AUTOBUILD, do not build SPL by default on fsimx8mm

    - fsimx8mm: Add all current BOARD-CFGs

    - fsimx8mm: Fix handling for PicoCoreMX8MX

    - Fix addfsheade.sh for yocto build

    - Set boardinfo.name to PicoCoreMX8MX for boards with 8mx config

    - Fix have-eth-switch config entry to have-eth-phy

    - Fix DSI_PHY_REF clock settings

    - Fix CONFIG_ENV_SIZE to 16KB

    - Add support for resetting phy via device tree entry

    - Fix-up for devicetrees fsimx8mm

    - Improve fs_board_common environment variable setup

    - Improve fsimx8mm KSZ9893 Switch setup

    - Improve fsimx8mm linux fdt fixups

    - Remove setting ethaddr for WLAN on fsimx8mm

    - Change NBoot version to current one

    - Change DACR to client access control to fix cache errors

    - Improve fsimx8mm mac address setup

    - Set tbs2.c UPDATE_DEF to mmc0,mmc2

    - Improve support for architecture tbs2

    - Merge architecture tbs2 into fsimx8mm

    - Add part command to uboot console

    - Add dynamic setting of cpu temp ranges for fsimx8mm

    - Add config for PCoreMX8MM-FERT13.130

    linux-5.4.70-fsimx8mm-B2021.06 (23.06.2021)


    Supported boards: PicoCoreMX8MM

    - Merge kernel to 5.4.24

    - Fixup for kernel upgrade to 5.4.24

    - Add basic support display NewVision NV3051D

    - Fix audio clock settings in armstonea9qdl.dtsi

    - Fix newvision-nv3051 driver

    - Improve picocoremx8mx device tree

    - Fix MIPI-DSI clock PMS-boundary values

    - Add fus-tc358775 driver and G133HAN01 display support

    - Improve fsimx8mm_defconfig

    - Add support for picocoremx8mx-nano device-tree

    - Improve pmic node for picocoremx8mx

    - Add support for KSZ9893 ETH switch

    - Add SquashFS, OverlayFS and Ubiblock support on fsimx8mm

    - Improve picocoremx8mx device tree support

    - Add picocoremx8mx j070wvtc-display support

    - Merge kernel to 5.4.47

    - Add fsimx8mm BD718XX driver and cma no-override flag to picocore8mx dts

    - Improve fsimx8mx display support and fix atmel touch driver

    - Improve picocorem8mx device tree and fix PCIE support

    - Improve device tree for picocoremx8mx-nano

    - Improve panel-novatek-nt35521 driver

    - Improve picocoremx8mm device tree and tc358775 mipi2lvds support

    - Add support for display EE0350-ET-2CP and change syntax of device-trees

    - Remove duplicate device-tree for picocoremx8mx

    - Merge kernel to 5.4.70

    - Improve device tree for picocoremx8mx

    - Improve support for CAN-FD chip MCP251xfd

    - Improve display backlight support

    - Add VPU support for fsimx8mm

    - Rework of fsimx8mm device-trees

    - Improve ksz9893 support - DT property

    - Disable ACL for SquashFS and UBIFS

    - Improve ksz9477 switch driver to support phy-link via GPIOs

    - Fix-up for devicetrees fsimx8mm

    - Add driver for lontium-lt9211 MIPI2RGB converter

    - Improve picocoremx8mx/mm device trees for deactivating nodes from UBoot

    - Improve picocoremx8mm.dts and fsimx8mm_defconfig

    - Improve fsimx8mm_defconfig

    - Improve clk-composite-8m.c

    - Improve atmel_mxt_ts.c touch

    - Add PWM usage for driver gpio-pca953x.c

    - Improve fsimx8mm_defconfig to be closer to fsimx6* defconfigs

    - Improve drivers/rtc/systohc.c

    - Fixup for picocoremx8mm/mx device-trees

    - Update history file to linux-5.4.70-fsimx8mm-Y2021.04

    - Add support for Marvel BT modules on fsimx8mm

    - Improve device tree for SAI1 pins on picocoremx8mm.dts

    - NXP version rel_imx_5.4.70_2.3.2

    - Add support for PicoCoreMX8MP

    - Enable MCLK early for SGTL5000

    - Enable audiomix clocks by device tree

    - Revert commit MLK-24910-3 phy: imx8mp: remove the pcie workaround

    - Fix mode clock to support F&S standard display

    - Improve device tree for F&S standard panel

    - Fix picocoremx8mm/mx8mx pcie

    buildroot-2021.02.2-fsimx8mm-B2021.06 (23.06.2021)


    Supported architectures: fsimx8mm

    - Add packages and utillity for python-azure-iot-device

    - Latest Buildroot version of rauc

    - Add FS Updater package

    - Add FS Updater Solution scripts for FSIMX8MM architecture

    - Folder bug fix for FS Updater FSIMX8MM

    - Merge buildroot to 2020.11

    - Update imx specific packages

    - Update arm trusted firmware

    - Update fsimx8mm defconfigs and busybox

    - Improve imx8 image generation

    - Improve fsimx8mm weston backend

    - Fix padding of lpddr4 ram trainigs binaries

    - Fix cpio-rootfs generation

    - Add FS-Updater for application and rootfs

    - Fixes for FS-Update

    - Fix RAUC squashfs mounting

    - RAUC Update to 1.5

    - Extend: dynamic_mounting.py

    - Change: Extend demo application with startup script

    - Change: Increase partition number of data partition (emmc)

    - Change: Add emmc fallback support fw_env.conf.mmc

    - Remove: S51rauc

    - Change: Path of default certificate changed

    - Remove: postinstall.sh

    - Change: Config

    - Add: board/f+s/common/rauc

    - Add: Support for automatic update via usb drive or sd card

    - Change: system.conf for rauc

    - Add: preinit.sh

    - Change: Several files that make the previous features available

    - Fix: busybox 1.33

    - fsimx6{sx,ul}_min_defconfig: Correctly load SDMA firmware

    - Update to libopenssl-1.1.1k

    - Merge to buildroot-2021.02.2

    - Update imx specific packages

    - Update bluez_utils package

    - Fix old hashes

    - Fix imx-gstreamer package

    - Improve fsimx8mm defconfigs

    - Improve sysimg (sdcard image) generation

    atf-5.4.70-fsimx8mm-Y2021.04 (23.06.2021)


    Supported boards: PicoCoreMX8MM

    - Add imx-atf rel_imx_5.4.70_2.3.0

    - Add possibility to deactivate debug UART

    - Merge to imx-atf rel_imx_5.4.70_2.3.2

    firmware-imx-8.10.1 ddr synopsys ()




    (no changes)



    - Update to version 1.6 of FSiMX8MM_FirstSteps_eng.pdf

    - Update to version 0.8 of LinuxOnFSBoards_eng.pdf

    Please download the hardware documentation directly from our website.

    Then you always have the newest version.

    Your F&S Support Team

  • Hello,

    yes we are also planning a new release for i.MX6 boards. Probably it will be also based on Linux 5.4.70 / Buildroot 2021.02 / Toolchain 9.3. We don´t have an exact timetable but I guess it will be released during the year.

    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • Touchscreen Fix for 3.5" MIPI-DSI Display mit PCAP Touch ( B.LCD.22)

    The Touchscreen of the 3.5" MIPI-DSI Display mit PCAP Touch ( B.LCD.22) is not working with the following combination:

    Boards: PcoreMX8MM-V1-LIN, PcoreMX8MM-V13-LIN [Rev1.3]

    Adapter: ADP-MIPI2MIPI1 [Rev 1.2]

    Display: 3.5" MIPI-DSI Display mit PCAP Touch ( B.LCD.22)

    Releases: Y2021.04, B2021.06

    To fix this, you can either apply the attached patch to the Linux Kernel and rebuild the device tree or make the following U-boot settings:

    Run the following command in the U-boot console:

    1. setenv fix_EE0350_touch 'fdt addr $fdtaddr; fdt set i2c1/mxt336u interrupt-parent <0x00000036>; fdt set i2c1/mxt336u interrupts <0x00000000 0x00000002>;'

    Edit the $fdt variable and add the command run fix_EE0350_touch befor the booti command. For example

    1. editenv fdt
    2. mmc rescan; load mmc 2 0x43000000 picocoremx8mm-lcdif-adp-mipi2mipi1-ee0350et-2cp.dtb;run fix_EE0350_touch;booti 40480000 - 0x43000000
    3. saveenv

    ( The $fdt variable may look different, depending on where the device tree is loaded from)

    Boot, the board. The touchscreen should work now.

    Your F&S Support Team