Hello,
I had the job of a custom LS1012A Board to put it into operation.
As a reference, I have a FRDM-LS1012A. As a JTAG interface I use an OLIMEX ARM-USB-OCD-H in conjunction with OpenOCD.
When two boards, the JTAG connection directly with the LS1012A.
The QSPI on the FRDM-LS1012A can I describe. The other board i do not come to the MEM-AP.
To the Test:
write CSYSPWRUPREQ | CDBGPRWUPREQ -> DPACC [ CTRL/STAT ]
read CDBGPWRUPACK | CSYSPWRUPREQ | CSYSPWRUPACK | CDBGPRWUPREQ <- DPACC [ CTRL/STAT ]
write 0 -> DPACC [ SELECT.APSEL ]
read APACC [ CSW ]
OpenOCD:
> irscan ls1012a.dap 0xe
> drscan ls1012a.dap 32 0x0
5BA00477
> irscan ls1012a.dap 0xa
> drscan ls1012a.dap 3 0x02 32 0x50000000
02 00000000
> irscan ls1012a.dap 0xa
> drscan ls1012a.dap 3 0x03 32 0x0
02 F0000000
> irscan ls1012a.dap 0xa
> drscan ls1012a.dap 3 0x04 32 0x0
02 F0000000
> irscan ls1012a.dap 0xb
> drscan ls1012a.dap 3 0x01 32 0x0
02 00000000
> irscan ls1012a.dap 0xb
> drscan ls1012a.dap 3 0x01 32 0x0
01 00000000
> irscan ls1012a.dap 0xa
> drscan ls1012a.dap 3 0x03 32 0x0
01 00000000
The customer-specific board is made at this point to ACK WAIT. Then communication is not possible any more. Each access such as a reading of the CTRL/STAT register receives as response WAIT. The setting of the ABORT register changes nothing.
Since I no longer come at this point, I am grateful for every note.
Best regards,
Mario
Hi,
thanks for the reply.
We were able to find the error in the meantime. On the board is a different PHY than in the reference board installed. This attracts MDIO_MDC to GND, which according to the data sheet cannot be. Now I can write to the qspi.
Best regards,
Mario
As far as I know, the only ways to put a new LS1012a board into operation are:
1.- to use the Codewarrior TAP
2.- to write the SPI flash with RCW and u-boot, externally or prior to solder.
If you manage to do it with Olimex OCD it would be very interesting.
When the LS1012a processor starts, it needs a special RCW configuration data in SPI. If SPI flash is blank, to use JTAG to program it, you need to pulldown CLK_OUT pin with a 4k7 resistor (as seen in FRDM board), to use hard coded RCW data instead of getting it from flash.
Hope it helps.