wiki:ventana

Version 22 (modified by Ryan Erbstoesser, 6 years ago) ( diff )

add link for nxp eol timeline

Gateworks Ventana Family Support


Getting Started

Ventana Software

Video and Audio

Peripherals

User Manuals

Wireless / WiFi Radios

Cellular Modems

GPS

3D Model

Shop Ventana Accessories

The Gateworks Ventana product family utilizes the Freescale / NXP i.MX6 CPU offering a large variety of peripherals, especially focused on video and audio. See here for a product comparison matrix.

Links

Please note: This is a subset of information for Ventana, however, please visit our Main Wiki for all other information

Video / Audio Support

Video is currently primarily supported in the Yocto BSP.

Software

This section is recommended for getting started with example commands for video and audio.

Hardware

Peripheral Support

Performance / Processor / Memory / Power / Thermal

Other Info

All Gateworks Ventana pages

JTAG Programming

The Gateworks JTAG dongle (GW16099) is available in the Ventana Dev Kit as well as on the Gateworks web store here

All Ventana boards have a 10-pin JTAG header which provides:

  • JTAG Programming for NAND FLASH - see here for instructions
  • Serial Console access via UART2 (/dev/ttymxc1)

Please note, the Linux software is supported for programming Ventana (jtag_usbv4 required). Windows is not supported at this time. (serial console through Windows does work).

User Manual

Processor Reference Manual / Datasheet / Errata

The IMX6 product family includes several System On Chip (SoC) designs. You can find the Technical Reference Manual (TRM) as well as the datasheets and other Freescale documenation at Freescales site:

Processor / Product End of Life Policy (EOL)

The Ventana family of SBCs has a long life availability. Gateworks will typically build the SBCs as long as the processor is available. To see the lifetime values of the i.MX6 processor, please visit the following link:



Board Support Packages (BSP) Software


   

Choosing a BSP

Gateworks offers several Board Support Packages for the Ventana Product family. Which one we recommend depends a bit upon what your goal is and what your experience level is

  • OpenWrt - intended for wireless routers and access points (low flash and memory footprint)
    • Recommended for networking users wanting to create a headless router, VPN, basestation, wireless access point and more. Produces by far the smallest storage and memory footprint but users new to Embedded Linux will have a bit of a learning curve
    • Fairly up-to-date and/or vanilla kernel support
    • Latest wireless drivers (via linux-backports)
    • Custom application config and init system (nice for small footprint, but can make adding support for additional packages more work)
    • Wide variety of packages (including a fairly nice web-admin)
    • Console-based build system (expect 60mins to build BSP for a specific board family)
    • Downloadable SDK and Toolchain available to build apps on a development host without building the entire BSP
    • Pre-built images available (this is what ships by default on all Ventana boards except for the GW551x)
  • Yocto - Full-featured, recommended for video applications using gstreamer
    • Recommended for users needing graphics output (either GUI or raw Video) or Video encode/decode/transcode and streaming. Produces the most tailored install (conserving filesystem space) while still using standard Linux distro config and init system. Users new to Embedded Linux or OpenEmbedded will have a bit of a learning curve
    • Uses downstream vendor kernel consisting of Freescale patches on top of an older 'long term support' (LTS) kernel plus Gateworks patches for Ventana support
    • Supports all Ventana features including those not available in mainline linux such as Video input and IMX6 VPU, GPU support
    • Latest wireless drivers (via linux-backports)
    • Wide variety of packages
    • More 'desktop-like' environment with sysvinit and optional X11, Qt, or Qte
    • Console-based build system (OpenEmbedded) (expect 2hours to build BSP for a specific board family)
    • Downloadable SDK and Toolchain available to build apps on a development host without building the entire BSP
    • Pre-built images available (via web-download with EULA)
  • Android
    • Recommended for users with existing Android application code/experience or starting from scratch and needing high-end GUI display and/or network framework to take advantage of Android's vast collection of APIs and frameworks. Users new to Android or Java will have a learning curve.
    • Uses downstream vendor kernel consisting of Freescale patches on top of an older 'long term support' (LTS) kernel plus Gateworks patches for Ventana support
    • Supports all Ventana features including those not available in mainline linux such as Video input and IMX6 VPU, GPU support
    • Console-based build system (expect 3hours to build BSP for a specific board family)
    • Downloadable IDE to build apps on a development host without building the entire BSP
    • Pre-built images available (via web-download with EULA)

  • Ubuntu / Debian
    • Recommended for developers trying to heavily leverage opensource software packages or libraries that are not supported by the other BSP's. This is the most user-friendly for developers new to Embedded Linux but will not produce a very trimmed down filesystem image.
    • Uses downstream vendor kernel consisting of Freescale patches on top of an older 'long term support' (LTS) kernel plus Gateworks patches for Ventana support
    • Supports all Ventana features including those not available in mainline linux such as Video input and IMX6 VPU, GPU support
    • Documentation provided to use Ubuntu and Debian pre-built packages and debootstrap to create a root filesystem in minutes
    • Native compilation: no SDK or cross-toolchain needed

  • Windows Embedded Compact 7 (WEC7)
    • For users who have an existing WEC app/program and they are not able to migrate to a Linux based OS above.
    • Provided by third-party: Adeneo
    • Support for GW54xx

The following table may also help in choosing what BSP is right for you:

Feature Yocto Android OpenWrt Ubuntu Debian WEC7 Notes
Pre-built images Yes Yes Yes No No Yes
NAND supported Yes Yes Yes Yes Yes No
Storage Needed <256MB 2GB or larger <256MB 1GB or larger 1GB or larger 1
Build-System Yes Yes Yes No No No 2
Toolchain SDK/Native No SDK Native Native 3
GUI X11/Qt/Qte Yes No Future Future 4
VPU/GPU Yes Yes No Yes Yes 5
Web-Admin No No Yes No No 6

Notes:

  1. Two pre-built images are available for Yocto (console which will fit on 256MB or larger and GUI which typically requires 1GB or larger). OpenWrt fits easily in 256MB. Ubuntu and Debian can technically fit in 256MB but once anything useful is added you will need additional storage. NAND flash images are available for Yocto, OpenWrt, and Android (requires 2GB FLASH).
  2. The Yocto, OpenWrt, and Android BSP's contain an integrated build-system. Debian and Ubuntu have step-by-step instructions on how to build an bootable system in 10 or so steps.
  3. The Yocto, and OpenWrt BSP's provide a downloadable SDK for cross-compiling applications on a development hosts. The Android SDK for building applications on a development host is provided by Google. For Debian and Ubuntu native development and compilation is supported.
  4. Details can be found on the Internet on how to build Xserver with hardware acceleration support for IMX6 although its a bit technical.
  5. For Yocto, Ubuntu and Debian GStreamer support with IMX6 IPU, GPU and VPU support is provided via gstreamer-imx plugins. Android has its own API's for video.
  6. OpenWrt is designed to be a wireless router and has an integrated web-admin for configuration and control.

Ventana BSP Software Support Comparison

The following table shows details on device support per BSP:

Feature Yocto Android Android OpenWrt Ubuntu Debian Windows Embedded Notes
Version 1.8 (fido) / 2.3 (pyro) 5.1.1 (Lollipop) 4.3 (Kitkat) r48868 2016-02-17 14.04 (trusty) WEC7
Kernel 3.14.48 3.14 3.10.53 4.4.0 3.14.48 3.14.48 -
SMP Yes Yes Yes Yes Yes Yes Yes
Eth0 (fec) Yes Yes Yes Yes Yes Yes Yes
Eth1 (igb/sky2) Yes Yes6 Yes6 Yes Yes Yes No
PCIe Yes Yes Yes Yes Yes Yes No
WiFi Yes Yes Yes Yes Yes Yes No 4
Cellular Yes Future Future Yes Yes Yes No
Bluetooth (USB HCI) Yes Yes No Yes Yes Yes Yes
RS232 Yes Yes Yes Yes Yes Yes No
RS485 Yes Yes Yes Yes Yes Yes No
GPS Yes Yes Yes Yes Yes Yes No
GPS PPS time sync Yes Yes Yes Yes Yes Yes No
Accelerometer Yes Yes Yes Yes Yes Yes No
Magnetometer Yes Yes Yes Yes Yes Yes No
MMC microSD / eMMC Yes Yes Yes Yes Yes Yes Yes
RTC Yes Yes Yes Yes Yes Yes No 1
HWMON Yes Yes Yes Yes Yes Yes No 1
LED/GPIO Yes Yes Yes Yes Yes Yes No
CAN bus Yes Yes Yes Yes Yes Yes No
USB 2.0 Yes Yes Yes Yes Yes Yes Yes
USB OTG Yes Yes Yes Yes Yes Yes Yes (Host)
DVFS Yes Yes Yes Yes Yes Yes No
mSATA Yes Yes Yes Yes Yes Yes No 1
Crypto Yes Yes Yes Yes Yes Yes No 3
ventana/LVDS Video Out Yes Yes Yes Yes Yes Yes Yes
Analog Audio In/Out Yes Yes Yes Yes Yes Yes No
Analog Video In Yes Yes Yes Future Yes Yes No 2
Analog Video Out Yes Future Future Future Yes Yes No
Digital Video (HDMI) In Yes Future Future Future Yes Yes No 1
Digital Video (HDMI) Out Yes Yes Yes Yes Yes Yes Yes 1
Digital Audio (HDMI) In Yes Future Future Future Yes Yes No 1
Digital Audio (HDMI) Out Yes Yes Yes Yes Yes Yes No 1
Video Processing Unit Yes Yes Yes No Yes Yes No
Graphics Processing Unit Yes Yes Yes No Yes Yes No 7
GW16082 (MiniPCIe Exp) Yes Yes Yes Yes Yes Yes No
GW16083 (Ethernet Exp) Yes Yes Yes Yes Yes Yes No
  1. If using a GW54xx, it requires GW54XX-B or later
  2. If using a GW54xx, it requires GW5400-C or later
  3. Requires binary Firmware module from Freescale
  4. WiFi supported through Mini-PCIe radios purchased separately. ath10k driver and AP mode not supported on Android.
  5. Bluetooth supported through separately purchased modules. For example, see here
  6. eth1 on Android needs to be configured manually
  7. Vivante GPU support is fully supported in the Yocto and Android BSP's and partially supported in the Ubuntu and Debian BSP's when used with gstreamer-imx

Android Board Support Package (BSP)

Gateworks supports Android for the Ventana product family:

OpenWrt Board Support Package (BSP)

The Ventana OpenWrt BSP provides the following:

  • Linux 4.4 kernel (fairly vanilla)
  • latest wireless drivers (compat-wireless)
  • tuned for minimal FLASH/memory footprint (entire distro fits on embedded 16MB FLASH)
  • no driver support currently exists for the following Ventana devices:
    • Video In (requires vendor driver(s) to be ported up)
  • simple upgrades and factory-reset capability provided by overlay filesystem

Ventana OpenWrt BSP:

Yocto Board Support Package (BSP)

The Ventana Yocto BSP provides the following differences from the OpenWrt BSP:

  • Linux 3.14 kernel (Based on Freescale's Kernel)
  • more like standard linux 'desktop' distros (larger package support and community)
  • USB OTG driver support
  • mSATA driver support
  • Video Out driver support
  • Video Capture driver support
  • hwconfig/GPIO/LED Configuration

Ventana Yocto BSP:

Ubuntu

Gateworks offers a pre-built Ubuntu distribution using the latest Gateworks kernel with Freescale patches as well as instructions on how to build your own Ubuntu based distribution.

Debian

Gateworks offers a Debian distribution using the latest Gateworks kernel with Freescale patches as well as instructions on how to build your own Debian based distribution.

Windows Embedded Compact 7 ( WEC7 )

Gateworks offers a pre-built Windows Embedded Compact 7 (WEC7) disk image that supports the GW5400:

Third Party Linux Distros

While Gateworks cannot fully support all Linux distros, it is relatively simple to overlay a Gateworks Ventana kernel onto any non-Gateworks third party Linux distro rootfs image.

The following links will describe what is needed:

  1. Linux kernel supporting Ventana: linux/kernel
  2. Root Filesystem: see below
  3. Bootable media: linux/blockdev

Root filesystem Sources

There are several sources of pre-built root filesystems that are compatible with Ventana. As Ventana uses an i.MX6 SoC, you need to use something that is compatible with an ARMv7 instruction set. Many pre-built distributions will reference 'armhf' which means 'ARM hard-float' which is appropriate for the i.MX6 as it has hardware floating-point.

Some popular third-party sources:

  • Ubuntu Core - this is a minimal filesystem that you can build off of at runtime by adding packages from various repositories.
  • Linaro - Linaro has several root filesystems including server, nano, developer, core, and ALIP. Each root filesystem will have different things installed for different purposes. Choose carefully which will work for you.

Notes:

  • some root filesystems may require you to manually add a user before booting (ie Ubuntu Core)
  • the default Ventana bootloader expects to find the uImage and dtbs in the /boot directory on the first partition of type ext2/3/4

Mainline Linux Kernel support

Gateworks actively participates in the development of the Linux kernel and has been submitting support for Ventana and device support since the 3.15 kernel.

The following table shows what Ventana/IMX6 peripherals support is available in the mainline kernel starting from its original merge in 3.15 up into of 4.6:

Feature Support Notes
Ventana (GW51xx/GW52xx/GW53xx/GW54xx) Yes (3.15+)
Ventana (GW551x) Yes (4.2+)
Ventana (GW552x) Yes (3.18+)
Ventana (GW553x) Yes (4.9+)
Ventana GW16081 (MiniPCIe Expansion) Yes
Ventana GW16082 (MiniPCI Expansion) Yes
SMP Yes
eth0 (fec) Yes
eth1 (igb/sky2) Yes
serial (RS232 / RS485 / GPS) Yes
MMC microSD / eMMC Yes
NAND Yes
RTC Yes
LED/GPIO Yes
CAN bus (flexcan) Yes
USB 2.0 Yes
USB OTG Yes
DVFS Yes
PCIe Yes
mSATA Yes
LVDS Video Out Yes
Analog Audio In/Out (sgtl5000) Yes
Video Processing Unit (coda) Yes (3.16+)
HDMI Audio/Video Out Yes (3.16+)
Crypto Yes (4.3+)
LVDS Video Out Yes (4.4+)
Graphics Processing Unit (etnaviv) Yes (4.5+)
FXOS8700 Acc / Mag No 1
GSC HWMON / Watchdog / Input No 1
GW16083 (Ethernet Exp) No 1
IMX6 Video Capture (ipu-csi) Yes (4.13+) 2
Analog Video In Yes (4.13+) 2
Analog Video Out (GW54xx) No
HDMI Audio / Video In Yes (4.17+) 2

Notes:

  1. Gateworks has mainline patches available that add this support (contact support@… for info)
  2. IMX6 capture requires use of the media-ctl API

Note-able IMX6 mainline support history:

  • 4.17:
    • TDA1997x HDMI receiver linux media driver added
  • 4.16:
    • fixed: PCI enumeration through a switch via commit.
  • 4.15:
    • Errata: PCI enumeration through a switch is broken with commit a20c7f3. This was fixed in 4.16 via commit and is fixed in 4.15.10+.
  • 4.13:
    • added: IMX6 Video Capture support. Currently the ADV7180 (analog capture) is supported through the media-ctl API
  • 4.11:
    • fixed: occasional failure with UHS-I capable boards with DDR50 capable microSD cards showing 'mmc0: ddr50 tuning failed' (commit). This was backported to stable kernels 4.10.13+, 4.9.25+, 4.4.64+
  • 4.9:
    • Gateworks Ventana support added: GW553x
  • 4.7:
    • Errata: MSI is no longer able to be disabled for IMX6 PCIe host controller which will cause any card/driver requiring legacy PCI interrupts (ie ath9k) to fail if enabled
  • 4.5:
    • IMX6 GPU support added (etnaviv) driver
    • fixed: GW54xx front panel USB VBUS Not enabled on power-up (commit)
    • Errata: MSI is enabled for IMX6 PCIe host controller in imx_v6_v7_defconfig which will cause any card/driver requiring legacy PCI interrupts (ie ath9k) to fail if enabled
  • 4.4:
    • IMX6 LVDS support added
    • fixed: FEC Ethernet Device Tree Fix applied to resolve no ethernet on eth1 (Marvell sky2) on GW54xx/GW53xx when using Marvell PHY Driver (CONFIG_MARVELL_PHY/marvell.ko) (commit). This issue dates back to 3.15 when Ventana support was added. As a workaround you can also unload/blacklist the Marvell PHY driver (marvell.ko).
    • Errata: occasional failure with UHS-I capable boards with DDR50 capable microSD cards showing 'mmc0: ddr50 tuning failed'. This was fixed in the 4.11 kernel and was backported to stable kernels 4.10.13+, 4.9.25+, 4.4.64+
    • Errata: GW54xx front panel USB VBUS Not enabled on power-up. This requires a device-tree fixup that went into 4.5
  • 4.3:
    • IMX6 crypto support added to caam driver
    • Errata: GW54xx front panel USB VBUS Not enabled on power-up. This requires a device-tree fixup that went into 4.5
  • 4.2:
    • Gateworks Ventana support added: GW551x
    • Errata: GW54xx front panel USB VBUS Not enabled on power-up. This requires a device-tree fixup that went into 4.5
  • 4.1:
    • Errata: GW54xx front panel USB VBUS Not enabled on power-up. This requires a device-tree fixup that went into 4.5
  • 4.0:
    • Errata: GW54xx front panel USB VBUS Not enabled on power-up. This requires a device-tree fixup that went into 4.5
  • 3.18:
    • Gateworks Ventana support added: GW552x
    • ipu_v3 Camera Sensor Interface (CSI) base framework added
  • 3.17:
    • IMX6 HDMI support added
  • 3.16:
    • hardware acceleration offload added (TSO, scatter/gather) to FEC driver providing large performance boost
    • Ventana LVDS support added
    • ipu_v3 driver moved from staging to drivers/gpu/ipu_v3 offering base IPU support
    • coda driver support for IMX6 VPU added to staging
  • 3.15:
    • Gateworks Ventana support added: GW51xx, GW52xx, GW53xx, GW54xx

Note that the bulk of Ventana support was merged into mainline linux at 3.15 so patches for 3.15+ are typically fewer and smaller consisting of new boards or work-in-progress that has not been merged yet.

For details on building a Ventana kernel see here

Attachments (10)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.