LX2160ARDB - How to update MC firmware, DPC, and DPL images in FlexSPI NOR flash

cancel
Showing results for 
Search instead for 
Did you mean: 

LX2160ARDB - How to update MC firmware, DPC, and DPL images in FlexSPI NOR flash

LX2160ARDB - How to update MC firmware, DPC, and DPL images in FlexSPI NOR flash

Follow these steps to update the DPAA2 MC firmware, DPC, and DPL images in FlexSPI NOR flash of LX2160ARDB.

NOTE: Below steps are valid for both LX2160ARDB Rev 1.0 and Rev 2.0 revisions.

NOTE: qixis_reset boots the board from FlexSPI NOR flash0 and qixis_reset altbank boots the board from FlexSPI NOR flash1.

NOTE: sf probe 0:1 means that the alternate bank will be written to. So, if the board boots from FlexSPI NOR flash0 and sf probe 0:1 is entered at the U-Boot prompt, the commands that follow will program FlexSPI NOR flash1.

Obtaining MC firmware

Clone the qoriq-mc-binary repository.

  1. git clone https://github.com/NXP/qoriq-mc-binary.git
  2. $ cd qoriq-mc-binary/lx2160a/
  3. $ git checkout -b <new branch name> <LSDK tag>. For example, $ git checkout -b LSDK-20.04 LSDK-20.04

The prebuilt MC firmware image, mc_10.20.4_lx2160a.itb, is available at /qoriq-mc-binary/lx2160a/.

NOTE: The name of the MC firmware image may vary depending on the LSDK release version used. 

Obtaining DPC and DPL images

Clone the mc-utils repository and compile the DPC and DPL images.

  1. $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/mc-utils
  2. $ cd mc-utils
  3. git checkout -b <new branch name> <LSDK tag>. For example, $ git checkout -b LSDK-20.04 LSDK-20.04
  4. If required, make changes to the DPC and DPL files.
  5. $ make -C config/

The compiled dpc-usxgmii.dtb and dpl-eth.19.dtb images are available at /mc-utils/config/lx2160a/RDB/.

NOTE: The name of the DPC and DPL images may vary depending on the LSDK release version used. 

Flashing MC firmware, DPC, and DPL images to FlexSPI NOR flash

  1. Boot LX2160ARDB from FlexSPI. Ensure that the switches are set to boot the board from FlexSPI.

    SW1[1:8] = 1111 1000

    SW2[1:8] = 0000 0110

    SW3[1:8] = 1111 1100

    SW4[1:8] = 1011 1000

Boot from FlexSPI NOR flash0: => qixis_reset

For example:

For LX2160ARDB, in U-Boot log, you’ll see:

Board: LX2160ACE Rev2.0-RDB, Board version: B, boot from FlexSPI DEV#0

 

The images can be loaded to the LX2160ARB from a TFTP server or from a mass storage device (SD, USB, or SATA).

 

Option 1: Load image from the TFTP server

 

Set up Ethernet connection

When board boots up, U-Boot prints a list of enabled Ethernet interfaces.

DPMAC2@xlaui4, DPMAC3@xgmii, DPMAC4@xgmii, DPMAC5@25g-aui, DPMAC6@25g-aui, DPMAC17@rgmii-id, DPMAC18@rgmii-id 

      1. Set server IP address to the IP address of the host machine on which you have configured the TFTP server. 

        => setenv serverip <ipaddress1>

      2. Set ethact and ethprime as the ethernet interface connected to the TFTP server.

        See LX2160ARDB Ethernet Port Mapping for the mapping of Ethernet port names appearing on the chassis front panel with the port names in U-Boot and Linux.

        => setenv ethprime <name of interface connected to TFTP server>

        For example:

        => setenv ethprime DPMAC3@xgmii

        => setenv ethact <name of interface connected to TFTP server>

        For example:

        => setenv ethact DPMAC3@xgmii

      3. Set IP address of the board. You can set a static IP address or, if the board can connect to a dhcp server, you can use the dhcp command. 

        Static IP address assignment:
        => setenv ipaddr <ipaddress2>
        => setenv netmask <subnet mask>

        Dynamic IP address assignment:
        => dhcp

      4. Save the settings.

           => saveenv

      5. Check the connection between the board and the TFTP server.

        => ping $serverip

        Using DPMAC3@xgmii device

        host 192.168.2.1 is alive

         

Load images from a TFTP server to FlexSPI NOR flash1

NOTE: Ensure that the board boots from FlexSPI NOR flash1 before programming updated MC firmware and DPL and DPC images to FlexSPI NOR flash1. If board fails to boot successfully from FlexSPI NOR flash1, you can program composite firmware image to FlexSPI NOR flash1 by following the steps available in section "LSDK Quick Start Guide or LX2160ARDB" in LSDK User Guide.

      1. Program FlexSPI NOR flash1: sf probe 0:1

      2. Flash MC firmware:
        1. => tftp 0x80000000 mc_10.20.4_lx2160a.itb
        2. => print filesize
        3. => sf erase 0xa00000 +$filesize && sf write 0x80000000 0xa00000 $filesize

          Address 0xa00000 is the location of MC firmware in FlexSPI NOR flash. Refer Flash layout for new boot flow with TF-A for the complete flash memory layout.

      3. Flash DPC image:
        1. => tftp 0x80000000 dpc-usxgmii.dtb
        2. => print filesize 
        3. => sf erase 0xe00000 +$filesize && sf write 0x80000000 0xe00000 $filesize

          Address 0xe00000 is the location of DPC image in FlexSPI NOR flash. Refer Flash layout for new boot flow with TF-A for the complete flash memory layout.

      4. Flash DPL image:
        1. => tftp 0x80000000 dpl-eth.19.dtb
        2. => print filesize 
        3. => sf erase 0xd00000 +$filesize && sf write 0x80000000 0xd00000 $filesize

          Address 0xd00000 is the location of DPL image in FlexSPI NOR flash. Refer Flash layout for new boot flow with TF-A for the complete flash memory layout.

      5. Boot from QSPI NOR flash1: => qixis_reset altbank

In U-Boot log, you’ll see:

Board: LX2160ACE Rev2.0-RDB, Board version: B, boot from FlexSPI DEV#1

 

Ensure that SD card, USB flash drive, or SCSI hard disk installed with LSDK Ubuntu distribution is plugged into the board to boot the board to Ubuntu. If U-Boot does not find LSDK on a mass storage device, it will boot TinyDistro from lsdk_linux_arm64_ tiny.itb stored in FlexSPI NOR flash.

 

Option 2: Load images from partition on mass storage device (SD, USB, or SATA)

    1. Select mass storage device to use.
      => mmc rescan
      => mmc info

      Or

      => usb start
      => usb info

      Or

      => scsi scan

      => scsi info

    2. Optional – List files on the storage device

      => ls mmc <device:partition>

      For example:

      => ls mmc 0:2

      Or

      => ls usb <device:partition>

      For example:

      => ls usb 0:1

      Or

      => ls scsi <device:partition>

      For example:

      => ls scsi 0:2

    3. Program QSPI NOR flash1=> sf probe 0:1
    4. Flash MC firmware:
      1. Load MC firmware image from the storage device

        => load mmc 0:2 80000000 <mc firmware>

        For example:

        => load mmc 0:2 80000000 mc_10.20.4_lx2160a.itb

        => print filesize

        Or

        => load usb 0:2 80000000 <image name>

        => print filesize

        Or

        => load scsi 0:2 80000000 <image name>

        => print filesize

         

      2. Program MC firmware image to FlexSPI NOR flash: => sf erase 0xa00000 +$filesize && sf write 0x80000000 0xa00000 $filesize 

        Address 0xa00000 is the location of MC firmware in FlexSPI NOR flash.  Refer Flash layout for new boot flow with TF-A for the complete flash memory layout.

    5. Flash DPL image:

      1. Load DPL image from the storage device

        => load mmc 0:2 80000000 <dpl image>

        For example:

        => load mmc 0:2 80000000 dpl-eth.19.dtb

        => print filesize

        Or

        => load usb 0:2 80000000 <image name>

        => print filesize

        Or

        => load scsi 0:2 80000000 <image name>

        => print filesize

         

      2. Program DPL image to FlexSPI NOR flash: => sf erase 0xd00000 +$filesize && sf write 0x80000000 0xd00000 $filesize 

        Address 0xd00000 is the location of DPL image in FlexSPI NOR flash.  Refer Flash layout for new boot flow with TF-A for the complete flash memory layout.

       

    6. Flash DPC image:

      1. Load DPC image from the storage device

        => load mmc 0:2 80000000 <dpc image>

        For example:

        => load mmc 0:2 80000000 dpc-usxgmii.dtb

        => print filesize

        Or

        => load usb 0:2 80000000 <image name>

        => print filesize

        Or

        => load scsi 0:2 80000000 <image name>

        => print filesize

         

      2. Program DPC image to FlexSPI NOR flash: => sf erase 0xe00000 +$filesize && sf write 0x80000000 0xe00000 $filesize

        Address 0xe00000 is the location of DPC image in FlexSPI NOR flash.  Refer Flash layout for new boot flow with TF-A for the complete flash memory layout.

    7. Boot from FlexSPI NOR flash1: => qixis_reset altbank

      In U-Boot log, you’ll see:

      Board: LX2160ACE Rev2.0-RDB, Board version: B, boot from FlexSPI DEV#1

       

      Ensure that SD card, USB flash drive, or SCSI hard disk installed with LSDK Ubuntu distribution is plugged into the board to boot the board to Ubuntu. If U-Boot does not find LSDK on a mass storage device, it will boot TinyDistro from lsdk_linux_arm64_ tiny.itb stored in FlexSPI NOR flash.

       

Version history
Revision #:
5 of 5
Last update:
‎10-21-2020 11:47 PM
Updated by:
 
Contributors