Running linux on DE-1 SOC (from creating preloader to running linux from sd card)

Hi everyone.

I have created this thread to discuss about the software development flow and its implementation on DE1-SOC board provided by Terasic.
I have been trying to run Linux on DE1-soc for a custom system generated using platform designer. I have tried to follow documentation and tutorials provided by but even after a month I haven’t been able successfully boot Linux on on de1-soc for a custom system designed in platform designer. The main problems that I have faced are

  1. there is no direct documentation or tutorials for running linux on DE1-SOC. Most of the resources provided by rocketboard are for cyclone5 soc device name SOCKIT.
  2. Different parts of tutorials are done using different versions of Quartus software.
  3. some of the tutorials won’t run on windows.

I have also found certain threads in community forum where users have asked about different part of the software development flow for DE1-SOC board but majority of them have not been answered clearly. That’s why I want to this create this threat as a single platform to find detailed description about running Linux on DE1-SOC Board for a custom system designed on platform designer. First I’ll outline the steps for the software development flow here and then I’ll request all of you to explain the steps involved in details her in the comments. I’ll be following those step from here. My end goal is to make a unified pdf manual for explaining the whole process of software development flow for DE1-SOC.

System designed for this tutorial is uploaded here. This System basically consist of PIO components ( as leds, switches and hex0_1 ) connected to the lwhps2fpga bridge (light weight axi bridge). leds and switches are 10 bit PIO components connected to LEDR and SW respectively while hex0_1 is 16 bit PIO connect to HEX0 and HEX1.(hex0_1_external_connection_export ({1’b0,HEX1,1’b0,HEX0})).

Note: Quartus prime and SOC EDS version used is 18.1 Standard. and host pc is running Linux OS (Ubuntu 18.04)

Software Development FLOW

  1. Preloader Generation
  2. UBoot Generation
  3. Compile Linux Kernal
  4. Device Tree Blob (.dtb) Generator and .rbf File generations
  5. Copying Files into SD card

I have written the steps after reviewing a few documentation and tutorials. If I have missed some steps or have written something wrong then kindly correct me.

I request all you to kindly contribute to this as much as you can. I intend to create this manual as guide the newbies in the field of FPGA.