cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
826 Views
Registered: ‎12-10-2018

Zynq Program Flash Memory (Xilinx SDK)... uboot Failure

Jump to solution

Hi, 

Using a Custom Zynq7010 board, I'm unable to program QSPI Flash using Xilinx SDKs "Program Flash Tool". With the following errors:

"

****** Xilinx Program Flash
****** Program Flash v2018.2 (64-bit)
**** SW Build 2258646 on Thu Jun 14 20:03:12 MDT 2018
** Copyright 1986-2018 Xilinx, Inc. All Rights Reserved.


Connected to hw_server @ TCP:127.0.0.1:3121
Available targets and devices:
Target 0 : jsn-JTAG-HS3-210299A17FAA
Device 0: jsn-JTAG-HS3-210299A17FAA-4ba00477-0

Retrieving Flash info...

Initialization done, programming the memory
===== mrd->addr=0xF800025C, data=0x00000000 =====
BOOT_MODE REG = 0x00000000
Downloading FSBL...
Running FSBL...
Finished running FSBL.
===== mrd->addr=0xF8000110, data=0x000FA220 =====
READ: ARM_PLL_CFG (0xF8000110) = 0x000FA220
===== mrd->addr=0xF8000100, data=0x00028008 =====
READ: ARM_PLL_CTRL (0xF8000100) = 0x00028008
===== mrd->addr=0xF8000120, data=0x1F000200 =====
READ: ARM_CLK_CTRL (0xF8000120) = 0x1F000200
===== mrd->addr=0xF8000118, data=0x001452C0 =====
READ: IO_PLL_CFG (0xF8000118) = 0x001452C0
===== mrd->addr=0xF8000108, data=0x0001E008 =====
READ: IO_PLL_CTRL (0xF8000108) = 0x0001E008
Info: Remapping 256KB of on-chip-memory RAM memory to 0xFFFC0000.
===== mrd->addr=0xF8000008, data=0x00000000 =====
===== mwr->addr=0xF8000008, data=0x0000DF0D =====
MASKWRITE: addr=0xF8000008, mask=0x0000FFFF, newData=0x0000DF0D
===== mwr->addr=0xF8000910, data=0x000001FF =====
===== mrd->addr=0xF8000004, data=0x00000000 =====
===== mwr->addr=0xF8000004, data=0x0000767B =====
MASKWRITE: addr=0xF8000004, mask=0x0000FFFF, newData=0x0000767B
Problem in running uboot
Flash programming initialization failed.

ERROR: Flash Operation Failed

"

HOWEVER! We have two versions of the target board, one with a Single DDR fitted (16-bit width), one with Dual DDR (32-bit width)... otherwise identical.... I tried programming flash in the same way with the Dual DDR verison, and it completed succesfully (identical boards, identical boot images). The BSP & hdf are only targetting a single DDR, and I've had no issues programming over JTAG. Is uboot configured to operate with dual DDR? If so, how do I modify this configuration so that the SDK tool can be used?

Many Thanks,

Tom

Tags (5)
0 Kudos
1 Solution

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

Re: Zynq Program Flash Memory (Xilinx SDK)... uboot Failure

Jump to solution

For Flash Programming, the user must provide a fsbl.elf (outside the BOOT.bin).

If that FSBL fails (example hangs in DDR Init) the your u-boot under the hood won't work (Problem in running uboot).

In the FSBL you pass to the Priogrammer, enable all the UART log and see if it fails.

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

View solution in original post

6 Replies
Highlighted
Xilinx Employee
Xilinx Employee
777 Views
Registered: ‎10-11-2011

Re: Zynq Program Flash Memory (Xilinx SDK)... uboot Failure

Jump to solution

For Flash Programming, the user must provide a fsbl.elf (outside the BOOT.bin).

If that FSBL fails (example hangs in DDR Init) the your u-boot under the hood won't work (Problem in running uboot).

In the FSBL you pass to the Priogrammer, enable all the UART log and see if it fails.

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

View solution in original post

Highlighted
Observer
Observer
559 Views
Registered: ‎05-30-2014

Re: Zynq Program Flash Memory (Xilinx SDK)... uboot Failure

Jump to solution

Hi Tom,

I just run into exactly the same error message.

I don't understand what denist wanted to tell you, so do you found a solution to your problem and can you remember what it was?

 

Thanks!

 

Marc

P.S. I have also two 16 bit DDR chips connected outside and a baremetal software (downloaded via SDK) is running out of it without any problems.

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
533 Views
Registered: ‎10-11-2011

Re: Zynq Program Flash Memory (Xilinx SDK)... uboot Failure

Jump to solution

If the error is "Problem in running uboot", I suspect the FSBL specified to the flash programmer is NOT executing properly.

Best way to debug this is to enable all the FSBL prints log and check the UART print out during flash programmer.

Does the FSBL handoff properly or the prints are incomplete?

Please report the UART log in this post so I can take a look.

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Highlighted
Observer
Observer
503 Views
Registered: ‎05-30-2014

Re: Zynq Program Flash Memory (Xilinx SDK)... uboot Failure

Jump to solution

Hello denist,

I found the problem. With older Vivado versions it was possible to program the QSPI even if the BOOT_MODE pins were not in JTAG mode.

Now it seems that they MUST be in JTAG mode to program the QSPI.

This is a pity because it means soldering/chaning the pull-resistors during production/programming of the QSPI, what is not really practicable.

 

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
471 Views
Registered: ‎10-11-2011

Re: Zynq Program Flash Memory (Xilinx SDK)... uboot Failure

Jump to solution

I understand the frustration but handling QSPI boot mode for the flash programmer is pretty difficult because we can't predict what SW is running when we attach to the target.

Does this https://www.xilinx.com/support/answers/70548.html help in any way?

It's true fro zynq-7000 and MPSoC and forces the FSBL specified on the flash programmer to NOT pull extra partitions from flash and simply initialize the device and handoff to u-boot.

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
0 Kudos
Highlighted
Observer
Observer
435 Views
Registered: ‎05-30-2014

Re: Zynq Program Flash Memory (Xilinx SDK)... uboot Failure

Jump to solution

I did it as described in AR70548. It means to have a hacked FSBL for the flash programmer and the "original" FSBL to program into the QSPI.

It's not nice but it works...

 

0 Kudos