Posts by fs-support_KM


    please communicate in English for this Forum, as others might need a solution for the same issue.

    Translated question:


    I would like to boot my Yocto image from SD-Card.

    There is no bootloader image in the SD-Card. Do I need a U-Boot specific to the board and should the U-Boot image be in a partition of the SD-Card?

    Our boards usually boot from the onboard eMMC, so the U-Boot image for the early startup is in the Bootpartition from the eMMC.

    If you want to boot your Yocto root filesystem and/or the Linux kernel with Device-Tree from the SD-Card, you can do so by entering some commands in U-Boot:

    1. setenv mmcdev 2 // Sets the current mmc device for the following commands to SD-Card
    2. run .kernel_mmc // In boot process the kernel will be loaded from current mmc device (SD-Card now)
    3. run .fdt_mmc // Same for Device-Tree
    4. run .rootfs_mmc // Same for RootFS
    5. saveenv // Write the new environments into the eMMC, so they remain after a powercycle

    If you just want to boot your Yocto rootFS, you can leave out the commands run .kernel_mmc and run .fdt_mmc.

    If you want to set the boot medium to the eMMC again, you can do this with the same commands, just with setenv mmcdev 0.

    The U-Boot expects on the boot medium a FAT partition, which includes Device-Trees and the kernel image, and an ext4 partition, which contains the root filesystem. It may be that you need to edit the environments in the U-Boot, if your SD-Card has another partiton layout.

    I hope I could clarify the boot process for you.

    Your F&S Support Team


    to investigate why the touchscreen is not responding, we will need some additional information:

    • Boardvariant (V3I / V4)
    • The release you are currently using (e.g. fsimx6ul-B2022.04)
    • Type of the display (RGB / LVDS)

    Your F&S Support Team


    the i.MX 93 does not support hardware acceleration for OpenGL. The Pixel Pipeline (PXP) only provides hardware acceleration for basic 2D conversion, e.g. scaling, color space conversion, rotation and composite alpha blending and color key.

    These functions are provided for the G2D driver and will be called for the usage of Wayland/Weston.

    Your F&S Support Team


    it seems you did receive special NBoot+UBoot for a DRAM with 4GB. In our official release these changes are not present yet as they complicate the standard memory layout significantly. This is also the cause why the UBoot currently sees 0 Bytes for the DRAM.

    Please contact us for this case directly through our support E-Mail address.

    Your F&S Support Team

    Error Report

    Our yocto-download script uses the repo tool to get all the yocto-layers and sources necessary for a successful build.

    The repo tool recently changed, so that our yocto-download script breaks on older Fedora Machines with the following error:

    1. $ ./yocto-download
    2. Getting download information (repo init)
    3. File "./repo", line 51
    4. def print(self, *args, **kwargs):
    5. ^
    6. SyntaxError: invalid syntax


    The fix for this issue is fairly simple. The default python version must be set to python3. This can be done with the following command:

    1. sudo ln -sf /usr/bin/python3 /usr/bin/python

    python3 should already be present, but you can check this with ll /usr/bin/python*. In case it is not present, it can be installed with the package manager via sudo dnf install python3.

    Your F&S Support Team


    could you try to use the version 7 of VirtualBox? In our "ReadMe.txt" for the virtual machine with Fedora, there is a note that there are problems with audio on version 6. The error message also refers to an audio entry, so the upgrade to version 7 might already fix it.

    Your F&S Support Team

    Recovery Tool for i.MX8 series (v1.1.6)


    The Recovery Tool for the i.MX8 series provides a simple way to restore the firmware on the board up to a working U-Boot. The tool and a description, how to use it, can be accessed in the download section in "My F&S" under "BOARD_NAME/Linux/Recovery Tool/". The tool comes packed with the current latest NBoot and U-Boot from the release of the architechture. Firmware from another release can be applied by removing the NBoot and U-Boot from the folder and exchanging them with the ones from the target release.

    ATTENTION: You should never have multiple NBoot and U-Boot files in the folder of the Recovery Tool!

    Changes since v1.1.5;

    • Fix parsing of new NBoot
    • Add form and handling for boardrevision
    • Add checkbox to keep CMD for UUU open
    • Add simple and expert mode

    Supported boards:

    • armStoneMX8MP, efusMX8MP, PicoCoreMX8MP, PicoCoreMX8MPr2
    • PicoCoreMX8MM-DDR3L, PicoCoreMX8MM-LPDDR4, PicoCoreMX8MMr2-LPDDR4

    Releases for included firmware binaries:

    • fsimx8mm-Y2023.10
    • fsimx8mp-Y2023.09

    Your F&S Support Team


    Currently the tool is only available for Windows. We have a Linux port planned, but it will take some time until a prototype is ready for usage.

    If Windows is completely out of question and you need a solution now, you can send an E-Mail with the required release and the serial number of your board to our support address. The context, that a recovery tool is needed, should be also clear in the mail.

    Your F&S Support Team

    It is possible to shut down the ethernet link with "ifconfig eth0 down". That way, the PHY should power down and disable further communication.

    You might want to disable the automatic link up + dhcp for wired connections, as Yocto adds that policy under /lib/systemd/network/ If you do this, you will need to run the commands "ifconfig eth0 up" and "udhcpc -i eth0" manually.

    I just tested that the genphy_suspend function from the ethernet PHY driver in the kernel gets called, when "ifconfig eth0 down" is issued. This way the generic power down over the mdio communication can be done.

    Your F&S Support Team


    please see i.MX8M-Plus Recovery Tool.

    We are now providing a recovery tool for the fsimx8mp releases. The binaries in the tool are from release fsimx8mp-Y2023.03, but as long as the NBoot and UBoot fit together, you can exchange the UBoot binary to the release you want to recover to.

    The recovery tool is using the UUU tool, so if you know what you do, you can also edit the to write every image. The standard auto script flashes everything up to the UBoot, so the Linux kernel, Device-Tree and RootFS are still missing. But in UBoot, you should better use the install.scr/update.scr script with an USB-Stick.

    Your F&S Support Team

    For the fsimx8mp releases the new NBoot currently does not support a user interface to recover from a deleted or corrupted UBoot.

    For that, we now provide a recovery tool to reflash the NBoot as well as the UBoot. The tool is ready to download as a zip archive on "My F&S" under

    <Your-Board-Name> -> Linux -> Recovery Tool

    In the same directory there exists a PDF document, which explains the steps necessary to recover the UBoot.

    Your F&S Support Team

    For our current releases fsimx8mm-B2021.06.1 and fsimx8mm-Y2021.04.2, the USB-C OTG device is not able to detect an USB host device.

    This patch enables the detection for revisions of the PCoreBBDSI equal or greater than 1.30. The check for an USB host device is handled in revision 1.30 through polling and in revision 1.40 through an available interrupt.

    To apply the patch navigate in the terminal to the Linux source code and issue the following command:

    patch -p1 < PATH/TO/PATCH/0001-Enable-USBC-OTG-function-for-fsimx8mm.patch

    To avoid wrong behaviour for the USB-C OTG device please ensure that the define CONFIG_PICOCOREBBDSI_BOARD_REVISION in your device-tree contains the correct value for your PCoreBBDSI:

    #define CONFIG_PICOCOREBBDSI_BOARD_REVISION 140 // Example for PCoreBBDSI revision 1.40

    Your F&S Support Team


    for a PicoCoreMX8MM, I could boot from the sdcard by setting the following environments:

    1. setenv mmcdev 0
    2. setenv usdhcdev 0
    3. run .kernel_mmc
    4. run .fdt_mmc
    5. run .rootfs_mmc
    6. saveenv
    7. boot

    The order of the mmc and usdhc device might change between releases and boards.

    Your F&S Support Team

    F&S i.MX6SX Linux Release B2019.11.1 (03.11.2022)

    Please see the file


    for a description of how everything is installed and used.

    This is a minor release for fsimx6sx which adds functionality for the Realtek Ethernet Phy RTL8211FD and the Touch Controller TSC2004. fsimx6sx is the software for all boards from F&S that are based on the i.MX6-SoloX CPU from NXP (or i.MX6SX for short). Currently these are the modules efusA9X, efusA9Xr2, PicoCOMA9X and PicoCoreMX6SX. Further boards may be added to this family in the future. All these boards can work with software that is created from this release package.

    This release brings new versions to all parts of the software stack. 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.11" of this release indicates a Buildroot based release from November 2019.

    2. Support for new board efusA9Xr2

    This is the first regular release that supports efusA9Xr2, which may use the Realtek Ethernet Phy.

    3. New U-Boot 2018.03

    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 and more reliably 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


    1. make fsimx6sx_defconfig

    simply call


    1. 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.

    4. New Linux kernel 4.9.88

    The Linux kernel is now based on 4.9.88. By default, we are using the zImage format of the kernel now, not the uImage format as before. Here are some of the new features since the previous kernel 4.1.15.

    • 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.

    5. Buildroot 2019.05.3

    Buildroot 2019.05 has many many updated packages, for example Qt-5.12, busybox-1.30.1, xserver-1.20.5 and gstreamer-1.16.0. We actually use buildroot-2019.05.3, which is a newer version that already has some more fixes.

    6. New toolchain fs-toolchain-8.3-armv7ahf

    Our new toolchain is now based on gcc-8.3 that fully supports C++14 and has basic support for C++17 and even some experimental support for C++2a.

    This toolchain is now a 64-bit toolchain, i.e. it will not run on PCs (or VMs) with a 32-bit Linux anymore. The default output of the toolchain is of course still ARMv7 code for 32 bit ARM CPUs like Cortex-A7 or Cortex-A9, as in i.MX6UL or i.MX6SX.

    This toolchain also fixes a bug in the calling convention for ARM CPUs that was introduced in gcc-5.x and prevented some code optimizations. Many software packages now depend on a compiler that has this bug fixed. For example our new u-boot-2018.03 will produce bad code if compiled with a toolchain before gcc-6.0. Qt5-webengine will not compile with a toolchain before gcc-8.0. So please use this new toolchain together with the code of this release.

    7. Default LVDS display replaced

    The ChiMei LVDS display that F&S used to ship with some Starter Kits is not available anymore. We will ship a different display from now on. Therefore we also changed the default settings for LVDS in the Linux device trees so that upcoming customers will have a working display.

    If you still need the previous settings, simply remove the two comment slashes at the beginning of the following line in the device tree and re-build the device tree. Then the old settings will be active again.


    8. New driver for Silex WLAN

    In the past, the Silex WLAN driver was only available as a binary package. Now, for Linux 4.9.88, the driver is an open-source version that is built as part of Buildroot. This means you are more flexible with changes of the networking stack or specific configurations of the driver. A second package provides the firmware files. Please use exactly these, they contain modifications that are specifically adapted to our boards.

    Unfortunately we did not get patches for a newer bluez version in time. So Bluetooth is still based on bluez-5.39. Maybe we can improve this with a patch later.

    9. 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 FSiMX6SX_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 FSiMX6SX_FirstSteps_eng.pdf document now really only shows a basic introduction to the work with boards of the fsimx6sx 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 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.MX6SX release (not counting the intermedieate release for PicoCoreMX6SX). 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.

    nbootimx6sx_50.bin (VN50) (16.09.2022)

    Supported Boards: efusA9X, efusA9Xr2, PicoCOMA9X, PicoCoreMX6SX, PicoCoreMX6SXr2

    NBoot for i.MX6SX shares the source code with other i.MX6 CPU variants like i.MX6UL and the regular i.MX6, therefore versions are counted consecutively.


    • 0004625: Add support for new board GAR3


    • 0004735: change version naming for super secure variant
    • 0004734: use built-in randomizer
    • 0004732: correct DDR3 detection routine


    • 0004803: Improve eMMC boot support
    • 0004802: Add support for new board UL100


    • 0005164: Add support for new board efusA9r2


    • 0005263: nboot for eMMC does not start on PicoCoreMX6UL when fuses not set and SD card is inserted


    • 0005378: Add support for new boards efusA9Xr2, armStoneA9R3, armStoneA9r4, PicoCoreMX6SXr2


    • 0005541: NAND dump does not work
    • 0005540: Memory errors on armStoneA9
    • 0005542: Board revision is wrong on armStoneA9

    u-boot-2018.03-fsimx6sx-B2019.11.1 (07.10.2022)

    Supported boards: efusA9X, efusA9Xr2, PicoCOMA9X, PicoCoreMX6SX

    • Merge tag 'fsimx6-B2020.04.2' into fus-2018.03
    • Merge remote-tracking branch 'remotes/origin/fus-2018.03'
    • Merge tag 'fsimx8mm-B2021.06.1'
    • Remove XTAL-OFF setting for ALDPS in realtek driver
    • Remove obsolete mmc defconfigs
    • Set Board offset directly in fs_board_get_type
    • Add support for efusA9Xr2 and PicoCoreMX6SXr2

    linux-4.9.88-fsimx6sx-B2019.11.1 (07.10.2022)

    Supported boards: efusA9X, efusA9Xr2, PicoCOMA9X, PicoCoreMX6SX

    • Add support for efusA9Xr2 and PicoCoreMX6SXr2
    • Add TSC2004 support for fsimx6sx
    • Fix GPU and eMMC/NAND entries for newer UBoot in picocoremx6sx

    buildroot-2019.05.3-fsimx6sx-B2019.11.1 (07.10.2022)

    Supported boards: efusA9X, efusA9Xr2, PicoCOMA9X, PicoCoreMX6SX

    • Merge tag 'fsimx6-B2020.04.2' into fus-4.9.x
    • Add support for efusA9Xr2 and PicoCoreMX6SXr2
    • Fix ext4 size for fsimx6sx_qt5_defconfig


    (no changes)


    fs-toolchain-8.3-armv7ahf.tar.bz2 for Linux

    • Based on gcc-8.3
    • Support for C and C++
    • Includes glibc-2.29 (compiled for ARM code)
    • With binutils-2.32
    • Hardware floating point
    • Native Posix Thread Library (NPTL)
    • Full support for C++14 and OpenMP 4.5
    • Basic support for C++17
    • Experimental support for C++2a


    • Update to version 2.2 of FSiMX6SX_FirstSteps_eng.pdf
    • Add new version 0.16 of LinuxOnFSBoards_eng.pdf

    Please download the hardware documentation and GPIO Reference Cards directly from our website. Then you always have the newest version.

    Your F&S Support Team


    currently there is only the Buildroot release fsimx6-B2020.04.2 on kernel version 4.9.88 and the Yocto release fsimx6-Y2022.09 on kernel version 5.4.70 which support the efusA9r2 and armStoneA9r3. A Buildroot release that supports these boards on kernel 5.4.70 is currently in development.

    Your F&S Support Team


    There is a fault in the patch where the functions would still be called even if no entries in the Device-Tree were set. In the attachements you can find the corrected patch, where compatiblity for the efusA9 is restored.

    These two patches are only needed for the revision 1.10 of the efusA9r2 as there is a hardware fault which needs to be mitigated. Because the revision 1.20 is already out, the patches are not included in the release fsimx6-B2020.04.2 and must be applied for the revision 1.10.

    Generally the release fsimx6-B2020.04.2 is compatible with the efusA9 and efusA9r2 with and without the patch.

    Your F&S Support Team