Posts by fs-support_KM

    Hello,


    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

    Hello,


    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

    fsimx6 Buildroot Release B2020.04.2 (23.09.2022)

    The minor release fsimx6-B2020.04.2 add support for new F&S module armStoneA9r3.


    The following list shows the most noticable changes in this release in more detail since our last fsimx6 release fsimx6-B2020.04.1. Please note that the source code is partly 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. Some of these changes have already been part of other releases for other boards.


    nbootimx6_50.bin (VN50) (16.09.2022)

    Supported Boards: efusA9, efusA9r2, armStoneA9, armStoneA9r2, armStoneA9r3, PicoMODA9, NetDCUA9, QBlissA9, QBlissA9r2


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


    [VN45]

    • 0004735: Change version naming for super secure variant
    • 0004734: Use built-in randomizer
    • 0004732: Correct DDR3 detection routine


    [VN46]

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


    [VN47]

    • 0005164: Add support for new board efusA9r2


    [VN48]

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


    [VN49]

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


    [VN50]

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


    u-boot-2018.03-fsimx6-B2020.04.2 (09.09.2022)


    Supported boards: armStoneA9, armStoneA9r2, armStoneA9r3, efusA9, efusA9r2, PicoMODA9, PicoMODA9.2, NetDCUA9, QBlissA9, QBlissA9r2


    • Add support for armStoneA9r3 and armStoneA9r4
    • Move LED configuration of Realtek PHY to board_phy_config
    • Enable ALDPS mode and disable EEE LED indication



    linux-4.9.88-fsimx6-B2020.04.2 (09.09.2022)


    Supported boards: armStoneA9, armStoneA9r2, armStoneA9r3, efusA9, efusA9r2, PicoMODA9, PicoMODA9.2, NetDCUA9, QBlissA9, QBlissA9r2


    • Add TSC2004 support for fsimx6
    • Add support for armStoneA9r3 and armStoneA9r4
    • Add ssc support for rtl8211f
    • Move LED configuration for ETH-PHYs to device-trees
    • Support ALDPS-Enable and CLKOUT-Disable for Realtek PHY
    • Support disabling of GBit and disable EEE LED indication



    buildroot-2019.05.3-fsimx6-B2020.04.2 (09.09.2022)


    Supported boards: armStoneA9, armStoneA9r2, armStoneA9r3, efusA9, efusA9r2, PicoMODA9, PicoMODA9.2, NetDCUA9, QBlissA9, QBlissA9r2


    • Add support for armStoneA9r3 and armStoneA9r4
    • Add support for eMMC sysimg
    • Move generation of install script to Buildroot




    Examples

    • no changes



    Toolchain

    • no changes



    Documentation

    • Update to version 4.3 of FSiMX6_FirstSteps_eng.pdf
    • Update to version 0.12 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

    F&S i.MX8X Yocto Release Y2022.08 (fsimx8x-Y2022.08)


    Please see the file


    FSiMX8X_FirstSteps_eng.pdf


    for a description of how everything is installed and used.

    This is a major release for all F&S boards and modules based on the i.MX8X CPU, i.e. efusMX8X. 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.


    Here are some highlights of this release.


    1. New Boot concept for i.MX8X based boards (fsimx8x-NBoot)


    The fsimx8x-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 Boards documentation chapter "Command fsimage To Handle F&S Images".

    The fsimx8x-Nboot is delivered as a binary with this release.


    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. Usage of KMS output-chain for DRM bridges


    To ensure the usage of different bridges and panels the kernel mode setting (KMS) will now be used for our device trees. The concept behind KMS is to create one or multiple DRM pipelines consisting of an encoder, bridges and a panel with one or more connectors. The idea is that the display driver knows the display modes that each member of the pipeline supports and can configure a valid display mode for the pipeline.

    [Source: https://www.kernel.org/doc/html/latest/gpu/drm-kms.html]


    5. 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 systemctl 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.


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


    7. 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 FSiMX8X_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 FSiMX8X_FirstSteps_eng.pdf document now really only shows a basic introduction to the work with boards of the fsimx8x 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-Nano 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-fsimx8x-Y2022.08 (09.08.2022)

    (based on NXP version rel_imx_5.4.70_2.3.2)

    ---------------------------------------------

    Supported boards: efusMX8X


    - Add efusMX8X prototype

    - Enable DRAM initialization through SCU IOCTL

    - Add SDP streaming functionality

    - Enable NBoot for efusMX8X

    - Enable QuadSPI NAND

    - Fix MALLOC_F area in SPL

    - Enable ethernet for efusMX8X

    - Add delay for USB host storage devices




    linux-5.4.70-fsimx8x-Y2022.08 (09.08.2022)

    ------------------------------------------

    Supported boards: efusMX8X


    - Fix efusMX8X for kernel 5.4.70

    - Fix QuadSPI for fsimx8x

    - Use default timings for J070WVTC0211

    - Fix CMA and ADC nodes for fsimx8x

    - Fix Device Tree entries for lvds regulators

    - Add Novatek MIPI display for fsimx8x

    - Adjust device tree for efusmx8x

    - Set legacyfb_depth to 32 for fbdev emulation

    - Add PCF85263 to fsimx8x

    - Fix device tree for fsimx8x

    - Reduce entries in fsimx8x_defconfig

    - Increase SPI clock slightly to ensure a clock bigger than 60MHz

    - Fix order of i2c devices for efusmx8x

    - Use the right pcie driver for efusmx8x




    yocto-3.0-fsimx8x-Y2022.08 (09.08.2022 based on Yocto 3.0 Zeus)

    ---------------------------------------

    Supported architectures: fsimx8x


    - Add fsimx8x to meta-fus

    - Use terminal vt100 instead of xterm

    - Revert to use of loadaddr in install script




    Examples

    --------


    (no changes)



    Documentation

    -------------


    - Update to version 1.1 of FSiMX8X_FirstSteps_eng.pdf

    - Update to version 0.13 of LinuxOnFSBoards_eng.pdf


    Please download the hardware documentation directly from our website.

    Then you always have the newest version.

    Hello and welcome to the forum,


    which release are you currently using? The newest release is the Buildroot Release fsimx6ul-B2022.04 and the Yocto Release fsimx6ul-Y2020.03.1.


    If you take a look at the device tree in the source code of the Linux kernel, you will see some defines at the beginning. These define which devices are enabled (and therefore can not be used as GPIO).


    arch/arm/boot/dts/picocom1.2.dts:

    Code
    1. /* PWM: PWM_A on pin 74, PWM_B on pin 75, PWM_C on pin 76, PWM_D on pin 70 */
    2. #define CONFIG_PICOCOM1_2_PWM_A
    3. #define CONFIG_PICOCOM1_2_PWM_B
    4. #define CONFIG_PICOCOM1_2_PWM_C
    5. #define CONFIG_PICOCOM1_2_PWM_D

    E.g. CONFIG_PICOCOM1_2_PWM_D defines that pin J11_14 is used as PWM_D. To use this pin as a GPIO, you will need to comment out the define CONFIG_PICOCOM1_2_PWM_D:

    Code
    1. /* PWM: PWM_A on pin 74, PWM_B on pin 75, PWM_C on pin 76, PWM_D on pin 70 */
    2. #define CONFIG_PICOCOM1_2_PWM_A
    3. #define CONFIG_PICOCOM1_2_PWM_B
    4. #define CONFIG_PICOCOM1_2_PWM_C
    5. //#define CONFIG_PICOCOM1_2_PWM_D

    This will set the IOMUX pad from the pin to GPIO mode.

    Afterwards, set the correct config

    Code
    1. make fsimx6ul_defconfig

    and build the device-tree.

    Code
    1. make picocom1.2.dtb


    Flash this device-tree onto the board and you should be able to use the pin J11_14 as GPIO.

    For every other pin the process is the same.



    Your F&S Support Team

    Patches to add efusA9r2 with Realtek PHY

    Currently there is no Yocto release supporting the efusA9r2. In the attachements you will find a zip file containing patches and a README. These patches will enable the efusA9r2 board for the Yocto release fsimx6-Y2020.03.


    Please refer to the README for instructions on how to apply the patches.



    Your F&S Support Team

    F&S i.MX6UL Linux Release Y2020.03.1 (Yocto 2.4 Rocko)

    This is a major release for fsimx6ul. fsimx6ul is the software for all boards from F&S that are based on the i.MX6-UltraLite and i.MX6ULL CPUs from NXP (or i.MX6UL and i.MX6ULL for short). Currently these are the modules efusA7UL, PicoCOM1.2, PicoCoreMX6UL and PicoCoreMX6UL100. 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.


    The release consists of two files:


    fsimx6ul-Y2020.03.1.tar.bz2

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


    sdcard-fsimx6ul-Y2020.03.1.tar.bz2

    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 Code


    Code
    1. tar xvf fsimx6ul-Y2020.03.1.tar.bz2


    This will create a directory fsimx6ul-Y2020.03.1 that contains all the files of the release.


    Please read the file


    doc/FSiMX6UL_FirstSteps_eng.pdf


    It describes the first steps when working with the board and gives references to further reading.


    Release Notes for fsimx6ul-Y2020.03.1


    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 PicoCoreMX6UL100


    This is the first regular release that supports PicoCoreMX6UL100. The PicoCore is only 40mm x 35mm but is a very powerful System-on-Module with many I/Os.


    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


    Code
    1. make fsimx6ul_defconfig


    simply call


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


    4. Yocto 2.4 (Rocko)


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


    //#define DISPLAY_LVDS_CHIMEI


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


    7. 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 FSiMX6UL_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 FSiMX6UL_FirstSteps_eng.pdf document now really only shows a basic introduction to the work with boards of the fsimx6ul 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.MX6UL release (not counting the intermediate release for PicoCoremX6UL). 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.


    nbootimx6_48.bin (VN48) (07.02.2022)

    Supported Boards: efusA9, armStoneA9, armStoneA9r2, PicoMODA9, NetDCUA9, QBlissA9, QBlissA9r2


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


    [VN42]

    - 0004288: [NBoot] add support for eMMC

    - 0004289: [NBoot] add support for customer specific board VAND3


    [VN43]

    - 0004399: [NBoot] add eMMC MBR and FAT support

    - 0004400: [NBoot] improve dosfs and fix known bugs

    - 0004401: [NBoot] add support for boardconfig in eMMC boot partition

    - 0004402: [NBoot] add eMMC access from USB MSD

    - 0004398: [NBoot] add eMMC booting from fat in user partition

    - 0004403: [NBoot] warn user if wrong nboot for boot device is downloaded


    [VN44]

    - 0004625: [NBoot] Add support for new board GAR3


    [VN45]

    - 0004735: [NBoot] change version naming for super secure variant

    - 0004734: [NBoot] use built-in randomizer

    - 0004732: [NBoot] correct DDR3 detection routine


    [VN46]

    - 0004803: [NBoot] Improve eMMC boot support

    - 0004802: [NBoot] Add support for new board UL100


    [VN47]

    - 0005164: [NBoot] Add support for new board efusA9r2


    [VN48]

    - 0005263: [NBoot] nboot for eMMC does not start on PicoCoreMX6UL when fuses not set and SD card is inserted




    u-boot-2018.03-fsimx6ul-Y2020.03.1 (15.03.2022)

    Supported boards: efusA7UL, PicoCOM1.2, PicoCoreMX6UL, PicoCoreMX6UL100, PicoCOMA7


    - Add support for picocoremx6ul100

    - Add support for command fsimage

    - Change DACR to client access control to fix cache errors


    linux-4.9.88-fsimx6ul-Y2020.03.1 (15.03.2022)

    Supported boards: efusA7UL, PicoCOM1.2, PicoCoreMX6UL, PicoCoreMX6UL100, PicoCOMA7


    - Add support for RTC PCF85263

    - Improve support for imx6ul-touchscreen controller

    - Add driver for lontium-lt9211 RGB2LVDS converter

    - Add full device-tree support for PicoCOMA7

    - Improve support for picocoremx6ul revision 1.20

    - Add support for picocoremx6ul100 on architecture fsimx6ul

    - Add support for TSC2004 on fsimx6ul

    - Fix i2c frequency entry in device trees


    yocto-2.4-fsimx6ul-Y2020.03.1 (15.03.2022)

    Supported boards: efusA7UL, PicoCOM1.2, PicoCoreMX6UL, PicoCoreMX6UL100, PicoCOMA7


    - Fix download for meta-mono layer

    - Add updated device trees to fsimx6ul.conf

    - Fix core-image-minimal build

    - Add support to build install.scr

    - Add firmware for sd8997

    - Fix passing of ethaddr for Silex WLAN module


    Examples


    (no changes)


    Documentation


    - Update to version 2.4 of FSiMX6UL_FirstSteps_eng.pdf

    - Add new version 0.12 of LinuxOnFSBoards_eng.pdf


    Please download the hardware documentation directly from our website.

    Then you always have the newest version.

    Hello,


    I tried building the uboot.fs image again from Yocto and it successfully booted. Did you build the release fsimx8mn-Y2021.10 without any changes to the UBoot and Yocto first?


    Could you check the setup for Yocto?

    Code
    1. ./setup-yocto /destination/dir
    2. cd /destination/dir/yocto-3.0-fus
    3. ./yocto-download
    4. DISTRO=fus-imx-wayland MACHINE=fsimx8mn source fus-setup-release.sh -b build-fsimx8mn-wayland
    5. bitbake core-image-minimal


    Your F&S Support Team

    Hello,


    the SPL and NBoot are hardware specific and contain configurations, firmware files and dram timings to enable the board to boot. Usually those binaries are flashed one time and shouldn't change in development, so they don't get generated in the standard build.

    The UBoot (uboot.fs) is the first bootloader that can be customized. For why the flashing of the uboot.fs image resulted in an error, I don't know. I'll try it too with the binaries generated from Yocto.

    It should be enough to load the uboot.fs binary to RAM and call the command "fsimage save".


    E.g.:

    Code
    1. tftp uboot.fs
    2. fsimage save


    Your F&S Support Team

    Hello,


    in the attachments you can find the files necessary to recover the board.


    - Get the board into serial download mode. This is achieved by powering up the board while holding the BOOTSEL button (the button next to RESET).

    - Connect your Host-PC to the USB Device port of the board (either USB Mini A or USB Type C, depends on the Starterkit).

    - Unpack the zip file and start MfgTool2.bat.


    After this the UBoot should boot up again.


    Your F&S Support Team

    Files

    • recovery.zip

      (1.07 MB, downloaded 365 times, last: )

    On March 15, 2022 GitHub disabled the unencrypted Git protocol git:// permanently. This change affects packages in Buildroot and Yocto releases that are still using the mentioned protocol for GitHub resulting in the following error message:

    Code
    1. fatal: remote error: The unauthenticated git protocol on port 9418 is no longer supported


    The Git config can be set to globally use the encrypted protocol https:// instead of git://:

    Code
    1. git config --global url."https://".insteadOf git://



    Your F&S Support Team

    Hello,


    usually the USB_OTG port should be able to automatically switch between USB Host and USB Device with checking the ID pin. If the ID pin is not used, the USB_OTG can be switched to function as USB Host or USB Device in the device tree under arch/arm64/boot/F+S/efusmx8x.dtsi by changing dr_mode to "host" or "peripheral".

    Code
    1. &usbotg1 {
    2. pinctrl-names = "default";
    3. pinctrl-0 = <&pinctrl_usbotg1>;
    4. fsl,usbphy = <&usbphy1>;
    5. fsl,usbmisc = <&usbmisc1 0>;
    6. over-current-active-low;
    7. dr_mode = "otg";
    8. status = "okay";
    9. };

    However, in the current kernel release 4.14.98 there seems to be a bug in the initialization of the clocks that prevent the USB phy PLL to be locked.


    The next kernel release will be on version 5.4.70 and should be out at the end of March. I already checked the USB_OTG there and it is fully functional.


    In the meantime you can try to use the USB_HOST port. The following configs should be enabled in arch/arm64/configs/fsimx8x_defconfig:

    Code
    1. CONFIG_USB_CDNS3=y
    2. CONFIG_USB_CDNS3_HOST=y
    3. CONFIG_NOP_USB_XCEIV=y

    as well as the following device tree node in arch/arm64/boot/F+S/efusmx8x.dts:

    Code
    1. &usbotg3 {
    2. dr_mode = "host";
    3. status = "okay";
    4. };


    Your F&S Support Team

    Add error handling for the install script with eMMC


    Currently the UBoot update process does not react to errors in UBoot commands issued in the install and update scripts. So whenever the load command fails, the RAM area will get written to the destination as it is. For boards with a NAND flash this is not as problematic, because the UBoot will not be affected by the update. For eMMC however the UBoot is included in the sysimg file. An error in the load command results in a corrupt UBoot and the board will not be bootable without external flashing software.


    The updated install script checks for errors that might occur in the load command and aborts the update process before actually writing the corrupt data. Also the chunksize for the eMMC update process is reduced to support more USB sticks.


    The attached zip file contains the install script as a text file and precompiled binaries. The folder structure is exactly as in the release directory with binaries/, sdcard/ and sources/, so it is enough to unpack the zip file inside the release directory fsimx8mn-Y2021.10/.


    If the changes should also be comitted to the Yocto source code, download the attached patch, go to the source directory yocto-3.0-fus/, move the patch file there and apply it with the command patch -p1 < 0001-Add-error-handling-for-the-install-script-with-eMMC.patch.



    Your F&S Support Team

    Add error handling for the install script with eMMC


    Currently the UBoot update process does not react to errors in UBoot commands issued in the install and update scripts. So whenever the load command fails, the RAM area will get written to the destination as it is. For boards with a NAND flash this is not as problematic, because the UBoot will not be affected by the update. For eMMC however the UBoot is included in the sysimg file. An error in the load command results in a corrupt UBoot and the board will not be bootable without external flashing software.


    The updated install script checks for errors that might occur in the load command and aborts the update process before actually writing the corrupt data. Also the chunksize for the eMMC update process is reduced to support more USB sticks.


    The attached zip file contains the install script as a text file and precompiled binaries. The folder structure is exactly as in the release directory with binaries/, sdcard/ and sources/, so it is enough to unpack the zip file inside the release directory fsimx8mm-B2021.06/.



    Your F&S Support Team

    Add error handling for the install script with eMMC


    Currently the UBoot update process does not react to errors in UBoot commands issued in the install and update scripts. So whenever the load command fails, the RAM area will get written to the destination as it is. For boards with a NAND flash this is not as problematic, because the UBoot will not be affected by the update. For eMMC however the UBoot is included in the sysimg file. An error in the load command results in a corrupt UBoot and the board will not be bootable without external flashing software.


    The updated install script checks for errors that might occur in the load command and aborts the update process before actually writing the corrupt data. Also the chunksize for the eMMC update process is reduced to support more USB sticks.


    The attached zip file contains the install script as a text file and precompiled binaries. The folder structure is exactly as in the release directory with binaries/, sdcard/ and sources/, so it is enough to unpack the zip file inside the release directory fsimx8mm-Y2021.04/.



    Your F&S Support Team

    The main reason for the busy error to appear is that in the default device tree, we enable SPI_B which claims the gpio pin. In the device tree under arm/boot/dts/efusa9x.dts you will need to make sure CONFIG_EFUSA9X_SPI_B and CONFIG_EFUSA9X_PARALLEL_CAMERA commented out, because they are both using the pin. After that the IOMUX setting is still missing, so you need to add "MX6SX_PAD_QSPI1A_SS0_B__GPIO4_IO_22 0x1b0b0" to the list of "pinctrl_hog: hoggrp".



    Your F&S Support Team

    Hello,


    to use the GPIOs, the IOMUX registers of the pads must first be set to the GPIO. This is done in the device tree of the Linux kernel. Usually we have defines to enable or disable certain devices (e.g. SPI_B), but for the Pre-Release these are not yet prepared. When disabled we set the IOMUX to GPIO.


    For the 8X the following steps need to be done to set the pads to the GPIO in the Linux kernel source:


    - Under include/dt-bindings/pinctrl/pads-imx8qxp.h search for the define including the GPIO you want to use (e.g. search for GPIO0_IO15 and get SC_P_SPI3_SDI_LSIO_GPIO0_IO15)

    - Under arch/arm64/boot/dts/F+S/efusmx8x.dtsi you will find the node "pinctrl_hog: hoggrp". There you need to include the define with the values as in the IOMUX registers. (I included SPI_B_MOSI with "SC_P_SPI3_SDO_LSIO_GPIO0_IO14 0x06000021")

    - Load the right configuration for fsimx8x with "make fsimx8x_defconfig"

    - Build the device tree with "make F+S/efusmx8x.dtb"

    - Flash the new device tree on to the board


    Your F&S Support Team

    The communication with the WLAN chip runs over PCIe. The kernel module does not load because the initialization of the PCIe fails with the message "phy link never came up". Problems with the link is usually a hardware fault. Most likely a wire from the hardware fix loosened and came off or a contact does not fit.

    The best would be to send the board in via our RMA, so we can correct the hardware.

    https://www.fs-net.de/en/support/serial-number-info-and-rma/



    Your F&S support team