Follow these steps to update the DPAA1 FMan ucode image in QSPI NOR flash.
cpld reset boots the board from QSPI NOR flash0 and cpld reset altbank boots the board from the QSPI NOR flash1.
sf probe 0:1 means that the alternate bank will be written to. So, if the board boots from QSPI NOR flash0 and sf probe 0:1 is entered at the U-Boot prompt, the commands that follow will program QSPI NOR flash1.
Clone the qoriq-fm-ucode repository.
The prebuilt FMan ucode images, fsl_fman_ucode_ls1046_r1.0_<microcode version>.bin, are at qoriq-fm-ucode/. In the binary file, ls1046_r1.0 refers to the LS1046A silicon revision 1.0. See qoriq-fm-ucode/readme for a description of the ucode version numbers.
FMan ucode image can be loaded to LS1046ARDB from a TFTP server or from a mass storage device (SD, USB, or SATA).
In boot log, you’ll see:
Board: LS1046ARDB, boot from QSPI vBank 0
When board boots up, U-Boot prints a list of enabled Ethernet interfaces.
FM1@DTSEC3 [PRIME], FM1@DTSEC4, FM1@DTSEC5, FM1@DTSEC6, FM1@TGEC1, FM1@TGEC2
=> setenv serverip <ipaddress1>
Set ethact and ethprime as the Ethernet interface connected to the TFTP server.
See LS1046ARDB 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 FM1@DTSEC4
=> setenv ethact <name of interface connected to TFTP server>
For example:
=> setenv ethact FM1@DTSEC4
Static IP address assignment:
=> setenv ipaddr <ipaddress2>
=> setenv netmask <subnet mask>
Dynamic IP address assignment:
=> dhcp
=> saveenv
=> ping $serverip
Using FM1@DTSEC4 device
host 192.168.1.1 is alive
filesize=7f5c
Address 0x900000 is the location of the FMan ucode image in QSPI NOR flash. Refer Flash layout for new boot flow with TF-A for the complete flash memory layout.
In boot log, you’ll see:
Board: LS1046ARDB, boot from QSPI vBank 4
You can check the following code line in the boot log to confirm that the DPAA1 FMan ucode image in QSPI NOR flash is updated.
Fman1: Uploading microcode version 106.4.18
=> cpld reset altbank
Ubuntu 18.04.1 LTS localhost ttyS0
localhost login: root
Password:
Last login: Sun Jan 28 16:05:12 UTC 2018 on ttyS0
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.9.105 aarch64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
If U-Boot does not find LSDK on a mass storage device, it will boot TinyDistro from lsdk_linux_arm64_ tiny.itb stored in QSPI NOR flash.
In boot log, you’ll see:
Board: LS1046ARDB, boot from QSPI vBank 0
=> mmc rescan
=> mmc info
Or
=> usb start => usb info
Or
=> scsi scan
=> scsi info
=> ls mmc <device:partition>
For example:
=> ls mmc 0:3
System Volume Information/
32604 fsl_fman_ucode_ls1046_r1.0_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 QSPI NOR flash0 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 QSPI NOR flash0.
For steps to update composite firmware image in QSPI NOR flash, see LS1046ARDB - How to update composite firmware image in QSPI NOR flash.
=> load mmc <device:partition> 80000000 <image name>
=> print filesize
For example:
=> load mmc 0:3 80000000 fsl_fman_ucode_ls1046_r1.0_106_4_18.bin
32604 bytes read in 18 ms (1.7 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
Address 0x900000 is the location of the FMan ucode image in QSPI NOR flash. Refer Flash layout for new boot flow with TF-A for the complete flash memory layout.
In boot log, you’ll see:
Board: LS1046ARDB, boot from QSPI vBank 4
You can check the following code line in the boot log to confirm that the DPAA1 FMan ucode image in QSPI NOR flash is updated.
Fman1: Uploading microcode version 106.4.18
=> cpld reset altbank
Ubuntu 18.04.1 LTS localhost ttyS0
localhost login: root
Password:
Last login: Sun Jan 28 16:05:12 UTC 2018 on ttyS0
Welcome to Ubuntu 18.04.1 LTS (GNU/Linux 4.9.105 aarch64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
If U-Boot does not find LSDK on a mass storage device, it will boot TinyDistro from lsdk_linux_arm64_ tiny.itb stored in QSPI NOR flash.