Announcement New Buildroot Release fsimx6-V3.1

      New Buildroot Release fsimx6-V3.1

      i.MX6 Linux Release V3.1 (Buildroot)

      After over a year of preparation, it is finally available. We have uploaded a new Linux version based on Buildroot for all boards and modules based on the i.MX6 CPU to our server, i.e. the fsimx6 architecture: armStoneA9, armStoneA9r2, PicoMODA9, efusA9, NetDCUA9, QBlissA9 and QBlissA9r2. 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.

      This is a maintenance release. 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

      Source Code

      1. tar xvf fsimx6-V3.1.tar.bz2

      This will create a directory fsimx6-V3.1 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-V3.1

      Here are some highlights of this release.

      1. Support for new boards

      This is the first regular release that supports NetDCUA9, QBlissA9 and QBlissA9r2. Also the device trees for all other boards are heavily improved.

      2. Secure-Boot features

      We have done quite a lot to support Secure-Boot. This means the whole boot process from NBoot via U-Boot to Linux can be restricted to binary images that are either signed or signed and encrypted. At the moment, the following images are supported: NBoot, U-Boot, Linux kernel (uImage), device tree, root filesystem (if not mounted read/write).

      However as this all requires some effort and instructions, we have not included this in the regular release. You need a special NBoot and also special versions of U-Boot. So if you are interested in Secure-Boot, please contact F&S.

      3. Enhanced device drivers

      Many device drivers are improved. For example the signal drivestrength for SD cards is now better trimmed and should provide less problems on all boards. Card Detect (CD) and Write Protect (WP) is fixed. eMMC is now supported on all eMMC-capable boards. RTS/CTS on UART had some issues that are solved now. The ethernet speed can now be restricted in the device tree. For example on a Gigabit ethernet port, you can limit the speed to 100 Mbit/s.

      The USB bus power is now switched by the controller itself. This pin was configured and used as GPIO in the past, now it uses the dedicated USB controller function. We have left the old code for reference (look for "#if 0 //###"), but we will remove this in the next release if there are no further problems.

      The USB OTG port can be used as additional host now on boards where this is supported by the hardware. We have added appropriate CONFIG macros in the device tree in this case. On some boards this even works completely automatically by checking the ID pin on the USB connector.

      4. Display & Touch

      All default display configurations use 32 bits per pixel now. This is necessary for some OpenGL and Qt5 examples. Backlight handling is improved. We have added a virtual keyboard to the Matchbox window manager in our standard configuration, including a German keyboard layout. xrandr is now also included in the default configuration, this can be used to rotate the X11 screen. We have added support for more CAP-Touch drivers. And there is a first defconfig that uses Wayland and Weston instead of X11 as graphics renderer.

      By the way, if you use our EDT070080 display, do not be surprised if the screen is now upside down. This was in fact an error in the past and the display was already upside down. So now is the correct orientation. This was caused by a wrong default setting for the rotate pin on the RGB-Adapter (armStoneA9 and efus-SKIT only).

      5. Fix freezing problem

      There was a problem that the board might freeze when only a few interfaces were active. This was caused by a power saving mode where the bus freqency for RAM is reduced to 24 MHz. Unfortunately not all DDR3 RAMs support this so-called DLL-off mode, which caused problems on these boards. Bus frequency scaling could be disabled via the sysfs at run-time already, but the system always started with bus frequency scaling enabled. We have added a switch to the device tree that allows starting with bus frequency scaling turned off. This is our default setting now.

      6. Audio chip default settings

      We have added /var/lib/alsa/asound.state, where the default settings for the sound codecs are given. You can modify this file for your own preferred sound settings.

      7. U-Boot

      SD support is also improved in U-Boot. eMMC is now detected and can be read and written with mmc read and mmc write.

      USB OTG devices (usb 0) can also be used as host in U-Boot where appropriate. Simply set the environment variable usb0mode to one of the following modes:

      peripheral: Use port fix as device (default)
      host: Use port fix as host
      otg: Check ID pin and depending on this use as host or device

      USB devices that are active in U-Boot are shut down now before starting the kernel to save power. Environment variable earlyusbinit is removed. The current USB code detects all USB storage devices realiably and we do not need this kludge anymore.

      All ethernet PHYs are set to standby before starting the kernel. This considerably saves power in case that networking is not automatically active in Linux.

      U-Boot patches some entries in the device tree automatically according to the board configuration that it finds at run-time. For example the ecc-strength for the NAND flash and some settings for /sys/bdinfo. More of these settings will be added in the future, for example WLAN detection, eMMC detection, etc.

      The U-Boot console output can now be redirected via network to a remote host. By default the host given as serverip is used, but you can also give a separate host by setting environment variable ncip. The following commands will redirect input and output to the remote host:

      Source Code

      1. setenv stdin nc; setenv stdout nc

      On the host side you have to start a tool called netconsole which is available in the tools directory when you build U-Boot.

      Source Code

      1. tools/netconsole <ip-addr_of_board>

      To redirect input and output back to the board, issue these commands:

      Source Code

      1. setenv stdin serial; setenv stdout serial

      For further information about this feature see doc/README.NetConsole in the U-Boot sources.

      8. Cortex-M4 support

      There were also lots of changes for asymmetric multicore processing (AMP) with the Cortex-M4. But as this is only relevant on i.MX6-SoloX, we will talk about this in more detail in the upcoming fsimx6sx release.


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

      nbootimx6_35.bin (VN35) (09.11.2017)
      Supported Boards: efusA9, armStoneA9, armStoneA9r2, PicoMODA9, NetDCUA9, QBlissA9, QBlissA9r2

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

      • Correct filename for USB
      • Add support for NetDCUA9 and PicoCOM1.2
      • Add status LED code for PicoMODA9 V110
      • Change QBlissA9 DQ memory parameters
      • Add message if memory parameters are not configured
      • Enable spread spectrum
      • Add BF2_AUDIO board option for NetDCUA9 and PicoCOM1.2
      • Use final values for UL cpuSpeed
      • Add default value for GetUINT

      • 0002929: Check IR LED pin configuration
      • 0003006: Add new boards
      • 0003007: Improve memory settings for QBlissA9
      • 0003008: Add warning if memory settings for board not found
      • 0003009: Enable spread spectrum again
      • 0003010: Don't halt if no flash is found and booting from USB is used
      • 0003011: Use correct values for CPU speed for UL
      • 0003012: Implement semihosting for debugging
      • 0003013: Add default value in function GetINT
      • 0003014: Fix typo in USB Virtual FAT
      • 0003015: Use onboard LEDs and STA1, STA2 on PicoMODA9 Rev.1.10
      • 0003016: Use drive strength 6 for DDR3 as default

      • 0003118: Change chainloader to #define option
      • 0003114: Disable ODT for armStoneA9, armStoneA9r2, PicoMODA9
      • 0003119: Add workaround for ring oscillator variations in UL
      • 0003117: Change watchdog initialisation
      • 0003115: Add M4 support for SX

      • 0003214: Fix boardfeature settings for efusA9X
      • 0003213: Add MAC readout over USB
      • 0003211: Add secureboot
      • 0003122: Boardfeatures not detected properly after warmboot
      • 0003123: Reboot with 'r' does not work on UL
      • 0003131: NetDCUA9: Serial debug on wrong port

      • 0003276: Rewrite checkboot code to remove numerical constants
      • 0003275: Add support for second chip select on DDR3
      • 0003274: Move GetLoaderName function from menu.c to imx6_loader.c
      • 0003273: Set HAB API vector table address according to processor type and revision
      • 0003272: Add user defined boardfeatures in nbootargs
      • 0003271: Add detection for security enabled nboot
      • 0003270: Add support for i.MX6ULL
      • 0003269: Add code for setting arbitrary fuses
      • 0003268: Rewrite code for fuse setting
      • 0003266: Makefile for nbootimx6sx_secure uses wrong cpu type
      • 0003155: Can't set serial number after blowing boot fuses

      • 0003309: Change EncodeBCH function call
      • 0003308: Fix processor detection for QP/DP
      • 0003307: Add delay before reconfiguring DRAM controller

      • 0003325: Remove unnecessary functions and menu entries in secure variants
      • 0003324: Add variant with changed start address for UL boot issue
      • 0003326: Add new functions for JTAG security fuses
      • 0003323: Add new variants secure and secureprod with security features enabled

      u-boot-2014.07-fsimx6-V3.1 (20.11.2017)
      Supported boards: armStoneA9, armStoneA9r2, efusA9, PicoMODA9, NetDCUA9, QBlissA9, QBlissA9r2, efusA7UL, PicoCOM1.2, efusA9X, PicoCOMA9X
      Not tested: armStoneA5, NetDCUA5, PicoCOMA5, armStoneA8, PicoMOD7A, NetDCU14
      • Add PicoCOMA9X support for SD card and ethernet
      • Add basic support for PicoCOM1.2 and LEDs on fsimx6ul
      • Add interrupt support for i.MX6
      • Add blinking LED support for fsimx6 and fsimx6ul
      • Add support for NetDCUA9
      • Remove ATAG creation from fsimx6/fsimx6sx/fsimx6ul platforms
      • Handle board features similarly on fsimx6/fsimx6sx/fsimx6ul
      • Improve LAN/WLAN initialization on fsimx6/fsimx6sx/fsimx6ul
      • Add dynamic device tree boot modifications for F&S boards
      • Add proper support for PicoCOM1.2
      • Add support for second Ethernet port on NetDCUA9
      • Improve timer resolution on i.MX6 CPUs
      • New implementation for AX88796 ethernet controller
      • Fix timer implementation on i.MX6
      • Set pull-down on display signals on fsimx6/fsimx6sx/fsimx6ul
      • Improve USB power on fsimx6ul
      • [fsimx6/ul/sx] Do not update existing properties in the device tree
      • [fsimx6/sx/ul] Add reset_cause, nboot_version, u-boot_version to bdinfo
      • Fix typos in env_nand.c
      • [fsimx6/sx/ul] Add support for 2 GB RAM
      • [fsimx6/sx/ul] Enhance SDHC initialization, add eMMC support
      • Add recovergpio to all F&S boards
      • Add device tree support for fsvybrid
      • [fsimx6/ul/sx] U-Boot may overwrite device tree settings
      • Add possibility to add function board_preboot_os()
      • [fsimx6/ul/sx] Shut down PHYs before starting Linux
      • Allow DEL key to work in the command line
      • Fix handling of second ethernet port on PicoCOMA9X
      • [fsimx6sx] Enhance ethernet initialization
      • fec_mxc: Add support for MAC-MAC connections without PHY
      • [fsimx6sx] Add support for Cortex-M4 core
      • [fsimx6sx] Leave memory space for RPMsg
      • [fsimx6sx] Add port speed setting for SJA1105
      • Improve hush parser command line handling
      • [fsimx6sx] Set CONFIG_NR_DRAM_BANKS to 2, improve dram_init_banksize()
      • [fsimx6/sx/ul] Add issue_reset(), handle RESETOUTn better
      • Improve bootaux command
      • Improve ehci-hcd USB driver
      • Fix setting of platform and sercon variables in board_late_init()
      • ehci-hcd: Shut down USB port power before booting OS
      • [fsimx6/sx/ul] Improve USB configuration
      • Add QBlissA9r2 board_info entry to fsimx6.c
      • [fsimx6/sx/ul] Rework USB support, add host support on OTG port
      • On efusA7UL use same strategy for CD/WP on SD ports as in Linux
      • Add support for CONFIG_NETCONSOLE to fsimx6/sx/ul/fsvybrid
      • Patch shared memory addresses for RPMsg in device tree on fsimx6sx
      • Some small final improvements to fsimx6/sx/ul/fsvybrid
      • Add function to reserve a RAM region in fdt on fsimx6sx
      • Fix drivestrength issues for SD ports on fsimx6/sx/ul

      linux-4.1.15-fsimx6-V3.1 (20.11.2017)
      Supported Boards: armStoneA9, armStoneA9r2, efusA9, PicoMODA9, NetDCUA9, QBlissA9, QBlissA9r2, efusA7UL, PicoCOM1.2, efusA9X, PicoCOMA9X
      Not tested: -
      • Add Sitronix ST1633I pcap touch
      • Basic initial device tree for QBlissa9q
      • Improve temperature sensor bme280 driver
      • Improve Focaltech touch ft5x06
      • Improve armStoneA9r2 DT audio SGTL5000 clock
      • Improve armStoneA9r2 DT and driver for MIPI camera
      • Rename History-F+S-Kernel-txt to History-F+S-Kernel.txt
      • Switch F&S default display configurations to 32 bpp
      • Implement polarity inversion for pwm-imx
      • Add support for PicoCOMA9X with PCOMnet
      • Change DMA, activate defines in picocoma9x.dts
      • Add Gamma2 option to leds-pwm.c driver
      • Add wm9715 support, needed for NetDCUA9
      • Improve wm9715 support
      • Add device tree for NetDCUA9 and improve defconfig for fsimx6 S/DL/Q
      • Improve Asix AX88796 driver and phy_device driver
      • Improve NetDCUA9 device tree, support AX88796B
      • Add fsl,mclk-out to SAI for outgoing MCLK on i.MX6UL
      • Add support for PicoCOM1.2
      • Fix ethernet clock settings on i.MX6UL and i.MX6SX
      • Do not rotate display by default on aST-ADP-EDT1
      • Add ET035080 to LCD database, fix ET070080 timings
      • Improve netdcua9 fec settings
      • Support for PicoCOMA9X on standard SKIT
      • On efusA9X fix RTS/CTS on UART3
      • Do not define RTC_IRQ pad twice on PicoCOM1.2
      • Improve LCD Power Management for i.MX6SX/UL
      • Improve ILINK PCAP touch support
      • Add support for ILI21XX and ST1633I touch on F&S platforms
      • Set default ecc_strength to 8 on PicoMODA9
      • Improve SGTL5000 on imx.6: no-standby, ext. vddd, small pop
      • Improve display settings PicoCOMA9X
      • Improve device tree IOMUX settings for GPIOs
      • Add picocoma9x to dts Makefile
      • Improve eMMC handling on i.MX6
      • Support HDP signal with inverted polarity in HDMI driver
      • Add support for QBlissA9
      • Add support for QBlissA9r2
      • Add ET8076 HID Multi-touch support
      • Add support for Freescale DCU DRM Driver
      • Improve vf610 support
      • Add support for armStoneA5
      • Improve DCU DRM driver
      • Improve imx6sx.dtsi PWM settings
      • Improve spi-imx driver to support more than 4 chip selects
      • Allow keeping GPIO interrupt settings from U-Boot
      • Fix clock sources for cko2_sels in clk-imx6ul.c
      • Allow clock activation via devcie tree at startup in clk-imx6ul.c
      • Improve PicoMODA9 device tree settings
      • Improve NetDCUA9 pinmux settings
      • Improve armStoneA9r2 pinmux settings
      • Improve armStoneA9 pinmux settings
      • Add polarity settings for USB_OTG/H1_PWR/OC on i.MX6
      • Improve device tree settings for USB on fsimx6/sx/ul
      • Fix display settings for PicoCOMA9X
      • Add auxiliary core linux driver support
      • Improve RPMsg driver dynamic vring buffer start addresses
      • Improve auxiliary core driver
      • Avoid warning in bdinfo driver if DEBUG_LOCK_ALLOC is active
      • Add mono2both flag to device trees
      • Add mdio nodes to FEC device tree nodes on fsimx6, allows setting the speed
      • Add RPMsg example fs_adc_i2c_rpmsg_demo to show communication A9 <-> M4
      • Add SUPPORT_M4 to efusa9x.dts
      • Fix freeRTOS periodicWFI example
      • mxs-dma-ext.c: Add iram option, remove runtime suspend
      • Add iram setting to dma_apbh on fsimx6/sx/ul
      • Enhance DDR3 busfreq driver for i.MX6/SX/UL
      • Pretty-print F&S device trees, update copyright date
      • Restructure PicoMODA9 device trees
      • Improve device tree for PicoCOMA9X
      • Improve device trees for several F&S boards
      • Fix RTS/CTS settings for UART on fsimx6/sx/ul
      • Disable bus frequency scaling on fsimx6/sx/ul
      • Move SDMA descriptors to OCRAM on i.MX6 and i.MX6SX
      • SGTL5000 warmstart problems: restore code with internal LDO
      • Add ax88796 driver to fsimx6_defconfig for 2nd LAN on NetDCUA9
      • Restructure device tree for efusA9X
      • virtio_rpmsg_bus.c: Remove debug messages, they slowed down everything
      • Improve example fs_rpmsg.c
      • Fix SD port settings and M4 configs in efusA9X device tree
      • Add SUPPORT_M4 to PicoCOMA9X devicetree + small i2c3 fix
      • Rework PicoCOM1.2 device tree
      • Fix SD/eMMC/WLAN/BT device tree settings for F&S boards
      • sdhci-esdhc-imx.c: Do not switch pad settings unnecessarily often
      • sdhci.c: Remove console message if voltage switching fails
      • wm97xx-core.c: Remove warning about unspecified IRQ
      • Minor fixes in device trees for efusA7UL and NetDCUA9
      • Change lcdif aliases for imx6sx.dtsi
      • Improve imx6sx can clock settings
      • Improve Display regulator settings in device trees
      • QBlissA9/QBlissA9r2: Rename UART/I2C/PWM ports, enhance device trees
      • Finish UART RTS/CTS modification
      • Disable internal SNVS-RTC on i.MX6/i.MX6UL
      • Fix device tree issues found during test

      buildroot-2016.05-fsimx6-V3.1 (20.11.2017)
      Supported Boards: armStoneA9, armStoneA9r2, efusA9, PicoMODA9, NetDCUA9, QBlissA9, QBlissA9r2, efusA7UL, PicoCOM1.2, efusA9X, PicoCOMA9X
      Not tested: armStoneA5, NetDCUA5, PicoCOMA5
      • Add basic support for wayland and weston on i.MX6
      • Fix weston gal2d-renderer
      • Add EGL/GLESV2 support to weston on i.MX6
      • Use eudev-1.10 for fsvybrid
      • Remove unused board/f+s/fsimx6/inittab file
      • Add netdcua9dl/q devicetrees to fsimx6_min/std_defconfig
      • Add Audio Chip configuration support
      • Add keyboard icon to taskbar
      • Add german keyboard layout
      • Add fsgetty for all F&S boards and modules
      • Improve fsvybrid defconfig DT/Kernel
      • Add wget support for fsimx6, fsimx6sx, fsimx6ul
      • Include QBlissA9qdl and QBlissA9r2qdl names in fsimx6_std_defconfig
      • Add fsimx6ul_qt5_defconfig
      • Add support for wget in fsvybrid
      • Fix sdkdir problems in xdriver-xf86-input-{evdev,mouse}
      • Go to busybox config 1.24.2, add FAT tools to F&S defconfigs
      • Add additional packages to qt5_defconfigs required for Qt5 debugging
      • S35x11: Do not start X if no framebuffer is available
      • Add new busybox config for additional F&S platforms
      • Move install-cube*.scr to output/images directory
      • Remove unused qblissa9qt_defconfig
      • Add missing device trees to some F&S defconfigs
      • Add openssl binaries to some F&S configs, remove unneeded applications
      • Add xrandr to fsimx6/sx/ul_std_defconfig
      • Do not use a session for matchbox

      • No changes

      • No changes

      • Update to version 1.1 of AdvicesForLinuxOnPC_eng.pdf
      • Update to version 3.2 of FSiMX6_FirstSteps_eng.pdf
      • Update to version 1.2 of armStoneA9-GPIO-ReferenceCard_eng.pdf
      • Update to version 1.1 of armStoneA9r2-GPIO-ReferenceCard_eng.pdf
      • Update to version 1.3 of efusA9-GPIO-ReferenceCard_eng.pdf
      • Add version 1.0 of QBlissA9-GPIO-ReferenceCard_eng.pdf
      • Add version 1.0 of QBlissA9r2-GPIO-ReferenceCard_eng.pdf
      • Add version 1.0 of NetDCUA9-GPIO-ReferenceCard_eng.pdf
      • Update to version 1.00 of armStoneA9_Hardware_eng.pdf
      • Update to version 0.7 of armStoneA9r2_Hardware_eng.pdf
      • Add "Letter of Conformity armStoneA9r2.pdf"
      • Update to version 1.00 of efusA9_Hardware_eng.pdf
      • Update to version 1.0 of efus_DG_eng.pdf
      • Update to version 1.18 of efus_SINTF_eng.pdf
      • Update to version 1.5 of QBlissA9_Hardware_eng.pdf
      • Add version 1.00 of NDCU-SINTF-14-Doku.pdf
      • Add version 1.00 of NDCU-SINTF-14-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.

      Post was edited 3 times, last by “fs-support_HK” ().