Changes between Version 14 and Version 15 of newport


Ignore:
Timestamp:
12/14/2017 10:33:54 PM (7 years ago)
Author:
Tim Harvey
Comment:

added firmware version details and instructions on creating a bootable microSD

Legend:

Unmodified
Added
Removed
Modified
  • newport

    v14 v15  
    123123
    124124
     125[=#firmware-version]
     126= Firmware Versioning =
     127You can determine the firmware version of various portions of the firmware by looking for banners on the serial console. For example:
     128{{{#!bash
     129Gateworks Newport SPL (ea21abc Tue Dec 12 23:42:48 UTC 2017)
     130
     131GSC     : v49 0x832c WDT:disabled board temp:61C
     132RTC     : 0
     133Model   : GW6304-B
     134...
     135NOTICE:  Booting Trusted Firmware
     136NOTICE:  BL1: v1.3(release):OCTEONTX_SDK_6_2_0_build_26
     137NOTICE:  BL1: Built : 15:30:07, Dec  4 2017
     138NOTICE:  CHIP UniqueID not set
     139...
     140U-Boot 2017.09-rc1-00023-g1fd1415 (Dec 12 2017 - 15:42:30 -0800) for Cavium OcteonTX CN81XX ARM V8 Core
     141...
     142}}}
     143 - The above shows the version of the BDK used as the Secondary Program Loader (SPL) is 'ea21abc' built on Tue Dec 12 23:42:48 2017. The git sha of 'ea21abc'.
     144 - The above shows the version of the ATF (ARM Trusted Firmware) is v1.3 built on Dec 4 2017.
     145 - The above shows the version of U-Boot is '2017.09-rc1-00023-g1fd1415' built on Dec 12 2017.
     146
     147
    125148[=#firmware-update]
    126149= Updating Firmware =
     
    129152There are two methods for updating firmware:
    130153 * 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''')
     154 * on removable storage (ie recovery microSD)
    131155 * using a GW16099 JTAG dongle (see [#jtag below]) ('''Note that currently only the GSC firmware can be updated via JTAG''')
    132156
     
    149173To update just the 'firmware' (everything up to and including the Bootloader) ([https://github.com/Gateworks/images-newport/raw/master/firmware-newport.img firmware image]):
    150174{{{#!bash
    151 mmc dev 0 # use 'mmc list' to show which device is which
     175mmc dev 0 # use 'mmc list' to show which device is which and select eMMC
    152176tftpboot ${loadaddr} firmware-newport.img && mmc write ${loadaddr} 0 8000
    153177}}}
     
    155179To 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]):
    156180{{{#!bash
    157 mmc dev 0 # use 'mmc list' to show which device is which
     181mmc list # see which device is emmc vs sd
     182setenv dev 0 # use device of emmc assuming booted from emmc
     183# using tftp server
    158184tftpboot ${loadaddr} xenial-newport.img.gz && gzwrite mmc ${dev} ${loadaddr} ${filesize}
    159185}}}
     186
     187
     188[=#microsd]
     189== Creating a microSD recovery image ==
     190If your primary boot won't boot for some reason (ie, you corrupted it during development) you can boot from a microSD (see [#bootdevice here]).
     191
     192To create a bootable microSD meant for recovery purposes only needing the Bootloader you can use [https://github.com/Gateworks/images-newport/raw/master/firmware-newport.img firmware-newport.img]:
     193 * On a Linux host:
     194{{{#!bash
     195DEVICE=/dev/sdc # set to the microSD on your host
     196sudo dd if=firmware-newport.img of=$DEVICE
     197}}}
     198  - '''Be careful to set the DEVICE above to the device the microSD appears as on your Linux host - you do not want to overwrite part of your hosts filesystem'''
     199 * On a Newport board booted from eMMC:
     200{{{#!bash
     201mmc list # if booted from eMMC you should see microSD as dev 1
     202mmc dev 1 # select microSD
     203tftpboot ${loadaddr} firmware-newport.img && mmc write ${loadaddr} 0 8000
     204}}}
     205
     206To create a bootable microSD with the Gateworks Ubuntu image (takes longer):
     207 * On a Linux host:
     208{{{#!bash
     209DEVICE=/dev/sdc # set to the microSD on your host
     210zcat xenial-newport.img.gz | sudo dd of=$DEVICE
     211# re-partition with a 3.5MB DOS partition (required by BDK) and a Linux partition at 16MB
     212printf "3072,8191,1,,\n32768,,L,,\n" | sudo sfdisk -uS $DEVICE
     213}}}
     214  - we re-partition so that the full size of your microSD is available as the firmware image has partitions setup for a 8GiB device. Even though the partition table grows to the size of your device you still need to run {{{resize2fs /dev/mmcblk0p2}}} after bootup to grow the partition to fit the space in the table.
     215  - while you could use U-Boot on a running board to program a microSD you would not be able to adjust it's partition table easily to take advantage of a larger disk.
    160216
    161217