= GW3089 GBlade Server Blade [[Image(GW3089.png,200px)]] == Product Information All product information and datasheets can be found here: [https://www.gateworks.com/products/arm-server-blades/gblade-arm-server-blade/] == Getting Started The GBlade is pre-installed with Ubuntu Linux. To power the unit use an 802.3at PoE switch or inserter. The bottom 1GbE RJ45 is the PoE port by default. Contact factory for 10GbE PoE options. Typical power consumption is around 10-13W without any additional cards plugged into the NVME socket. === Serial Console Access Once the unit is powered, the GBlade serial console can be accessed through the type C USB port through a cable to a desktop/laptop PC. The serial console uses an industry standard FTDI FT2232HQ USB to Serial/JTAG converter IC and will show up as a /dev/ttyUSBx device in Linux and can be accessed through a terminal program with the baud rate of 115,200. For other operating systems, virtual COM port (VCP) drivers can be found here: [https://ftdichip.com/drivers/vcp-drivers/ Link]. [[Image(serial.JPG,300px)]] Example: {{{ sudo screen /dev/ttyUSB1 115200,cs8 }}} Once connected via the USB cable, SSH can be enabled (it is disabled by default) with instructions here: [wiki:ubuntu#SSHServer Enable SSH] Any server software (LAMP stack, etc) can then be installed with the package manager. {{{ apt-get update apt-get install {your package} }}} === JTAG & Firmware/OS Update The GW3089 incorporates onboard a USB to JTAG FTDI chip to allow JTAG programming of the unit without the requirement for a separate JTAG dongle (GW16099) which is typically used on other Gateworks SBCs. The JTAG software is under development so for initial programming please see the following link on updating from a TFTP server. * [wiki:malibu/firmware#UpdateFirmwareviaSerialConsoleandEthernetfromBootloader] == Ethernet There are two Ethernet ports, 1GbE (management) and 10GbE (high speed data). * (eth1) 1GbE RGMII port is on the bottom (PoE by default) - Note this interface is not enabled in the default Linux installation. * (eth0) 10GbE XFI port is on the top - This port is brought up with DHCP in the default Linux installation. [[Image(ethernet.JPG,300px)]] === Powering Gblade with PoE Isolated 802.3at 1GbE active PoE is supported on the bottom 1GbE Ethernet port. The Gateworks GW10144 802.3at PoE power supply/inserter can be used to power individual units and/or during development. See link here for info on GW10144: [https://tsi.tyconsystems.com/doc/SpecSheets/TP-POE+10G__53V_30W_10GB_PoE_Inserter_Spec_Sheet.pdf Tycon Inserter] For rackmount applications a 802.3at PoE switch is recommended. To use the 10GbE port for PoE powering the device, please contact Gateworks Sales. == USB Port The Type-C USB port is only for serial console access. This port will not work as a standard USB port. == NVME Drive The GBlade needs to be opened up to install a 2280 M-Key NVME flash storage drive. The Gblade supports PCIe Gen 3.0 x4 lanes. The NVME drive will show up as /dev/nvme0 and /dev/nvme0n1 respectively in Linux. Here are the basic steps to open the case and access the NVME socket. 1. Remove the four frontplate screws using a T8 Torx driver. 2. Remove the frontplate and move to the side. Note the LED cable does not need to be removed. 3. Slide out the side plate on the side the LED cable is mounted on. 4. The M.2 NVME socket should now be visible and a drive can be inserted. Secure the drive to the PEM towards the front of the unit and reinstall the frontplate. Some example NVME speed tests with a Samsung 980 drive: {{{ root@jammy-malibu:~# dd if=/dev/nvme0n1 of=/dev/null bs=1M count=10k 10240+0 records in 10240+0 records out 10737418240 bytes (11 GB, 10 GiB) copied, 14.9507 s, 718 MB/s root@jammy-malibu:~# sudo hdparm -tT --direct /dev/nvme0n1 /dev/nvme0n1: Timing O_DIRECT cached reads: 3068 MB in 2.00 seconds = 1535.23 MB/sec Timing O_DIRECT disk reads: 4710 MB in 3.00 seconds = 1569.63 MB/sec }}} == LED A front panel LED is supported. When power is applied, the LED will be a solid green. The LED will present a green heartbeat pattern is shown once the board is booted into Linux. [[Image(LED.JPG,500px)]] === LED Programming To disable the heartbeat LED: {{{ root@jammy-malibu:~# echo none > /sys/class/leds/green\:heartbeat/trigger #disable default green heartbeat root@jammy-malibu:~# echo 255 > /sys/class/leds/red\:status/brightness #set LED to solid RED }}} To see more Linux LED examples, see here: [wiki:linux/led] == Thermal & Cooling Fan [[Image(fan.JPG,100px)]] The GW3089 uses the industrial temperature quad core Marvell CN9130 processor rated at 2.2GHz. The Tjunction rating for the processor is -40C to +105C. The GW3089 enclosure contains a built in CUI fan (model CUI CFM-4020BF-095-342-22) to keep the unit cool and provide airflow to the processor. When the unit first boots, the fan will turn on to full speed and then once Linux starts it will be under thermal control based on the processors AP core temperature. The fan runs at specific set points. The trip points are set at 50C, 60C and 80C (as shown in the device tree [https://github.com/Gateworks/linux-malibu/blob/v6.1-malibu/arch/arm64/boot/dts/marvell/cn9130-malibu-gw8901.dts#L413 here]). Note also the processor will throttle down if the fan isn't able to achieve proper cooling with the fan. The PWM values for the four default set points are as follows: Fan Off < 50C Fan On 40% PWM = 50C to 60C Fan On 67% PWM = 60C to 80C Fan On 100% PWM > 80C These can be adjusted through the device tree if required. Fan specifications: * Operating Voltage: 5VDC * Typical Power Consumption: 1.45W * Typical RPM: 9500 RPM, Min 8550, Max 10450 * Typical CFM: 11.88 * Typical Noise: 34.2 dBA * MTBF: Typ. 70K Hours @ +40C * Operating Temp: -10C to +70C * Dual Ball Bearing * Auto Restart Protection * Polarity Protection * Soft Start * Tachometer Signal * PWM Control * Safety Approvals: UL, cUL, TUV, CE * RoHS The GW8901 uses standard Linux cooling-maps, thermal-zones and the pwm-fan driver. There are several temperature sensors on the board, identified as 'thermal_zones'. These are shown in Linux under /sys/class/thermal: {{{ root@jammy-malibu:~# ls -la /sys/class/thermal/ total 0 drwxr-xr-x 2 root root 0 Jun 27 18:28 . drwxr-xr-x 62 root root 0 Jun 27 18:28 .. lrwxrwxrwx 1 root root 0 Jun 27 18:28 cooling_device0 -> ../../devices/virtual/thermal/cooling_device0 lrwxrwxrwx 1 root root 0 Jun 27 18:28 cooling_device1 -> ../../devices/virtual/thermal/cooling_device1 lrwxrwxrwx 1 root root 0 Jun 27 18:31 cooling_device2 -> ../../devices/virtual/thermal/cooling_device2 lrwxrwxrwx 1 root root 0 Jun 27 18:28 thermal_zone0 -> ../../devices/virtual/thermal/thermal_zone0 lrwxrwxrwx 1 root root 0 Jun 27 18:28 thermal_zone1 -> ../../devices/virtual/thermal/thermal_zone1 lrwxrwxrwx 1 root root 0 Jun 27 18:28 thermal_zone2 -> ../../devices/virtual/thermal/thermal_zone2 lrwxrwxrwx 1 root root 0 Jun 27 18:28 thermal_zone3 -> ../../devices/virtual/thermal/thermal_zone3 lrwxrwxrwx 1 root root 0 Jun 27 18:28 thermal_zone4 -> ../../devices/virtual/thermal/thermal_zone4 lrwxrwxrwx 1 root root 0 Jun 27 18:28 thermal_zone5 -> ../../devices/virtual/thermal/thermal_zone5 }}} An example temperature for thermal_zone0 would be 60738, or 60738/1000=60.738 degrees Celsius: {{{ root@jammy-malibu:~# cat /sys/class/thermal/thermal_zone0/temp 60738 }}} The zones are labeled below. The AP stands for application processor, or the main CPU, with a sensor for each core of the quad core CPU. The CP0 stands for 'co-processor'. {{{ root@jammy-malibu:~# cat /sys/class/thermal/thermal_zone*/type ap-thermal-ic ap-thermal-cpu0 ap-thermal-cpu1 ap-thermal-cpu2 ap-thermal-cpu3 cp0-thermal-ic }}} Fan tachometer / tach rpm: {{{ root@jammy-malibu:/sys/class/hwmon/hwmon0# cat fan1_input 9510 }}} == 1U Rack Front Plate A standard 1U rack front plate is available to install QTY 10 GBlade servers in a rack mount scenario. The 1U plate part number is GW3090. Contact sales@gateworks.com to purchase. == Gateworks System Controller The Gateworks System Controller manages things like the real time clock, voltage rails, fan PWM, etc. More information can be found here: [wiki:gsc] == Software The GW3089 is part of the Gateworks Malibu family of SBCs. Malibu 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) An Ubuntu based OS is pre-installed on all Malibu boards before they ship. See the following link for the latest pre-built image: * [http://dev.gateworks.com/malibu/images/ Pre-built Software Images] * [wiki:malibu/firmware#UpdateFirmwareviaSerialConsoleandEthernetfromBootloader Installation Instructions] Additional links available here: * [wiki:malibu Main Malibu Wiki Page] * [wiki:malibu/bsp Malibu BSP Page] * [wiki:malibu/boot Malibu Boot Firmware (up to and including the Bootloader)] * [wiki:gsc#GSCVersionHistory GSC Firmware] * [wiki:ubuntu Main Ubuntu Page] * [wiki:webui Webmin Installation Page] === Device Tree The Linux device tree can often describe a lot about how the hardware is connected, etc. Link to GW3089/GW8901 Device tree: [https://github.com/Gateworks/linux-malibu/blob/v6.1-malibu/arch/arm64/boot/dts/marvell/cn9130-malibu-gw8901.dts Device Tree] === TPM / Crypto On the board is a Microchip ATTPM20P-H6MA1-10 connected to the SPI1 bus. This is compliant to the Trusted Computing Group (TCG) Trusted Platform Module (TPM) Version 2.0, r116 Trusted Platform Module Library. See link here: [https://trustedcomputinggroup.org/ Link] Cryptographic Support for: - HMAC - AES-128 - SHA-1 - SHA-256 - ECC BN_P256, ECCNIST_P256 -RSA 1024-2048 bit keys The TPM device is at /dev/tpm0 The TPM tools can be installed with the following command: {{{ apt install tpm2-tools }}} Showing the properties: {{{ root@jammy-malibu:~# tpm2_getcap properties-fixed TPM2_PT_FAMILY_INDICATOR: raw: 0x322E3000 value: "2.0" TPM2_PT_LEVEL: raw: 0 TPM2_PT_REVISION: raw: 0x77 value: 1.19 TPM2_PT_DAY_OF_YEAR: raw: 0x42 TPM2_PT_YEAR: raw: 0x7DE TPM2_PT_MANUFACTURER: raw: 0x4D434850 value: "MCHP" TPM2_PT_VENDOR_STRING_1: raw: 0x0 value: "" TPM2_PT_VENDOR_STRING_2: raw: 0x0 value: "" TPM2_PT_VENDOR_STRING_3: raw: 0x0 value: "" TPM2_PT_VENDOR_STRING_4: raw: 0x0 value: "" TPM2_PT_VENDOR_TPM_TYPE: raw: 0x0 TPM2_PT_FIRMWARE_VERSION_1: raw: 0x2005002 TPM2_PT_FIRMWARE_VERSION_2: raw: 0x0 TPM2_PT_INPUT_BUFFER: raw: 0x400 TPM2_PT_HR_TRANSIENT_MIN: raw: 0x3 TPM2_PT_HR_PERSISTENT_MIN: raw: 0x7 TPM2_PT_HR_LOADED_MIN: raw: 0x3 TPM2_PT_ACTIVE_SESSIONS_MAX: raw: 0x40 TPM2_PT_PCR_COUNT: raw: 0x18 TPM2_PT_PCR_SELECT_MIN: raw: 0x3 TPM2_PT_CONTEXT_GAP_MAX: raw: 0xFFFF TPM2_PT_NV_COUNTERS_MAX: raw: 0x0 TPM2_PT_NV_INDEX_MAX: raw: 0x640 TPM2_PT_MEMORY: raw: 0x6 TPM2_PT_CLOCK_UPDATE: raw: 0x400000 TPM2_PT_CONTEXT_HASH: raw: 0xB TPM2_PT_CONTEXT_SYM: raw: 0x6 TPM2_PT_CONTEXT_SYM_SIZE: raw: 0x100 TPM2_PT_ORDERLY_COUNT: raw: 0xFF TPM2_PT_MAX_COMMAND_SIZE: raw: 0x500 TPM2_PT_MAX_RESPONSE_SIZE: raw: 0x400 TPM2_PT_MAX_DIGEST: raw: 0x20 TPM2_PT_MAX_OBJECT_CONTEXT: raw: 0x320 TPM2_PT_MAX_SESSION_CONTEXT: raw: 0x320 TPM2_PT_PS_FAMILY_INDICATOR: raw: 0x0 TPM2_PT_PS_LEVEL: raw: 0x0 TPM2_PT_PS_REVISION: raw: 0x0 TPM2_PT_PS_DAY_OF_YEAR: raw: 0x0 TPM2_PT_PS_YEAR: raw: 0x0 TPM2_PT_SPLIT_MAX: raw: 0x80 TPM2_PT_TOTAL_COMMANDS: raw: 0x65 TPM2_PT_LIBRARY_COMMANDS: raw: 0x65 TPM2_PT_VENDOR_COMMANDS: raw: 0x0 TPM2_PT_NV_BUFFER_MAX: raw: 0x400 TPM2_PT_MODES: raw: 0x0 }}} == Enclosure The GW3089 anodized enclosure uses the following screws for securing the board, fan and frontplate. * Frontplate = Torx T8 Head, M3 x 8mm * Fan = Torx T10 Head, M3 x 25mm * Board standoffs = Hex 1.5mm Head M2.5 x 5mm The CPU and 10GbE Phy have passive heatsinks to allow better cooling on these devices. When installing M.2 cards in the GW3089 make sure to take cooling into consideration. Most NVME and AI accelerators recommend some type of heatsink. The narrow width of the GW3089 enclosure will only allow an 8 to 9mm heatsink (depending on height of devices on the M.2 card). When installing heatsinks make sure to align the fins to maximize cooling with the air flowing from the front to rear of the enclosure. == Wireless & Modems Wireless & modems were not intended for this ethernet connected blade server.