armStoneA9/Linux development state and releases

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


    fsimx6-V2.0.tar.bz2
    This is the main release itself containing all sources, the binary images, the documentation, examples and the toolchain.


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


    Code
    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


    Toolchain

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


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

  • When we will be getting device tree support for the ArmStone A9, since A8 already has it? If there's no work yet or no release date set, I would start trying to migrate it.


    Best regards,
    Jonas

  • We will be doing quite a lot of releases in the next few weeks. There will be maintentance releases for fsvybrid and fsimx6. And we have two new boards, the efusA9X (based on i.MX6SoloX CPU) and the efusA7UL (based on i.MX6UL). These two boards will be running on kernel 3.14.38 with device trees right from the beginning. We have already prepared newer U-Boot and Buildroot versions for them. And when these releases are done, we will also switch our regular i.MX6 boards like the armStoneA9 to this kernel version and to device trees. Our current plan is to have this available around end of December or beginning of January. Switching from board support files to device trees is not always as easy as it may seem. So exciting times are ahead of us.


    By the way despite the fact, that armStoneA8 uses kernel 3.3, it nonethelesse has no device tree support yet. Device tree support for S5PV210 CPU was added around kernel 3.17.


    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.

  • fsimx6ul-V1.0 is already out, fsimx6sx-V1.0 will be coming in the next few days. We are already working on the regular fsimx6 release with device trees. Some device trees are already done and we know that it will be kernel 3.14.52, but there is still quite a lot of stuff to do. Having a group of boards all work in one release for the first time requires additional modifications in U-Boot and other places.


    In addition we are preparing for the Embedded World exhibition and a workshop tour that we do afterwards, so I do not expect this fsimx6 release with device trees before end of march.


    We also do no alpha or beta releases. Most people do underestimate the effort that a release requires. It is not just packing the tar file. We need to rebuild all binaries with the final package and test them. We need to push version control systems, bug trackers, modify documentation, add a changelog, prepare new instructions for our production, etc, etc. So the pure mechanical way of preparing and packing a release (without any final bug fixes) usually takes at least two or three days. This is an effort that we don't want to do for any advance releases.


    And in addition, letting people have advance versions simply does not work. You can always say that this version is not supported and that there still may be some things that won't work, but people nonetheless ask for workarounds, fixes and actually use these advance versions in their own releases. So these advance versions actually generate more support effort and slow down the final release instead of speeding it up.


    Can you tell me why you need the device tree version so urgently?


    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_HK ().

  • Will kernel 3.14.38 for armStoneA9 be released any time soon? We need the AD7923 driver and it is not available for the current kernel version.


    Kind regards,
    Hein Gustavsen
    Miros AS

  • No, we will not release 3.14.38, nor 3.14.52. We will directly release kernel 4.1.15. And very soon. :)


    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.

  • The new release fsimx6-V3.0 is available now.


    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.