Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
9 years ago

How to build linux for DE2-115

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

6 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- 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
    
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    $ 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)
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- 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
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- 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 :)