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: 
Explorer
Explorer
9,264 Views
Registered: ‎08-19-2014

ZC706 QSPI Boot: FSBL does not hand off to U-Boot

Jump to solution

I am attempting to boot my ZC706 hardware from the on board QSPI to boot Linux from TFTP.  I have built a FSBL and I fetched sources from GitHub for U-Boot and Linux and built them as well.  I have had success in booting my FSBL and U-Boot through JTAG, which verified my setup for the TFTP is correct as I was able to configure the PL and boot into Linux successfully via TFTP.  However, once I created the BOOT.bin image of just the FSBL and U-Boot and programmed it into the QSPI flash, the FSBL errors out and U-Boot is not executed.  With debug messages enabled, I see the following on my console output:

 

Xilinx First Stage Boot Loader 
Release 2014.2	Aug 25 2014-11:51:58
Devcfg driver initialized 
Silicon Version 3.1
Boot mode is QSPI
Single Flash Information
FlashID=0x1 0x20 0x18
SPANSION 128M Bits
QSPI is in Dual Parallel connection
QSPI Init Done 
Flash Base Address: 0xFC000000
Reboot status register: 0x60400000
Multiboot Register: 0x0000C000
Image Start Address: 0x00000000
Partition Header Offset:0x00000C80
Partition Count: 2
Partition Number: 1
Header Dump
Image Word Len: 0x00074859
Data Word Len: 0x00074859
Partition Word Len:0x00074859
Load Addr: 0x00000000
Exec Addr: 0x00000000
Partition Start: 0x00020000
Partition Attr: 0x00000013
Partition Checksum Offset: 0x00000000
Section Count: 0x00000001
Checksum: 0xFFE82490
Application
Handoff Address: 0x00000000
In FsblHookBeforeHandoff function 
No Execution Address JTAG handoff 

 

The following is my BIF file from XSDK (2014.2) used to create the BOOT.bin file:

 

the_ROM_image:
{
	[bootloader]/home/user_name/Projects/xsdk_workspace/zc706_netboot_fsbl/Debug/zc706_netboot_fsbl.elf
	[offset = 0x80000]/home/user_name/Projects/Zynq/Xilinx_github_repos/u-boot-xlnx/u-boot
}

 

I added the offset after reading ZC702 Boot From Flash on the Xilinx Wiki.  Other than that, I have not found any relevant forum postings or wiki documents to help me move past this issue.  Any help would be greatly appreciated.

 

-Jordan

This signature intentionally left blank.
0 Kudos
1 Solution

Accepted Solutions
Highlighted
Observer chengtms
Observer
13,754 Views
Registered: ‎11-24-2012

Re: ZC706 QSPI Boot: FSBL does not hand off to U-Boot

Jump to solution

Hi Jordan,

 

I seem to remember that you need to rename the u-boot executable to u-boot.exe in order for SDK bootgen to recognize it as an executable, or else it might be treated as a data file. You can try and see if it helps.

 

Regards,

Stephen

8 Replies
Scholar trenz-al
Scholar
9,260 Views
Registered: ‎11-09-2013

Re: ZC706 QSPI Boot: FSBL does not hand off to U-Boot

Jump to solution

on the page you referred in bold and RED:

 

Attention! The information on this page is currently outdated. Do not use

 

why did you use it?

 

Advice: start with petalinux 2014.2 - I am amazed that ALL JUST works there - no need to FETCH something

 

just install petalinux and you are done.. all you need is preinstalled..

 

its so much JUST working that it gets bored, yesterday NEW own designed Artix 200 Board, just run wizards and first time I flashed SPI it booted til linux prompt.

0 Kudos
Explorer
Explorer
9,255 Views
Registered: ‎08-19-2014

Re: ZC706 QSPI Boot: FSBL does not hand off to U-Boot

Jump to solution

trenz-al wrote...

"why did you use it?"'

 

It was the only source I found that referenced booting from QSPI with similar hardware.  Outdated does not mean that all information therein is incorrect.  The only bit of advice I took from that referenced page was to include the offset of U-Boot.  I had previously built a BOOT.bin without indicating an offset and both gave the same result wihout FSBL successfully handing off to U-Boot.

 

trenz-al wrote...

"Advice: start with petalinux 2014.2 - I am amazed that ALL JUST works there - no need to FETCH something

 

just install petalinux and you are done.. all you need is preinstalled..

 

its so much JUST working that it gets bored, yesterday NEW own designed Artix 200 Board, just run wizards and first time I flashed SPI it booted til linux prompt."

 

This is not helpful advice.  This does not pertain to my problem.

 

-Jordan

This signature intentionally left blank.
0 Kudos
Highlighted
Observer chengtms
Observer
13,755 Views
Registered: ‎11-24-2012

Re: ZC706 QSPI Boot: FSBL does not hand off to U-Boot

Jump to solution

Hi Jordan,

 

I seem to remember that you need to rename the u-boot executable to u-boot.exe in order for SDK bootgen to recognize it as an executable, or else it might be treated as a data file. You can try and see if it helps.

 

Regards,

Stephen

Scholar trenz-al
Scholar
9,236 Views
Registered: ‎11-09-2013

Re: ZC706 QSPI Boot: FSBL does not hand off to U-Boot

Jump to solution

very weird:

 

bootgen in sdk 2014.2

 

1 make fsbl

2 make dummy hello

3 select bootgen on hello

4 delete hello.elf

5 add wrapper.bit

6 add uboot.elf from peta 2014.2 -- no offset !!!

7 add image.ub from peta 2014.2, SET OFFSET !!!

8 flash QSPI

9 linux boots

 

done it over and over and over it just works.

 

0 Kudos
Explorer
Explorer
9,232 Views
Registered: ‎08-19-2014

Re: ZC706 QSPI Boot: FSBL does not hand off to U-Boot

Jump to solution

@chengtms wrote:

Hi Jordan,

 

I seem to remember that you need to rename the u-boot executable to u-boot.exe in order for SDK bootgen to recognize it as an executable, or else it might be treated as a data file. You can try and see if it helps.

 

Regards,

Stephen


Thanks for the suggestion Stephen, I will try that and I will try renaming it to u-boot.elf as well.  I have seen Xilinx wiki documents showing the executable U-Boot with a file extension (as seen here), but the executable created by building the sources does not have an extension (as noted in the wiki here).

 

-Jordan

This signature intentionally left blank.
0 Kudos
Explorer
Explorer
9,231 Views
Registered: ‎08-19-2014

Re: ZC706 QSPI Boot: FSBL does not hand off to U-Boot

Jump to solution

@trenz-al wrote:

very weird:

 

bootgen in sdk 2014.2

 

1 make fsbl

2 make dummy hello

3 select bootgen on hello

4 delete hello.elf

5 add wrapper.bit

6 add uboot.elf from peta 2014.2 -- no offset !!!

7 add image.ub from peta 2014.2, SET OFFSET !!!

8 flash QSPI

9 linux boots

 

done it over and over and over it just works.

 


Some of these steps are not clear to me, in particular steps 2 through 4.  However, you indicate that you added "uboot.elf" to your bootgen which also supports Stephen's post.

This signature intentionally left blank.
0 Kudos
Explorer
Explorer
9,225 Views
Registered: ‎08-19-2014

Re: ZC706 QSPI Boot: FSBL does not hand off to U-Boot

Jump to solution
I created a symbolic link from u-boot.elf to point to my build of u-boot (> ln -s u-boot u-boot.elf) and recreated my BOOT.bin file with the symlink file as the second argument in my .bif file. That changed the resultant file and after programming the flash, I successfully booted into Linux. Thank you!

-Jordan
This signature intentionally left blank.
0 Kudos
Participant 365972698@qq.com
Participant
6,173 Views
Registered: ‎08-09-2015

Re: ZC706 QSPI Boot: FSBL does not hand off to U-Boot

Jump to solution

HI Jordan:

    Can you tell me how can I get the debug printf info of FSBL ?

    Should I build the zynq boot image with the SDK tool first then programme my flash or is there another way to debug the  FSBL alone?  Waiting for your reply ,Thank you very much!

TONNY
0 Kudos