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: 
Highlighted
Explorer
Explorer
705 Views
Registered: ‎01-15-2008

Flash programming of Zynq system, no DDR

Jump to solution

I have a custom Zynq system with no external DRAM.  I built a version of this 3 years ago, and did the firmware in Vivado/SDK 2016.4.  Recently I built an updated version, same Zynq and SPI flash.  I got the system working and then wanted to program the SPI flash.  I assembled the necessary .mcs file (I modified the FSBL and included my entire application, which operates out of OCM) in SDK 2018.3.

I was unable to program the flash in 2018.3; message was “problem with UBOOT”.  (I jumpered the system for JTAG boot while trying to program flash).  After much screwing around, I found that the flash programmed successfully when using SDK2016.4 (and using the same mcs file assembled in 2018.3)

I believe this has something to do with the requirement to reference the FSBL when doing the flash programming  (2016.4 doesn’t ask for this; 2018.3 requires it).  I also tried referencing the plain vanilla FSBL (without my app) when using 2018.3, no help. I gather (from Forum posts) that the FSBL is needed to run prior to doing the flash programming so that the ps_init() function will be called (to initialize clocks, etc).  And further that the change to require the FSBL was made to provide compatibility with Zynq US+ chips.

I can continue to use the old version of SDK, but I’d like to know if there’s a way to get the newer SDK to successfully program the flash.  Any ideas?

THanks

0 Kudos
1 Solution

Accepted Solutions
Xilinx Employee
Xilinx Employee
645 Views
Registered: ‎10-11-2011

Re: Flash programming of Zynq system, no DDR

Jump to solution

I am assuming the FSBL you use for the Flash Programming doesn't touch DDR  in any way (built on a DDR-less Vivado design).

If so your flow should work.

We did have an issue on 2017.4. See https://www.xilinx.com/support/answers/70310.html

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

View solution in original post

0 Kudos
11 Replies
Xilinx Employee
Xilinx Employee
646 Views
Registered: ‎10-11-2011

Re: Flash programming of Zynq system, no DDR

Jump to solution

I am assuming the FSBL you use for the Flash Programming doesn't touch DDR  in any way (built on a DDR-less Vivado design).

If so your flow should work.

We did have an issue on 2017.4. See https://www.xilinx.com/support/answers/70310.html

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------

View solution in original post

0 Kudos
Explorer
Explorer
631 Views
Registered: ‎01-15-2008

Re: Flash programming of Zynq system, no DDR

Jump to solution

OK, thanks, I will take a closer look at it.

0 Kudos
557 Views
Registered: ‎09-16-2019

Re: Flash programming of Zynq system, no DDR

Jump to solution

I had this same problem. In the FSBL generated by the SDK, in "main.c", I commented out lines 296-311 and was able to program the flash after that. However, I'm still unable to have the FPGA boot from the flash. I was able to get it work one time, but was never able to do it again. I'm guessing it has to have something to do with where the bootloader in getting placed in the flash or some memory location issue like that. Still trying to figure it out. 

0 Kudos
Explorer
Explorer
534 Views
Registered: ‎01-15-2008

Re: Flash programming of Zynq system, no DDR

Jump to solution

Hi David,

I combined my application with the FSBL and got it to boot successfully.  Now that I know the programming should work in 2018.3, I'll mark this thread as resolved and figure out what I did wrong.

Here's my FSBL+app so you can look at it, David.

 

Rick

0 Kudos
529 Views
Registered: ‎09-16-2019

Re: Flash programming of Zynq system, no DDR

Jump to solution

So does your system boot from the flash with no DDR now? That's what I'm trying to do and I haven't figured out why it's not booting after I've programmed the external flash chip. Was there something specific you did somewhere in your files? 

0 Kudos
Explorer
Explorer
525 Views
Registered: ‎01-15-2008

Re: Flash programming of Zynq system, no DDR

Jump to solution

Yes, it does boot from 32MB QSPI flash.  It's a complicated issue, here's a post I wrote 2+ years ago explaining

https://forums.xilinx.com/t5/Processor-System-Design/FSBL-without-DDR/m-p/760870#M25633

0 Kudos
519 Views
Registered: ‎09-16-2019

Re: Flash programming of Zynq system, no DDR

Jump to solution

In your post I see you say that everything must be smaller than 192kb for your setup to work? 

0 Kudos
Explorer
Explorer
513 Views
Registered: ‎01-15-2008

Re: Flash programming of Zynq system, no DDR

Jump to solution

In fact I think that should be 256k, because the total OCM is 256k

0 Kudos
511 Views
Registered: ‎09-16-2019

Re: Flash programming of Zynq system, no DDR

Jump to solution

Hmm, I'm not sure I can fit my application into that size. I know there's supposed to be an execute in place option from the flash but the documentation is pretty confusing. Anway, thanks for the info. 

0 Kudos
Explorer
Explorer
504 Views
Registered: ‎01-15-2008

Re: Flash programming of Zynq system, no DDR

Jump to solution

Ah, yeah, I looked at XIP but was scared off.  Good luck.

0 Kudos
Explorer
Explorer
72 Views
Registered: ‎10-12-2018

Re: Flash programming of Zynq system, no DDR

Jump to solution

I've developed a simple flash-util project zynq_flash . This can read/write/erase the flash without DDR-RAM regard-less the boot-mode switch.

(Note that this does not solve the bootimage's FSBL DDR dependency. This can be solved based on this thread. )

 

0 Kudos