Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20689 Discussions

How to build linux for DE2-115

Altera_Forum
Honored Contributor II
2,488 Views

I built buildroot and u-boot from alteras repository on github. Now I want to build linux but there is no config file for ep4ce115 linux config. How can I continue? 

$ ls buildroot linux-socfpga u-boot-socfpga
0 Kudos
6 Replies
Altera_Forum
Honored Contributor II
1,287 Views

As far as I know, unfortunately there is no config file for DE2-115. You may want to try 3c120, but I am not sure if that will work

0 Kudos
Altera_Forum
Honored Contributor II
1,287 Views

 

--- Quote Start ---  

As far as I know, unfortunately there is no config file for DE2-115. You may want to try 3c120, but I am not sure if that will work 

--- Quote End ---  

 

 

It seems to work if I just make a proper dts file and use menuconfig. The thing starts booting but I get kernel panic because I don't have a filesystem.  

 

Linux version 4.9.0-00104-g84d4f8a-dirty (developer@1604) (gcc version 6.2.0 (Sourcery CodeBench Lite 2016.11-32) )# 45 Wed Apr 5 13:12:30 CEST 2017 bootconsole enabled early_console initialized at 0xe8001440 On node 0 totalpages: 32768 free_area_init_node: node 0, pgdat c045252c, node_mem_map c0487b80 Normal zone: 256 pages used for memmap Normal zone: 0 pages reserved Normal zone: 32768 pages, LIFO batch:7 pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 pcpu-alloc: 0 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 Kernel command line: debug console=ttyAL0,115200 PID hash table entries: 512 (order: -1, 2048 bytes) Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Sorting __ex_table... Memory: 125276K/131072K available (2233K kernel code, 66K rwdata, 352K rodata, 1772K init, 197K bss, 5796K reserved, 0K cma-reserved) SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 NR_IRQS:64 nr_irqs:64 0 clocksource: nios2-clksrc: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 38225208935 ns Console: colour dummy device 80x25 Calibrating delay loop (skipped), value calculated using timer frequency.. 100.00 BogoMIPS (lpj=50000) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) cpu cpu0: Error -2 creating of_node link clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns random: fast init done clocksource: Switched to clocksource nios2-clksrc futex hash table entries: 256 (order: -1, 3072 bytes) workingset: timestamp_bits=30 max_order=15 bucket_order=0 Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254) io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) 8001440.serial: ttyJ0 at MMIO 0x8001440 (irq = 2, base_baud = 0) is a Altera JTAG UART mousedev: PS/2 mouse device common for all mice Warning: unable to open an initial console. Freeing unused kernel memory: 1772K (c022f000 - c03ea000) This architecture does not have kernel memory protection. Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100 ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000100 random: crng init done
0 Kudos
Altera_Forum
Honored Contributor II
1,287 Views

i can confirm that it works now.  

 

I could build and start the latest version of linux-socfpga. It took some time to understand the parameters. Now I get a nice login shell and can login with the password that I set in buildroot.  

 

There was no need for special configuration files, I could use the nios2-generic everywhere for the DE2-115.  

 

The startup log has some small mysteries what it means and I'm going to investigate it. For now I'm really glad that the kernel worked with DE2-115. It's version 4.9 from the github repository that I used.  

 

The boot sequence looks according to the following: 

$ Linux version 4.9.0-00104-g84d4f8a-dirty (developer@1604) (gcc version 6.2.0 (Sourc7 bootconsole enabled early_console initialized at 0xe8001400 ERROR: Nios II DIV different for kernel and DTS Warning: icache size configuration mismatch (0x8000 vs 0x1000) of CONFIG_NIOS2_ICACHEe Warning: dcache size configuration mismatch (0x8000 vs 0x800) of CONFIG_NIOS2_DCACHE_e On node 0 totalpages: 32768 free_area_init_node: node 0, pgdat c04aba44, node_mem_map c04c4b80 Normal zone: 256 pages used for memmap Normal zone: 0 pages reserved Normal zone: 32768 pages, LIFO batch:7 pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768 pcpu-alloc: 0 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 Kernel command line: console=ttyAL0,115200 PID hash table entries: 512 (order: -1, 2048 bytes) Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Sorting __ex_table... Memory: 125032K/131072K available (2172K kernel code, 68K rwdata, 492K rodata, 2048K ) NR_IRQS:64 nr_irqs:64 0 clocksource: nios2-clksrc: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 3822s Calibrating delay loop (skipped), value calculated using timer frequency.. 100.00 Bog) pid_max: default: 32768 minimum: 301 Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) devtmpfs: initialized cpu cpu0: Error -2 creating of_node link clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 191126044s NET: Registered protocol family 16 random: fast init done clocksource: Switched to clocksource nios2-clksrc futex hash table entries: 256 (order: -1, 3072 bytes) workingset: timestamp_bits=30 max_order=15 bucket_order=0 jffs2: version 2.2. (NAND) �© 2001-2006 Red Hat, Inc. Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254) io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) random: crng init done 8001400.serial: ttyAL0 at MMIO 0x8001400 (irq = 3, base_baud = 3125000) is a Altera UT console enabled console enabled bootconsole disabled bootconsole disabled 8001440.serial: ttyJ0 at MMIO 0x8001440 (irq = 2, base_baud = 0) is a Altera JTAG UART loop: module loaded mousedev: PS/2 mouse device common for all mice Freeing unused kernel memory: 2048K (c0220000 - c0420000) This architecture does not have kernel memory protection. Starting logging: OK Initializing random number generator... done. Starting network: ip: can't find device 'lo' ip: socket: Address family not supported by protocol FAIL hello! foo login: root Password: login: root login on 'ttyAL0' # ls / bin init linuxrc opt run tmp dev lib media proc sbin usr etc lib32 mnt root sys var # gcc -sh: gcc: not found # ls /opt/ # echo $0 -sh #  

 

https://www.alteraforum.com/forum/attachment.php?attachmentid=13513
0 Kudos
Altera_Forum
Honored Contributor II
1,287 Views

$ quartus_pgm -m jtag -c USB-Blaster[2-2] -o "p;tPad_Selector.sof" 

Info: ******************************************************************* 

Info: Running Quartus Prime Programmer 

Info: Version 16.1.0 Build 196 10/24/2016 SJ Lite Edition 

Info: Copyright (C) 2016 Intel Corporation. All rights reserved. 

Info: Your use of Intel Corporation's design tools, logic functions  

Info: and other software and tools, and its AMPP partner logic  

Info: functions, and any output files from any of the foregoing  

Info: (including device programming or simulation files), and any  

Info: associated documentation or information are expressly subject  

Info: to the terms and conditions of the Intel Program License  

Info: Subscription Agreement, the Intel Quartus Prime License Agreement, 

Info: the Intel MegaCore Function License Agreement, or other  

Info: applicable license agreement, including, without limitation,  

Info: that your use is for the sole purpose of programming logic  

Info: devices manufactured by Intel and sold by Intel or its  

Info: authorized distributors. Please refer to the applicable  

Info: agreement for further details. 

Info: Processing started: Mon Mar 13 17:10:04 2017 

Info: Command: quartus_pgm -m jtag -c USB-Blaster[2-2] -o p;tPad_Selector.sof 

Info (213045): Using programming cable "USB-Blaster [2-2]" 

Inconsistency detected by ld.so: dl-close.c: 811: _dl_close: Assertion `map->l_init_called' failed! 

Info (213011): Using programming file tPad_Selector.sof with checksum 0x00BBDF04 for device EP4CE115F29@1 

Info (209060): Started Programmer operation at Mon Mar 13 17:10:05 2017 

Info (209016): Configuring device index 1 

Info (209017): Device 1 contains JTAG ID code 0x020F70DD 

Info (209007): Configuration succeeded -- 1 device(s) configured 

Info (209011): Successfully performed operation(s) 

Info (209061): Ended Programmer operation at Mon Mar 13 17:10:11 2017 

Info: Quartus Prime Programmer was successful. 0 errors, 0 warnings 

Info: Peak virtual memory: 453 megabytes 

Info: Processing ended: Mon Mar 13 17:10:11 2017 

Info: Elapsed time: 00:00:07 

Info: Total CPU time (on all processors): 00:00:01 

 

------ 

bams colleges bangalore (http://www.admissiongroup.com/bams-colleges-course-direct-management-nri-quota-admission-educational-consultants-fee-structure.html

sri krishna institute of technology bangalore admission (http://www.admissionpro.in/sri-krishna-institute-of-technology-bangalore-fee-structure-nri-direct-management-quota.html)
0 Kudos
Altera_Forum
Honored Contributor II
1,287 Views

 

--- Quote Start ---  

As far as I know, unfortunately there is no config file for DE2-115. You may want to try 3c120, but I am not sure if that will work 

--- Quote End ---  

 

 

It seems that the config file for 3c120 actually works. It also outputs from my jtag that is says 3c120 so it seems compatible 

 

My Altera DE2-115 outputs the following 

 

$ jtagconfig1) USB-Blaster 020F70DD EP3C120/EP4CE115
0 Kudos
Altera_Forum
Honored Contributor II
1,287 Views

 

--- Quote Start ---  

It seems that the config file for 3c120 actually works. It also outputs from my jtag that is says 3c120 so it seems compatible 

 

My Altera DE2-115 outputs the following 

 

$ jtagconfig1) USB-Blaster 020F70DD EP3C120/EP4CE115 

--- Quote End ---  

 

 

Oh, it looks like the EP4CE115 (used in the DE-115) shares the same IDCODE as the EP3C120 - which is why the Quartus programmer detects them as such. I guess their package pinouts will be different though. But it is good to know that the Nios config file works :)
0 Kudos
Reply