Forum Discussion
Problem with the nios2-linux-20100621
I've followed the instruction provided by
http://www.alterawiki.com/w/index.php?title=creating_a_nios_ii_design_with_an_mmu&oldid=1864 I've created a custom board for my DE2 FPGA dev. board. After make menuconfig, I tried to ' make ', but failed with the following errors/ warnings: In file included from /usr/local/src/nios2-linux/linux-2.6/include/linux/sched.h:57, from /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:12: /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c: In function 'main': /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:122: error: 'DDR_SDRAM_BASE' undeclared (first use in this function) /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:122: error: (Each undeclared identifier is reported only once /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:122: error: for each function it appears in.) /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:123: error: 'DDR_SDRAM_SPAN' undeclared (first use in this function) /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:134: error: 'KERNEL_REGION_BASE' undeclared (first use in this function) /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:136: error: 'FAST_TLB_MISS_EXCEPTION_ADDR' undeclared (first use in this function) make[3]: *** [arch/nios2/kernel/asm-offsets.s] Error 1 make[2]: *** [prepare0] Error 2 make[1]: *** [sub-make] Error 2 make[1]: Leaving directory `/usr/local/src/nios2-linux/linux-2.6' make: *** [linux] Error 1 Anyone has idea? Thx!12 Replies
- Altera_Forum
Honored Contributor
--- Quote Start --- I've followed the instruction provided by http://www.alterawiki.com/w/index.php?title=creating_a_nios_ii_design_with_an_mmu&oldid=1864 I've created a custom board for my DE2 FPGA dev. board. After make menuconfig, I tried to ' make ', but failed with the following errors/ warnings: In file included from /usr/local/src/nios2-linux/linux-2.6/include/linux/sched.h:57, from /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:12: /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: warning: "SYS_CLK_TIMER_FREQ" is not defined /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/include/linux/jiffies.h:257:31: error: division by zero in# if /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c: In function 'main': /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:122: error: 'DDR_SDRAM_BASE' undeclared (first use in this function) /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:122: error: (Each undeclared identifier is reported only once /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:122: error: for each function it appears in.) /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:123: error: 'DDR_SDRAM_SPAN' undeclared (first use in this function) /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:134: error: 'KERNEL_REGION_BASE' undeclared (first use in this function) /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:136: error: 'FAST_TLB_MISS_EXCEPTION_ADDR' undeclared (first use in this function) make[3]: *** [arch/nios2/kernel/asm-offsets.s] Error 1 make[2]: *** [prepare0] Error 2 make[1]: *** [sub-make] Error 2 make[1]: Leaving directory `/usr/local/src/nios2-linux/linux-2.6' make: *** [linux] Error 1 Anyone has idea? Thx! --- Quote End --- Those instructions are severely out of date unfortunately. I just recently annoyed the email list to get it explained to me. I've promised to update the instructions as soon as I get my design working but that has not happened yet. Here's the short version... The good news is the parts about the TLB setup are still accurate. But the method to get your board supported is much different. After you build your design, open a nios terminal in the directory where your .sopcinfo file is. Execute the command "sopc-create-header files --single custom_fpga.h". This will create a file with all your addresses in it. Transfer that file to the linux-2.6/arch/nios/include/asm directory, over writing the old custom_fpga.h. In the make menuconfig, you need to select the "NIOSII board configuration" menu and make sure that (Nios Embedded Evaluation Kit) is selected for the board configuration and (Custom_FPGA) is selected for the FPGA configuration. That should get you to a booting kernel. I'm still struggling with Ethernet myself, there are some driver weirdnesses like you have to have your DMA addresses spaced at least 0x400 apart because of the memory allocations issues. Good luck. David - Altera_Forum
Honored Contributor
Thanks. I've tried it, but still the same errors / warnings. I've picked up the NEEK along with the Custom FPGA option in ' make menuconfig '. I've tried that sopc command to generate a .h file and cp it to the directory you mentioned. But still the same result :( Maybe the only solution is to turn back for old versions...sign
- Altera_Forum
Honored Contributor
--- Quote Start --- Thanks. I've tried it, but still the same errors / warnings. I've picked up the NEEK along with the Custom FPGA option in ' make menuconfig '. I've tried that sopc command to generate a .h file and cp it to the directory you mentioned. But still the same result :( Maybe the only solution is to turn back for old versions...sign --- Quote End --- The instructions are severely dated and not in sync with the cutting edge stuff but it is possible to get it working. Few other things From your error message it looks like maybe your clock might be named the wrong thing? You need to have a full featured timer with a 10mS period named "sys_clk_timer" in your system. If you have an interrupt 0 in your system, it has to be the timer interrupt. Also it looks like you may not have a RAM component named "ddr_sdram". That is also necessary. Basically I would open one of the working designs and copy their device names exactly. Even if your RAM is not DDR, it has to be named "ddr_sdram" or you have to modify the code base. David - Altera_Forum
Honored Contributor
Thanks. I would try another time. And, may I ask that how do you get these instructions on naming the components? I've found nothing related to the 'naming' part of uClinux. The only thing i know is that I must name my dm9000a 'DM9000A'. Thank you very much ! :D
- Altera_Forum
Honored Contributor
--- Quote Start --- Thanks. I would try another time. And, may I ask that how do you get these instructions on naming the components? I've found nothing related to the 'naming' part of uClinux. The only thing i know is that I must name my dm9000a 'DM9000A'. Thank you very much ! :D --- Quote End --- I got my answers by bugging the snot out of the email list for nios-linux. I promised that I would update the Wiki with more up-to-date instructions if they would tolerate my newbie questions. So I just got my Ethernet / Memory bug squashed today so I plan to spend some time updating the wiki in the next few evenings and weekends. David - Altera_Forum
Honored Contributor
Thx a lot. I've 'wget' some older nios2-linux from niosftp and will try them later. Another question is that, for older versions , I can select DM9000 as well as DM9000A with offloading checksum , and some instruction said that for DE2 dev kit, I should select the later one. I've tried it but there is no string like 'dm9000 driver xxxxx' in nios2-terminal and 'ifconfig' cannot bring the eth0 uplink. But when I choose DM9000, some errors occurs. Have you encountered such problems? Thanks!!!! :D
- Altera_Forum
Honored Contributor
Ok, bump into another problem.
/usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c: In function `main': /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:134: error: `KERNEL_REGION_BASE' undeclared (first use in this function) /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:134: error: (Each undeclared identifier is reported only once /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:134: error: for each function it appears in.) /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:136: error: `FAST_TLB_MISS_EXCEPTION_ADDR' undeclared (first use in this function) I've selected the niosnommu branch , and NEEK / Custom Board. There exists no SYS_TIMER problems anymore, but new problems here... - Altera_Forum
Honored Contributor
--- Quote Start --- Ok, bump into another problem. /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c: In function `main': /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:134: error: `KERNEL_REGION_BASE' undeclared (first use in this function) /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:134: error: (Each undeclared identifier is reported only once /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:134: error: for each function it appears in.) /usr/local/src/nios2-linux/linux-2.6/arch/nios2/kernel/asm-offsets.c:136: error: `FAST_TLB_MISS_EXCEPTION_ADDR' undeclared (first use in this function) I've selected the niosnommu branch , and NEEK / Custom Board. There exists no SYS_TIMER problems anymore, but new problems here... --- Quote End --- Ok, you are venturing into unexplored territory for me but I will try to help... The noMMU branch is where all the NIOS linux work started but now all the active development is in the MMU branch. So your error message tells me that it is looking for components that are necessary for an MMU build (the translation look aside buffer, TLB ). So that means it is trying to build an MMU kernel. If you want to build a no MMU design, at the very first menu of "make menuconfig" you have to change the vendor / product selection from "nios2" to "nios2nommu". But it sounds like you have already done that. My guess is that you can't mix the old and new build methods. The no MMU branch did not use the custom FPGA method for getting hardware addresses into the build system, it used the "make VENDOR_HWSELECT" method detailed here (http://www.alterawiki.com/wiki/uclinuxdist) . I would suggest an mmu design though because it is more current and better supported and it is what I have finally got up and working. Good luck, David - Altera_Forum
Honored Contributor
Thanks for the advice. I tried 'git' and find that I'm not on the branch of nios2-test. I've switched to it. What's more, I'm compiling the tool-chain. With older versions I've managed to bring the DM9000A into work. But I would like to give the new version another try.
- Altera_Forum
Honored Contributor
Hello, I've solved the problem...Actually you can still use ' make vendor_hwselect ' even with the state-of-the-art version.
1. Make sure that you are in the branch 'test-nios2' ( using git branch -a and switch to 'test-nios2' 2. Build the tool-chain (took me almst 1:30 hrs...huh) 3. set the $PATH to the toolchain-build/build/nios2/bin 4. make menuconfig /make vendor_hwselect / make That's all!