| 93 | == User Manual == |
| 94 | * [http://www.gateworks.com/usermanuals All Gateworks User Manuals] |
| 95 | |
| 96 | == Processor Reference Manual / Datasheet / Errata == |
| 97 | The [http://www.cavium.com/OCTEON-TX-CN80XX-81XX.html Cavium Website] contains details about the OCTEON TX Dual and Quad core 64bit ARM based SoC's. |
| 98 | |
| 99 | Additional references: |
| 100 | * [http://www.cavium.com/pdfFiles/OCTEON-TX-CN80XX-CN81XX-Product-Brief-Rev1.pdf OCTEON TX CN80XX-CN81XX Product Brief] |
| 101 | |
| 102 | |
| 103 | [=#source] |
| 104 | = Source Code = |
| 105 | Newport Source code for firmware, bootloader and kernel are hosted at !GitHub. We highly recommend you create a !GitHub account and 'Watch' these repositories to keep abreast of important feature additions, bugfixes, and firmware-releases. You can configure your !GitHub account to e-mail you when changes are made to repositories [https://github.com/settings/notifications here]. |
| 106 | |
| 107 | The following !GitHub repos are used for Newport: |
| 108 | * [https://github.com/Gateworks/uboot-newport images-newport] - Newport pre-built firmware Firmware Images ([https://github.com/Gateworks/uboot-newport/subscription watch]) |
| 109 | * [https://github.com/Gateworks/uboot-newport uboot-newport] - Newport Bootloader ([https://github.com/Gateworks/uboot-newport/subscription watch)] |
| 110 | * [https://github.com/Gateworks/linux-newport linux-newport] - Newport Linux Kernel ([https://github.com/Gateworks/linux-newport/subscription watch)] |
| 111 | * [https://github.com/Gateworks/bdk-newport bdk-newport] - Newport BDK (used as Secondary Program Loader) ([https://github.com/Gateworks/bdk-newport/subscription watch)] |
| 112 | * [https://github.com/Gateworks/atf-newport atf-newport] - Newport ATF (ARM Trusted Firmware) ([https://github.com/Gateworks/atf-newport/subscription watch)] |
| 113 | |
| 114 | |
| 115 | [=#images] |
| 116 | = Pre-built Firmware Images = |
| 117 | The [https://github.com/Gateworks/uboot-newport images-newport] !GitHub repository hosts various pre-built firmware images used for Newport: |
| 118 | * [https://github.com/Gateworks/images-newport/raw/master/gsc_630x_v49.txt GSC firmware image] |
| 119 | * [https://github.com/Gateworks/images-newport/raw/master/firmware-newport.img firmware image] (everything up to and including the bootloader stored on the embedded FLASH boot device) (see [#firmware below] for details) |
| 120 | * [https://github.com/Gateworks/images-newport/raw/master/linux-newport.tar.bz2 linux-newport.tar.bz2] - Compressed TAR archive of pre-built Linux kernel |
| 121 | * [https://github.com/Gateworks/images-newport/raw/master/xenial-newport.img.gz xenial-newport.img.gz] - Compressed Disk Image containing Firmware and Ubuntu 16.04 Xenial |
| 122 | * [https://github.com/Gateworks/images-newport/blob/master/xenial-newport.tar.bz2 xenial-newport.tar.bz2] - Compressed TAR archive of Ubuntu 16.04 Xenial arm64 root filesystem |
| 123 | |
| 124 | |
| 125 | [=#firmware-update] |
| 126 | = Updating Firmware = |
| 127 | This section provides instructions for updating both GSC firmware as well as boot device firmware. |
| 128 | |
| 129 | There are two methods for updating firmware: |
| 130 | * on a live board using Serial Console and Ethernet ('''Note that currently the eMMC FLASH can only be updated on a live board booted from either eMMC or microSD''') |
| 131 | * using a GW16099 JTAG dongle (see [#jtag below]) ('''Note that currently only the GSC firmware can be updated via JTAG''') |
| 132 | |
| 133 | The various items that can be updated: |
| 134 | * GSC Firmware - currently only JTAG updates are supported for Newport - see [#jtag-gsc below] |
| 135 | * Firmware (Everything up to and including the Bootloader) - currently must be updated from U-Boot or Linux on a live system - see [#firmware-update-uboot below] |
| 136 | * Root Filesystem (Operating System) - currently must be updated from U-Boot or Linux on a live system - see [#firmware-update-uboot below] |
| 137 | |
| 138 | |
| 139 | [=#serial-ethernet] |
| 140 | == Update Firmware via Serial Console and Ethernet == |
| 141 | The quickest and easiest way to update your firmware is via Serial Console and Ethernet. You can do this either in the U-Boot bootloader (recommended) or within a Linux OS. If your primary boot device is corrupt, then you can boot via an alternate boot device (ie microSD). |
| 142 | |
| 143 | If using U-Boot (recommended) you need to setup a TFTP server to host the files for transfer. Alternatively you could load firmware files from removable storage (microSD, mSATA, or USB for example) however the transfer rate is typically very slow compared to Gigabit Ethernet. For details on setting up a TFTP server see [wiki:tftpserver here]. |
| 144 | |
| 145 | The following instructions assume your board target IP address is 192.168.1.1 and you have a TFTP server at 192.168.1.146. Adjust environment according to your network via 'setenv ipaddr <ipaddr>' and 'setenv serverip <serverip>'. |
| 146 | |
| 147 | Note that if booted from the eMMC (primary device) U-Boot mmc dev 0 is eMMC and mmc dev 1 is microSD however if you booted from the microSD (secondary device) then U-Boot mmc dev 0 is microSD and mmc dev 1 is eMMC. Be sure to use {{{mmc list}}} to determine which device you should set via the {{{mmc dev}}} command. |
| 148 | |
| 149 | To update just the 'firmware' (everything up to and including the Bootloader) ([https://github.com/Gateworks/images-newport/raw/master/firmware-newport.img firmware image]): |
| 150 | {{{#!bash |
| 151 | mmc dev 0 # use 'mmc list' to show which device is which |
| 152 | tftpboot ${loadaddr} firmware-newport.img && mmc write ${loadaddr} 0 8000 |
| 153 | }}} |
| 154 | |
| 155 | To update the 'firmware' as well as the root filesystem ([https://github.com/Gateworks/images-newport/raw/master/xenial-newport.img.gz xenial-newport.img.gz]): |
| 156 | {{{#!bash |
| 157 | mmc dev 0 # use 'mmc list' to show which device is which |
| 158 | tftpboot ${loadaddr} xenial-newport.img.gz && gzwrite mmc ${dev} ${loadaddr} ${filesize} |
| 159 | }}} |
| 160 | |
103 | | |
104 | | |
105 | | == User Manual == |
106 | | * [http://www.gateworks.com/usermanuals All Gateworks User Manuals] |
107 | | |
108 | | |
109 | | == Processor Reference Manual / Datasheet / Errata == |
110 | | The [http://www.cavium.com/OCTEON-TX-CN80XX-81XX.html Cavium Website] contains details about the OCTEON TX Dual and Quad core 64bit ARM based SoC's. |
111 | | |
112 | | Additional references: |
113 | | * [http://www.cavium.com/pdfFiles/OCTEON-TX-CN80XX-CN81XX-Product-Brief-Rev1.pdf OCTEON TX CN80XX-CN81XX Product Brief] |
| 173 | * '''JTAG Programming of the GSC firmware is supported by the most recent version of jtag_usbv4''' [http://svn.gateworks.com/jtag/linux/x86/jtag_usbv4 here] |
| 174 | |
| 175 | [=#jtag-gsc] |
| 176 | === Update GSC Firmware via JTAG === |
| 177 | To update the GSC firmware via JTAG download the {{{jtag_usbv4}}} application on a Linux x86 host from [http://svn.gateworks.com/jtag/linux/x86/jtag_usbv4 here] and execute as follows: |
| 178 | {{{#!bash |
| 179 | ./jtag_usbv4 -m gsc_630x_v49.txt |
| 180 | }}} |
| 181 | |
| 182 | Note that the {{{ftdi_sio}}} kernel module must not be loaded (sudo rmmod ftdi_sio) and you may need to run this command as root by pre-pending a sudo depending on the configuration of your linux host. |
| 183 | |
| 184 | For more details please see: |
| 185 | * [wiki:jtag Gateworks JTAG wiki page] |