skordal / potato

A simple RISC-V processor for use in FPGA designs.
BSD 3-Clause "New" or "Revised" License
263 stars 41 forks source link

Failed to start hello application from main memory #21

Open dorfell opened 5 years ago

dorfell commented 5 years ago

Hi Skordal, I would like to thank you for designing and uploading the Potato SoC, I admire your work and I know how time consuming it can be to maintain and solve all the issues and users requests. I'm opening these issue because I'm not being able to load the hello application using the bootloader. When I load the bootloader.coe to the aee_rom and configure the FPGA the cutecom show the message; "Potato Bootloader-waiting .... "

Then i close the cutecom connection to release the ttyUSB device and be able to use the following command: cat image.bin /dev/zero | head -c128k | pv -s 128k -L 14400 > /dev/ttyUSB0 Following, I re-open my cutecom connection but never see the: "Booting" message neither the "." that should be printing while writing the image.bin.

I know the size of the main_memory (implemented with the pp_soc_memory.vhd) is 128 [kB] and its base address is 0x0000 0000. Also, that corresponds with the command : cat image.bin ... command which sends 128 [kB]. However, when I compile the hello aplication, the hello.bin is 428 [B] and the for loop in the "bootloader/main.c": _for(int i = 0; i < APPLEN; i++) is expecting _#define APPLEN (0x20000) = 16 [kB]. This mismatch of sizes is I think, the reason for the bootloader program never reach the: _goto *APPENTRY instruction to jump to the main_memory. So my questions are the following;

  1. am I using the correct procedure to load the hello image to the main memory?
  2. What serial program are you using; cutecom, minicom, etc?
  3. What is the expected size of the hello.bin? (I'm getting 428 [B])
  4. How should I modify the command: cat image.bin /dev/zero | head -c128k | pv -s 128k -L 14400 > /dev/ttyUSB1 to send different image sizes?
  5. Is there another way of jumping to main memory after coping all the image.bin.

Thanks in advance for reading all the issue, I know you're really busy to be answering this bunch of question, but I'd really appreciated if you can do it :-D

Finally, I have attached an image of my setup.

IMG_20190801_224640

siorpaes commented 4 years ago

Hello @dorfell

the bootloader I implemented is pretty dumb and expects exactly 128kB worth of data before booting the application, no matter how big the application is. That's the reason why in the command we pad the application image with zeroes so to reach exactly 128kB. I think the problem you are experiencing is due to cutecom resetting the original serial port settings when being closed. Use 'minicom' instead and make sure the serial port settings are correct using 'stty < /dev/ttyUSBx'. Then, I suggest you two open two different terminals and read the serial port using 'cat /dev/ttyUSBx' in one and issue the boot command in the other.

Hope this helps

David

Karyahia commented 3 months ago

Hello @dorfell

thank you for sharing the issue. actually i am having the same issue; i cannot run the hello application, if you would like to share how you solved the issue it will really help.

Thank you,

dorfell commented 3 months ago

Hello, Karyahia. I hope you are doing well. I don't remember fixing the issue, however, I created a repository with some SoCs that I tested on a Zybo-Z7 (including the Potato): https://gitlab.com/dorfell/socs_design Hopefully, this would work for you. Regards, Dorfell

Le lun. 15 juil. 2024 à 20:00, Karyahia @.***> a écrit :

Hello @dorfell https://github.com/dorfell

thank you for sharing the issue. actually i am having the same issue; i cannot run the hello application, if you would like to share how you solved the issue it will really help.

Thank you,

— Reply to this email directly, view it on GitHub https://github.com/skordal/potato/issues/21#issuecomment-2229661527, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALMVYTMC32GJG6L6DPDU7E3ZMRPCTAVCNFSM6AAAAABK5PTFC2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMRZGY3DCNJSG4 . You are receiving this because you were mentioned.Message ID: @.***>

Aviso legal: El contenido de este mensaje y los archivos adjuntos son confidenciales y de uso exclusivo de la Universidad Nacional de Colombia. Se encuentran dirigidos sólo para el uso del destinatario al cual van enviados. La reproducción, lectura y/o copia se encuentran prohibidas a cualquier persona diferente a este y puede ser ilegal. Si usted lo ha recibido por error, infórmenos y elimínelo de su correo. Los Datos Personales serán tratados conforme a la Ley 1581 de 2012 y a nuestra Política de Datos Personales que podrá consultar en la página web www.unal.edu.co. Las opiniones, informaciones, conclusiones y cualquier otro tipo de dato contenido en este correo electrónico, no relacionados con la actividad de la Universidad Nacional de Colombia, se entenderá como personales y de ninguna manera son avaladas por la Universidad.

-- Aviso legal: El contenido de este mensaje y los archivos adjuntos son confidenciales y de uso exclusivo de la Universidad Nacional de Colombia. Se encuentran dirigidos sólo para el uso del destinatario al cual van enviados. La reproducción, lectura y/o copia se encuentran prohibidas a cualquier persona diferente a este y puede ser ilegal. Si usted lo ha recibido por error, infórmenos y elimínelo de su correo. Los Datos Personales serán tratados conforme a la Ley 1581 de 2012 y a nuestra Política de Datos Personales que podrá consultar en la página web  www.unal.edu.co http://www.unal.edu.co/. Las opiniones, informaciones, conclusiones y cualquier otro tipo de dato contenido en este correo electrónico, no relacionados con la actividad de la Universidad Nacional de Colombia, se entenderá como personales y de ninguna manera son avaladas por la Universidad.