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!

Showing results for 
Search instead for 
Did you mean: 
Not applicable

Using PetaLinux to generate an MCS file for Microblaze



I have a design that runs Linux on a Microblaze. Up until now I have been using xsct to load the kernel and ramdisk. I now want to create a MCS file for a flash device. All seems well until I attempt to use petalinux-package to create the MCS file (see below). It seems to fail while attempting to initialize bram with a first stage boot loader (I think). This design a 2 Microblaze processors. The only think I can think of is that the tool is getting hung up on the fact there is two processor instances in the design. Everything is accurately specified in the config in terms of which MB I am attempting to target. If I run updatemem on its own, I can specify which microblaze instance I am targeting and the utility doesn't return with any error. An guidance would be appreciated. Thanks in advance.


$ petalinux-package --boot --format MCS --force --fpga top.bit --fsbl images/linux/fs-boot.elf --u-boot images/u-boot-s.bin --kernel ../microblaze/out/Target/image.ub --flash-size 256 --flash-intf SPIx1 -o system.mcs
WARNING: Auto detecting MMI file with HDF
INFO: Creating download.bit...
INFO: fpga bitstream: ./top.bit
INFO: fpga bitstream MMI file: /tmp/tmp.oM3GhynAPy/top.mmi
INFO: fsbl file: ./images/linux/fs-boot.elf
INFO: Output download.bit: ./download.bit

ERROR: too many positional options have been specified on the command line
petalinux-initbram: line 512: 1=255: command not found

Usage: updatemem [options]
(Switches with double dash '--' can also be used with a single dash '-')

Help message:

-h [ --help ] Display help
--meminfo arg Input meminfo file with extension '.mmi' or .smi (for
generating .mem files). The .mmi file can be generated
using the write_mem_info TCL command in Vivado. The
Tcl generate_mem_files will generate the .smi file.
--data arg Input elf or mem file to be used to populate the
BRAMs. When writing .mem files for simulation this
command line argument will only accept elf input file
--bit arg Input bit file
--proc arg Instance path of the processor in the design
--out arg Output bit file
--force [=arg(=1)] Overwrite existing output bit file

updatemem -meminfo top.mmi -data top.elf -bit top.bit -proc system_i/microblaze -out top_out.bit
updatemem -meminfo top.mmi -data top.mem -bit top.bit -proc system_i/microblaze -out top_out.bit
updatemem -meminfo top.mmi -data top.elf -bit top.bit -proc system_i/microblaze -out top_out.bit -force
Write out the translated elf file as a .mem file(s) for third party simulators.
updatemem -meminfo top.smi -data top.elf -proc system_i/microblaze
ERROR: Unable to perform updatemem
ERROR: Failed to create download bit file for MicroBlaze MCS file.
[jnosewor_dev] ssg-vm73-1 /s/gemini/users/jnosewor/mbimage/sw_1b/fcn$


0 Kudos
1 Reply
Not applicable

Re: Using PetaLinux to generate an MCS file for Microblaze

BTW, I am using 2018.1. Thanks

0 Kudos