Flashing Guide for EDKII in Ampere System

This documentation provides step-by-step instructions for flashing the EDKII firmware on the ADLINK Ampere system. Follow these steps carefully to ensure a successful installation.

Download the EDKII Firmware

  • On the host PC, download the firmware ZIP file for the COM-HPC Ampere Altra Developer Platform click here.
  • Extract the contents of the downloaded (.zip) file into your preferred directory. This package contains pre-built binaries and image files.

Flashing the EDKII Firmware

There are 4 methods to update the EDKII firmware. You can follow either one of them based on your convenience.

  1. EDKII Firmware Update using UEFI Shell
  2. EDKII Firmware Update in Linux
  3. Dediprog Method (Windows Host)
  4. Dediprog Method (Linux Host)

1. EDKII Firmware Update using UEFI Shell

1.1 Prerequisites

  • Ampere system
  • USB Drive formatted with FAT32
  • Stable internet connection

1.2 Flashing Process

  • Copy the folder from the adlink-aadp-edk2A2_.zip directory in the downloaded firmware files on your host PC to the root directory of an empty USB drive formatted with standard FAT32.

    **WARNING: Irreversible data loss or OS damage may result when copying to the wrong device or location.**
  • Ensure that your Ampere Altra Developer Platform is powered off, and no USB ports are in use.

  • Insert the USB drive with the firmware files into your Ampere Altra Developer Platform and power it on.

  • Wait for approximately 50 to 60 seconds until the screen below appears. Once visible, press ESC to access the EDKII setup menu.

  • You can verify the current version of the EDKII firmware displayed in the top-left corner.
    Navigate to Boot Manager > UEFI Shell in the EDKII setup menu.

  • The USB drive with the firmware files shall be listed under FS0.

  • Navigate to the firmware files directory and view the files using the following commands:

    fs0:
    ls
    cd <ver>
    ls

  • To flash the EDKII firmware, execute the following commands:

    CapsuleApp.efi ComHpcAlt_scp_<ver>.cap
    CapsuleApp.efi ComHpcAlt_tianocore_atf_<ver>.cap

    Please wait for approximately 2 minutes for the flashing process to complete.

  • After the successful completion of the update, restart the system, and you can confirm the updated version of the EDKII firmware by checking the top-left corner of the setup menu.

2. EDKII Firmware Update in Linux

2.1 Prerequisites

  • Ampere Altra Development Board with Linux
  • Stable Internet Connection

2.2 Flashing Process

These steps guide you through updating the EDKII firmware if you are using Linux on the development board. Ensure a stable internet connection throughout the process. In this documentation, we upgrade from version 2.04.100.10 to 2.04.100.11.
You can check the current version of the EDKII firmware from the screen shown below, which appears approximately 50 to 60 seconds after turning on the board.

  • This updating process requires the “ComHpcAlttianocore_atf.cab” file.

  • Execute the following command to update the firmware:

    sudo fwupdmgr install <path of ComHpcAlt_tianocore_atf_<ver>.cab> -v

  • After the system restarts, initially, the firmware will still be in the older version. The system will automatically restart again, after which the firmware will be updated to the newer version.

  • The firmware is now successfully updated.

3. Dediprog Method (Windows Host)

3.1 Prerequisites

  • Ampere Altra Development Board
  • Windows PC with a USB port
  • Dediprog SF100 Programmer Tool with cable
  • DB40 A2 Module with cable
  • USB to Micro USB cable

3.2 Flashing Process

  • Download and install the latest DediProg engineering SF100 SPI NOR Flash Programmer from Dediprog SF100 on the host PC. Ensure that you install the USB Driver and Microsoft Visual C++, which will be prompted during the installation process.

  • Turn off your development board.

  • Since the DB40 connector is beneath the module, unscrew and remove the carrier board with the module attached.
    Skip this step if you can access the DB40 connector directly

  • Locate the DB40 connector underneath the module.

  • Connect the DediProg SF100 Programmer tool to the DB40 A2 module, and subsequently, link the entire setup to the DB40 connector on the COM-HPC Ampere Altra Developer Platform, as illustrated below. Finally, connect the DediProg SF100 Programmer tool to the host PC via USB.

  • Turn on the Development Board and run DediProg engineering SF100 as administrator on the host machine.

  • Once the DediProg detects the chip, make sure to select the XXXXXXXX35F ROM from the available options.

  • Once the chip is detected, click on the File menu and load the “ComHpcAlt_tianocore_atf.bin” file from the \DediprogFlashImage directory. Choose “Raw Binary” under “Program as” section.

  • Click the “Batch” button to start flashing.

  • Upon successful completion, you’ll see a “Verify OK” message followed by “Operation Completed.”

4. Dediprog Method (Linux Host)

4.1 Prerequisites

  • Ampere Altra Development Board
  • Linux PC with a USB port
  • Dediprog SF100 Programmer Tool with cable
  • DB40 A2 Module with cable
  • USB to Micro USB cable
  • Stable Internet Connection

4.2 Flashing Process

  • Clone the SF100 Linux Tool from SF100LINUX on the host PC using the following command:

    git clone https://github.com/DediProgSW/SF100Linux

  • Change to the directory where the downloaded tool sources are located and install the libusb-1.0 package with the commands:

    cd <SF100 Tool FilePath>
    sudo apt-get install libusb-1.0-0-dev

  • Build using the make command.

    make

    The resulting binary, called dpcmd, should be located in the root of the source tree.

  • Turn off your development board.

  • Since the DB40 connector is beneath the module, unscrew and remove the carrier board with the module attached.
    Skip this step if you can access the DB40 connector directly

  • Locate the DB40 connector underneath the module.

  • Connect the DediProg SF100 Programmer tool to the DB40 A2 module and subsequently link the entire setup to the DB40 connector on the COM-HPC Ampere Altra Developer Platform, as illustrated below. Finally, connect the DediProg SF100 Programmer tool to the host PC via USB.

  • Turn on the Development Board and execute the following command to check whether the chip is detected:

    sudo ./dpcmd -d

  • Once the chip is detected, initiate the flashing process with the following command:

    sudo ./dpcmd -u <path of ComHpcAlt_tianocore_atf_<ver>.bin>

    Replace <path of ComHpcAlt_tianocore_atf_<ver>.bin> with the actual path, which can be found in the “ \DediprogFlashImage“ directory of the downloaded firmware source files.

  • The EDKII firmware is now successfully flashed on the development board.