UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor jerrynoob
Visitor
159 Views
Registered: ‎07-31-2019

Set QSPI into IO mode and then program stopped

I've encountered a problem with Zynq7010.

My firmware consists of FSBL, PL.bit and PS.elf. Due to restricted space on my board, there is no ddr for 7010, so I can only set FSBL XIP, and then copy PS.elf into OCM.

Now I need to write something into QSPI, so I have to set QSPI into IO mode in PS.elf. And then the problem came out: after I set QSPI to IO mode, using the code below

XQspiPs_SetOptions(QspiInstancePtr, XQSPIPS_FORCE_SSELECT_OPTION |
XQSPIPS_HOLD_B_DRIVE_OPTION |  XQSPIPS_MANUAL_START_OPTION);
 
the PS.elf just stopped. I don't know why.
 
By the way, if PS.elf is in debug mode(using JTAG), the program will not stop....
 
Need help..............
0 Kudos
1 Reply
Visitor jerrynoob
Visitor
151 Views
Registered: ‎07-31-2019

Re: Set QSPI into IO mode and then program stopped

Additions:

1. After FSBL, at the beginning of PS.elf, the ControlReg and LinearControlReg of QSPI are: 0x800A38D1, 0x800016B. 

2. I made a simple program to test QSPI read and write, also FSBL XIP and UserApp copied to OCM, it acted well.

3. the PS.elf in the main topic is much more complicated(the size of the elf is about 150KB or more) then the test program just mentioned. 

4. If I set ControlReg and LinearControlReg of QSPI to: 0x800AC0D1, 0x000016B, PS.elf just go "dead". 

0 Kudos