cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
btmaas
Visitor
Visitor
12,291 Views
Registered: ‎06-26-2013

Failing to boot vxworks with u-boot on Zynq-ZC706

Jump to solution

I really REALLY hope someone can help me on this as I have been struggling to get this to work. I have been trying to boot a VxWorks binary image on my Zynq ZC706 board through U-boot(built from Xilinx U-boot source, v2013.04). The entry point of the vxworks image, I have confirmed, is set to 0x00100000 and I have been attempting to load VxWorks from an SD card by running the following...

 

1st attempt:

fatload mmc 0 100000 vxworks.bin; go 100000

 

2nd attempt:

fatload mmc 0 100000 uvxworks; bootvx 100000

 

* Note that here I wrapped a vxworks elf image with a u-boot header. The mkimage command I used was as follows:

mkimage -A arm -O vxworks -T kernel -C none -a 00100000 -e 00100000 -n "VxWorks Kernel Image" -d ./vxworks.elf uvxworks

 

3rd attempt:

fatload mmc 0 100000 uvxworks; bootm 100000

 

Many more attempts with varrying load addresses and commands (e.g. bootelf, go, etc). The only result I end up with is either an unresponsive terminal, data abort, or prefetch abort errors.

 

However, I ran a particularly aged version of u-boot(the command prompt says pele-boot, no saveenv command, ver 2010.09) per a coworker's suggestion and it worked by entering

 

fatload mmc 0 100000 vxworks.bin; go 100000

 

However, this is not a viable solution for me because I need more commands offered by u-boot nor do I have the source for the older version of u-boot that I tried to use.

 

I hope to start a dialog with anyone that has run into diffculties with zynq/vxworks/uboot or anyone at all that could shed some light on the proper way to boot vxworks on a zynq-zc706 board. Many thanks in advance.

0 Kudos
1 Solution

Accepted Solutions
cch
Xilinx Employee
Xilinx Employee
16,697 Views
Registered: ‎09-04-2012

You do not need U-Boot to load a vxWorks image. You can use the First Stage Bootloader provided in SDK.

Steps:

1. Create the default FSBL for the ZC706

2. Use the image creation utility in SDK. Specify the FSBL from step 1 and add your vxWorks image (rename it to vxWorks.elf first)

3. Use the boot.bin file created

View solution in original post

0 Kudos
10 Replies
cch
Xilinx Employee
Xilinx Employee
16,698 Views
Registered: ‎09-04-2012

You do not need U-Boot to load a vxWorks image. You can use the First Stage Bootloader provided in SDK.

Steps:

1. Create the default FSBL for the ZC706

2. Use the image creation utility in SDK. Specify the FSBL from step 1 and add your vxWorks image (rename it to vxWorks.elf first)

3. Use the boot.bin file created

View solution in original post

0 Kudos
btmaas
Visitor
Visitor
12,169 Views
Registered: ‎06-26-2013
It worked perfectly! TY TY!
0 Kudos
vincent_liu
Visitor
Visitor
11,994 Views
Registered: ‎09-27-2013

Hi,I am a novice for vxworks from China ! I have got  a Zedboard of digilent company. And I have created BOOT.BIN by fllowing commands:

 

Step 1, Create bootrom.elf 

 cd $(WIND_BASE)/target/config/xlnx_zynq7k

 make clean

 make bootrom.bin

and then, rename bootrom.bin to boottrom.elf

 

Step 2,Create a bif file 

the_ROM_image:

{

       [bootloader]zynq_fsbl_0.elf

       bootrom.elf

}

zynq_fsbl_0.elf above is for Zedboard and it was made by Xilinx SDK14.4.

bootrom.elf was created in step 1.

I named this bif file "boot_bif.bif";

 

Step 3,Create BOOT.BIN

copy bootrom.elf ,zynq_fsbl_0.elf and boot_bif.bif to bootgen directory

run command :

bootgen -image boot_bif.bif -o i BOOT.BIN

 

after these 3 steps ,I have successfully created a BOOT.BIN

and then I copy it to a SD card and insert the SD card to Zedboard ,and Vxworks bootrom running well!

 

I have some questions:

1,the default memory map of this BSP(for xilinx zc-702 board,not for Zedboard) is as follow:memory maps

 I have got VxWorks bootrom running without any problem! Do I need to modify some address?

 

2,I have created "vxWorks","vxworks.st","vxWorks.sym".But I don't know chose which one and how to load vxWorks  from an SD card?

 

I do hope the friends who successfully transplanted vxworks to zynq can give me some  suggestion and  help me solve this problem! Thank you very much !

 

 

 

0 Kudos
vincent_liu
Visitor
Visitor
11,917 Views
Registered: ‎09-27-2013

I have solved my problem ! if you just want to setup vxWorks by SD card,bootrom is not  indispensable.You can put FSBL.elf  (for your specific eg: ZEDboard,zc-702,zc-706 )and vxWorks.st(not vxWorks!!!) to bootgen directory,and then rename vxWorks.st to vxWorks.elf.Now,you can enter these commands in a xilinx shell :

      bootgen -image boot_bif.bif -o i BOOT.BIN

and then copy BOOT.BIN to your SD card! It works perfectly in my ZEDboard! Good luck :)

0 Kudos
tameyama
Adventurer
Adventurer
11,750 Views
Registered: ‎06-20-2013

Hello Vincent

 

I am also trying to run vxworks on Zedboard.

 

As you mentioned, "eg: ZEDboard,zc-702,zc-706 )and vxWorks.st(not vxWorks!!!)", vxworks.st is needed.

 

How can i get the vxworks.st file? By using workbench3.3/vxworks6.9, there is no option for me to create vxworks.st.  I can only generate vxworks file. 

 

Any setting needed for this?

 

Regards!

0 Kudos
vincent_liu
Visitor
Visitor
11,708 Views
Registered: ‎09-27-2013

Hi,Have you got the vxWorks.st image?

0 Kudos
salizaidi
Visitor
Visitor
7,949 Views
Registered: ‎10-11-2015

Hello Every One,

 

I am lost in the plethora of documents from Xilinx, I need to load and boot Vxwork Image from SPI flash.

Can you guys help with the step by step procedure?, or point me to the relevent documents.

I am looking for board and sopftware configuration details to make SPI the primary boot device instead of SD card.

Also I would like to know FSBL creation procedure.

Thanks Alot.

 

Ali

0 Kudos
Anonymous
Not applicable
7,220 Views

Hello,

 

I am using VxWorks 7. I would like to know if it is possible to boot it without using u-boot.

Also, How do we generate the vxWorks.st file?

I have the following files when I build the vxWorks image using Workbench4.

1) uVxWorks

2) VxWorks

3) VxWorks.bin

 

I dont have any vxWorks.st file. Did someone manage to boot vxWorks7 without using u-boot?

 

Any help would be appreciated.

 

Regards,

Khizer

0 Kudos
njohnston
Visitor
Visitor
6,386 Views
Registered: ‎04-19-2017

Hey,

 

I was recently working on almost exactly the same problem (the only difference being I'm using the ZCU102 eval board) and managed to figure out a solution.  So, if you're still wondering how to boot vxWorks7 from the FSBL, here's how:

 

You'll need a petalinux project created from whatever BSP you're using.  If you've already tried to build and package your project, you should have a file under the build directory with a .bif extension (probably bootgen.bif).  That will be an auto-generated file based on your petalinux-package command, but you'll need to create your own by hand.  Basically, it should look something like this:

 

the_ROM_image:
{
        [fsbl_config] a53_x64
        [bootloader] /path/to/<your_board_specific>_fsbl.elf
        [load=0x100000,startup=0x100000] /path/to/your/vxWorks.bin
}

You may want to reference the .bif file that was generated from your petalinux-package command for the value of the [fsbl_config] setting...that may be specific to my board...not sure.

 

Given that load and startup address, you will need to configure your vxWorks kernel to use a RAM_LOW_ADRS of 0xffffffff80100000 and a RAM_HIGH_ADRS of 0xffffffff81000000 (which were the default values for the ZCU102 BSP).  Really, I think the RAM_LOW_ADRS comes down to whatever your LOCAL_MEM_LOCAL_ADRS is, plus the offset address (so, in my case, 0xffffffff80000000 + 0x00100000 = 0xffffffff80100000).  I think the RAM_HIGH_ADRS just needs to be high enough above the RAM_LOW_ADRS to not cause problems...still not 100% clear on how high that is exactly, but I've found 0x400000 to be plenty.  0x1000000 should definitely be enough.

 

You also need to make sure you are building the vxWorks kernel with the built-in DTB file.  Once you build, grab the vxWorks.bin file and put that somewhere you can get to with your petalinux-package command.

 

Then, package up your BOOT.BIN file:

 

petalinux-package --boot --force --bif <your_bootgen_file>.bif

And viola!  You should have a BOOT.BIN file that will boot the FSBL and then boot directly into your vxWorks image

LearningXilinx
Observer
Observer
753 Views
Registered: ‎09-03-2020

@njohnston 

Thank you, this worked for me....

0 Kudos