CW1173 ChipWhisperer-Lite/Upgrading SAM3U Firmware

< CW1173 ChipWhisperer-Lite
Revision as of 11:30, 12 March 2020 by Adewar (Talk | contribs)

Revision as of 11:30, 12 March 2020 by Adewar (Talk | contribs)

This section has been recently updated for ChipWhisperer 5. The previous version can be found here: https://wiki.newae.com/V4:CW1173_ChipWhisperer-Lite/Upgrading_SAM3U_Firmware

When talking about the ChipWhisperer's firmware, there is really two parts to this:

  1. The FPGA Bitstream file.
  2. The SAM3U USB interface chip firmware.

The FPGA bitstream alone is what is normally configured by the ChipWhisperer-Capture software. This bitstream is always the most up-to-date, since it's automatically reloaded by the computer every time you power cycle the ChipWhisperer-Capture. The SAM3U firmware however is not automatically updated, but it tends to change less frequently.

Checking Firmware Version

The firmware version is printed at start-up. You will see a line that looks like this indicating the version of the SAM3U Firmware:

Found CW-Lite, Serial Number = 442031204630xxxxxxxxxxx
SAM3U Firmware version = 0.11 b0
Programmed FPGA

If your firmware version is outdated, a warning will be printed. You can also see the firmware version in the Config CW Firmware dialog:

image

Note the main version is 0.11 in this example. The "b0" indicates a "build" number. Typically this will be "build 0", but special versions will use a different build number to indicate a variant of a regular version.

Upgrading Firmware

Before updating, you must put your ChipWhisperer into bootloader mode. Once put into this mode you will need to load a new firmware file. There is two ways of doing it: the automatic method, and the manual method. The automatic method is done through the GUI, and works if you have valid firmware image loaded. The manual method is always guaranteed to work.

The automatic method is:

Using ChipWhisperer-Capture GUI

  1. Connect to the ChipWhisperer.
  2. From the Tools menu select CW Firmware Preferences
  3. Select the Open SAM3U Update Widget button.
  4. Press the Enable Bootloader Mode button.
  5. You will get an error, and the ChipWhisperer will disconnect. This is normal, and indicates the USB mode changed suddenly.
  6. The blue LED will stop flashing, and the device will reconnect in programmer mode (see below).

Once you are in bootloader mode, both the blue and red LED will be very dimmly lit:

Lights prog.jpg

This indicates it is in bootloader mode. The device will now attach as a serial port. If you are using Windows this may take a few minutes to happen.

If using Linux, you can use dmesg to verify the serial port was connected OK.

If this doesn't work, see the page Manual SAM3U Firmware Update for details on how to manually enter bootloader mode. You can return to this page for the actual programming - you don't need to install/use the BOSSA utility if you follow those manual directions. You simply need to force the system into bootloader mode using those directions.

To actually program the file, we use the second part of the dialog box you already had open:

Sam3uupdate.png

Once we are in bootloader mode, you can follow these steps:

  1. Hit "Update List", and select the serial port the SAM3U attached as.
  2. To use the default firmware file, leave the "Built-in" radio-box selected. If you want a custom firmware you can select the "External" mode.
  3. Hit the "Run Program" button
  4. Once completed, unplug/replug your device and it should come to life.
  5. Close the update widgets, and reconnect to your ChipWhisperer.

Linux usbserial module Workaround

There is an issue in some versions of Linux, where the SAM3U is not assigned a serial port when it enters bootloader mode. Here are some steps to resolve this issue (Note. this is not a permanent fix, you must go through these steps each time you put your ChipWhisperer into bootloader mode.). These steps assume you've already put ChipWhisperer into bootloader mode.

  1. Unplug your ChipWhisperer (Leave unplugged until instructed otherwise)
  2. Reboot your computer
  3. Once logged in again, open a terminal session
  4. Run this command: sudo modprobe usbserial vendor=0x3eb product=0x6124
  5. Plug your ChipWhisperer back in
  6. Check that a serial port is now open using: ls -l /dev/ttyUSB*

TtyUSB example.png

You should now be able to program the bootloader from ChipWhisperer Capture through the port you created

Manual Update

If the above instructions fail, there is no big problem. The SAM3U chip contains a hardware-resident bootloader. You may need to follow instructions on the Manual SAM3U Firmware Update page (including using BOSSA) if you are unable to use the automatic system that is part of ChipWhisperer-Capture.