****************************************************** Release Notes: Linux Image V2.x for Colibri VF50/VF61 ****************************************************** Contents: - U-Boot 2014.04 boot loader - Linux 3.0.15 kernel, based on Freescale TWR-VF65GS10 Timesys LinuxLink 2014-05-29 (ts2.17) - Yocto/OpenEmbedded daisy/2014.06 based root file system, using LXDE desktop environment ==> Flashing instructions can be found at the very bottom of this release notes ******************************************************************************** Linux Image V2.3 Beta 1 (August 4, 2014) - U-Boot - Fix environment offset to match new MTD partition layout - Enable external 32 kHz oscillator for more precise RTC - Use PLL2 as RAM clock which allows correct frequency for VF61 - Updated Boot ROM Configuration; boot ROM is now able to skip bad blocks - Add CPU/SoC type detection - Disable automatic boot when using recovery mode - Linux kernel: - Add support for CAN (configuration CONFIG_CAN_FLEXCAN need to be enabled) - Updated default configuration for newer systemd variant, removed DVB-T tuners - Added/Fixed PWM support by creating a new driver for FlexTimer - Colibri VF50: Minimum touch pressure to count as touch is now configurable through the parameter "min_pressure" - Linux user-space - Update from oe's dora to daisy - Integrate u-boot-fw-utils fw_printenv fw_setenv - Remove machine feed URL, as it does not exist - Only start xinput-calibrator.service when LXDM is enabled - Use X server 1.14.4 - Disable openssh's use of reverse DNS - Add unclutter to hide mouse cursor - Disable gvfs samba-client - Remove webkit-gtk dependency on video and OpenGL - Use libpthread for gnutls - Remove gnome-disk-utility - sources git.toradex.com tag Colibri_VF_LinuxImageV2.3Beta1_20140804 - repository linux-toradex branch colibri_vf - repository u-boot-toradex branch 2014.04-toradex Known Issues: - If the module does not boot remove all displays connected to HSYNC, VSYNC and reset. (This has been observed on an Evaluation Board V2.1) - Analogue audio is not working on the Colibri VF61 - USB client is not reliable (communication freezes when using RNDIS/g_ether) - The Angstrom-Distribution since switched to using ARM Thumb2 instruction set. To use their binary feeds e.g. using the opkg package manager please change in /etc/opkg/base-feed.conf et. al. armv7ahf-vfp-neon to armv7at2hf-vfp-neon. We consider switching in our next release. ******************************************************************************** Linux Image V2.2 Beta 1 (June 03, 2014) - U-Boot - Update to mainline U-Boot 2014.04 with new partition layout and NAND driver which enables hardware ECC. - Support new config block layout. - Dropped SD card environment support (booting the boot loader from SD card is not possible with fused modules) - Linux kernel: - Make use of hardware ECC result when reading from NAND (this breaks backward compatibility, reflash of root filesystem needed) - Clear pending characters from UART when configuring FIFO. This solves boot hang when UART characters are received during startup. - Fix global timer length which makes sure kernel time is monotonic increasing - Add support for second Ethernet (enable with CONFIG_FEC0) - Add support for UART4/UART5 (enable with CONFIG_UART[3|4]_SUPPORT) - Support new pin assignment for VF50 V1.1 and newer - Use chip select for NAND (required for U-Boot 2014.04) - Linux user-space - Update GPIO config tool to V1.2 - Add mcc-pingpong demo application for communication with Cortex M4 core - sources git.toradex.com linux/u-boot branches colibri_vf tag Colibri_VF_LinuxImageV2.2Beta1_20140603 Known Issues: - If the module does not boot remove all displays connected to HSYNC, VSYNC and reset. (This has been observed on an Evaluation Board V2.1) - Analogue audio is not working on the Colibri VF61 - SSH password authentication is disabled by default (see PasswordAuthentication setting in /etc/ssh/sshd_config) - Package management is not active (opkg update/opkg install does not work) - USB client is not reliable (communication freezes when using RNDIS/g_ether) ******************************************************************************** Linux Image V2.1 Beta 3 (March 18, 2014) - U-Boot - Add default VESA VGA vidargs for our now modedb enabled kernel. This allows easy specifying an alternate parallel RGB resolution. - Linux kernel: - Allow to configure video resolution through modedb (video=dcufb:..). - Add kernel parameters to change RGB clock polarity. - Included reworked Fusion multi-touch touchscreen driver. - Merged Timesys tag 3.0-vybrid-ts2.13. - Support suspend/resume for Micrel PHY. - Enable FIFO for UART even when serial console is enabled. - Enabled wake-up pins SODIMM 43/45. - Fix and enabled SPI support (DSPI1). - Platform data for CAN transceiver MCP251x on Evaluation Board. - Build AC97 driver as module (supports resistive touch only for now). - Add PWM platform data, export PWM channels as PWM LEDs. - Linux user-space - GPIO config tool. - Add Cortex M4 utility mqxboot and communication library libmcc. - sources git.toradex.com linux/u-boot branches colibri_vf tag Colibri_VF_LinuxImageV2.1Beta3_20140318 Known Issues: - If the module does not boot remove all displays connected to HSYNC, VSYNC and reset. (This has been observed on an Evaluation Board V2.1) - Analogue audio is not working on the Colibri VF61 - An input on UART_A during bootup can lead to a hang (stuck at "rtc-ds1307 0-0068: hctosys: unable to read the hardware clock"). Make sure UART_A is connected before powering up and not written to. ******************************************************************************** Linux Image V2.1 Beta 2 (November 29, 2013) - U-Boot: - Add initial Colibri VF61 support. - Implement memory size auto detection. - Implement module type (e.g. VF50 vs. VF61) auto detection based on L2 cache availability. - Set specific ARM core clock (e.g. 400 vs. 500 MHz) as well as Linux machine id number. - Rename configuration to colibri_vf to be universally used for Colibri VF50 as well as VF61. - Linux kernel: - Various ADC resp. VF50 touch improvements/fixes. - Implement internal temperature sensor exposed via /sys/class/hwmon/hwmon0/device/temp1_input. - Fix VESA VGA display timing. - Use 16 bpp framebuffer by default to avoid buffer underruns. - Add the following additional display timings for manual activation: - 800x480@60 (e.g. EDT ET070080DH6) - 800x600@60 - 1024x600@60 (e.g. TouchRevolution Fusion 10) - 1024x768@60 - Allow for 396 as well as 500 MHz A5 core frequency. - Add the Colibri VF61 machine id and its corresponding machine definition. - Rename configuration to colibri_vf to be universally used for Colibri VF50 as well as VF61. - Enable watchdog configuration. - Fix Freescale's magic daisy chain aka select input IOMUX stuff. - Fix pixel clock polarity. - rootfs / oe-core: - Use branch 'LinuxImageV2.1' in toradex-bsp-platform.git - Fix recipe to follow the changed khronos headers checksum - Rename machine to colibri-vf to be universally used for Colibri VF50 as well as VF61 - Unify files for use with VF50/VF61 or add VF61 specific ones - Don't statically populate /dev. The VFxx console fails on this. - Improve the console and qt4e image recipe - sources git.toradex.com linux/u-boot branches colibri_vf tag Colibri_VF_LinuxImageV2.1Beta2_20131129 Known Issues: - If the module does not boot remove all displays connected to HSYNC, VSYNC and reset. (This has been observed on an Evaluation Board V2.1) - LVDS aka TFTLCD resolution hard-coded in kernel to VESA VGA resolution. - Resistive touch and analogue audio are not working on a Colibri VF61 ******************************************************************************** Linux Image V2.1 Beta 1 (October 22, 2013) - U-Boot: - Fix long standing boot hang issue introduced by Freescale's Vybrid 1.1 silicon. - Fix possible uninitialised array member issue in serial number to hexadecimal coded decimal conversion routine (e.g. as used for /proc/cpuinfo in Linux). - Migrate default NAND vs. SD card boot configuration (in-line with Colibri T20) - Integrate config block handling - Increase the available space for the U-Boot binary to half a megabyte by booting from gfxRAM rather than sysRAM0. - Initial support based off Timesys' implementation for Freescale's Vybrid Tower System TWR-VF65GS10: - New machine ID. - Default UART_A on SCI0. - ESDHC2 only. - 8-bit NAND. - No quad SPI. - FEC1 only. - Enabled command line editing. - PLL5 based RMII clocking (e.g. no external crystal). - UART_A, UART_B and UART_C I/O muxing. - Linux kernel: - Hackish USBH_PEN implementation. - Setup memory if mem= is not passed to kernel. - Enable RTS/CTS on UART_A aka UART0 and UART_B aka UART2. - Integrate backlight using both BL_ON GPIO and PWM. - Re-worked IOMUX pin muxing. - Disable magic SysRq key configuration as this is not only a potential security thread but can cause serious trouble if for some reason UART pins are left floating and therefore cause unexpected break conditions. - Decrease DMA zone size configuration. - Enable tmpfs POSIX ACL configuration. - Re-enable L2 cache kernel configuration as it is now only enabled if actually present on chip. - Implement resistive touch screen driver using ADCs and GPIOs. - Add Eon Silicon Solutions manufacturer ID and integrate mxc_nand platform data handling. - Disable NAND controller software ECC in order to use hardware ECC. - Enable ADC driver as well as debugfs file system. - Fix DCU clock rounding, set DCU clock to 150.7 MHz, increase display pin drive strength and configure DCU for VESA VGA with a 30 MHz pixel clock - Enable CPU idle, NEON, ASRC and printk time. - Initial support based off Timesys' implementation for Freescale's Vybrid Tower System TWR-VF65GS10: - New machine ID. - FEC1 only. - ESDHC2 only with card detect interrupt. - PLL5 based RMII clocking (e.g. no external crystal). - VESA VGA display timing (tested with 5.7" EDT ET057090DHU). - Default UART_A on SCI0. - UART_A and UART_C I/O muxing. - I2C real time clock on carrier board. - Early boot console support. - 8-bit NAND. - rootfs / oe-core: - OpenEmbedded: layers from dylan xserver version 1.14 gtk+ 2.24.15 midori 0.5.0 - NEON and hard float enabled build - feed-config: use the new feed armv7ahf-vfp-neon - evdev: backport V2.8.1 from dora to get a fix for multitouch events - browser: use midori - burnflash: script for config block generation - systemd-journald: limit journal size - sources git.toradex.com linux/u-boot branches colibri_vf tag Colibri_VF50_LinuxImageV2.1Beta1_20131022 Known Issues: - LVDS aka TFTLCD resolution hard-coded in kernel to VESA VGA resolution. ******************************************************************************** Notes: - 115200 baud serial debug console on UART0 aka FFUART (lower X25 on EvalBoards resp. X27 on V3.1a depending on JP17/19, X13 on Iris) without any handshake - user account: root with empty password - UBIFS flash root file system - opkg package manager - Linux host used for update preparation requires proper 32-bit execution environment (e.g. install ia32-libs on 64-bit Ubuntu) and awk (e.g. install gawk on Ubuntu) Working: - U-Boot boot loader - environment storage in NAND flash - Ethernet - MMC/SD cards - RAM size auto detection - serial console debug UART0 - Toradex Colibri configuration block handling - module type auto detection - Linux kernel - GPIOlib /sys/class/gpio - temperature sensor /sys/class/hwmon/hwmon0/device/temp1_input - RTC (Vybrid internal without wakeup support and board level I2C RTC) - Ethernet eth0 - NAND flash MTD UBIFS with hardware ECC - serial console debug UART0 - Serial UART_A/UART_B and UART_C up to 921600, including RTS/CTS - I2C via /dev/i2c-X - MMC/SD card ESDHC2 - PWM LEDs /sys/class/leds/ - Colibri VF61: AC97 resistive touch (early version, load module snd-soc-wm9712/mvf-sai-ac97) - SPI via /dev/spidev1.0 - framebuffer console - custom Ethernet MAC Address - serial number and board revision - watchdog - USB host port - USB raw HID device /dev/hidrawX - analogue inputs /dev/mvf-adc.{0|1} (see http://developer.toradex.com/knowledge-base/adc-(linux)#Colibri_VFxx) - power management (standby is LPRun, suspend-to-mem is Stop mode) - optional CAN (Vybrid SoC internal) - Linux user-space - graphics (DCU aka parallel RGB) - Midori browser - GPIO config tool - LXDE - Cortex M4 utility mqxboot - Communication library libmcc Not working or not tested: - U-Boot boot loader - USB keyboard - USB storage as host - framebuffer support - Linux kernel - USB audio driver - USB webcam - USB device Ethernet RNDIS (unreliable/freezes) - automatic USB device/host detection aka OTG support - optional parallel camera interface - IrDA - RS-422/485 - Colibri VF61: Analogue audio ************************************************************* NAND Boot: Colibri VF50 V1.0a and Colibri VF61 V1.0b (Sample) ************************************************************* If the boot loader in NAND got corrupted UART/SD card boot as described further down can be used as a means of recovery. Initial Preparation: - download and extract Colibri_VF_LinuxImageVx.yz.tar.bz2 package with root permissions - use any VFAT formatted SD resp. uSD card with at least 100 MB of free space - optionally format the SD resp. uSD card using the format_sd.sh script (warning everything will be erased) - run update.sh script with optional -o argument pointing to mount point of above mentioned card - insert prepared SD card into SD card/MMC SDIO-socket (X15/X10 on Iris) Flash NAND: - EvalBoard V3.1a - 115200 baud serial debug console on UART_A (lower X25 resp. X27 depending on JP17/19) without any handshake - Iris V1.1a - 115200 baud serial debug console on UART_A (X13) without any handshake - apply power or reset - hit any key to stop auto booting - use 'run setupdate' commands (for old U-Boot versions 'mmc part 0 ; fatload mmc 0:1 $loadaddr flash_mmc.img ;source') - use 'run update' command Boot from NAND: - EvalBoard V3.1a or Iris V1.1a - above given update command should automatically perform a soft re-boot upon successful completion - optionally power cycle - upon first boot post-install scripts are run which takes around 2 minutes, please be patient ******************************************************************** UART Boot: Colibri VF50 V1.1a and Colibri VF61 V1.1b (Sample, fused) ******************************************************************** If the boot loader in NAND got corrupted this can be used as a means of recovery. For detailed description, see also: http://developer.toradex.com/knowledge-base/vfxx-recovery-mode For initial Preparation, refer to NAND Boot above. - If you have a 32-bit Linux host, replace vf_flash/imx_uart with its 32-bit version vf_flash/imx_uart.m32 i.e. sudo mv vf_flash/imx_uart vf_flash/imx_uart.m64; sudo ln -s vf_uart.m32 vf_flash/imx_uart - For config block recovery, run the ./create_configblock.sh script to generate a configblock.bin file before creating the SD card Connect UART_A: - On EvalBoard V3.1a, use on-board FTDI RTS/CTS signal (bridge RTS/CTS, X11 5/6) - On Iris, use RS232 adapter with RTS/CTS support Enter recovery mode: - Turn the module off - On EvalBoard V3.1a, press the recovery button - On Iris, short pin 1-2 of JP1 on Iris for recovery - Turn the module on Boot using UART: - Use update.sh -d /dev/ttyUSB0 - When RTS/CTS is shortened on module side, disable RTS/CTS on PC side by using argument -n Flash NAND: - EvalBoard V3.1a - 115200 baud serial debug console on UART_A (lower X25 resp. X27 depending on JP17/19) without any handshake - Iris V1.1a - 115200 baud serial debug console on UART_A (X13) without any handshake - hit enter to verify the U-Boot command prompt - Use 'run setupdate' command to load update commands from SD card - Migrating from images before V2.2: use 'run migrate_v2.1b3' to migrate config block to new flash layout. - To re-create boot configuration block: use 'run create_bcb' to re-create the boot configuration block. Then, use 'run update_configblock' to flash the config block again. Finally, use 'run update' command to update the boot loader, kernel and root file system. Note: After UART recovery, the module is resetted automatically, however when resetting, the module enters recovery mode again. One need to power cycle the module to start the flashed image. Note: This also works for non-fused modules. However, the jumper X11-37 need to be removed. The reason is that non-fused modules determine the UART for serial loader from SO-DIMM 105 (X11-37) and SO-DIMM 101 (X22-9), which both need to be low in order to boot from UART0. *************************************************************************** SD Card Boot: Colibri VF50 V1.0a and Colibri VF61 V1.0b (Sample, non-fused) *************************************************************************** If the boot loader in NAND got corrupted this can also be used as a means of recovery. Initial Preparation: - EvalBoard V3.1a - select SD boot bootstrap option - pull the following X8 pins down aka to ground with 1 k ohm resistors: 23 and 33 - pull the following X8 pins up aka to 3.3 volt with 1 k ohm resistors: 21, 27, 34 and 44 - download and extract Colibri_VF_LinuxImageVx.yz.tar.bz2 package with root permissions Flash SD Card: - use any SD resp. uSD card of at least 100 MB capacity - format and flash SD resp. uSD card using format_sd.sh script giving -d argument pointing to device file of SD card and -f argument (warning everything will be erased) Boot from SD Card: - EvalBoard V3.1a - insert SD card into SD card/MMC SDIO-socket (X15) - apply power - upon first boot post-install scripts are run which takes around 2 minutes, please be patient Toradex, September 14, 2014