cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Visitor
Visitor
12,576 Views
Registered: ‎05-06-2014

Zynq 7020 multiboot

Jump to solution

Hi,

 

I am trying to setup a multiboot on the Zynq7020, actually it is on the Zedboard, but it does not seems to work.

 

I have installed the first image at QSPI flash address 0 which contain a FSBL, a bit stream and the helloworld application.

Booting this from QSPI works fine.

 

Now, I have programmed a second image at QSPI address 0x00800000 which represent half on the 16MB device space and this image have only a FSBL and a second helloworld application.

 

I corrupt the first sector of the QSPI flash address 0 to 0xFFFF.

Booting this configuration from QSPI doesn't boot the second image has expected.

 

The documentation says that the multiboot is not supported by the BootROM on pre-production version. Looking at the silicon revision it seems that the Zedboard has the version 1.

 

Is it a pre-production device or it should work on this device?

 

Thanks

Dan

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Visitor
Visitor
20,032 Views
Registered: ‎05-06-2014

Re: Zynq 7020 multiboot

Jump to solution

Ok folks,

 

Just to let you know that after having changed my Zedboard to a revD that has a production device in version 3.1 it solves my problem.

 

Now the boot ROM goes in fallback and it is able to find my golden image on a 32k boundary some where else in the QSPI flash.

 

Thanks all.

View solution in original post

7 Replies
Highlighted
Xilinx Employee
Xilinx Employee
12,549 Views
Registered: ‎07-31-2012

Re: Zynq 7020 multiboot

Jump to solution

Hi,

 

Rev 1 is not a pre-production device.

 

The case which you are talking about seems to be more of a fallback rather than a multiboot case. However in normal 7 series devices, the fallback happens when the corruption is done in the 2nd image and not the actual golden image.

Thanks,
Anirudh

PS: Please MARK this as an answer in case it helped resolve your query.Give kudos in case the post guided you to a solution.
0 Kudos
Highlighted
Scholar
Scholar
12,544 Views
Registered: ‎09-05-2011

Re: Zynq 7020 multiboot

Jump to solution
For more information on Zynq QSPI multiboot, check page 45 of
http://www.xilinx.com/support/documentation/user_guides/ug821-zynq-7000-swdev.pdf
0 Kudos
Highlighted
Visitor
Visitor
12,542 Views
Registered: ‎05-06-2014

Re: Zynq 7020 multiboot

Jump to solution

Thanks for your response.

 

Your are right it is more a fallback rather a multiboot.

 

However, it never reaches the second image. I have tested this image by programming it to the address 0 of the QSPI and it starts well.

 

Here is my QSPI flash mappping:

 

Flash image 1 boot ROM header from 0x00000000 to 0x000009a0
Flash empty from 0x000009a0 to 0x00000c80
Flash image 1 header from 0x00000c80 to 0x00000d7c
Flash empty from 0x00000d7c to 0x00001700
Flash image 1 code (FSBL. bit stream, app) from 0x00001700 to 0x00400000
Flash empty from 0x00400000 to 0x00800000
Flash image 2 boot ROM header from 0x00800000 to 0x008009a4
Flash empty from 0x008009a4 to 0x00800c80
Flash image 2 header from 0x00800c80 to 0x00800d7c
Flash empty from 0x00800d7c to 0x00801700
Flash  image 2 code (FSBL. bit stream, app)  from 0x00801700 to 0x00c00000
Flash empty from 0x00c00000 to 0x01000000

 

From this, it starts normaly with image 1. When I corrupt QSPI from address 0 to 0xFFFF there is no sign of boot.

I would expect that image 2 would start after the fallback of the BOOT ROM.

 

Do you have a hint how to debug what the boot ROM is doing?

 

I am booting in non-secure mode.

Does the fallback is working in this mode or I need to be in secure mode?

 

Thanks.

 

0 Kudos
Highlighted
Scholar
Scholar
12,540 Views
Registered: ‎09-05-2011

Re: Zynq 7020 multiboot

Jump to solution

BootROM looks for a valid header at every 32KB in the boot device. Check section 6.3.9 in ZYnq TRM.

Here is what you can do:

1. Creat two boot files. Let us say test1.bin (app1.elf+FSBL1)and test2.bin(app2.elf+FSBL2)
2. Program test1.bin at offset 0x00 and test2.bin at offset 0x1800 (96KB)
3. Boot from QSPI and verify prints from app1.elf
4. Now, erase first 128KB of QSPI and boot from QSPI to verify if prints from app2.elf take place.

If you are booting U-boot/Linux, you can use the "sf erase" command to erase qspi.

Highlighted
Visitor
Visitor
12,532 Views
Registered: ‎05-06-2014

Re: Zynq 7020 multiboot

Jump to solution

This is exactly what I did (see above) only the addresses are different.

 

Some documentation says that it is not supported in pre-prod devices. My Zedboard has a version 1.0 device (reg: 0xF8007080 = 0)  in the PS_VERSION while the latest version seems to be 3.1.

 

Is it possible that it is the root cause of the problem?

 

Again remember that both of my images are working good at address 0 and that the second image is placed on the 32K boundary.

 

Thanks for you interrest.

 

Dan

0 Kudos
Highlighted
Xilinx Employee
Xilinx Employee
12,495 Views
Registered: ‎07-31-2012

Re: Zynq 7020 multiboot

Jump to solution

Hi Dgravel,

 

Yes that seem to be the problemm in your case. Since it is a pre-production device, multiboot is not supported - http://www.xilinx.com/support/answers/47588.html

 

Please note that if the silicon revision is 1 then it is not a production. Please check this AR on how to decide whether a zynq device is production or ES - http://www.xilinx.com/support/answers/37579.html

 

rev.PNG

 

 

Thanks,
Anirudh

PS: Please MARK this as an answer in case it helped resolve your query.Give kudos in case the post guided you to a solution.
0 Kudos
Highlighted
Visitor
Visitor
20,033 Views
Registered: ‎05-06-2014

Re: Zynq 7020 multiboot

Jump to solution

Ok folks,

 

Just to let you know that after having changed my Zedboard to a revD that has a production device in version 3.1 it solves my problem.

 

Now the boot ROM goes in fallback and it is able to find my golden image on a 32k boundary some where else in the QSPI flash.

 

Thanks all.

View solution in original post