Flashing gateware and Linux image#

Todo

This is the hard way! Special cables and FlashPros are not required when using the firmware we initially ship on the board. This tutorial should be rescripted as how to _unbrick_ your board. Also, we have other work-arounds using software and GPIOs rather than FlashPros. Let’s not put this in user’s face as the experience when it is far more painful than using the change-gateware.sh script and “hold BOOT button when applying power” solutions we’ve created!

In this tutorial we are going to learn to flash the gateware image to FPGA and sdcard.image to eMMC storage.

Programming & Debug tools installation#

To flash a gateware image to your BeagleV-Fire board you will require a FlashPro5/6 and FlashPro Express (FPExpress) tool which comes pre-installed as part of Libero SoC Design Suite. A standalone FlashPro Express tool is also available with MicroChip’s Programming and Debug Tools package, which we are going to use for this tutorial. Below are the steps to install the software:

  1. Download the zip for your operating system from Programming and Debug Tools page.

  2. Unzip the file and in the unzipped folder you will find launch_installer.sh and Program_Debug_v2023.1.bin.

  3. Execute the launch_installer.sh script to start the installation procedure.

[lorforlinux@fedora Program_Debug_v2023.1_lin] $ ./launch_installer.sh

No additional packages to install for installer usage

Requirement search complete.

See /tmp/check_req_installer608695.log for information.

Launch of installer
Preparing to install
Extracting the JRE from the installer archive...
Unpacking the JRE...

Note

It’s recommended to install under home/user/microchip for linux users.

Enabling non-root user to access FlashPro#

  1. Download 60-openocd.rules

  2. Copy udev rule sudo cp 60-openocd.rules /etc/udev/rules.d

  3. Trigger udevadm using sudo udevadm trigger or reboot the PC for the changes to take effect

Flashing gateware image#

Note

content below is valid for beta testers only.

Launch FPExpress#

  1. Download FlashProExpress.zip file and unzip, it contains the *.job file which we need to create a new project in FPExpress.

  2. Open up a terminal and go to /home/user/microchip/Program_Debug_v202X.Y/Program_Debug_Tool/bin which includes FPExpress tool.

  3. Execute ./FPExpress in terminal to start FlashPro Express software.

Create new project#

Important

Make sure you have your FlashPro5/6 connected before you create a new project.

Press CTRL+N to create a file and you will see a pop-up window like shown below,

FPExpress new project creation window

Follow the steps below as annotated in the image above:

  1. Click on browse (1) button to select the job file.

  2. Click on browse (2) button to select the project location.

  3. Click ok button to finish.

If your FlashPro5/6 is connected properly you’ll see the window shown below:

FPExpress new project flash window

Following the annotation in the image above:

  1. From drop-down select Program action

  2. Click on RUN button

  3. Shows the progress

If you see a lot of green color and the progress bar says PASSED then well done you have successfully flashed the gateware image on your BeagleV-Fire board.

Flashing eMMC#

Connect to BeagleV-Fire UART debug port using a 3.3v USB to UART bridge.

UART debug connection

Now you can run tio <port> in a terminal window to access the UART debug port connection. Once you are connected properly you can press the Reset button which will show you a progress bar like in the

BeagleV-Fire booting HSS with progress bar

Once you see that progress bar on your screen you can start pressing any button (0-9/a-z) which will stop the board from fully booting and you’ll be able to access Hart Software Services (HSS) prompt. BeagleV-Fire’s eMMC content is written by the Hart Software Services (HSS) using the usbdmsc command. The HSS usbdmsc command exposes the eMMC as a USB mass storage device USB type C connector.

BeagleV-Fire boot messages with HSS prompt access

Once you see >> you can execute the commands below:

  1. >> mmc

  2. >> usbdmsc

HSS commands to show eMMC as mass storage

After executing the commands above your BeagleV-Fire’s eMMC will be exposed as a mass storage device like shown in the image below:

BeagleV-Fire eMMC as mass storage

Once your board is exposed as a mass storage device you can use Balena Etcher to flash the sdcard.img on your BeagleV-Fire’s eMMC.

  1. Select the sdcard.img file from your local drive storage.

  2. Click on select target.

Balena Etcher selecting image
  1. Select MCC PolarFireSoC_msd as target.

  2. Click Select(1) to proceed.

Balena Etcher selecting target
  1. Click on Flash! to flash the sdcard.img on BeagleV-Fire eMMC storage.

Balena Etcher flashing image

Congratulations! with that done you have fully updated BeagleV-Fire board with up to date gateware image on it’s PolarFire SoC’s FPGA Fabric and linux image on it’s eMMC storage.