-
Notifications
You must be signed in to change notification settings - Fork 201
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cannot upload neorv32_exe.bin for demo CFS on NexysA7 #781
Comments
FTR, we are also having issues with the bootloader on an Arty-A7. For now, we are disabling the bootloader so that the app is started straightaway. However, that requires resynthesising if we want to change the software. /cc @Unike267 |
Hey @JC-LL! Hmm this problem sounds familiar... Does the upload only freeze when you upload your specific program? Can you try compiling a simpler one (e.g. sw/example/hello_world) and try uploading that? I guess your executable is larger than 4kB, which is a known problem with GTKTerm: #215 (comment) Can you try a different terminal program like cutecom or picocom? Which terminal program are you using? |
Hello @stnolting ! First, congrats for this interesting project. Yes, smaller binary programs run fine, like the LED demo provided, that works like a charm. Gtkterm is the issue here. However, I'v just tried picocom, that also seem to freeze (I hope I have used it correctly for sending the code). On my Linux Mint, cutecom does not seem to simply react when booting Neorv32... I'm still investigating. Update :
|
Thank you very much! :)
Have you tried this one? (from #215 (comment))
This is a signature error, so the first 4 bytes are not the expected ones: neorv32/sw/bootloader/bootloader.c Lines 202 to 205 in 8e52234
Are you uploading the right executable file ( |
Things are a bit weird. My first attempt with picocom (with the correct neorv32_exe.bin) went wrong... I just retried, and I finally managed to upload the executable. Hurray ! Well...not perfect still.
|
Great to hear! 🎉
Seems like the CFS was not enabled before synthesizing. You need to set the according configuration generic to "true" in your instance of the processor: neorv32/rtl/core/neorv32_top.vhd Line 139 in 8e52234
|
That surprised me much because, IO_CFS_EN was indeed correctly set to true...That was my initial goal ! I probably made a mistake renaming bitstream. I'll try again tomorrow. Update : "Tomorrow will soon come" (new James Bond film ?) It works. It seems that modifying generic definition (which I did) is not sufficient. I don't see why. It really needs to be set in the generic map, while instanciating neorv32_top in neorv32_test_setup_bootloader.vhd. Better practice for sure, but weird that it didn't work at first try. For completeness, here is the uart log :
|
Right, the instantiation will override the defaults from the entity declaration.
👍 🚀 |
Hi @stnolting
We are using cutecom terminal. The problem was that the type of file that we set in cutecom was Script and if you set this type the cutecom responds with ERR_EXE. So to fix it you must set Plain type. As shown in the following image: /cc @umarcor |
Thanks for the information! |
Describe the bug
cannot upload neorv32_exe.bin for demo CFS with nexys-a7-test-setup. The upload process freezes
To Reproduce
Switch IO_CFS_EN=true in neorv32_top.vhd then restart synthesis :
cd neorv32-setups/vivado/nexys-a7-test-setup/
vivado -mode tcl -source create_project.tcl # and push bitstream
cd neorv32/sw/example/demo_cfs
make exe
run neo on FPGA and interrupt the boot process to 'u'pload neorv32_exe.bin (me : using gtkterm or minicom)
the process freezes
Expected behavior
The upload should finish.
Screenshots
The text was updated successfully, but these errors were encountered: