Forum Discussion

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

Kernel panic during boot [Nios II on DE0-Nano]

Hi,

I am trying to boot Linux on the DE0-Nano and I have a Nios II system configured with Qsys as follows:

sdram

Base address is 0x10..00 and is 32Mbytes

Nios II/f (no MMU, no MPU)

Reset Vector (offset 0x00..00) and Exception Vector (0x00..20) assigned to sdram.s1

4 Kbytes of instruction and data cache, data cache line size is 32 bytes.

All clock inputs are driven from sdram_clk which is from Altera University Program - Clock Signals for DE-series Boards, fed from the 50MHz on board clock. Plus jtag_uart, timer, and pio devices for the leds, switches, and push buttons.

I am using uClinux-dist from ftp://ftp.altera.com/outgoing/nios2-linux/20120802/nios2-linux-uclinux-dist-20120802.tgz, Linux kernel from http://sopc.et.ntust.edu.tw/git/linux-2.6.git/ (HEAD (origin/nios2)), and GNU toolchain from ftp://ftp.altera.com/outgoing/nios2-linux/toolchain/sourceryg++-2012.09-110-nios2-linux-gnu-i686-pc-linux-gnu.tar.bz2.

It seems as though I can build the kernel, busybox, etc. and end up with a zImage[.initramfs.gz] file which I download to the FPGA using nios2-download zImage and then start the nios2-terminal. The kernel starts to boot/load but encounters a panic as you can see in the following text.


Using cable "USB-Blaster ", device 1, instance 0x00
Pausing target processor: OK
Initializing CPU cache (if present)
OK
Downloaded 714KB in 3.6s (198.3KB/s)
Verified OK                         
Starting processor at address 0x10500000
nios2-terminal: connected to hardware target using JTAG UART on cable
nios2-terminal: "USB-Blaster ", device 1, instance 0
nios2-terminal: (Use the IDE stop button or Ctrl-C to terminate)
Linux version 3.7.0-01377-g1061bd7-dirty (rlake@snowy) (gcc version 4.7.2 (Sourcery CodeBench Lite 2012.09-110) )# 149 Wed Mar 5 00:15:28 NST 2014
bootconsole  enabled
early_console initialized at 0x84001050
On node 0 totalpages: 8192
free_area_init_node: node 0, pgdat 10175ca4, node_mem_map 10181a80
  DMA zone: 64 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 8128 pages, LIFO batch:0
pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
pcpu-alloc:  0 
Built 1 zonelists in Zone order, mobility grouping off.  Total pages: 8128
Kernel command line: debug console=ttyAL0,115200
PID hash table entries: 128 (order: -3, 512 bytes)
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory available: 30908k/2048k RAM (1106k kernel code, 427k data)
NR_IRQS:64
Calibrating delay loop... 24.16 BogoMIPS (lpj=120832)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
BUG: failure at .../nios2-linux/linux/mm/slab.c:3171/cache_alloc_refill()!
Kernel panic - not syncing: BUG!

I'm looking for some advice/recommendations on how to fix this problem. I will provide more details about my setup if necessary.

Thank you.

Rob