= Gateworks Ventana Family Support =
{{{
#!html
}}}
[[PageOutline]]
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 [http://www.gateworks.com/product#ventana here] for a product comparison matrix.
= Links =
'''Please note: This is a subset of information for Ventana, however, please visit our [wiki: Main Wiki] for all other information'''
* [#BoardSupportPackagesBSPSoftware Ventana Board Support Packages and Operating Systems]
* [wiki:ventana/bootloader Ventana Bootloader]
* [wiki:ventana#MainlineLinuxKernelsupport Mainline Linux kernel support]
* [wiki:ventana/encryption Ventana i.MX6 Encryption / Crypto (CAAM) Support]
* [wiki:ventana#third_party_linux Booting Third Party Linux Distro's on Ventana]
* [wiki:ventana/freescaleunittests Freescale Unit Tests]
* [#jtag Ventana JTAG Programming]
* Third Party Software
* [wiki:eblast/intelligent-access-point Intelligent Access Points]
* [wiki:eblast/androidsecuritycamera Security Camera Management]
* [wiki:eblast/access-point-cloud-management Access Point Cloud Management]
* [wiki:ventana/security High Availability Boot (HAB) (secure boot)]
* [wiki:sbcrevisions Gateworks SBC Revisions]
== 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.
* [wiki:Yocto/gstreamer Ventana GStreamer Wiki ( Pipelines, etc )] - Software commands to use !Video/Audio, streaming, compositing and more.
==== Hardware ====
* [wiki:ventana/LVDS Ventana LVDS LCD Touchscreen Displays]
* [wiki:ventana/graphics Ventana Graphics Capabilities] - Resolution and HW acceleration, IPU, GPU, VPU
* [wiki:ventana/codec Ventana Codecs] - Codec Licensing information
* [wiki:Yocto/Video_Out Ventana Video Output Wiki] - Hardware capabilities for Video Output
* [wiki:Yocto/Video_In Ventana Video Input Wiki] - Hardware capabilities for Video Input
* [wiki:ventana/audio Ventana Audio Wiki] - Hardware capabilities for Video Input
* [wiki:Yocto/gstreamer/latency Streaming Video Latency] - Measuring Latency while streaming
* [wiki:ventana/breakoutadapters Audio / Video breakout Adapters]
== Peripheral Support ==
* [wiki:ventana/expansion Gateworks Expansion Modules - GW16081, GW16082, GW16083]
* [wiki:ventana/DigitalIO Ventana off-board Digital IO Mappings]
* [wiki:ventana/DigitalIO#I2Csupport I2C Support]
* [wiki:SPI SPI Support]
* [wiki:serial Serial/RS232 Support]
* [wiki:gpio#gpiolib GPIO Control]
* [wiki:gpio#led_class LED Control]
* [wiki:alternateconnectors Ventana Connector and Cable Information ]
* [wiki:ventana/breakoutadapters Ventana Development Breakout Adapters for Video / Audio / GPIO]
* [wiki:ventana/breakoutadapters Audio / Video breakout Adapters]
* [wiki:ventana/ethernet Ventana Ethernet Performance]
* [wiki:ventana/LVDS Ventana LVDS LCD Touchscreen Display]
* [wiki:USB_OTG USB OTG Documentation]
* [wiki:ventana/gw5200usb GW5200 USB]
* [wiki:sata mSATA Information]
* [wiki:gps GPS Support]
* [wiki:canbus CAN Bus Support]
* [wiki:wireless/bluetooth Bluetooth Support]
* [wiki:ventana/PCIe PCI/PCIe information]
* [wiki:minipciexpressmodules PCIe Accessory Cards]
* [wiki:ventana/accelerometer Accelerometer and Magnetometer Information]
* [wiki:MMC MultiMediaCard support (microSD / eMMC)]
* [wiki:gsc Gateworks System Controller (GSC)] - Temperature, voltage, RTC, GPIO, Digital IO, I/O, pushbutton, etc
* [wiki:enclosures Gateworks Ventana Enclosures]
== Performance / Processor / Memory / Power / Thermal ==
* [wiki:DVFS Dynamic Voltage and Frequency Scaling]
* [wiki:multicoreprocessing Multi Core Processing]
* [wiki:ventana/devmem Ventana Memory Access]
* [wiki:ventana/power Ventana Power (including Consumption, Protection, etc)]
* [wiki:ventana/powerrails Ventana 3.3 and 5V rails]
* [wiki:ventana/thermal Thermal and Temperature Information about Ventana]
* [wiki:floatingpoint Ventana Floating Point]
* [wiki:Yocto/gstreamer/latency Streaming Video Latency]
* [wiki:ventana/memory Memory Information]
* [wiki:boot_speed Increasing Boot Speeds]
== Other Info ==
* [http://www.gateworks.com/product#ventana Product Info]
* [http://shop.gateworks.com Where to Buy]
* [wiki:ventana/errata Ventana Board Errata]
* [wiki:ventana/withoutpcieswitch The GW5220]
* [wiki:ventana5400demo Youtube Video w/Video Demonstration]
* [wiki:linux/devicetree Linux Kernel Device-Tree info]
* [wiki:ventana/devmem Direct Memory Access]
* [wiki:ventana/orderoptions Ordering Options]
== All Gateworks newport pages
[[TitleIndex(newport)]]
[=#jtag]
== JTAG Programming ==
The Gateworks JTAG dongle (GW16099) is available in the Ventana Dev Kit as well as on the Gateworks web store [http://shop.gateworks.com/index.php?route=product/category&path=70_80 here]
All Ventana boards have a 10-pin JTAG header which provides:
* JTAG Programming for NAND FLASH - see [wiki:jtag_instructions 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 ==
* [http://www.gateworks.com/usermanuals All Ventana User Manuals]
== Processor Reference Manual / Datasheet / Errata ==
The [http://www.freescale.com/webapp/sps/site/taxonomy.jsp?nodeId=018rH3ZrDRB24A 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:
* Reference Manuals:
- [http://cache.freescale.com/files/32bit/doc/data_sheet/IMX6DQRM.pdf IMX6 Dual/Quad Reference Manual (IMX6DQRM)]
- [http://cache.freescale.com/files/32bit/doc/data_sheet/IMX6SDLRM.pdf IMX6 Solo/DualLite Reference Manual (IMX6DQRM)]
* Datasheets:
- [http://cache.freescale.com/files/32bit/doc/data_sheet/IMX6DQAEC.pdf IMX6 Dual/Quad Automotive Datasheet (IMX6DQAEC)]
- [http://cache.freescale.com/files/32bit/doc/data_sheet/IMX6DQIEC.pdf IMX6 Dual/Quad Industrial Datasheet (IMX6DQIEC)]
- [http://cache.freescale.com/files/32bit/doc/data_sheet/IMX6DQCEC.pdf IMX6 Dual/Quad Commercial Datasheet (IMX6DQCEC)]
- [http://cache.freescale.com/files/32bit/doc/data_sheet/IMX6SDLAEC.pdf IMX6 Solo/DualLite Automotive Datasheet (IMX6SDLIEC)]
- [http://cache.freescale.com/files/32bit/doc/data_sheet/IMX6SDLIEC.pdf IMX6 Solo/DualLite Industrial Datasheet (IMX6SDLIEC)]
- [http://cache.freescale.com/files/32bit/doc/data_sheet/IMX6SDLCEC.pdf IMX6 Solo/DualLite Consumer Datasheet (IMX6SDLIEC)]
* Errata:
- [http://cache.freescale.com/files/32bit/doc/errata/IMX6DQCE.pdf IMX6 Dual/Quad Chip Errata]
- [http://cache.freescale.com/files/32bit/doc/errata/IMX6SDLCE.pdf IMX6 Solo/DualLite Chip Errata]
----
----
[=#bsp]
= Board Support Packages (BSP) Software =
{{{
#!html
}}}
== 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 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 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 ([wiki:ventana/OpenEmbedded 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 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 Ubuntu] / [#Debian 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
* [wiki:windows/wec7 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 Yocto] =||= [#android Android] =||= [#openwrt OpenWrt] =||= [#ubuntu Ubuntu] =||= [#debian 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 Yocto] =||= [#android Android] =||= [#android Android] =||= [#openwrt OpenWrt] =||= [#ubuntu Ubuntu] =||= [#debian Debian] =||= [=#wec7 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 || Yes^^^6^^^ ||Yes^^^6^^^ || Yes || Yes || Yes || No || ||
||PCIe || Yes || Yes || Yes || Yes || Yes || Yes || No || ||
||[wiki:wireless/wifi WiFi] || Yes || Yes || Yes || Yes || Yes || Yes || No || 4 ||
||[wiki:wireless/modem Cellular] || Yes || Future || Future || Yes || Yes || Yes || No || ||
||[wiki:wireless/bluetooth Bluetooth (USB HCI)] || Yes || Yes || No || Yes || Yes || Yes || Yes || ||
||[wiki:serial#uart RS232] || Yes || Yes || Yes || Yes || Yes || Yes || No || ||
||[wiki:serial#RS485 RS485] || Yes || Yes || Yes || Yes || Yes || Yes || No || ||
||[wiki:gps GPS ] || Yes || Yes || Yes || Yes || Yes || Yes || No || ||
||[wiki:gps#pps GPS PPS time sync] || Yes || Yes || Yes || Yes || Yes || Yes || No || ||
||[wiki:ventana/accelerometer Accelerometer] || Yes || Yes || Yes || Yes || Yes || Yes || No || ||
||[wiki:ventana/accelerometer Magnetometer] || Yes || Yes || Yes || Yes || Yes || Yes || No || ||
||[wiki:MMC MMC] microSD / eMMC || Yes || Yes || Yes || Yes || Yes || Yes || Yes || ||
||[wiki:gsc#rtc RTC] || Yes || Yes || Yes || Yes || Yes || Yes || No || 1 ||
||[wiki:gsc#hwmon HWMON] || Yes || Yes || Yes || Yes || Yes || Yes || No || 1 ||
||[wiki:gpio LED/GPIO] || Yes || Yes || Yes || Yes || Yes || Yes || No || ||
||[wiki:canbus CAN bus] || Yes || Yes || Yes || Yes || Yes || Yes || No || ||
||USB 2.0 || Yes || Yes || Yes || Yes || Yes || Yes || Yes || ||
||[wiki:USB_OTG USB OTG] || Yes || Yes || Yes || Yes || Yes || Yes || Yes (Host) || ||
||[wiki:DVFS] || Yes || Yes || Yes || Yes || Yes || Yes || No || ||
||[wiki:sata mSATA] || Yes || Yes || Yes || Yes || Yes || Yes || No || 1 ||
||[wiki:ventana/encryption Crypto] || Yes || Yes || Yes || Yes || Yes || Yes || No || 3 ||
||[wiki:ventana/LVDS] Video Out || Yes || Yes || Yes || Yes || Yes || Yes || Yes || ||
||[wiki:ventana/audio Analog Audio In/Out] || Yes || Yes || Yes || Yes || Yes || Yes || No || ||
||[wiki:Yocto/Video_In Analog Video In] || Yes || Yes || Yes || Future || Yes || Yes || No || 2 ||
||[wiki:Yocto/Video_Out Analog Video Out] || Yes || Future || Future || Future || Yes || Yes || No || ||
||[wiki:Yocto/Video_In Digital Video (HDMI) In] || Yes || Future || Future || Future || Yes || Yes || No || 1 ||
||[wiki:Yocto/Video_Out Digital Video (HDMI) Out] || Yes || Yes || Yes || Yes || Yes || Yes || Yes || 1 ||
||[wiki:ventana/audio Digital Audio (HDMI) In] || Yes || Future || Future || Future || Yes || Yes || No || 1 ||
||[wiki:ventana/audio Digital Audio (HDMI) Out] || Yes || Yes || Yes || Yes || Yes || Yes || No || 1 ||
||[wiki:ventana/graphics#vpu Video Processing Unit] || Yes || Yes || Yes || No || Yes || Yes || No || ||
||[wiki:ventana/graphics#gpu Graphics Processing Unit]|| Yes || Yes || Yes || No || Yes || Yes || No || 7 ||
||[wiki:ventana/expansion GW16082 (MiniPCIe Exp)] || Yes || Yes || Yes || Yes || Yes || Yes || No || ||
||[wiki:ventana/expansion 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 [http://shop.gateworks.com/index.php?route=product/product&path=70_74&product_id=172 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]
== Android Board Support Package (BSP) ==
Gateworks supports Android for the Ventana product family:[[TitleIndex(Android)]]
[=#openwrt]
== 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:
* [wiki:ventana/openwrt#prebuilt Pre-Built Binaries]
* Source:
* [https://github.com/Gateworks/openwrt] - Gateworks OpenWrt BSP ([https://github.com/Gateworks/openwrt/subscription watch])
* Additional Gateworks OpenWrt pages:[[TitleIndex(OpenWrt)]]
* join the [https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel openwrt-devel] mailing list to follow upstream OpenWrt activity
[=#yocto]
== 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
* [wiki:ventana/bootloader#DIOconfiguration hwconfig/GPIO/LED Configuration]
Ventana Yocto BSP:
* Additional Gateworks Yocto pages: [[TitleIndex(Yocto)]]
[=#ubuntu]
== 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.
* [wiki:ventana/ubuntu Ubuntu Wiki and Software]
[=#debian]
== 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.
* [wiki:ventana/debian Debian Wiki and Software]
[=#wec7]
== Windows Embedded Compact 7 ( WEC7 ) ==
Gateworks offers a pre-built Windows Embedded Compact 7 (WEC7) disk image that supports the GW5400:
* [wiki:windows/wec7 WEC7]
[=#third_party_linux]
= 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: [wiki:linux/kernel]
2. Root Filesystem: [#rootfs see below]
3. Bootable media: [wiki:linux/blockdev]
[=#rootfs]
=== 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:
* [http://cdimage.ubuntu.com/ubuntu-core/releases/ Ubuntu Core] - this is a minimal filesystem that you can build off of at runtime by adding packages from various repositories.
* [https://releases.linaro.org/ 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]
= 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 =||
||[wiki:ventana Ventana] (GW51xx/GW52xx/GW53xx/GW54xx) || Yes (3.15+) || ||
||[wiki:ventana Ventana] (GW551x) || Yes (4.2+) || ||
||[wiki:ventana Ventana] (GW552x) || Yes (3.18+) || ||
||[wiki:ventana Ventana] (GW553x) || Yes (4.9+) || ||
||[wiki:ventana/expansion Ventana GW16081] (MiniPCIe Expansion)|| Yes || ||
||[wiki:ventana/expansion Ventana GW16082] (MiniPCI Expansion)|| Yes || ||
||[wiki:multicoreprocessing SMP] || Yes || ||
||eth0 (fec) || Yes || ||
||eth1 (igb/sky2) || Yes || ||
||[wiki:serial] (RS232 / RS485 / GPS) || Yes || ||
||[wiki:MMC MMC] microSD / eMMC || Yes || ||
||[wiki:linux/ubi NAND] || Yes || ||
||[wiki:gsc#rtc RTC] || Yes || ||
||[wiki:gpio LED/GPIO] || Yes || ||
||[wiki:canbus CAN bus] (flexcan) || Yes || ||
||USB 2.0 || Yes || ||
||[wiki:USB_OTG USB OTG] || Yes || ||
||[wiki:DVFS] || Yes || ||
||[wiki:ventana/PCIe PCIe] || Yes || ||
||[wiki:sata mSATA] || Yes || ||
||[wiki:ventana/LVDS LVDS Video Out] || Yes || ||
||[wiki:ventana/audio Analog Audio In/Out] (sgtl5000) || Yes || ||
||[wiki:ventana/graphics#vpu Video Processing Unit] (coda)|| Yes (3.16+)|| ||
||[wiki:Yocto/Video_Out HDMI Audio/Video Out] || Yes (3.16+)|| ||
||[wiki:ventana/encryption Crypto] || Yes (4.3+) || ||
||[wiki:Yocto/Video_Out LVDS Video Out] || Yes (4.4+) || ||
||[wiki:ventana/graphics#gpu Graphics Processing Unit] (etnaviv)|| Yes (4.5+) || ||
||[wiki:ventana/accelerometer FXOS8700 Acc / Mag] || No || 1 ||
||[wiki:gsc GSC] HWMON / Watchdog / Input || No || 1 ||
||[wiki:ventana/expansion GW16083 (Ethernet Exp)] || No || 1 ||
||[wiki:Yocto/Video_In IMX6 Video Capture] (ipu-csi) || Yes (4.13+) || 2 ||
||[wiki:Yocto/Video_In Analog Video In] || Yes (4.13+) || 2 ||
||[wiki:Yocto/Video_Out Analog Video Out (GW54xx)] || No || ||
||[wiki:Yocto/Video_In HDMI Audio / Video In] || No || ||
Notes:
1. Gateworks has mainline patches available that add this support (contact support@gateworks.com for info)
2. IMX6 capture requires use of the media-ctl API
Note-able IMX6 mainline support history:
* 4.15:
- '''Errata:''' PCI enumeration through a switch is broken with [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a20c7f36bd3d20d245616ae223bb9d05dfb6f050 commit a20c7f3 PCI: Do not allocate more buses than available in parent]. This regression got backported into 4.9.71 and the fix for it is currently under review: [https://patchwork.kernel.org/patch/10163363/ here]
* 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' ([https://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc.git/commit/?h=fixes&id=9f327845358d3dd0d8a5a7a5436b0aa5c432e757 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 ([https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=70b6b438cc365d8d269339986e63ceb943e8d423 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) ([https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/arch/arm/boot/dts/?id=3a35e470bc6bc4ce34c19c410ebbe4e3bbf0bafe 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 [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=70b6b438cc365d8d269339986e63ceb943e8d423 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 [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=70b6b438cc365d8d269339986e63ceb943e8d423 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 [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=70b6b438cc365d8d269339986e63ceb943e8d423 device-tree fixup] that went into 4.5
* 4.1:
- '''Errata:''' GW54xx front panel USB VBUS Not enabled on power-up. This requires a [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=70b6b438cc365d8d269339986e63ceb943e8d423 device-tree fixup] that went into 4.5
* 4.0:
- '''Errata:''' GW54xx front panel USB VBUS Not enabled on power-up. This requires a [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=70b6b438cc365d8d269339986e63ceb943e8d423 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 [wiki:linux/kernel here]