AnsweredAssumed Answered

LS1021A Rev2.0: Booting from SPI with LPUART

Question asked by Tyler Thomas on Nov 10, 2015
Latest reply on Feb 11, 2016 by Tyler Thomas

We have built a custom board using Rev 2.0 of the LS1021A in which the UART pins are not accessible.

 

Our goal is to boot from SPI flash and interact with U-Boot through LPUART.

 

Since the Linux SDK for LS1021A v0.4 does not support building a PBL for SPI flash, we have built our own. Our PBL is based on the one shipped in IFC NOR Bank 0 of the TWR board but modified with our custom RCW and a "Boot Location Pointer" of 40001000 (offset 0x1000 of SPI flash).

 

Our PBL is as follows:

AA55AA55 01EE0100

08080010 00000000 00000000 10000000

10000000 08007922 60025A00 81046000

00000000 00000000 00000000 2003E800

00004504 24BB3140 00000000 00000000

09570200 FFFFFFFF

09570158 00000300

09570200 00000000

8940007C 21F47300

09EE0200 40001000

08610040 CD4F4428

 

After applying a 64-bit byte swap to the PBL before programming (as suggested in this post), the LS1 is able to successfully read in the PBL, verify the CRC, jump to the boot entry location, and read about 3KB of the U-Boot built from the Linux SDK for LS1021A v0.4 with no modifications (other than setting UBOOT_CONFIG ??= "qspi" in meta-fsl-arm/conf/machine/ls1021atwr.conf).

 

At this point in the boot process, reading from SPI flash has ceased, nothing has come out of LPUART, and LPUART is unresponsive.

 

We are unsure whether this means that something went wrong or that U-Boot is waiting for input over UART.

 

If you have any advice or insight into the build process or SPI booting with LPUART enabled, we would greatly appreciate it.

 

Thank you in advance!

Outcomes