New release fsvybrid-V2.2

  • Vybrid Linux Release V2.2

    We have uploaded a new Linux version for all boards and modules based on the Vybrid CPU to our server, i.e. the fsvybrid architecture: armStoneA5, PicoCOMA5 and NetDCUA5. 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 Vybrid boards and it will run.

    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 fsvybrid-V2.2.tar.bz2

    This will create a directory fsvybrid-V2.2 that contains all the files of the release.

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

    Release Notes for fsvybrid-V2.2

    This is a maintenance release for fsvybrid. However as the last release was more then two years ago, a rather impressive list of modifications has accumulated. fsvybrid is the software for all boards from F&S that are based on the Vybrid CPU from Freescale/NXP. Currently this consists of the boards armStoneA5, PicoCOMA5, NetDCUA5 and some customer specific boards. All these boards can work with software that is created from this release package.

    Here are some highlights of this release.

    1. U-Boot 2014.07

    U-Boot has received quite a lot of changes that increase stability and functionality. For example when downloading a file with tftp or nfs, the size of the already downloaded part is now output at the end of each row of progress hash marks. If a cable is unplugged, the board switches faster to the other ethernet port, but at the same time slow connections are not timed out too quickly. This was a problem now and then in previous versions.

    Also support for USB sticks is added, i.e. you can use USB sticks for installation and updates now.

    Please note that the variables for boot strategies now start with a dot instead of an underscore. This means that these variables are usually hidden in the printenv command. Issue

    1. printenv -a

    to see these hidden variables, too.

    2. Many bug fixes and improvements in the kernel

    The SGTL5000 sound driver has experienced quite a lot of enhancements to increase the volume and reduce clicking noises when starting and stopping playback.

    Overlays are now actually working, you can stack up to four windows on top of the desktop, including alpha blending.

    Support for PWM is now available (also for LEDs), SPI and ADC drivers are fixed and do work much better now, RS485 is added to the serial driver and the clock infrastructure is heavily improved, for example by supporting spread spectrum now (improves EMC compatibility).

    3. Buildroot 2016.05

    We switched to a considerably newer buildroot version. This includes a lot of updated and also new packages.

    4. New toolchain

    We also have a new toolchain that is based on GCC-5.2. This now fully supports the ISO-C11 standard and partly the C++14 standard.

    5. New examples

    We have added a new set of examples to the release. These examples consist of small programs that show how to use a specific device or feature like a GPIO pin, SPI device or PWM port.


    The following list shows the most noticable changes in this release in
    more detail since our last Vybrid release fsvybrid-V2.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.

    nbootvyb115_13.bin (VN13)
    Supported Boards: PicoCOMA5, armStoneA5, NetDCUA5, PicoMODA5, PicoMOD1.2

    NBootVybrid - V10 (Released 2014-07-11)

    • 0002342: Change UART debug port for PicoMOD1.2

    NBootVybrid - V11 (Released 2014-09-01)

    • 0002342: Add external clock detection for enet phy's

    NBootVybrid - V12 (Released 2014-12-05)

    • Change to new compiler
    • Reorder structure for less warnings
    • Add support for new F&S MfgTool
    • Add support for some customer specific boards

    NBootVybrid - V13 (Released 2015-08-12)

    • 0002715: Remove non working serial number string descriptor
    • 0002716: Change stack layout
    • 0002717: Add customer specific power LED init
    • 0002718: Enable spread spectrum for all boards
    • 0002719: Change memstest stepsize for better test coverage
    • 0002720: Add customer specific serial number fuse settings
    • 0002721: Add serial number invalidation check
    • 0002722: Change customer specific IOMUX init
    • 0002723: Add customer specific LED functions

    u-boot-2014.07-fsvybrid-V2.2 (21.10.2016)
    Supported boards: armStoneA9, armStoneA9r2, efusA9, PicoMODA9, QBlissA9, efusA7UL, efusA9X, armStoneA5, NetDCUA5, PicoCOMA5
    Not tested: armStoneA8, PicoMOD7A, NetDCU14

    • Improve Ethernet support on fsvybrid (avoids a Vybrid hardware bug)
    • 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 fsam335x 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
    • Add AUTO_COMPLETE for fsvybrid, fsam335x and fss5pv210
    • Use new volume name format for ubifsmount
    • Add rootwait for asynchronuous root devices like SD Card
    • Improve fsvybrid NAND driver, e.g. optimize count_zeroes() function
    • Rebase to u-boot-2014.04
    • Join Vybrid asm-offsets.c with arch/arm/lib/asm-offsets.c
    • Use objcopy to create uboot.nb0 in Makefile
    • Add fat_exists() function in F&S FAT implementation
    • Fix SD/MMC buswidth config on fsimx6 and fsvybrid
    • Activate workarounds for ARM errata 794072+761320 on fsimx6
    • Rebase to u-boot-2014.07
    • Use F&S variants for command interpreters
    • Make U-Boot binary layout work with F&S NBoot again
    • Use IOMUX_PADS() and SETUP_IOMUX_PADS() for fsimx6
    • Remove ARM erratum 742230 from fsimx6
    • Clean up code for update/install/recover infrastructure
    • Add support for i.MX6 Solo-X CPU
    • Add IOMUX_PADS() and SETUP_IOMUX_PADS() for i.MX6 Solo-X
    • Fix irqstaten value in fsl_esdhc driver
    • Add board_usb_phy_mode() to i.MX6 USB driver ehci-mx6.c
    • Add board support for fsimx6sx (efusA9X)
    • Disable warning message for not using generic board
    • Add support for Device Trees (FDT) for fsimx6sx
    • Add FDT partition and Android boot.img support
    • Trigger RESETOUTn at start on fsimx6sx
    • Add basic support for i.MX6UL (taken from rel_imx_3.14.38_6ul_ga)
    • Update necessary ARM errata workarounds for i.MX6
    • Add support for KSZ8081 ethernet PHY
    • Add support for fsimx6ul (efusA7UL)
    • Improve ethernet configuration, add second ETH on fsimx6sx
    • Use SION flag for I2C pads on i.MX6SX
    • Add Micrel KSZ8021/KSZ8031 to drivers/net/phy/micrel.c
    • Fix incorrect PHY name for DP83848
    • Remove unneeded 125MHz reference clock for ethernet on efusA9X
    • Switch LAN on fsvybrid to fec_mxc driver and use PHYLIB
    • During TFTP/NFS, show size and improve timeout handling
    • Improve LAN timeout timing on all F&S boards and modules
    • Backport cache_v7.c from u-boot-2015.07
    • Use CONFIG_SYS_ARM_CACHE_WRITETHROUGH on F&S boards and modules
    • Allow '.' for $loadaddr in mmc read and mmc write
    • Add support for config jumpers on fsimx6ul (needs NBoot VN27 or newer)
    • In fsl_esdhc.c, invalidate dcache twice to be sure
    • Fix bitflip handling in NAND driver
    • On fsvybrid, in case of uncorrectable NAND errors, return raw data now
    • On fsvybrid, NAND driver also works on flashes with more than 64 bytes OOB
    • Reduce progress line length in tftp/nfs to avoid wrap-around on 80 chars terminals
    • Fix exception vector allocation and relocation
    • On fsimx6sx and fsimx6ul, add possibility to load FDT from UBI/UBIFS
    • Add nand convert command (used on fsvybrid)
    • Fix ethernet on NetDCUA5 Board Rev 1.21
    • Add device tree support for fsimx6
    • Add missing .fdt_usb in fsimx6sx and fsimx6ul
    • Show more board infos on fsimx6sx and fsimx6ul
    • Do not power cycle USB hub ports, add usb_pgood_delay variable
    • On F&S boards set bootfdt variable to $arch-$platform.dtb
    • Fix AIPS3 initialization on i.MX6-SoloX
    • Add missing FEAT2_ETH_MASK to fsimx6ul.c
    • Fix problem with large files on some USB sticks
    • If using ubifs, look for fdt in /boot (like the kernel)
    • Remove fsload variable from fsimx6, fsimx6sx and fsimx6ul
    • Add status LED support for fsimx6
    • Prepare for compilation with gcc-5.x, remove warnings
    • Add support for armStoneA9r2
    • Add serverip to nfsroot when running .rootfs_nfs
    • Remove architecture prefix from device tree names
    • Add "dl" or "q" to device tree name on fsimx6, depending on actual CPU type
    • Additionally allow installation from RAM on regular F&S boards
    • Reduce drive strength for ethernet clock signal on fsvybrid

    linux-3.0.15-fsvybrid-V2.2 (21.10.2016)
    Supported Boards: armStoneA5, PicoCOMA5, NetDCUA5

    • Add missing ft_app.i File for FT5x06_ts_v2 Touchscreen Driver
    • Fix Kconfig help text for VLCDON and VCFLON on armStoneA5
    • Improve clock implementation on Vybrid:

      • Remove bad 64 bit scheduler clock; the clock is only 32 bits
      • Consider spread spectrum modulation when computing PLL clock frequencies
      • Report correct clock values for clocks with active spread spectrum
      • Add pll2_sw_clk for PLL2 similar to pll1_sw_clk for PLL1
      • Add missing pll3_pfd1_308M clock for PLL3
      • Rename some pfd clocks to reflect the actual clock speed

    • Avoid unnecessary NAND flash timeout messages on fsvybrid
    • Fix transmit handling in FEC ethernet driver for Vybrid
    • Make Atmel MXT touch work on fsvybrid
    • Add support for MXT224E touch
    • Change playback and stop startup of SGTL5000 to reduce pop noise
    • SGTL5000: Changed Timings to start playback faster
    • Fix Vybrid overlay window handling and alpha blending
    • Improve SGTL5000 audio driver on Vybrid:

      • Improve sound volume, now 192 instead of 156 is possible
      • Add regulator support
      • Do not switch to internal VDDD LDO if external VDDD is supplied (recommended by Freescale SGTL5000 errata sheet)
      • Clear Tx FIFO after playback to avoid clicks at beginning of next track
      • Remove DAC volume ramp, not needed anymore; results in faster response
      • Modify initialization sequence to avoid hanging I2C after a warmstart if local PLL was active before
      • Add volume ramp when muting/unmuting headphone (HP) output
      • Fix some TLV array size values
      • Do not switch to mono to avoid clicks on unused right channel
      • Rename some controls to make names more consistent

    • Fix SD card driver to allow handling SD cards with bad csd settings
    • Improve NAND driver for fsvybrid:

      • Handle bad block marker in 1st and 2nd page if NAND_BBT_SCAN2NDPAGE is set
      • chip->ecc.write_page{,_raw}() now also return an error status
      • Return number of corrected bitflips in some generic read functions
      • Only read OOB in fus_nfc_read_page{,_raw}() if oob_required is set
      • Only write OOB area in fus_nfc_write_page_raw() if oob_required is set
      • Use optimized count_zeroes() function for faster empty page detection
      • Prepare code for later kernel versions that have chip->ecc.strength

    • Fix Vybrid IOMUX names for I2C0 (PAD36/37) and I2C1 (PAD38/39)
    • Modify touchscreen selection for fsvybrid
    • Backport generic PWM infrastructure from kernel 3.15
    • Backport Freescale FlexTimer driver pwm-fsl-ftm.c from kernel 3.15
    • Add Gamma2 option to leds_pwm driver to allow changing the brightness according to the human eye sensitivity
    • Use new FlexTimer PWM for dimmable LEDs on all F&S Vybrid boards
    • Allow setting a new period in pwm-fsl-ftm driver
    • Allow setting a new period in leds-pwm driver
    • Use same Atmel MXT touch driver on fsvybrid as on fsimx6
    • Add spi timing settings to armStoneA5 board support file
    • Fix led-pwm.c for value 0 when signal is active low
    • Do not return bitflip count as error in last page of NAND read loop
    • Return raw data in case of non-correctable ECC (necessary for UBI)
    • Use dynamic NAND page layout for fsvybrid, allows for different flash types
    • Move offset for NAND status more to the back on fsvybrid
    • Fix SPI mode on Vybrid, only SPI mode 0 was possible before
    • Fix wrong values in ADC driver
    • Add support for RS485 to serial driver on Vybrid
    • Add RS485 support to armStoneA5, PicoCOMA5, NetDCUA5
    • Fix time statistics for system, irq and idle time (top showed wrong CPU load)
    • Make fsvybrid a tickless system
    • Prepare for compilation with gcc-5.x
    • Remove compiler warnings on fsvybrid when compiled with gcc-5.2
    • Rework flags settings for fsvybrid UART configurations
    • Fix warnings in mvf_edma_test.c, remove from fsvybrid_defconfig
    • Add support for 32/24 bit sound samples to DMA on Vybrid
    • SGTL5000: Output mono sound equally on both channels

    buildroot-2016.05-fsvybrid-V2.2 (21.10.2016)
    Supported Boards: armStoneA9, armStoneA9r2, efusA9, PicoMODA9, efusA7UL, efusA9X, armStoneA5, PicoCOMA5, NetDCUA5

    • 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
    • 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/
    • 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 librid patches for libfslcodec/libfslparser or aiurparser won't work
    • Reduce the differences to mainline buildroot as much as possible
    • Fix download site for xdriver_xf86-input-tslib
    • Fix tslib crash on xserver 1.12 or newer with unknown xf86XInputSetScreen
    • Fix libtool .la file modification style
    • Rebase to buildroot-2014.05
    • Rebase to buildroot-2014.08
    • Fix rename mismatch for package procps
    • Rebase to buildroot-2015.02
    • Backport alsa-utils from buildroot-2015.05
    • Fix *OPT to *OPTS renaming issues in xdriver and pkg-autotools
    • Rebase to buildroot-2015.05
    • Rebase to buildroot-2015.08.1
    • Fix xkeyboardconfig and gcc versions in F&S defconfigs
    • Remove freescale-imx/xserver-xorg-video-imx-viv package, use regular version from x11r7/xdriver_xf86-video-imx*
    • Remove now unused package multimedia (gst-fsl-plugins are now in gstreamer)
    • Replace i.MX6 graphic stuff for 3.10.53 with newest version for 3.14.38: firmware-imx, imx-gpu-viv, imx-kobs, imx-lib, imx-vpu, gst-fsl-plugins, libfslcodec, libfslparser, libfslvpuwrap, xdriver_xf86-video-imx-viv
    • Fix issues that prevent compiling (cairo, imx-lib, etc.)
    • Fix version conflict for gettext in package xkeyboard-config
    • Check if /etc is writable before computing openssh keys
    • Improve login_tty settings in S01fssetup for F&S boards
    • Fix defconfig problems when building Linux kernel
    • Update F&S defconfig for busybox to 1.23.x
    • Fix ARM NEON handling in libpng
    • Add fsimx6ul_min_defconfig and fsimx6ul_std_defconfig (for efusA7UL)
    • Switch touch support from tslib to evdev, tslib remains as option
    • Fix download site for xdriver_xf86-input-tslib
    • Fix freetype changes of include paths for older packages
    • Fix qt5base compilation
    • Rebase to buildroot-2015.11.1
    • On F&S boards, final_script_min must create /etc/profile.d
    • Reorganize final script system for F&S boards
    • Update GPU packages to be used with i.MX6-SoloX
    • Create separate support for fsimx6sx
    • Add patch for ncurses-5.9 to be compatible with gcc-5.x
    • Add EGL support to fsimx6
    • On F&S boards remove screen blanking in xorg.conf
    • Switch F&S kernel build to BR2_LINUX_KERNEL_CUSTOM_LOCAL
    • Rebase to buildroot-2016.02
    • Add ptp-gadget package
    • Switch NXP-based F&S boards to fs-toolchain-5.2.0-armv7ahf
    • Add device trees and bdinfo based login_tty to fsimx6_{min,std}_defconfig
    • Switch to imx-gpu-viv/xserver-xorg-video-imx-viv 5.0.11.p8.3
    • Improve fsimx6_std_defconfig with regard to display issues
    • Remove TWM, DirectFB and input-event-daemon from fsimx6_std_defconfig
    • Update multimedia libraries for i.MX6
    • Add imx-gst1-plugin to gstreamer1 package
    • Switch from gstreamer-0.10 to gstreamer-1.x on fsimx6
    • Fix compilation of imx-gst1-plugin
    • Rebase to buildroot-2016.05
    • In imx-gpu-viv, use x11 output if X11R7 active, fb otherwise
    • Use uImage for kernel image again (was accidentally dropped in last rebase)
    • Bring IMX libraries in sync with upstrem (git repo)
    • Add e2fsprogs package to allow eMMC configuration and formatting
    • Add iw package for WLAN on some boards
    • Drop architecture prefix from F&S device tree names
    • Add fsimx6_qt5_defconfig, includes most Qt5 packages and all Qt5 examples
    • Add device trees for PicoMODA9 to fsimx6_{min,std}_defconfig
    • Move .Xauthority file to /var/run
    • Use uImage for kernel image again on F&S boards
    • Bring fsimx6{ul,sx}_std_defconfig in sync with fsimx6_std_defconfig
    • Add fbdev sink to F&S defconfigs with gstreamer-1.0
    • Add fsimx6sx_qt5_defconfig
    • In Cairo, only include xlib_libXdamage in case of XORG7
    • Improve F&S defconfigs based on NXP SoCs (add ltrace, strace, remove file)
    • On fsvybrid, switch from mdev to eudev to allow using evdev in X11
    • On fsvybrid, use evdev for touches now (better multitouch support)
    • On fsvybrid, remove input-event-daemon like on all other F&S configs


    • gpio: Show GPIO handling: export, direction, value (input and output)
    • spidev: Show SPI handling for sending and receiving data
    • pwm: Show PWM handling: export, period, duty cycle
    • leds: Show LED handling: brightness or trigger
    • backlight: Show backlight handling: brightness
    • adc: Show ADC handling
    • can: Show CAN handling: send and receive
    • evtest: Show event data of /dev/input/event*
    • gstreamer: Show simple gstreamer handling: audiotestsrc and videotestsrc


    • New toolchain fs-toolchain-5.2.0-armv7ahf.tar.bz2
    • Full support for C11 standard and OpenMP 4.0
    • Partly support for C++14 standard


    • Update AdvicesForLinuxOnPC_eng to V1.0
    • Update Vybrid_FirsteSteps_eng.pdf to V1.4
    • Update NetDCUA5_Hardware_eng.pdf to V1.02
    • Update PicoCOMA5_Hardware_eng.pdf to V1.7
    • Update armStoneA5_Hardware_eng.pdf to V1.01
    • Add PCOMnetA5_Hardware_eng.pdf V1.03
    • Update PicoCOM_Startinterface_eng.pdf to V1.8
    • Replace NetDCU_Startinterface_eng.pdf with NetDCU_SINTF14_eng.pdf V1.00
    • Replace NetDCU-Startintf4_Schematic.pdf with NetDCU_SINTF14_Schematic.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.