[[PageOutline]] '''For USB, GPIO, MicroSD, SIM, Analog, DIO expansion modules, please visit [wiki:minipciexpressmodules here]''' = Expansion Modules = Expansion Modules for adding a choice of Mini-PCIe sockets, Mini-PCI sockets, Ethernet ports and Fiber SFP sockets to any Gateworks Ventana or Newport Single Board Computer. To see a complete list of expansion modules, see our main product selection guide here: [http://www.gateworks.com/expansion-modules-single-board-computer] * This wiki page is to provide more information about the implementation and usage the of the Expansion Modules == Connector Information == * '''To use an Expansion Module, the base board must have the expansion connector, which is only placed on specific models.''' * ''' This expansion connector replaces one of the normal Mini-PCIe connectors, and thus one Mini-PCIe site is given up for the expansion module ''' [[Image(GW16083connectionyellow.png)]] * '''(Above) GW5100 Stacked w/GW16083 Expansion Module ''' [[Image(gw5100expyellow.png)]] * '''(Above) GW5100 Shown With Expansion Connector - Note standard Mini-PCIe connector is replaced with the expansion connector''' [[Image(gw5300expyellow.png)]] * '''(Above) GW5300 Shown With Expansion Connector - Note standard Mini-PCIe connector is replaced with the expansion connector ''' ==== Connector Details ==== CPU Base boards have the Sametec QSE-014-01-L-D-DP-A and the expansion boards have the QTE-014-05-L-D-DP-A connector. If the baseboard and expansion board need to be separated, Samtec does make a cable that may be an option. Please note Gateworks has not tested any cable. * [http://suddendocs.samtec.com/catalog_english/eqdp.pdf Cable Information] == Baseboard Models == Specific Ventana & Newport processor boards have a vertical board-to-board connector on their bottom-right miniPCIe socket allowing connection to an Expansion Module. The following processor boards support expansion modules: * GW51xx: [http://www.gateworks.com/product/item/ventana-gw5100-network-processor See GW5100 product page] for order options * GW5102 - Special order * GW5103 - Special order, check w/factory for availability * GW52xx: [http://www.gateworks.com/product/item/ventana-gw5200-network-processor See GW5200 product page] for order options * GW5202 - Special order * GW5203 - Special order, check w/factory for availability * GW53xx: [http://www.gateworks.com/product/item/ventana-gw5300-network-processor See GW5300 product page] for order options * GW5302 - Special order * GW5303 - Special order, check w/factory for availability * GW5312 - Special order * GW5313 - Special order * GW54xx: [http://www.gateworks.com/product/item/ventana-gw5400-network-processor See GW5400 product page] for order options * GW5402 - Special order * GW5403 - Special order, check w/factory for availability * GW5404 - '''Standard Stocking Model''' * GW5412 - Special order * GW5413 - Special order * GW6100 - Not supported * GW6200 - Not supported * GW630x - Email sales at gateworks.com for more information * GW640x - Email sales at gateworks.com for more information == Stacking Information == The GW16081 can be stacked multiple times upon itself if using a special variation of the GW16081 which is the GW16081-SP282. The GW16082 and GW16083 cannot be stacked on top of itself but can be stacked on top of a GW16081-SP282 which has an expansion port. == Enclosure Information == Gateworks indoor and outdoor enclosures will '''not''' work with a SBC and expansion board stacked together. The height of the two pieces stacked together is too tall. A custom enclosure must be used. [=#gw16081] == GW16081 miniPCI-express expansion module == The GW16081 miniPCI-express expansion module adds the following capabilities to a Ventana or Newport processor board that has an expansion connector: * 140x100x13mm (5.5x3.9) form factor * Generic Ventana Mounting Hole Pattern (standoff locations to mount to supported baseboards) * 7x miniPCIe sockets (3 top, 4 bottom) * 32Kb I2C serial EEPROM (24LC32AT) * USB switch providing USB signaling to the bottom 4x miniPCIe sockets (for USB based miniPCIe form-factor cards such as bluetooth HCI's and cellular modems) * GW16081 is powered by baseboard. Amount of power provided is dependent on baseboards power supply. Please consult baseboard user manual/datasheet. * If desired a separate power supply can also power the GW16081 via a barrel jack input that accepts 8-60VDC. This can provide up 30W to the miniPCIe sockets on the GW16081. Please refer to the [wiki:ventana/PCIe Ventana PCI/PCIe support] for important information about PCI device resource allocation for the IMX6 processor. Do not assume that 7x additional miniPCIe sockets means that you can add 7x additional PCI devices. An ordering option exists for a version of the GW16081 which has an expansion riser to support connection to an additional Expansion Module. Please contact sales@gateworks.com if you are interested in this option. References: * [http://www.gateworks.com/product/item/ventana-gw16081-pcie-mezzanine Product Brief / Datasheet / etc] === GW16081 Software support === No software support is needed for the GW16081 === 9 radio test GW640x and GW630x can have their J9 slot can be replaced with PCI-e Expansion adapter, contact !sales@gateworks.com for details. Attaching a GW16081 at that site allows 9 radios can be populated using these boards, 7 on mezzanine 2 on board. A limiting factor when using Ventana was the address space, Newport has a much larger address space therefore allowing numerous modern devices to be working simultaniously. For a test 9x GW17032 (WLE900VX, ATH9k) radios were brought up as access points. This configuration can be achieved very simply using the following steps. - Attach radios to both boards, attach expansion board to SBC - Attach barrel jack power to expansion board. The radios are going to draw more power than can be can be provided through the mezzinene expansion header - Attach POE, or barrel jack power to SBC - Using your perfered method install your perfered BSP, during this testing Ubuntu Bionic with 4.20 kernel was used - Boot Bionic download necessary software and scripts - {{{ apt-get update apt-get install hostapd }}} - Download hostapd-conf script {{{ wget https://raw.githubusercontent.com/Gateworks/meta-gateworks/master/recipes-support/hostapd-conf/hostapd-conf/hostapd-conf }}} - Add execute permission {{{ chmod +x hostapd-conf }}} - Configure radions as AP's - For a full overview see [wiki:/wireless/wifi#hostapd here] - Verify available channels {{{ ./hostapd-conf wlan0 }}} - Output looks like this {{{ Available Channel Information on phy0 ===================================== Band 1: Channel Freq Allowed HT Modes 0 0000 HT20 HT40 HT40+ HT40- 1 2412 HT20 HT40 HT40+ 2 2417 HT20 HT40 HT40+ 3 2422 HT20 HT40 HT40+ 4 2427 HT20 HT40 HT40+ 5 2432 HT20 HT40 HT40+ HT40- 6 2437 HT20 HT40 HT40+ HT40- 7 2442 HT20 HT40 HT40+ HT40- 8 2447 HT20 HT40 HT40+ HT40- 9 2452 HT20 HT40 HT40+ HT40- 10 2457 HT20 HT40 HT40- 11 2462 HT20 HT40 HT40- Band 2: Channel Freq Allowed HT Modes 0 0000 HT20 HT40 HT40+ HT40- VHT20 VHT40 VHT80 36 5180 HT20 HT40 HT40+ VHT20 VHT40 VHT80 40 5200 HT20 HT40 HT40- VHT20 VHT40 VHT80 44 5220 HT20 HT40 HT40+ VHT20 VHT40 VHT80 48 5240 HT20 HT40 HT40- VHT20 VHT40 VHT80 144 5720 HT20 HT40 HT40- VHT20 VHT40 VHT80 149 5745 HT20 HT40 HT40+ VHT20 VHT40 VHT80 153 5765 HT20 HT40 HT40- VHT20 VHT40 VHT80 157 5785 HT20 HT40 HT40+ VHT20 VHT40 VHT80 161 5805 HT20 HT40 HT40- VHT20 VHT40 VHT80 165 5825 HT20 HT40 HT40+ VHT20 VHT40 VHT80 }}} - Using this information create .conf file for each radio {{{ ./hostapd-conf wlan0 testlan0 161 VHT80 testlan0 }}} - Using this information create .conf file for each radio {{{ ./hostapd-conf wlan0 testlan0 161 VHT80 testlan0 }}} - Launch hostapd using .conf files and background processes {{{ hostapd hostapd-phy0.conf & }}} - Output looks like this {{{ wlan0: interface state UNINITIALIZED->HT_SCAN Using interface wlan0 with hwaddr 04:f0:21:3e:59:74 and ssid "testlan0" wlan0: interface state HT_SCAN->ENABLED wlan0: AP-ENABLED }}} - Enjoy your AP's [[Image(Screenshot_20190721-183757.png, 300px)]] [=#gw16082] == GW16082 miniPCI expansion module == The GW16082 miniPCI expansion module adds the following capabilities to a Ventana or Newport processor board that has a expansion connector: * 140x100x18mm (5.5x3.9) form factor * Generic Mounting Hole Pattern (standoff locations to mount to supported baseboards) * 4x miniPCI sockets (2 top, 2 bottom) via a PCIe to PCI bridge * 32Kb I2C serial EEPROM (24LC32AT) * USB switch providing USB signaling to all 4 miniPCI sockets (for USB based miniPCI form-factor cards or miniPCI to miniPCIe adapters to support USB based devices such as bluetooth HCI's and cellular modems) * Additional 8-60VDC input to provide 30W to the miniPCI sockets (not required if baseboard provides sufficient power for user needs). * If desired this power supply can also power the attached baseboard via a separate power connector cable. Please refer to the [wiki:ventana/PCIe Ventana PCI/PCIe support] for important information about PCI device resource allocation for the IMX6 processor. Do not assume that 4x additional miniPCI sockets means that you can add 4x additional PCI devices. References: * [http://www.gateworks.com/product/item/ventana-gw16082-mezzanine GW16082 Product Brief / Datasheet / etc] === GW16082 Software support === Support for the GW16082 exists for the following: * [wiki:OpenWrt Gateworks OpenWrt BSP] * [wiki:Android Gateworks Android BSP] * [wiki:Yocto Gateworks Yocto BSP] * Mainline Linux 3.18+ For Linux kernel versions 3.18 and beyond (ie OpenWrt 16.02 BSP using the 4.4 kernel) you must have the following: * latest Gateworks bootloader containing a [https://github.com/Gateworks/u-boot-imx6/commit/b409f63fda49f653f5e3416905462457332932cb device-tree fixup] that adds a proper interrupt-map for the bridge on the GW16082 * PCI enabled in the bootloader (in order for the above fixup to be allowed to work): {{{ setenv pcidisable; saveenv }}} - Note that by default PCI is disabled in the Ventana bootloaders. [=#gw16083] == GW16083 Ethernet expansion module == The GW16083 Ethernet expansion module adds the following capabilities to a Ventana / Newport processor board that has a expansion connector: * 140x100x25mm (5.5x3.9x1.0in) form factor * Generic Ventana Mounting Hole Pattern (standoff locations to mount to supported baseboards) * 7-port Gigabit Ethernet Switch (Marvell !LinkStreet 88E6176) * supports Energy Efficient Ethernet (EEE) * baseboard uses one port via an onboard Intel i210 PCIe Gigabit Ethernet device * 4x RJ45 Copper ports * 2x RJ45 auto-selectable Copper or SFP Module ports * SFP module supporting 1000BASE-X and 1000BASE-T Gigabit modules (to interconnect to Fiber networks for example) * 32Kb I2C serial EEPROM (24LC32AT) * Power over Ethernet (PoE) support via optional PoE module [wiki:ventana/expansion#GW16104PoEModule GW16104] Switch Details: * 1 port of the Marvell switch is connected to an Intel i210 MAC which hangs off the baseboard PCI bus * 4 ports of the Marvell switch use internal PHY's supporting Gigabit Copper via RJ45 jacks * 2 ports of the Marvell switch use external Marvell PHY's that support Gigabit Copper or Gigabit SFP modules (10/100 not supported on these ports). SFP Details: * A software driver is required on the host to detect insertion and removal of SFP modules, query the capabilities of the SFP via its MSA, verify compatibility and configure the PHY for compatibility. Any SFP module that advertises 1000Base-SX, 1000Base-LX, 1000Base-T capability is supported. * Validated with: * Addon MGBSX1-AO (1000BASE-SX Duplex 850NM / 550M LC) * Addon EX-SFP-1GE-T-AO (1000BaseT Copper) References: * [http://www.gateworks.com/product/item/ventana-gw16083-mezzanine GW16083 Product Brief / Datasheet / etc] === GW16083 Port mapping === The GW16083 uses an Intel i210 MAC (Linux igb driver) connected to a Marvell MV88E6176 6-port switch. The physical ports on the MV88E6176 are used as such: ||= Connector =||= Silkscreen =||= Port =||= DSA Common Name =|| || J10 || Ethernet4 || 0 || lan4 || || J9 || Ethernet3 || 1 || lan3 || || J8 || Ethernet2 || 2 || lan2 || || J7 || Ethernet1 || 3 || lan1 || || - || i210 (cpu) || 4 || -- || || J3 || Ethernet5 || 5 || lan5 || || J2 || Ethernet6 || 6 || lan6 || === GW16083 Power support === The GW16083 gets its power from the baseboard through the expansion connector. A barrel jack also exists on the GW16083. This barrel jack is only used when the optional POE module is used to output power through the ethernet ports. === GW16083 Software support === On power-up with no software support the GW16083 behaves as a simple unmanaged network switch for ports 1-4 (RJ45 copper) and the baseboard CPU upstream port. To use ports 5-6 you need to have software drivers which are available for: * [wiki:OpenWrt Gateworks OpenWrt BSP] * [wiki:Android Gateworks Android BSP] * [wiki:Yocto Gateworks Yocto BSP] * Mainline Linux via patches: * [https://github.com/Gateworks/linux-imx6/commit/aacf6137bdeded2acb1f6638c14d98ed19ec1461 net: igb: add i210/i211 support for phy read/write] * [https://github.com/Gateworks/linux-imx6/commit/f2b99363643e1a7880fab8da4c56c88ccaa546e9 net: igb: add phy read/write functions that accept phy addr] * [https://github.com/Gateworks/linux-imx6/commit/9bf1c636122d5dd458c48b3e3c2c2f163e3354e7 net: igb: register mii_bus for SerDes w/ external phy] * [https://github.com/Gateworks/linux-imx6/commit/35a41e4125a65a63b1547801571fbfbe80b92bed phy: add driver for GW16083 Ethernet Expansion Module] '''(main driver - see here for implementation details)''' * [https://github.com/Gateworks/linux-imx6/commit/02623c86a751bf8c5567d18de440564558212ab7 ARM: imx: ventana: added GW16083 to device-tree] * These patches will eventually be submitted to mainline linux for consideration. The Linux GW16083 driver software support provides the following: * Enable ports 5-6 * register a phy driver off the i210 MDIO bus with a 1 second polling interval * identify SFP module insertion event, detect module capabilities from MSA, ensure module compatibility, and configure switch port * register a DSA driver to present ports as physical network interfaces (lan1-6) The Gateworks U-Boot bootloader does not support the GW16083 meaning: * ports 1-4 will act as a switch by default (because they power up this way) but the IMX6 eth1 port to the switch will not be active * ports 5-6 will not be active * PCI bus enumeration will see an i210 and show a message about its mac addr from env not matching its SROM mac addr but this has no affect because the NIC isn't supported anyway in U-Boot The OpenWrt BSP has support for VLAN tagging and port management via OpenWrt's swconfig API however by default DSA support is enabled. See [wiki:OpenWrt/swconfig] for more details. Port5/Port6 details: * if both RJ45 (with link) as well as an SFP is inserted, the RJ45 (copper) will take precedence and be selected. * Port physical interface mode is available from {{{/sys/kernel/gw16083/lan*_mode}}}: {{{ root@OpenWrt:/# cat /sys/kernel/gw16083/lan5_mode SFP root@OpenWrt:/# cat /sys/kernel/gw16083/lan6_mode RJ45 }}} * Port SFP details are available from {{{/sys/kernel/gw16083/lan*_sfp}}}: {{{ root@OpenWrt:/# cat /sys/kernel/gw16083/lan5_sfp SFP: Methode Elec. SFP-1GE-T-AO A2 ADDTX04396 }}} * Note that only GigE capable SFP's are supported * Port management details are output to the kernel log as INFO level messages: {{{ root@OpenWrt:/# dmesg | grep gw16083 [ 12.639162] gw16083 1-0052: GW16083 Ethernet Expansion Mezzanine [ 12.791152] gw16083 1-0052: registered GW16083 DSA switch [ 12.796609] gw16083 1-0052: Configuring MV88E6176 7-port switch [ 12.808135] gw16083 1-0052: Port5: MV88E111 PHY configured [ 12.821554] gw16083 1-0052: Port6: MV88E111 PHY configured [ 12.829929] gw16083 1-0052: Port5: SFP inserted [ 12.888832] gw16083 1-0052: Port5: SFP: Methode Elec. SFP-1GE-T-AO A2 ADDTX04396 [ 12.896432] gw16083 1-0052: Port5: 1000Base-T (Copper) (0x08) [ 12.902209] gw16083 1-0052: Port5: SFP signal detected [ 12.907400] gw16083 1-0052: Port5: copper auto-selected [ 12.913102] gw16083 1-0052: Port5: SFP TX disabled [ 12.917916] gw16083 1-0052: Port5: Copper: set auto-neg link/duplex/speed [ 12.925601] gw16083 1-0052: Port5: SFP TX enabled [ 12.930330] gw16083 1-0052: Port5: SFP: force 1000mbps link up (auto-negotiate duplex) [ 21.123062] igb 0000:06:00.0 eth1: igb PHY driver [gw16083] (mii_bus:phy_addr=0000:06:00.0-157:10) [ 592.964879] gw16083 1-0052: Port5: SERDES auto-selected }}} See also: * [wiki:linux/vlan] * [wiki:linux/vlan#dsa Linux Distributed Switch Architecture] * [wiki:OpenWrt/swconfig] [=#gw16104] === GW16104 PoE Module === The GW16104 is an optional Power over Ethernet (PoE) module for the GW16083 Ethernet expansion module providing the following features: * 44VDC to 57VDC power input (provided via the J11 barrel jack connector or the J6 2-pin connector on the GW16083) * 44W PoE to Ethernet ports 1 through 4 * 802.3af and 802.3at compatible * dip switch for configuration (802.3af vs 802.3at mode, power limits) Refer to the GW16083 Hardware manual for more details