i.MX8M-Plus Linux Release Y2021.07.2 (Yocto)

  • i.MX8M-Plus Linux Release Y2021.07 (Yocto)

    This is a maintenance release for fsimx8mp. fsimx8mp is the software currently for V2 and V4 version boards from F&S that are based on the i.MX8M-Plus Quad CPU from NXP (or i.MX8M-Plus for short). Currently this consists of the boards PicoCoreMX8MP. 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 fsimx8mp-Y2021.07.tar.bz2

    This will create a directory fsimx8mp-Y2021.07 that contains all the files of the release.

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

    Release Notes for fsimx8mp-Y2021.07

    Here are some highlights of this release.

    1. New version numbering

    We have changed the way how we name versions. In the past we had a version number made up of a major part m and a minor part n. Then we used Vm.n for Buildroot releases and Ym.n for Yocto releases. Release versions were counted individually for each CPU architecture. But then a "new" CPU type unfortunately had a smaller version number than an

    "old" CPU, even if the code was coming from the same sources or was even newer. This caused some irritations and misunderstandings of what release is actually the newest.

    So from now on we will use the year and month of the release instead, preceeded by a 'B' for Buildroot releases and a 'Y' for Yocto releases. For example the "B2019.08" of this release indicates a

    Buildroot based release from August 2019.

    2. New U-Boot 2020.04

    We have a considerably newer U-Boot now. One of the main new features is display support, so basically U-Boot can now be used to show a splash screen.

    U-Boot will also show more information about the CPU type now, for example temperature range, possible speed, etc. The command "clocks" will show much more information about internal clock rates. And USB storage devices are detected faster than before.

    U-Boot has experienced quite a lot of internal restructuring. For example it now also supports configuration via a Kconfig menu, similar to Linux kernel and Buildroot. After configuration with

    make fsimx8mp_mmc_defconfig

    simply call

    make menuconfig

    to show the menu. There you can select and de-select entries or move to sub-menus.

    Moving all configuration options from the previous header file to this menu is a long-term and still on-going process. So not all features are available in the menu, yet.

    U-Boot is now compiled and running in THUMB mode. This saves space that is needed for all the display code.

    3. New Linux kernel 5.4.70

    The Linux kernel is now based on 5.4.70. By default, we are using the Image format of the kernel now.

    • Improvements and optimizations in memory management, for example better heap and page management (tmpfs, shmem), better protection against attacks by implementing stack, heap and memory randomization.
    • Performance optimizations for the network stack, like faster TCP connections, quick killing of hanging network links, more features for the packet filter (firewall), smaller latencies on WLAN.
    • Optimizations in block layer, for example better Device Mapper for LVM, improved parallel access to directories, more efficient access to SSDs, parallel access for NFS, kernel support for file copy, server-side copy for CIFS, NFS, XFS, support for hard discs with host-managed SMR (Shingled Magnetic Recording).
    • Optimizations on file systems (NTRFS, EXT4, F2FS, NFS, XFS, Overlayfs, Ceph), new cluster filesystem Orangefs
    • Many improvements in graphics stack, like DRM (Direct Rendering Manager), new open source graphics driver etnaviv for Vivante graphics on i.MX CPUs (etnaviv = vivante backwards)
    • Better load balancing of processes to CPU cores, new cgroups v2, improved power and frequency handling, new cpufreq governor schedutil.
    • New GPIO infrastructure not using sysfs, supposed to be faster.
    • Support for USB SuperSpeedPlus (USB 3.1).
    • Many many new and improved drivers for WLAN chips, touch controllers, audio codecs, cameras, MMC/SD cards, etc.

    Of course there are also many changes for other CPU types (like x86) and other graphics cores (like AMD, Nvidia, Intel) but these are not of interest here.

    4. Yocto 3.0 (Zeus)

    With this release systemd will be the default init system for the example-fus-images.

    Systemd is a init system and service manager for Linux operating systems. It provides a system and service manager that runs as PID 1 and starts the rest of the system. Systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux control groups,

    maintains mount and automount points, and implements an elaborate transactional dependency-based service control logic. [Source: https://www.freedesktop.org/wiki/Software/systemd/]

    It is configured via the systemclt application.

    Also the root file system will now be mounted as read-write by default. This can be changed to read-only when setting up the build enviroment via the fus-setup-release.sh script. See LinuxOnFSBoards_eng.pdf for a detailed description.

    5. 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 FSiMX8MP_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. The FSiMX8MP_FirstSteps_eng.pdf document now really only shows a basic introduction to the work with boards of the fsimx8mp 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 regular i.MX8M-Plus 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 changelog.

    u-boot-2020.04-fsimx8mp-Y2021.07 (09.07.2021)

    Supported boards: PicoCoreMX8MP

    • mx8m: fix cache setup for dynamic sdram size
    • Add fsimx8mp support
    • Add FUS optimized FAT driver
    • Add FUS system promt support
    • Add support to use . operator
    • Improve fsimx8mp support
    • Improve DRAM timings for k4f6e3s4hm
    • Add DRAM timings for k4f8e3s4hd
    • Improve ddr_init function
    • Add support to handle different LPDDR4 chips
    • Improve fs_board_common support
    • Improve fsimx8mp support

    linux-5.4.70-fsimx8mp-Y2021.07 (09.07.2021)

    Supported boards: PicoCoreMX8MP

    • Add support for Marvel BT modules on fsimx8mm
    • Improve device tree for SAI1 pins on picocoremx8mm.dts
    • Merge to NXP 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
    • Fix mode clock to support F&S standard display
    • Improve device tree for F&S standard panel
    • Fix picocoremx8mm/mx8mx pcie
    • Improve gar1/gar2/gar3 device trees
    • Improve uart imx.c to disable dtrd
    • Add support for micrel phy on fsimx6sx_defconfig
    • Add support for device tree vand3
    • Improve support for architecture fsimx8mn
    • Improve device tree support for j070wvtc0211 display
    • Improve device tree picocoremx8mp
    • Improve eth support in picocoremx8mp

    yocto-3.0-fsimx8mm-Y2021.04 (21.04.2021 based on Yocto 3.0 Zeus)

    Supported boards: PicoCoreMX8MP

    • Remove xf86-input-libinput from XServer
    • Update to NXP 5.4.70-2.3.2 release
    • Add fsimx8mp support
    • Improve imx-boot recipe
    • Improve recipe linux-fus.bbapend
    • Improve naming for wic images
    • Improve machine fsimx6ul.conf to build device tree gar3.dtb
    • Improve machine fsimx6sx.conf to build device tree vand3.dtb
    • Improve machine file fsimx8mn to work with new U-Boot


    • No changes


    • Update to version 1.1 of FSiMX8MP_FirstSteps_eng.pdf
    • Update to version 0.7 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

    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.

    Edited once, last by fs-support_AD ().

  • fs-support_AD

    Changed the title of the thread from “i.MX8M-Plus Linux Release Y2021.07 (Yocto)” to “i.MX8M-Plus Linux Release Y2021.07.1 (Yocto)”.
  • Hello,

    we extended last Y2021.07 release to support PicocoreMX8MP-V2.

    Additional changes to Y2021.07 release:

    u-boot-2020.04-fsimx8mp-Y2021.07.1 (19.07.2021)

    Supported boards: PicoCoreMX8MP

    - Add DRAM timings for fl4c2001g-d9

    - Add support to adapt soc-thermal node

    - Disable FDT changes for PicoCoreMX8MP-V1/2

    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.

    Edited once, last by fs-support_AD ().

  • fs-support_AD

    Changed the title of the thread from “i.MX8M-Plus Linux Release Y2021.07.1 (Yocto)” to “i.MX8M-Plus Linux Release Y2021.07.2 (Yocto)”.
  • Hello,

    we extendend last Y2021.07.1 release to support PicoCoreMX8MP-V4I revision 1.10. Only new bootloader u-boot-fsimx8mp-emmc-V4-rev110-Y2021.07.1.bin was generated.

    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.

  • Fix yocto-download script not able to download meta-mono

    Currently, the yocto-download script, used to download the sources for the yocto build, is not working anymore.

    This is due to a change of the source URL of the meta-mono layer.

    To fix this please either change the line in the yocto-download script




    or place the attached patch to your yocto build directory yocto-3.0-fus and run

    patch -p1 < 0001-Fix-meta-mono-URL-zeus.patch

    Your F&S Support Team