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
Voyager
Voyager
7,826 Views
Registered: ‎02-10-2012

Multiple PL bit files in the Zynq ROM image

Hey All,

 

I wanted to know if it was possible to mauplate the FSBL code for zynq so that I can choose which PL bit file is loaded when the FSBL is executing. My idea was to have a rom image like this :

 

the_ROM_image:
{
    [bootloader]xxx\Bootloader.elf
    xxx\System_TOP_Module_ConfigA.bit

   xxx\System_TOP_Module_ConfigB.bit

   xxx\System_TOP_Module_ConfigC.bit
   xxx\Application.elf
}

 

Once the bootloader starts executing , I want to control which bit file is loaded into the PL (config A , B or C) and then load the application.elf . I have a 512 Mbit QSPI flash so space is not a constraint.

 

Is this possible ? Any pointers will be helpful .

 

Thanks a lot

Arvind

0 Kudos
5 Replies
Xilinx Employee
Xilinx Employee
7,810 Views
Registered: ‎08-02-2007

Re: Multiple PL bit files in the Zynq ROM image

hi,

 

are you trying to do a partial reconfiguration and load partial bitstreams? would that be possible to use pcap or icap for loading them?

 

--hs

----------------------------------------------------------------------------------------------
Kindly note- Please mark the Answer as "Accept as solution" if information provided is helpful.

Give Kudos to a post which you think is helpful and reply oriented.
----------------------------------------------------------------------------------------------
0 Kudos
Voyager
Voyager
7,799 Views
Registered: ‎02-10-2012

Re: Multiple PL bit files in the Zynq ROM image

Hi,

 

Thanks for your reply. I am not looking to perform a partial reconfiguration. I will explain my design requirement in a bit more detail :

 

The idea is I have three bitstream designs that have different PL designs.

 

 

PL_Design_A.bit

PL_Design_B.bit

PL_Design_C.bit

 

When I power on the unit for the first time lets say the bootloader configures the PL with default PL_Design_A.bit and loads the .elf file (the application) . During the application run I find out that the PL_Design_A.bit does not suite my requirement and may be the PL_Design_B is a better option for this scenario.

 

So I was hoping if it was possible to write a variable into the flash memory and then power cycle the unit. Now when the bootloader runs it can read the flash memory and and based on the variable value I wrote,  configures the PL with a different pl bit stream file (PL_Design_B.bit) .

 

Ofcourse the three designs will be at 3 different offsets in the ROM_image (no overlap) and I was just hoping if it was possible to control the address to load the bitstream from in the FSBL program. This would be of great use to the END user as the system becomes very flexible.

 

And after loading the required bit stream the FSBL must jump to the partition containing the elf file and load that.

 

Hope I have explained my situation better.

 

Arvnd 

0 Kudos
Voyager
Voyager
6,383 Views
Registered: ‎02-10-2012

Re: Multiple PL bit files in the Zynq ROM image

Hey

 

Still wondering if this is at all possible ? If any one can just point me to a relavent technical note or white paper I will take it from there. I tried to search all this while here and then but could not come up with something concrete. 

 

Kind Regards

Arvind

0 Kudos
5,908 Views
Registered: ‎06-16-2015

Re: Multiple PL bit files in the Zynq ROM image

Any success with the multiple .bit files?  I am wanting to do something similar, where the FSBL reads switches to determine which .bit file to load.  I'm interested to hear about your progress.  Thank you.

0 Kudos
Voyager
Voyager
5,888 Views
Registered: ‎02-10-2012

Re: Multiple PL bit files in the Zynq ROM image

Hi John, 

 

Unfortunately I was not able to come across any resource on how to go about this. Did not have the luxury of time to experiment much so gave it up. If at all you come across something similar please comment on this thread.

 

Kind Regards

Arvind 

 

 

0 Kudos