09-17-2013 03:20 PM
We're developing a system based on the ZYNQ chip. I have been able to successfully build a boot image and load it in an earlier version of the SDK (V13?). Somewhere along the line (V14.1?) Xilinx changed the file formats that u-boot read. I think they went from zImage to uImage but can't specifically recall. Anyway, since then, I have been unable to successfully create a boot image in the SDK. The SDK generates and "internal error" and java is complaining about a null reference.
All of the files that I included in the .bif file are valid and run correctly. I know this because I burn the files manually to flash using XMD and the u-boot sf write commands. Actually, I am able to build a boot image consisting only of the fsbl and u-boot and burn that using the SDK. The device tree, uImage and uRamdisk I load throught XMD and u-boot.
Now we are spinning the hardware and I must use the SDK and JTAG connector to burn all files into flash. With the new hardware I loose the serial port until after the system has booted so I won't have access to u-boot unfortunately.
So, I need to be able to either successfully create a full boot image and burn the image from the SDK, or, at a minimum I need to be able to specify a binary file and offset and burn the individual files to the specified offset.
The Program Flash Memory option allows one to select a .bin or .mcs file. When I select a .bin file, uImage.bin for example, the Program Flash Memory dialog shows an error "Image file should be .mcs format" I assume this is an SDK error and have opened a webcase for it.
So, my question is: Is there a way to burn individual files to specific offsets in flash from the SDK over the JTAG connector? Or is there another program that gives me this capability?
Thanks in advance.
03-08-2014 02:17 AM
I am running into the same problem. Did you already find a solution?
04-15-2014 09:13 AM
can you provide reference manual for booting uad flash/sd card for zc702, i tried then i got flash programmed succeccfully, but when i try to verify it was failed. i didn't get done led on.
please help me to solve my problem.
04-15-2014 03:25 PM
I have some answers to my first post. The SDK only programs .MCS files to the zynq. Allowing one to specify a .bin file was an error in the SDK.
I have only been able to update specific regions of ZYNQ QSPI memory manually using the XMD commands to load the image, start u-boot, and then use the sf probe/erase/write sequence in u-boot.
I have found making a small .MCS containing just the FSBL, bit file and u-boot. If I need an FSBL update, I can just write that. I also make MCS files w/ varying pieces of our system. Each incremental MCS has to include the prior, i.e. the SDK burns from lower address in QSPI on up. You can't make a MCS file just for a specific region, it has to start at the FSBL and go up from there.
I hope this helps.
04-16-2014 11:24 PM
How about using bootgen in SDK tool and provide the files with a specific offset?
would this work for you
04-17-2014 08:48 AM
I'm not familliar with bootgen. It may work. I was looking for a way to burn just a specific region of qspi and it appears that the burn flash image in the SDK always starts erasing at offset 0 to the end of what is defined in the MCS. But, with the create boot image in the SDK, you have to have a fsbl/uboot so the mcs always starts at 0 anyway.
So for now I still use the xmd and u-boot commands if I need to write a region in the middle of qspi.
06-19-2014 03:25 AM
If anyone runs into this problem, the "Create Zynq Boot Image" in 2013.4 can also create mcs boot images. Change the output extension from bin to mcs.
01-15-2019 07:54 AM
petalinux-package --boot --u-boot --force --fpga --kernel --format=MCS
ERROR: Boot file format "MCS" is invalid for "aarch64".