Terasic DE0 Nano SoC / SoCkit confusion

Ian Abbott abbotti at mev.co.uk
Wed Oct 18 09:51:44 PDT 2017


Hi,

I have a Terasic DE0-Nano-SoC Kit / Atlas-SoC Kit board:

http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=205&No=941
https://rocketboards.org/foswiki/Documentation/AtlasSoCDevelopmentPlatform

In the barebox menuconfig, if I select "Terasic DE0-NANO-SoC aka Atlas" 
(MACH_SOCFPGA_TERASIC_DE0_NANO_SOC) for the preloader configuration, the 
preloader image boot fails at the SDRAM calibration stage.  I need to 
select "Terasic SoCKit" (MACH_SOCFPGA_TERASIC_SOCKIT) instead, which 
seems to work fine.  Indeed, when using the 
"scripts/socfpga_import_preloader" script to import settings from 
Terasic's FPGA handoff files for DE0-Nano-SoC, the results are a much 
better match to barebox's "arch/arm/boards/terasic-sockit/" than they 
are to "arch/arm/boards/terasic-de0-nano-soc/". I got the handoff files 
from Terasic's CD-ROM zip files at
http://www.terasic.com/downloads/cd-rom/de0-nano-soc/ .
There are two CD-ROM zip files for different board revisions, but the 
handoff files are all the same across both CD-ROM zip files.

I'm currently using "Terasic SoCKit" for the preloader and "Terasic 
DE0-NANO-SoC aka Atlas" for the main barebox.

My other problem is that there are differences in the "compatible" 
strings that Linux devicetrees use compared to barebox, which causes the 
blspec loader to fail to load entries containing devicetree files with 
different "compatible" strings for what should be the same board.

For MACH_SOCFPGA_TERASIC_DE0_NANO_SOC:

    barebox:

	compatible = "terasic,de0-nano-soc","altr,socfpga-cyclone5", 
"altr,socfpga";

    (closest match in) Linux:

	compatible = "terasic,de0-atlas", "altr,socfpga-cyclone5", "altr,socfpga";

For MACH_SOCFPGA_TERASIC_SOCKIT:

     barebox:

	compatible = "terasic,sockit", "altr,socfpga";

     Linux:

         compatible = "terasic,socfpga-cyclone5-sockit", 
"altr,socfpga-cyclone5", "altr,socfpga";

For MACH_SOCFPGA_ALTERA_SOCDK:

     barebox:

	compatible = "altr,socdk", "altr,socfpga-cyclone5", "altr,socfpga";

     Linux:

	compatible = "altr,socfpga-cyclone5-socdk", "altr,socfpga-cyclone5", 
"altr,socfpga";


Would the best fix for those be to replace the existing compatible 
strings, or use a union between the current barebox and Linux strings?

-- 
-=( Ian Abbott @ MEV Ltd.    E-mail: <abbotti at mev.co.uk> )=-
-=(                          Web: http://www.mev.co.uk/  )=-



More information about the barebox mailing list