Hello Forum,
I implemented soft-core SOC "NEORV32" from this GitHub repository:
https://github.com/stnolting/neorv32/tree/mainExactly this version of NEORV32 for Xilinx (Artix7) had been chosen by me:
https://github.com/stnolting/neorv32-setups/tree/main/vivado/arty-a7-test-setupI have opened "XilinxVivado 2019" and run the TCL script "create_project.tcl":
https://github.com/stnolting/neorv32-setups/blob/main/vivado/arty-a7-test-setup/create_project.tcl
, after that Vivado project for "NEORV32" SOC had been created.
![NEORV32 soft-core CPU (RISC-V) - bootloader is not working 1919034-0](https://www.eevblog.com/forum/index.php?action=dlattach;topic=399633.0;attach=1919037;image)
This project was made for Xilinx Artix7 FPGA board. I changed the FPGA device and modified "user constraint" file (.xdc) to fit my FPGA board with Xilinx Spartan7 FPGA. After that I ran the synthesis and implementation of this project - all finished without errors. Then I ran generation bitstream and load FPGA configuration file to Spartan7 board - this also had been successful. After that I determined which serial port is the one connected to my soft-core NEORV SOC - it was /dev/ttyUSB0:
/dev/ttyUSB0 - Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001
Then I connected to serial port /dev/ttyUSB0 using "Putty" (I am working with Linux Mint OS) - see screenshot:
![NEORV32 soft-core CPU (RISC-V) - bootloader is not working](https://www.eevblog.com/forum/index.php?action=dlattach;topic=399633.0;attach=1919028;image)
One can see NEORV32 bootloader information on the serial port. After that, I push "e" button and the next "u" button - the bootloader starts waiting for sending firmware (binary program for soft-CPU.
I set serial port speed to 19200 performing the command:
$ stty -F /dev/ttyUSB0 19200
and then run the next command:
cat neorv32_exe.bin > /dev/ttyUSB0
After that, I had an error code: "ERR_EXE" in the Putty window (serial port).
I also tried commands:
sudo apt-get install lrzsz
sz -b neorv32_exe.bin /dev/ttyUSB0
After issuing these commands nothing happened in the Putyy window (serial waiting for firmware). I was seeking Google information related to this "ERR_EXE" error in the NEORV32 bootloader, but I didn't find useful information.
Maybe someone from the forum's users can give me a hint on how to resolve my problem
Update: in project catalog ../sw_image_gen I found script "uart_upload.sh" which purpose is loading image to the NEORV32 bootloader:
https://github.com/stnolting/neorv32/blob/main/sw/image_gen/uart_upload.sh
I tried to use it to upload a firmware:
bofh@4core:~/NEORV32/neorv32-setups-main/neorv32/sw/image_gen$ sudo sh uart_upload.sh /dev/ttyUSB0 neorv32_raw_exe.bin
Bootloader response error.
Reset processor before starting the upload.
bofh@4core:~/NEORV32/neorv32-setups-main/neorv32/sw/image_gen$
and I have this error above, or in reset state:
bofh@4core:~/NEORV32/neorv32-setups-main/neorv32/sw/image_gen$ sudo sh uart_upload.sh /dev/ttyUSB0 neorv32_exe.bin
Uploading... Upload error.
bofh@4core:~/NEORV32/neorv32-setups-main/neorv32/sw/image_gen$
In this second case, upload is starting and after a few seconds it ends with this error above.
Thanks in advance and regards