LS1043ARDB - How to update DPAA1 FMan microcode (ucode) image in NOR flash

Document created by Swati Gupta Employee on Jul 16, 2019Last modified by Swati Gupta Employee on Oct 3, 2019
Version 6Show Document
  • View in full screen mode

Follow these steps to update the DPAA1 FMan ucode image in NOR flash. 

cpld reset boots the board from NOR bank 0 and cpld reset altbank boots the board from the NOR bank  4.

 0x64000000 is the location of RCW in the alternate NOR bank, that is NOR bank 4.  0x60000000 is the location of RCW in the NOR bank 0.

 

Obtaining DPAA1 FMan ucode image

Clone the qoriq-fm-ucode repository.

  1. git clone https://github.com/NXP/qoriq-fm-ucode.git
  2. $ cd qoriq-fm-ucode
  3. $ git checkout LSDK-<LSDK version>For example, $ git checkout LSDK-19.06

The prebuilt FMan ucode images, fsl_fman_ucode_ls1043_r1.1_<microcode version>.bin, are at qoriq-fm-ucode/. In the binary file, ls1043_r1.1 refers to the LS1043A silicon revision 1.1. See qoriq-fm-ucode/readme for a description of the ucode version numbers.

 

Programming FMan ucode image to NOR flash

FMan ucode image can be loaded to LS1043ARDB from a TFTP server or from a mass storage device (SD, USB, or SATA).

Option 1: Load image from the TFTP server

  1. Boot LS1043ARDB from NOR flash. Ensure that the switches are set to boot the board from NOR bank 0. For booting from NOR bank 0, switch settings are as follows:
    • SW3[1:8] = 10110011
    • SW4[1:8] = 00010010
    • SW5[1:8] = 10100010
  2. Boot from NOR bank 0: => cpld reset

    For LS1043ARDB, in boot log, you'll see:

    Board: LS1043ARDB, boot from vBank 0

Set up Ethernet connection

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

FM1@DTSEC1, FM1@DTSEC2, FM1@DTSEC3 [PRIME], FM1@DTSEC4, FM1@DTSEC5

  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 LS1043ARDB Ethernet and FMC 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 FM1@DTSEC4

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

    For example:

    => setenv ethact FM1@DTSEC4

  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 <ipaddress>
    => 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 FM1@DTSEC4 device

host 192.168.1.1 is alive

 

Load FMan ucode image from the TFTP server

  1. Load FMan ucode image in DDR memory:
    1. => tftp a0000000 <path to FMan ucode>/fsl_fman_ucode_ls1043_r1.1_<ucode version>.bin
  2. Program the FMan ucode image to NOR bank 4: => erase 64900000 +$filesize && cp.b a0000000 64900000 $filesize

    Address  0x64900000 is the location of the FMan ucode image in NOR bank 4.  Refer Flash layout for new boot flow with TF-A for the complete flash memory layout.

  3. Boot from NOR bank 4 and press Enter to stop the autoboot: => cpld reset altbank

    In boot log, you’ll see:

    Board: LS1043ARDB, boot from vBank 4

    You can check the following code line in the boot log to confirm that the DPAA1 FMan ucode image in NOR bank 4 is updated.

    Fman1: Uploading microcode version 106.4.18

  4. Ensure that SD card, USB flash drive, or SCSI hard disk installed with NXP LSDK userland is plugged into the board to boot the board to the LSDK userland. 

    => cpld reset altbank

    NXP LSDK 1906 main
    localhost login: root

    [ OK ] Stopped Serial Getty on ttyS0.
    [ OK ] Started Serial Getty on ttyS0.

    NXP LSDK 1906 main
    localhost login: root
    Password:
    Last login: Fri Feb 22 04:29:12 UTC 2019 on ttyS0
    Welcome to NXP LSDK 1906 main (GNU/Linux 4.19.46 aarch64)

    * Support: https://www.nxp.com/lsdk
    * Documentation: https://lsdk.github.io/document
    * Licensing: https://lsdk.github.io/eula
    root@localhost:~#

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

  1. Boot LS1043ARDB from NOR flash. Ensure that the switches are set to boot the board from NOR bank 0. For booting from NOR bank 0, switch settings are as follows:
    • SW3[1:8] = 10110011
    • SW4[1:8] = 00010010
    • SW5[1:8] = 10100010
  2. Boot from NOR bank 0: => cpld reset

     

    For LS1043ARDB, in boot log, you'll see:

    Board: LS1043ARDB, boot from vBank 0

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

    Or

    => usb start
    => usb info

    Or

    => scsi scan

    => scsi info

  4. Optional – List files on storage device

    => ls mmc <device:partition>

    For example:

    => ls mmc 0:3
    System Volume Information/
    32604 fsl_fman_ucode_ls1043_r1.1_106_4_18.bin

    1 file(s), 1 dir(s)

    Or

    => ls usb <device:partition>

    For example:

    => ls usb 0:1

    Or

    => ls scsi <device:partition>

    For example:

    => ls scsi 0:2

    If the ls command fails to run, check that U-Boot in NOR bank 0 supports the command by typing ls at the U-Boot prompt:

    => ls
    ls - lists files in a directory (default)

     

    Usage:
    ls <interface> [<dev[:part]> [directory]]

    - Lists files in directory [directory] of partition [part] on device type [interface] and instance [dev].

     

    If U-Boot does not support this command, then update the composite firmware image in NOR bank 0.

     

    For steps to update composite firmware image in NOR flash, see Layerscape Software Development Kit User Guide.

  5. Load FMan ucode image from the storage device.

    => load mmc <device:partition> 80000000 <image name>

    => print filesize

    For example:

    => load mmc 0:3 80000000 fsl_fman_ucode_ls1043_r1.1_106_4_18.bin
    32604 bytes read in 18 ms (1.8 MiB/s)
    => print filesize
    filesize=7f5c

    Or

    => load usb <device:partition> 80000000 <image name>

    => print filesize

    Or

    => load scsi <device:partition> 80000000 <image name>

    => print filesize

  6. Program the FMan ucode image to NOR bank 4: => erase 64900000 +$filesize && cp.b 80000000 64900000 $filesize

    Address  0x64900000 is the location of the FMan ucode image in NOR bank 4.  Refer Flash layout for new boot flow with TF-A for the complete flash memory layout.

  7. Boot from NOR bank 4 and press Enter to stop the autoboot: => cpld reset altbank

    In boot log, you’ll see:

    Board: LS1043ARDB, boot from vBank 4

    You can check the following code line in the boot log to confirm that the DPAA1 FMan ucode image in NOR bank 4 is updated.

    Fman1: Uploading microcode version 106.4.18

  8. Ensure that SD card, USB flash drive, or SCSI hard disk installed with NXP LSDK userland is plugged into the board to boot the board to the LSDK userland

    => cpld reset altbank

    NXP LSDK 1906 main
    localhost login: root

    [ OK ] Stopped Serial Getty on ttyS0.
    [ OK ] Started Serial Getty on ttyS0.

    NXP LSDK 1906 main
    localhost login: root
    Password:
    Last login: Fri Feb 22 04:29:12 UTC 2019 on ttyS0
    Welcome to NXP LSDK 1906 main (GNU/Linux 4.19.46 aarch64)

    * Support: https://www.nxp.com/lsdk
    * Documentation: https://lsdk.github.io/document
    * Licensing: https://lsdk.github.io/eula
    root@localhost:~#

     

Attachments

    Outcomes