First of all, I am new to this field and most of the time I learn it by myself. Recently, I just bought an Atlas-SoC board from Terasic and I have been trying to make an bare-metal application ( just counting and output to LEDs ).
So far, I have been following those steps:
1/ Design my own HPS on Platform designer ( Qsys )
2/ Connect all the necessary pin
3/ Successfully compiled on Quartus
4/ Generated .rbf file ( Passive Parallel x16 )
5/ Generated a preloader using bsp-editor. In here, I disabled Watchdog and enabled FAT-Support
6/ Generated preloader bin file using make command
7/ Generated u-boot.img using make uboot commad
8/ Load preloader on SD card by using alt-boot-disk-util.exe
9/ Copy all uboot.img and rbf file to SD card( at this point, I have not made baremetal application because I just want to see if it is booted or not )
10/ Plug SD card into my board ( MSEL is set to ON )
11/ Open putty and connect to the board
12/ Turn on the board
The result is nothing. I received nothing on the Putty terminal. At first, I thought that it would show the setup of Clock, SDRAM, Reset, etc. But all I have is totaly blank terminal.
My first assumption is that I have made some mistakes in configuring the preloader.
I hope someone can give me a solution because I am pretty a newbie in this field.
Thanks in advance !
thanks for your answer. Let me update my situation a little bit. After some configuration, I have been able to load my preloader, so now I have 2 choices:
With the first one, when making the preloader, I modify the field FAT_LOAD_PAYLOAD_NAME to "hello_world.img". Then compiling and load it to my SD without problem. I found in uboot-socfpga folder having examples sub-folder with hello_world.bin inside, then I converted it to .img file and drag it to my SD card. However, when plugged it into the board, on Putty terminal I had my u-boot SPL configuration and went to reading hello_world.img but it stucked over there and went nowhere.
With the second one, I make a uboot by make command and create my uboot script that first load .rbf file, then jump to my bare metal application. Since my EDS does not license so I used the same hello_world example. Everything was going well until I got this error:
MAYBE you should read doc/README.arm-unaligned-accesses
This happened when it tried to run the application.
Once again, I appreciate your help and I hope you can give me a clue for this problem.
Have you refer to this link for booting your particular board which is the Atlas-Soc?;
FYI, getting the SD card image;
Let me know if you did, if you didn't I suggest that you follow the steps to boot your Atlas-SoC.
Thanks for your answer. Everything with preloader, uboot and uboot script is now, I think, working fine. All I need now is a simple bare metal application like "hello world" to test. However, I cannot have bin file to execute it on the board. I can only obtain axf file ( and I do not think it can be used to execute on the board ). I also know about fromelf tool but it gives me error about failing to check the license. Is there any way else to work around with this? Or I have to really buy a license to make and generate a bin file from C code ?
BTW, a bit feedback on those link you give me:
https://rocketboards.org/foswiki/Documentation/AtlasSoCBootingLinux ==> I have done with communicating by Putty.
https://rocketboards.org/foswiki/Documentation/AtlasSoCSdCardImage ==> All the links to get the images are not accessible. They gives me "404 Not found" error.
Once again, thanks for all of your support.
Oh, I see that the booting is fine for you.
Okay, so to answer your question about testing a "hello world" via bare metal application which is ARM DS-5, you do need to install and acquire a license to work with DS-5, to get you going in creating, configuring, and building a simple bare-metal program.
Anyway, happy to help, here is a link for you to refer to test the "hello world" via bare metal application, granted that you have the DS-5 licenses working;
Please do save the link for you future reference or review it to get a glimpse of the procedure and the output.