PicoMODA9/Linux development state and releases

  • i.MX6 Linux Add-on for Release V1.2

    A few days ago we have uploaded an add-on package to the fsimx6-V1.2 release that adds support for our modules efusA9 and PicoMODA9.

    The add-on release consists of two files that were added to the regular fsimx6-V1.2 release directory:

    This is the main add-on release itself containing some patches to U-Boot, the Linux and BuildRoot as well as some additional binaries. You'll need the original release file fsimx6-V1.2.tar.bz2, too, if you want to work with the add-on.

    A text file explaining how to apply the add-on to the original package.

    Release Notes for fsimx6-V1.2-addon-141105

    Here is a list of the most noticeable changes in this add-on release.

    u-boot-2009.08-fsimx6-V1.2-141105 (05.11.2014)
    Supported boards: armStoneA9, QBlissA9, efusA9, PicoMODA9

    • New mach-types file that includes ID for PicoMODA9
    • Adjust fshwconfig on fsimx to fsvybrid version
    • Add DP83848 ethernet PHY support, used on PicoMODA9
    • Remove unnecessary boot messages disturbing text for available memory
    • Add generic F&S board support for Solo and Dual Lite versions of i.MX6 CPU
    • Add support for efusA9 (Solo/Dual Lite)
    • Add support for PicoMODA9 (Solo/Dual Lite)

    linux-3.0.35-fsimx6-V1.2-141105 (05.11.2014)
    Supported boards: armStoneA9, QBlissA9, efusA9, PicoMODA9

    • QBlissA9: Fix audio output on WM9715
    • QBlissA9: Fix IRQ config for WLAN
    • QBlissA9: Add support for UART on pins 208+209
    • Add machine IDs for PicoMODA9 and efusA9
    • Add support for efusA9 (Solo/DualLite)
    • Add support for BGR666 to i.MX6 IPU, needed on efusA9
    • Improve IPU parameter and PWM backlight handling
    • Add support for SGTL5000 audio codec, used on efusA9 SKIT and PicoMODA9
    • Add IRQ support for SX8655 touch controller
    • Add support for Solo/DualLite CPU version on QBlissA9
    • Add SPI for efusA9
    • Add SATA support for efusA9
    • Add basic camera support for efusA9
    • Add MIPI camera power support for efusA9
    • Add support for analog camera on efusA9
    • Adjust NBoot args to fsvybrid version
    • Add support for PicoMODA9
    • Add WSVGA to predefined displays list for LVDS
    • Fix delay computation for pfuze100-regulator on i.MX6

    buildroot-2013.05-fsimx6-V1.2-141105 (05.11.2014)
    Supported Boards: armStoneA9, QBlissA9, efusA9, PicoMODA9

    • Change prompt string from QBlissA9 to more generic fsimx6
    • Add ttymxc3 to /etc/securetty, needed for efusA9
    • Supply imx-lib-3.0.35-4.0.0.tar.gz package that is not available on the original server anymore

    Other than that we are working heavily on all our i.MX6 boards and modules. We are moving to newer U-Boot, newer BuildRoot, newer Kernel and also add Yocto as development platform.

    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.

  • i.MX6 Linux Release V2.0

    We have uploaded a new Linux version for all boards and modules based on the i.MX6 CPU to our server, i.e. the fsimx6 architecture: armStoneA9, PicoMODA9, QBlissA9 and efusA9. This release is running on all platforms of this architecture at the same time. So you can download the same binaries for NBoot, U-Boot, Linux kernel and BuildRoot root filesystem to any of the i.MX6 boards and it will run. No matter whether they are Quad/Dual core or DualLite/Solo.

    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 fsimx6-V2.0.tar.bz2

    This will create a directory fsimx6-V2.0 that contains all the files of the release.

    Please read the file doc/FSiMX6_FirstSteps_eng.pdf. It lists the meaning of all files and shows how to install and use everything.

    Release Notes for fsimx6-V2.0

    This is a major release. Things have massively changed all over the tree. Here are some highlights.

    1. New NAND support

    The NAND flash access has changed completely and is now more stable and data is more secure. U-Boot NAND speed has improved a lot: 4x the speed when writing to NAND and 7x the speed when reading. U-Boot now supports block refresh that makes a regular MTD partition (for example NBoot, U-Boot and Linux kernel in the standard configuration) as safe as an UBI volume.

    As NAND data is passed between the different bootloaders and the Linux system, you *must* update all parts at once. Mixing files from V1.x and V2.0 is not possible!!! So update the following steps:

    • Update NBoot to VN25 (if your NBoot is too old, you may need an intermediate step by installing version VN17 first before doing the final update to VN25). Please note that downgrading to an NBoot before VN25 is not supported once you have done this step.
    • After NBoot-Update, restart the board and press 'E' to erase whole NAND flash. Then install new U-Boot image.
    • After that, start U-Boot and install Kernel and root filesystem image. If you store the appropriate files on an SD card, this step will be done automatically in U-Boot.

    See the FSiMX6_FirstSteps_eng.pdf documentation for detailed instructions how the update is done.

    2. New NBoot

    NBoot is now built from the same code base as all our other boards. So NetDCUUsbLoader can be used to download files via USB, you can use xmodem protocol for serial downloads, and many more improvements.

    3. fsimx6 U-Boot merged with regular F&S U-Boot, rebased to 2014.01

    The fsimx6 version is now also part of our regular U-Boot with many many features. Now USB and SD-Card are supported in U-Boot. This U-Boot is now based on u-boot-2014.01.

    The following features are new for fsimx6 users:

    • Automatic install and update system in U-Boot. By providing new files on an SD card or USB stick, U-Boot can automatically do an update of the existing files or do a basic installation, if the system is empty.
    • Different boot strategies. By running some predefined variables you can easily modify

      • From where to load kernel (NAND, UBI, UBIFS, NFS, TFTP, USB, MMC)
      • From where to load rootfs (UBIFS, NFS, USB, MMC)
      • How to mount rootfs (read-write, read-only)
      • Where to show the Linux console (none, serial, display)
      • Where to start the Linux login (none, serial, display)
      • How to start the network (off, manual, dhcp)
      • What init program to start (init, linuxrc)
    • It is possible to move the Linux kernel to an UBI volume, too.
    • Simplified $loadaddr. You can use a single . (dot) for it now.
    • You can use wildcards when loading FAT files from USB or MMC.
    • You can use generic ls and load commands, no need to write fatload or ext2ls anymore.
    • $filesize will work in all cases now. No need to round up the size to the next NAND page boundary when writing to an MTD partition.

    4. Buildroot is merged with regular F&S Buildroot, rebased to 2014.02

    The new buildroot has many updated packages. For example Qt5 is now working without any trouble.

    5. One executable for all fsimx6 platforms

    The board support for U-Boot, Linux and Buildroot was heavily improved. Now all platforms, armStoneA9, QBlissA9, efusA9 and PicoMODA9, can be used with the same executable. No matter whether they are Quad/Dual-Core or DualLite/Solo. So there is one NBoot image,one U-Boot image, one Linux Kernel image one root filesystem image that fits all platforms. This simplifies compilation considerably because there is also only one configuration file for each step.

    1. U-Boot: fsimx6_config
    2. Linux: fsimx6_defconfig
    3. Buildroot: fsimx6_std_defconfig (Standard configuration)
    4. fsimx6_min_defconfig (Minimal configuration)

    The new minimal configuration fsimx6_min_defconfig in Buildroot has only Busybox and iproute2 active, nothing more. This can be used as a base for own developments.

    6. Newer toolchain (same as on Vybrid boards)

    We can now get rid of the rather old 4.4.4 Freescale toolchain and use the 4.7.2 F&S toolchain that we also use for our fsvybrid boards. Please note that this toolchain should be installed under /usr/local/arm.


    The following list shows the most noticable changes in this release in more detail.

    nbootimx6_25.bin (VN25)
    Supported Boards: armStoneA9, QBlissA9, efusA9, PicoMODA9

    • Completely new version based on the code of the other F&S boards
    • New NAND storage algorithm with Block Refresh capabilities

    u-boot-2014.01-fsimx6-V2.0 (21.04.2015)
    Supported boards: armStoneA9, efusA9, PicoMODA9, QBlissA9
    Not tested: armStoneA5, armStoneA8, PicoMOD7A, NetDCU14, NetDCUA5, PicoCOMA5, CUBEA5, AGATEWAY, HGATEWAY

    • Improve Ethernet support on fsvybrid (avoids a Vybrid hardware bug)
    • Add support for customer specific board HGATEWAY
    • Add basic support for fsimx6/armStoneA9 (previously done in separate tree)
    • Add MMC/SD card support to fsimx6
    • Convert i.MX6 serial driver to F&S serial driver concept
    • Fix kernel booting that failed for some boot strategies
    • Backport Atheros PHY driver from u-boot-2014.01
    • Add Ethernet support for fsimx6
    • Rebase to u-boot-2012.10
    • Modify F&S FAT driver to support reading from a file offset
    • Enable commands timer (start/get) and ini (load set of environment variables)
    • Enable support for EXT4 fileformat on F&S platforms
    • Add USB host support for fsimx6
    • Rebase to u-boot-2013.01
    • Add support for Thumb Mode compilation
    • Convert build process for fsvybrid to Thumb Mode (for size reasons)
    • Enable generic file support: ls, load
    • Enable gettime command that shows uptime since booting
    • Enable read command for raw reads from media without filesystem
    • Implement USB host for Vybrid CPU and activate it on fsvybrid boards
    • Rebase to u-boot-2013.04
    • Improve messages when reading from UBI
    • Drop support for fss3c64xx architecture (PicoMOD6, PicoCOM3)
    • Activate workarounds for some ARM errata on fsimx6
    • Rebase to u-boot-2013.07
    • Activate NAND support for fsimx6
    • Add F&S specific NAND implementation for i.MX6
    • Rebase to u-boot-2013.10
    • Fix env_nand.c to work with variable environment size again
    • Change NAND code to return bitflips on fsimx6, fsvybrid, fss5pv210
    • Add basic support for fsam335x/PicoCOMA8 (previously done in separate tree)
    • Convert serial_ns16550 driver used on fsa,335x to F&S serial driver concept
    • Add NAND flash support to fsam335x
    • Add MMC/SD card support to fsam335x
    • Add USB host support to fsam335x
    • Add Ethernet support to fsam335x
    • Convert build process for fsam335x to Thumb Mode (for size reasons)
    • Rebase to u-boot-2014.01
    • Add support for i.MX6 DualLite/Solo CPU to fsimx6
    • Change compilation process and board support on fsimx6 for new NBoot VN25
    • Change NAND page layout on fsimx6 to match the one from NBoot VN25
    • Heavily rework i.MX6 NAND driver, improve timings/clock settings, use longer DMA chains: writing is now 4x faster, reading is 7x faster than before!
    • Support block refresh on fsimx6
    • Hide boot strategy variables by prefixing them with '.' instead of '_'; use printenv -a to see them again
    • Allow setting additional arguments for command line with variable $extra
    • Add basic support for PicoMODA9, QBlissA9 and efusA9
    • Add code for DP83484 PHY to phylib
    • Add Ethernet support for PicoMODA9, QBlissA9 and efusA9
    • Add SD card support for PicoMODA9, QBlissA9 and efusA9
    • Add USB host support for PicoMODA9, QBlissA9 and efusA9
    • Fix bug that caused imx-lib (i.MX6 audio/video acceleration) in Linux to fail
    • Fix update/install check (was broken because of new FAT partition handling)
    • Add earlyusbinit feature to allow better USB device detection (especially behind USB Hubs), add to F&S board support, activate on efusA9
    • Fix console and login_tty settings tom make redirection to display work again
    • Allow arbitrary filesystem types on MMC and USB for update command
    • Update now sets variable updatedev to the device where the script was found

    linux-3.0.35-fsimx6-V2.0 (21.04.2015)
    Supported Boards: armStoneA9, PicoMODA9, efusA9, QBlissA9

    • Only switch NAND timing mode if NAND flash supports GET/SET_FEATURE commands
    • Fix hang on reboot command
    • New algorithm for PMIC (external) and LDO (internal) power regulation
    • Add LCD settings for display ET057090
    • Fix MMC (SD card) detection problem on armStoneA9
    • Add basic support for armStoneA9 DL/S
    • Add basic support for QBlissA9 DL/S
    • Add basic support for efusA9 Q/D
    • Add feature selection options in menuconfig (Kconfig) for all fsimx6 boards
    • Add all Freescale patches of rel_imx_3.0.35_4.1.0
    • Add all Freescale patches for 3.0.35 committed after rel_imx_3.0.35_4.1.0
    • Add support for /sys/bdinfo device to get tty_login name, NAND status, etc.
    • Correctly add F&S Tux Logo (Tux holding NetDCU Logo) for all color depths
    • Improve generic NAND driver, backport many features from newer linux versions
    • Implement extended APBH DMA driver with more features
    • Implement F&S version for NAND driver
    • Use new F&S NAND driver on all fsimx6 boards
    • Combine all fs-imx6*_defconfig files to one fsimx6_defconfig
    • Imrove Makefile to also work when compiling in a tree consisting of symlinks
    • Fix SD card driver timeout to handle cards with bad CSD settings
    • Fix AC97 audio driver for QBlissA9
    • Improve SGTL5000 audio driver for armStoneA9, PicoMODA9, efusA9
    • New ethernet initialization takes MAC address directly from FEC controller where U-Boot has stored it; no need to pass it on the command line anymore

    buildroot-2014.02-fsimx6-V2.0 (21.04.2015)
    Supported Boards: armStoneA9, QBlissA9, PicoMODA9, efusA9
    Not tested: armStoneA5, armStoneA8, NetDCUA5, NetDCU14, PicoMOD7A, PicoCOMA5, PicoCOM4, CUBEA5, AGATEWAY, HGATEWAY

    • Rebase to buildroot-2013.05
    • Join GIT trees from fsimx6 buildroot with multiplatform buildroot
    • Switch to current directfb version (was 1.2.0 for a while)
    • Make fsimx6 version match the behavior of other F&S platforms
    • Rebase to buildroot-2013.08
    • Make fsimx6 version use localdir variant for kernel compilation
    • Rebase to buildroot-2013.11
    • Rebase to buildroot-2014.02
    • Add support for customer specific board HGATEWAY
    • Use tty_login for fsimx6
    • Use regular inittab file from board/f+s/common on fsimx6
    • Switch to busybox-1.22
    • Add useful aliases for interactive shells in /etc/profile.d/fsalias.sh
    • Remove .xinitrc for fsimx6, it was restricted to blackbox WM
    • Change Linux kernel compilation procedure for localdir
    • Add fsimx6_min_defconfig and fsimx6_std_defconfig for all fsimx6 platforms
    • Remove board-specific defconfigs for fsimx6 platforms
    • Remove libdir patches for libfslcodec/libfslparser or aiurparser won't work
    • Reduce the differences to mainline buildroot as much as possible


    • Now use fs-toolchain-4.7.2-cortexa5-neonvfpv4 by default

    Many small modifications across all documents. Most noticable improvements:

    • Completely rewritten AdvicesForLinuxOnPC_eng.pdf now has instructions also for newer Fedora versions > Fedora 19
    • Heavily reworked FSiMX6-FirstSteps_eng.pdf

    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.