ls1043 rcw issue when fetched from QSPI

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

ls1043 rcw issue when fetched from QSPI

2,200 Views
benoitsansoni
Contributor II

Hi,

I have a board based on ls1043 that must boot from QSPI.

I also have a ls1046ardb evluation board. (booting from QSPI)

I build a u-boot image for QSPI flash boot. (linked at 0x40100000).

I programmed the u-boot in the QSPI flash and the RCW.

The board did not boot at all.

I programmed the RCW with PBI_SRC=4 (the same that is present in the QSPI flash) in the SDCARD.

I selected on the board to fetch the RCW from the SDCARD by a dip switch.

And the board booted correctly the u-boot.

We verified the QSPI signals data output from the QSPI flash device, and compared them with the ls1046ardb.

The preambule 0xaa55aa55aa is placed correctly in the frame and identically to the ls1046ardb.

So I correctly programmed the RCW with the correct endianess to the QSPI flash.

We saw on the oscilloscope that we have 10 frames of 64 bits that are periodically run without running any code.

The ASLEEP led is on also. Probably indicating that the processor reset is not released.

What can be wrong ?

These are the RCW used:

Reset Configuration Word (RCW):
00000000: 08100010 0a000000 00000000 00000000
00000010: 14550002 80004012 40025000 c1002000
00000020: 00000000 00000000 00000000 00038800
00000030: 20004000 00001101 00000096 00000001

RCW in SDCARD:

=> md 0x82000000
82000000: 55aa55aa 0001ee01 10001008 0000000a .U.U............
82000010: 00000000 00000000 02005514 12400080 .........U....@.
82000020: 00500240 002000c1 00000000 00000000 @.P... .........
82000030: 00000000 00880300 00400020 01110000 ........ .@.....
82000040: 96000000 01000000 5c015709 00001040 .........W.\@...
82000050: 00065709 00000000 04065709 00001040 .W.......W..@...
82000060: 78015709 10e00000 00001809 08000000 .W.x............
82000070: 18045709 9e000000 1c045709 9e000000 .W.......W......
82000080: 20045709 9e000000 c000ee09 00440000 .W. ..........D.
82000090: 58015709 00220000 40800089 01000000 .W.X.."....@....
820000a0: 00005509 0c400f00 40006108 ce0520da .U....@..a.@. ..
820000b0: 00000000 00000000 00000000 00000000 ................
820000c0: 00000000 00000000 00000000 00000000 ................
820000d0: 00000000 00000000 00000000 00000000 ................
820000e0: 00000000 00000000 00000000 00000000 ................
820000f0: 00000000 00000000 00000000 00000000 ................

RCW in QSPI

=> md 0x40000000
40000000: 01ee0100 aa55aa55 0a000000 08100010 ....U.U.........
40000010: 00000000 00000000 80004012 14550002 .........@....U.
40000020: c1002000 40025000 00000000 00000000 . ...P.@........
40000030: 00038800 00000000 00001101 20004000 .............@.
40000040: 00000001 00000096 40100000 0957015c ...........@\.W.
40000050: 00000000 09570600 40100000 09570604 ......W....@..W.
40000060: 0000e010 09570178 00000008 09180000 ....x.W.........
40000070: 0000009e 09570418 0000009e 0957041c ......W.......W.
40000080: 0000009e 09570420 00004400 09ee00c0 .... .W..D......
40000090: 00002200 09570158 00000001 89008040 ."..X.W.....@...
400000a0: 000f400c 09550000 da2005ce 08610040 .@....U... .@.a.
400000b0: ffffffff ffffffff ffffffff ffffffff ................
400000c0: ffffffff ffffffff ffffffff ffffffff ................
400000d0: ffffffff ffffffff ffffffff ffffffff ................
400000e0: ffffffff ffffffff ffffffff ffffffff ................
400000f0: ffffffff ffffffff ffffffff ffffffff ................

Labels (1)
5 Replies

1,432 Views
benoitsansoni
Contributor II

I found where my problem is.

I used my own swap byte routine.

And in QSPI the latest 64bit (including Jump and checksum) must not be swap to preserve the LE 64bit write.

I used the byte_swap.tcl instead and now it works fine.

After looking deeply the scope trace of the SPI bus I saw that the RCW was fetched correctly at 400Khz and the PBI instruction fetched at 50MHz and stop after the latest one.

It was provking a busy reset looping.

It is solved from my side.

It is not explicitly documented from my point of view.

But after reading code and documentation I found the tricky modification to do in my RCW file.

Thanks

1,432 Views
andreyromanov
Contributor II

It's very usefull info. Could you share QSPI bin file here?

0 Kudos

1,432 Views
benoitsansoni
Contributor II

The dump I provided is under u-boot with the endianess Little Endian 64 bits.

As I said we checked the data with an oscilloscope and it is similar with the ls1046ardb by identifying the SYS_ADDR (=0x01ee0100)+ Preambule of the RCW (=0xaa55aa55).

It could not be compared with the dump of the file.

0 Kudos

1,432 Views
ufedor
NXP Employee
NXP Employee

Please provide binary image of the RCW in question for inspection.

0 Kudos

1,432 Views
ufedor
NXP Employee
NXP Employee

It looks like the QSPI RCW is not swapped properly.

Please refer to the attached LS1046ARDB RCW from the SDK v2.0-1703 which dump is:

00000000 00 01 EE 01 55 AA 55 AA 00 00 00 0E 10 00 15 0C ..о.UЄUЄ..... .

00000010 00 00 00 00 00 00 00 00 12 50 00 40 59 55 33 11 ........ P.@YU3

00000020 00 00 00 C1 00 50 02 40 00 00 00 00 00 00 00 00 ...Б.P[1]@........

00000030 00 88 23 00 00 00 00 00 01 31 00 00 00 40 12 20 .€#......1...@

00000040 01 00 00 00 96 00 00 00 00 00 10 40 5C 01 57 09 ....–.....@\.W.

00000050 00 00 00 00 00 06 57 09 00 00 10 40 04 06 57 09 ..... W...@  W.

00000060 10 E0 00 00 78 01 57 09 08 00 00 00 00 00 18 09 а..x.W........

00000070 9E 00 00 00 18 04 57 09 9E 00 00 00 1C 04 57 09 ћ... W.ћ.... W.

00000080 9E 00 00 00 20 04 57 09 20 4E 10 80 00 13 EB 09 ћ... W. NЂ. л.

00000090 80 28 50 00 DC 08 EB 09 0C 40 0F 00 00 00 55 09 Ђ(P.Ь.л..@...U.

000000A0 08 61 00 40 A3 EB 7D 95                         .a.@Јл}•

0 Kudos