UPGRADE YOUR BROWSER

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!

cancel
Showing results for 
Search instead for 
Did you mean: 
Observer accord123
Observer
877 Views
Registered: ‎07-21-2015

Internal error in Linux kernel

Hello everyone,
  We are using linux 4.9 version kernel on Zynq-7030 custom board and we are facing below issue.
 
Custom board kept for log test, after running 10 successful days  following error is thrown in one of our custom driver.
 
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = db4d0000
[00000000] *pgd=1b4e8831, *pte=00000000, *ppte=00000000
Internal error: Oops - BUG: 80000007 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0 PID: 872 Comm: vfd_display.elf Not tainted 4.9.0-xilinx #1232
Hardware name: Xilinx Zynq Platform
task: de175900 task.stack: db478000
PC is at 0x0
LR is at Check_SPI_Fifo+0x30/0x48
pc : [<00000000>]    lr : [<c04f993c>]    psr: 600d0013
sp : db479ef8  ip : 00000000  fp : b2509e3c
r10: 00000000  r9 : db478000  r8 : 0000000c
r7 : 40046163  r6 : 00000051  r5 : c0a61f99  r4 : 00000001
r3 : 00000000  r2 : 00000000  r1 : fffffffd  r0 : 0147adf0
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment none
Control: 18c5387d  Table: 1b4d004a  DAC: 00000051
Process vfd_display.elf (pid: 872, stack limit = 0xdb478210)
Stack: (0xdb479ef8 to 0xdb47a000)
9ee0:                                                       0008a838 c04f9d38
9f00: 0008a838 ddcceb50 db4f8f00 c01de608 00002000 c01deea4 0000001c 791eaa5e
9f20: 00000001 de113700 de113760 0000001c de002600 0008cee0 00000000 51114639
9f40: 000000f0 00000000 00000080 0008cee4 51114639 c01751dc 0008cee0 00000000
9f60: ffffffff c01582a8 db4f8f00 0008a838 db4f8f01 db4f8f00 40046163 0000000c
9f80: db478000 00000000 b2509e3c c01df028 b250a460 be892c78 00000000 00000036
9fa0: c0106fc4 c0106e00 b250a460 be892c78 0000000c 40046163 0008a838 40046163
9fc0: b250a460 be892c78 00000000 00000036 b2509fa0 00000000 00000000 b2509e3c
9fe0: 00066194 b2509e2c 00040164 b6dd52fc 600d0010 0000000c 0000f8d4 0000072c
[<c04f993c>] (Check_SPI_Fifo) from [<c04f9d38>] (spi_master_ioctl+0x128/0x154)
[<c04f9d38>] (spi_master_ioctl) from [<c01de608>] (vfs_ioctl+0x20/0x34)
[<c01de608>] (vfs_ioctl) from [<c01deea4>] (do_vfs_ioctl+0x764/0x8b4)
[<c01deea4>] (do_vfs_ioctl) from [<c01df028>] (SyS_ioctl+0x34/0x5c)
[<c01df028>] (SyS_ioctl) from [<c0106e00>] (ret_fast_syscall+0x0/0x3c)
Code: bad PC value
---[ end trace dad549ca9b048fdd ]---
 
 
Error thrown in one of our function Check_SPI_Fifo , which run successfully for 10 days.
Where Pll_Spi_System_addr holds FPGA SPI base address .
 
Code snippet:
 
T_VOID ExtnDeassertSpiCs(T_U16 chip_select)
{
  T_U16 var_i=M_ZERO;
  *(T_U32 *)(Pll_Spi_System_addr+M_SSR_OFFSET) = 0xFFFFFFFF;
  for(var_i=M_ZERO;var_i<M_HUNDRED;var_i++);
                 
}
 
T_VOID Check_SPI_Fifo(void)
{
  T_U32 spi_tx_fifo = 0;
  T_U32 iter=0;
 
do{
    spi_tx_fifo = *(volatile T_U32*)(Pll_Spi_System_addr+0x64);
    spi_tx_fifo = (spi_tx_fifo & 0x04)>>M_TWO;
    if(M_ONE == spi_tx_fifo)
     {
       udelay(100);
       ExtnDeassertSpiCs(0x01);
      
       break;
     }
   }while(1);
}
 
Please help us to solve this issue.
 
Regards,
Kishore Poojari
0 Kudos
1 Reply
Highlighted
Observer gustoff
Observer
766 Views
Registered: ‎07-07-2016

Re: Internal error in Linux kernel

I have the same linux kernel and also have Internal kernel error, but our error in I2C part.

Could anyone from Xilinx stuff try to clarify about it (what means BUG error code section?)?

 

With regards,

Gustov Vladimir

0 Kudos