Version 1 (modified by 4 years ago) ( diff ) | ,
---|
Gateworks Venice Family Support
Getting Started |
Venice Software |
Peripherals |
User Manuals |
Wireless / WiFi Radios |
Cellular Modems |
GPS |
3D Model |
The Gateworks Venice product family utilizes the NXP i.MX8MM SoC (System On Chip) family offering a large variety of peripherals with a focus on Networking, Security, and Media. See here for a product comparison matrix.
Links
Please note: This is a subset of information for Venice, however, please visit our Main Wiki for all other information
Software
- Software Section - Bootloader, Boot Firmware, Operating Systems, Kernel, etc
Peripheral Support
- Connector Pinouts - see Hardware User Manual
- Connector and Cable Information
- Serial Console Access
- USB Support
- SPI Support
- I2C Support
- GPIO Control
- LED Control
- mSATA Information
- GPS Support
- CAN Bus Support
- PCIe Accessory Cards
- MultiMediaCard (microSD/eMMC) Information
- Gateworks System Controller (GSC) - Temperature, voltage, RTC, GPIO, Digital IO, I/O, pushbutton, etc
- Gateworks Expansion Modules - GW16081, GW16082, GW16083
Other Info
- Product Info
- Where to Buy
- Venice Board Ordering Options
- Venice Board Errata
- Linux Kernel Device-Tree info
- End of Life - EOL Dates
User Manuals
Entire Raw Index of Venice Wiki Pages
- venice
- venice/DigitalIO
- venice/PCIe
- venice/SDP
- venice/boot
- venice/bootloader
- venice/bsp
- venice/encryption
- venice/errata
- venice/ethernet
- venice/firmware
- venice/gw7500
- venice/gw7905
- venice/memory
- venice/mipi
- venice/multimedia
- venice/npu
- venice/orderoptions
- venice/power
- venice/secure_boot
- venice/simsd
- venice/thermal
- venice/ubuntu
- venice/yocto
Venice Software
Venice Software is comprised of many pieces, including the following:
- GSC (Gateworks System Controller) Firmware
- Boot Firmware (ARM Trusted Firmware, DDR controller Firmware, U-Boot Bootloader)
- Operating System (including kernel / rootfs)
Ubuntu is pre-installed on all Venice boards before they ship.
Please view the following links for the appropriate software section:
- Choosing an OS
- Pre-built Software Images
- Building & Compiling BSP (Board Support Package) Images - This includes all the boot firmware & operating System
- Venice Software Installation page
- Venice U-Boot Bootloader
- Venice Boot Firmware (up to and including the Bootloader)
- GSC Firmware
- Venice Mainline Linux kernel support
- Booting Third Party Linux Distro's on Venice
- Venice JTAG Programming
- Venice Native Compile Hello World Example
- Buildroot Linux
Choosing a BSP
Gateworks offers several Board Support Packages for the Venice Product family. Which one we recommend depends a bit upon what your goal is and what your experience level is. Note: By default Venice boards are pre-programmed with and Ubuntu root filesystem and Gateworks kernel.
- Ubuntu
- 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.
- Able to use mainline kernel.
- Supports all Venice features.
- Documentation provided to use Ubuntu pre-built packages and debootstrap to create a root filesystem in minutes
- Native compilation: no SDK or cross-toolchain needed
- Buildroot - intended for custom applications (low flash and memory footprint)
- Fairly up-to-date and/or vanilla kernel support
- Wide variety of packages (including a fairly nice web-admin)
- Console-based build system
- Downloadable SDK and Toolchain available to build apps on a development host without building the entire BSP
Ubuntu
Gateworks offers a pre-built Ubuntu distribution using the latest Gateworks kernel as well as instructions on how to build your own Ubuntu based distribution.
Third Party Linux Distros
While Gateworks cannot fully support all Linux distros, it is relatively simple to overlay a Gateworks Venice kernel onto any non-Gateworks third party Linux distro rootfs image.
The following links will describe what is needed:
- Linux kernel supporting Venice: linux/kernel
- Root Filesystem: see below
- Bootable media: linux/blockdev
Root filesystem Sources
There are several sources of pre-built root filesystems that are compatible with Venice. As Venice uses an ARM 64bit based SoC, you need to use something that is compatible with an ARMv8 instruction set. Many pre-built distributions will reference 'arm64' which means 'ARM 64-bit' which is appropriate for the i.MX8MM SoC.
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)
Mainline Linux Kernel support
Gateworks actively participates in the development of the Linux kernel.
Mainline Linux Kernel support
Gateworks actively participates in the development of the Linux kernel.
The following table shows what i.MX8MM support is available in the mainline kernel:
item | DT compatible | driver | kconfig | kernel |
---|---|---|---|---|
audio card | simple-audio-card | sound/soc/generic/simple-card.c | CONFIG_SND_SIMPLE_CARD | |
mmc | fsl,imx7d-usdhc | drivers/mmc/host/sdhci-esdhc-imx.c | CONFIG_MMC_SDHCI_ESDHC_IMX | |
sdma | fsl,imx7d-sdma | drivers/dma/imx-sdma.c | CONFIG_IMX_SDMA | |
uart | fsl,imx6q-uart | imx-uart: drivers/tty/serial/imx.c | CONFIG_SERIAL_IMX | |
ethernet | fsl,imx6sx-fec | fec: drivers/net/ethernet/freescale/fec_main.c | CONFIG_FEC | |
i2c | fsl,imx21-i2c | drivers/i2c/busses/i2c-imx.c | CONFIG_I2C_IMX | |
spi | fsl,imx51-ecspi | drivers/spi/spi-imx.c | CONFIG_SPI_IMX | |
gpio | fsl,imx35-gpio | drivers/gpio/gpio-mxc.c | CONFIG_GPIO_MXC | |
wdog | fsl,imx21-wdt | drivers/watchdog/imx2_wdt.c | CONFIG_IMX2_WDT | |
pwm | fsl,imx27-pwm | drivers/pwm/pwm-imx27.c | CONFIG_PWM_IMX27 | |
audio dai | fsl,imx8mq-sai | fsl-sai: sound/soc/fsl/fsl_sai.c | CONFIG_SND_SOC_FSL_SAI | 5.4 |
caam | fsl,sec-v4.0 | drivers/crypto/caam/* | CONFIG_CRYPTO_DEV_FSL_CAAM | 5.6 |
ddrc (Dyanmic Scaling for DDR controller) | fsl,imx8m-ddrc | drivers/devfreq/imx8m-ddrc.c | ARM_IMX8M_DDRC_DEVFREQ | 5.6 |
thermal | fsl,imx8mm-tmu | drivers/thermal/imx8mm_thermal.c | IMX8MM_THERMAL | 5.7 |
fspi (Flex SPI) | nxp,imx8mm-fspi | drivers/spi/spi-nxp-fspi.c | SPI_NXP_FLEXSPI | 5.7 |
usb | not yet upstream as of v5.7 - should not be a driver change just need USB PM enabled | |||
pci | not yet upstream as of v5.7 - needs minor driver support PCIE PM | |||
mipi dsi bridge | not yet upstream as of v5.7 | |||
mipi csi bridge | not yet upstream as of v5.7 | |||
vpu/hantro-g1 | not yet upstream as of v5.7 |
See also:
- Prebuilt Venice Kernel: http://dev.gateworks.com/venice/kernel/
- Building the Venice Kernel as part of the BSP: venice/bsp
- Building a Mainline Kernel Wiki: linux/kernel
Attachments (1)
- gw74xxoptions.png (52.2 KB ) - added by 15 months ago.
Download all attachments as: .zip