This how-to topic is applicable only for LSDK 18.09 and older releases.
For LSDK 18.12 and newer releases, refer LS1088ARDB-PB - How to deploy TF-A binaries in QSPI NOR flash.
Follow these steps to update the PBL/RCW binary in QSPI NOR flash.
qixis_reset boots the board from QSPI NOR flash0 and qixis_reset altbank boots the board from 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.
If user already has a PBL binary, this step can be skipped.
Clone the rcw repository and compile the PBL binary.
The default PBL binary for QSPI NOR flash on LS1088ARDB/LS1088ARDB-PB, rcw_1600_qspi.bin, is available at rcw/ls1088ardb/FCQQQQQQQQ_PPP_H_0x1d_0x0d/.
See the rcw/ls1088ardb/README file for an explanation of the naming convention for the directories that contain the RCW source and binary files.
Flashing PBL binary to QSPI NOR flash
For example:
For LS1088ARDB, in boot log, you’ll see:
Board: LS1088A-RDB, Board Arch: V1, Board version: C, boot from QSPI:0
For LS1088ARDB-PB, in boot log, you'll see:
Board: LS1088ARDB-PB, Board Arch: V1, Board version: A, boot from QSPI:0
PBL binary can be loaded to LS1088ARDB/LS1088ARDB-PB from a TFTP server or from a mass storage device (SD, USB, or SATA).
When board boots up, U-Boot prints a list of enabled Ethernet interfaces.
DPMAC1@xgmii, DPMAC2@xgmii, DPMAC3@qsgmii, DPMAC4@qsgmii, DPMAC5@qsgmii, DPMAC6@qsgmii, DPMAC7@qsgmii, DPMAC8@qsgmii, DPMAC9@qsgmii, DPMAC10@qsgmii
=> setenv serverip <ipaddress1>
Set ethact and ethprime as the Ethernet interface connected to the TFTP server.
See LS1088ARDB/LS1088RDB-PB 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@qsgmii
=> setenv ethact <name of interface connected to TFTP server>
For example:
=> setenv ethact DPMAC3@qsgmii
Static IP address assignment:
=> setenv ipaddr <ipaddress2>
=> setenv netmask <subnet mask>
Dynamic IP address assignment:
=> dhcp
=> ping $serverip
Using DPMAC3@qsgmii device
host 192.168.1.1 is alive
filesize=b4
Address 0x0 is the location of PBL in QSPI NOR flash. For the complete flash memory layout for the PPA boot flow, refer Flash layout for old boot flow with PPA.
For LS1088ARDB, in boot log, you’ll see:
Board: LS1088A-RDB, Board Arch: V1, Board version: C, boot from QSPI:1
For LS1088ARDB-PB, in boot log, you'll see:
Board: LS1088ARDB-PB, Board Arch: V1, Board version: A, boot from QSPI: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 QSPI NOR flash.
=> mmc rescan
=> mmc info
Or
=> usb start => usb info
Or
=> scsi scan
=> scsi info
=> 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
=> load mmc 0:2 a0000000 <image name>
=> print filesize
For example:
=> load mmc 0:2 a0000000 rcw_1600_qspi.bin
=> print filesize
filesize=b4
Or
=> load usb 0:2 a0000000 <image name>
=> print filesize
Or
=> load scsi 0:2 a0000000 <image name>
=> print filesize
Program image to QSPI NOR flash: => sf erase 0x0 +$filesize && sf write 0xa0000000 0x0 $filesize
Address 0x0 is the location of PBL binary in QSPI NOR flash. Refer Flash layout for old boot flow with PPA for the complete flash memory layout for the PPA boot flow.
For LS1088ARDB, in boot log, you’ll see:
Board: LS1088A-RDB, Board Arch: V1, Board version: C, boot from QSPI:1
For LS1088ARDB-PB, in boot log, you'll see:
Board: LS1088ARDB-PB, Board Arch: V1, Board version: A, boot from QSPI: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 QSPI NOR flash.