E300 on Arty not working

I wish to compile and use e300 on arty board but after flashing mcs nothing happens.

I use vivado 2017.1 according to the git’s README.
make -f Makefile.e300artydevkit verilog and make -f Makefile.e300artydevkit mcs are finished without error.

Programming with Vivado hardware manager seems ok too. After this tools has finish I press PROG button : green led near this button is green and LD4 to LD6 too.
Using an jtag probe I flash the demo_gpio, press reset button but nothing happens. Pressing reset button or BTN3, some green LEDS are off but it’s all.

I have flashed official mcs file and It’s working.

For git I’ve used, in a first time, the freedome300artydevkit-v1p0p2 tag but It’s seems not working. Then I’ve used master branch, after correcting openocd.cfg according to some threads on this forum, but the result is the same.

I’ve no idea about investigations to find my problem.

Thank you very much for help about this issue.

If you build your own image, you need to specify a program to include in the MCS. You can see more in this thread (though the relevant line number link is now:


I’ve forget to said I’ve added a binary file to the mcs according to the thread you point.

The result is the same. In fact mcs is not generated by fpga-shell/xilinx/Makefile but by by common.mk (these two Makefiles provides quite the same command). common.mk has no FLASHED_PROGRAM (I’ve added this parameter).

The result is the same : nothing happen

To try to see if the problem is software or hardware, I’ve used gdb to see if the code is executed.

bsp/env/start.S is executed but seem to block in __libc_init_array before calling _init().
The part before _init() use a part of the flash (__preinit_array_xxx).

On arty’s flash.lds the flash size is defined to 512M, a value greater than the qspi flash. I’ve changed this value to 16M and now my board boot.

I’ve changed the clock frequency to 32.5MHz in bsp/env/freedom-e300-arty/init.c

My problem, now, is understand why the same software is working with official mcs file and not with my mcs, generated from github repository.

If someone has an idea ?