We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Showing results for 
Search instead for 
Did you mean: 
Observer spenser309
Registered: ‎06-16-2009

LL_TEMAC causes kernel oops when pinging

The LL TEMAC works for a couple mins then fails with the following information. This is an XUPV5 with Microblaze 8.00b at 100 MHz and xps_ll_temac 2.03a using EDK 12.4 and linux 3.0.0-rc3 from git.xilinx.com.


Furthermore, I have been unable to request an address using dhcp and have been forced to set a static ip.  When set to promisc mode by using ifup the following kernel oops occurs.


Kernel panic from promisc:


/ # ifup eth0                                                                  
run-parts: /etc/network/if-pre-up.d: No such file or directory                 
kernel task_size exceed                                                        
Oops: Exception in kernel mode, sig: 11                                        
 Registers dump: mode=9ECF3A64                                                 
 r1=C01444B0, r2=00000000, r3=9ECE8000, r4=D000E000                            
 r5=CEC62340, r6=00000038, r7=00070102, r8=00000040                            
 r9=CEC62000, r10=CEC62000, r11=000045A0, r12=C00851A4                         
 r13=00000000, r14=C000BB14, r15=C015C578, r16=00000000                        
 r17=C015C5AC, r18=0000001B, r19=CEC62000, r20=00000000                        
 r21=00000000, r22=CEC62340, r23=00000002, r24=00000000                        
 r25=00000000, r26=CEC62000, r27=D000E800, r28=CEC62340                        
 r29=000065A0, r30=00000800, r31=CECB60E0, rPC=C015C5AC                        
 msr=000046A0, ear=D000E80C, esr=00000872, fsr=C039DE94                        
Kernel panic - not syncing: Aiee, killing interrupt handler!


Stack trace from ping:


------------[ cut here ]------------                                       
WARNING: at lib/dma-debug.c:820 check_unmap+0x1bc/0x858()                      
xilinx_temac 8b480000.ethernet: DMA-API: device driver frees DMA memory with di]
Modules linked in:                                                             
Kernel Stack:                                                                  
c0281cd4: c000f448 00000334 00000000                                           
c0281ce0: c0281d3c c02354bc 00000334 c013413c c000f510 c0212ffc c02354bc 0000034
c0281d00: c013413c c037bc48 00000b28 cf82c2e0 00000000 9ecf4022 00000000 000023a
c0281d20: c0134134 000f4240 03b9aca0 00000000 0000003c 00000000 cf82c2e0 c023590
c0281d40: c0281d54 c01348e4 00000000 c0284e14 c0235910 c0239bb4 cf0a5f00 0000000
c0281d60: 9ecf4022 00000000 0000233a 00000000 0000003c c0046c8c 00000000 0000650
c0281d80: 0000003c 00000000 9ecf4022 9ecf4022 00000000 cec62000 d000e000 cec6230
c0281da0: 000065a0 00000000 c015c780 c0286f04 00000000 00000000 c003d434 0000008
c0281dc0: 00000000 00000000 00000000 cf0a8688 00000000 00000000 00000000 9ecf402
c0281de0: 00000000 0000003c 00000002 00000000 00000000 cf0a8688 cf836a00 c0042a4
c0281e00: c0280000 c0280000 c039c0a4 c001c4b0 c001c4b0 c0281e14 c0042b08 9ece800
c0281e20: ceca3de0 c0286d84 00000004 00000000 00000000 c0286d84 00000000 0000000
c0281e40: 00000000 00000000 c0042c64 c0281e48 00000000 00000004 00000001 0000000
c0281e60: 00000004 c0286d84 c0286d84 00000000 00000000 00000000 00000000 c004564
c0281e80: 000065a0 00000000 00000000 00000000 00000000 00000000 00000004 c00427c
c0281ea0: c0016024 00000000 c0006364 00000002 c0001dac cf8055a4 c0281f00 c0001ac
c0281ec0: c0001aa0 c000a4d4 c02843a8 00000000 cf8055a4 c027edec 00000000 c000634
c0281ee0: c0281ee8 cf82a314 c000a538 00000000 00000000 cf822040 c0001fe8 c028000
c0281f00: c0290c00 c0281f10 c027edec 00010000 000065a2 c0280000 ceca9c60 0000001
c0281f20: cf82a30c 02022e6e 00000000 c028003c 000065a2 c0290c00 c0209e80 c0001f0
c0281f40: 00000000 c020a168 00000041 c0001fe8 00000000 00000000 c0280000 0000000
c0281f60: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 c028438
c0281f80: c0001fbc 000045a0 00000000 00000000 00000000 90281f00 c02069b8 0000000
c0281fa0: c0206978 00000000 c037b0a4 00000000 00000000 00000000 c037b0a4 c0291a4
c0281fc0: 00000000 c028870c 0000012d 00000000 00000000 c037b0a4 c0002468 c02102c
c0281fe0: c02a7400 ffffffff 000002bc c037bc48 000002bc c037b0a4 c0280000 0000000
Call Trace:                                                                    
[<c0003ca0>] microblaze_unwind+0x74/0x8c                                       
[<c0003970>] show_stack+0x104/0x164                                            
[<c00039d8>] dump_stack+0x8/0x20                                               
[<c000f444>] warn_slowpath_common+0x80/0xbc                                    
[<c000f50c>] warn_slowpath_fmt+0x28/0x40                                       
[<c0134130>] check_unmap+0x1b0/0x858                                           
[<c01348e0>] debug_dma_unmap_page+0x84/0xac                                    
[<c015c77c>] ll_temac_rx_irq+0x260/0x350                                       
[<c0042aa0>] handle_irq_event_percpu+0x50/0x1e8                                
[<c0042c60>] handle_irq_event+0x28/0x54                                        
[<c00456f0>] handle_level_irq+0x80/0xfc                                        
[<c0042708>] generic_handle_irq+0x24/0x48                                      
[<c0001a78>] do_IRQ+0x5c/0xe0                                                  
[<c0006360>] _interrupt+0x180/0x184                                            
---[ end trace edde6172111f0337 ]---


Here is the boot messages


Linux version 3.0.0-rc3-29761-gb85a3ef-dirty (spenser@gin) (gcc version 4.1.2) 1
setup_cpuinfo: initialising
setup_cpuinfo: Using full CPU PVR support
cache: wt_msr_noirq
setup_memory: max_mapnr: 0x10000
setup_memory: min_low_pfn: 0x90000
setup_memory: max_low_pfn: 0xa0000
On node 0 totalpages: 65536
free_area_init_node: node 0, pgdat c0290588, node_mem_map c03aa000
  Normal zone: 512 pages used for memmap
  Normal zone: 0 pages reserved
  Normal zone: 65024 pages, LIFO batch:15
pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
pcpu-alloc: [0] 0
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
Kernel command line: console=ttyS0,115200
PID hash table entries: 1024 (order: 0, 4096 bytes)
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 255844k/262144k available
xlnx,xps-intc-1.00.a #0 at 0xd0000000, num_irq=9, edge=0x101
xlnx,xps-timer-1.00.a #0 at 0xd0002000, irq=8
microblaze_timer_set_mode: shutdown                                            
microblaze_timer_set_mode: periodic                                            
Calibrating delay loop... 49.56 BogoMIPS (lpj=247808)                          
pid_max: default: 4096 minimum: 301                                            
Mount-cache hash table entries: 512                                            
NET: Registered protocol family 16                                             
DMA-API: preallocated 65536 debug entries                                      
DMA-API: debugging enabled by kernel config                                    
Switching to clocksource microblaze_clocksource                                
NET: Registered protocol family 2                                              
IP route cache hash table entries: 2048 (order: 1, 8192 bytes)                 
TCP established hash table entries: 8192 (order: 4, 65536 bytes)               
TCP bind hash table entries: 8192 (order: 3, 32768 bytes)                      
TCP: Hash tables configured (established 8192 bind 8192)                       
TCP reno registered                                                            
NET: Registered protocol family 1                                              
RPC: Registered named UNIX socket transport module.                            
RPC: Registered udp transport module.                                          
RPC: Registered tcp transport module.                                          
RPC: Registered tcp NFSv4.1 backchannel transport module.                      
msgmni has been set to 499                                                     
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled                       
83e00000.serial: ttyS0 at MMIO 0x83e01003 (irq = 5) is a 16550                 
console [ttyS0] enabled                                                        
fft_plb: init                                                                  
fft_plb: dynamically allocating major number                                   
fft_plb: Attempting to register driver with openfirmware                       
fft_plb: fft_of_probe                                                          
fft_plb: major 254                                                             
icap 86800000.xps-hwicap: Xilinx icap port driver                              
icap 86800000.xps-hwicap: ioremap 86800000 to d0020000 with size 10000         
Xilinx TEMAC MDIO: probed                                                      
TCP cubic registered                                                           
NET: Registered protocol family 17                                             
Registering the dns_resolver key type                                          
Kernel not built with RTC support, ALARM timers will not wake from suspend     
Freeing unused kernel memory: 933k freed                                       
Starting rcS...                                                                
++ Creating device points                                                      
++ Mounting filesystem                                                         
++ Loading system loggers                                                      
++ Starting telnet daemon                                                      
rcS Complete                                                                   
/ # ls                                                                         
bin   dev   etc   init  lib   mnt   proc  root  sbin  sys   tmp   usr   var    
/ # ifconfig                                                                   
/ # ifconfig eth0 netmask up                     
net eth0: Promiscuous mode disabled.                                           
/ # ------------[ cut here ]------------                                       
WARNING: at lib/dma-debug.c:820 check_unmap+0x1bc/0x858()


0 Kudos
2 Replies
Observer spenser309
Registered: ‎06-16-2009

Re: LL_TEMAC causes kernel oops when pinging

The line at the top of the trace is cut off here is the complete line.
xilinx_temac 8b480000.ethernet: DMA-API: device driver frees DMA memory with different size [device address=0x000000009ecb0022] [map size=9018 bytes] [unmap size=60 bytes]
0 Kudos
Xilinx Employee
Xilinx Employee
Registered: ‎09-10-2008

Re: LL_TEMAC causes kernel oops when pinging



It looks like your using the wrong branch in the tree from git.xilinx.com. The arm-next branch is only for some ARM kernel changes to the mainline and is not intended to be used with MicroBlaze.


We test against our master branch which is 2.6.37 based for now.  We will be updating that in the near future but for now it's untested with MicroBlaze.


We may have left the repository on this branch by default at one time which could have caused you to get confused.  I just checked and it's fine right now (master is the default).  


The "git branch -a" command will show you the branch you are on. You should be able to get the master branch with a command line below.


bash> git checkout -b master origin/master


If you still see the same thing with the master branch let us know.  Thanks and sorry for that confusion.

0 Kudos