AnsweredAssumed Answered

hardware trace infomation differ with the "bfin-linux-uclibc-objdump -d" output

Question asked by HuJunhu on Feb 4, 2015
Latest reply on Feb 15, 2015 by sonic

Hi, there

I have got a strange problem with my customer BF607 board, running with uclinux-2014R1, which compiled with toolchain 2014R1-RC2 full version.

Uclinux can boot up normally. When running for a long time, I would get a "data access misaligned address violation" error.

The hardware trace output:

Data access misaligned address violation

5 - Attempted misaligned data memory or data cache access.

Kernel OOPS in progress

Deferred Exception context

CURRENT PROCESS:

COMM=demo PID=414  CPU=0

TEXT = 0x05600000-0x05695034        DATA = 0x06000034-0x069ee8ac

BSS = 0x069ee8ac-0x04e00000  USER-STACK = 0x04e1fe30

 

return address: [0x0015ce46]; contents of:

0x0015ce20:  6899  094a  18f2  0000  0000  0000  e522  0029

0x0015ce30:  5aaa  0c42  1bea  0000  0000  0000  a4d0  5420

0x0015ce40:  0c00  1cd4  6002 [a0d0] 9318  a110  b058  9950

0x0015ce50:  6079  5401  3208  5f4d  202e  e122  6488  0817

 

CPU: 0 PID: 414 Comm: demo Tainted: G           O 3.10.10-ADI-2014R1 #33

task: 04ed1580 ti: 0528a000 task.ti: 0528a000

Compiled for cpu family 0x27fe (Rev 0), but running on:0x0000 (Rev 0)

ADSP-BF609-0.0 400(MHz CCLK) 100(MHz SCLK) (mpu off)

Linux version 3.10.10-ADI-2014R1 (hu@centos.localdomain) (gcc version 4.3.5 (ADI-2014R1-RC2) ) #33 Tue Feb 3 09:34:42 CST 2015

 

SEQUENCER STATUS:               Tainted: G           O

SEQSTAT: 00000024  IPEND: 8008  IMASK: ffff  SYSCFG: 2806

  EXCAUSE   : 0x24

  physical IVG3 asserted : <0xffa0079c> { _trap + 0x0 }

  physical IVG15 asserted : <0xffa00dc0> { _evt_system_call + 0x0 }

  logical irq   6 mapped  : <0xffa00414> { _bfin_coretmr_interrupt + 0x0 }

  logical irq   8 mapped  : <0x00008af8> { _dpm0_isr + 0x0 }

  logical irq  11 mapped  : <0x000073d8> { _l2_ecc_err + 0x0 }

  logical irq  19 mapped  : <0x051a10e0> { :bfin_kp:_kq_timer_irq_handler + 0x0 }

  logical irq  39 mapped  : <0x0013e2b0> { _bfin_twi_interrupt_entry + 0x0 }

  logical irq  40 mapped  : <0x0013e2b0> { _bfin_twi_interrupt_entry + 0x0 }

  logical irq  41 mapped  : <0x0014eff4> { _ipi_handler_int0 + 0x0 }

  logical irq  43 mapped  : <0x04ab4184> { :bfin_l2_share:_bfin_l2_share_irq + 0x0 }

  logical irq  75 mapped  : <0x00118038> { _stmmac_interrupt + 0x0 }

  logical irq  77 mapped  : <0x00118038> { _stmmac_interrupt + 0x0 }

  logical irq  87 mapped  : <0x000e7410> { _bfin_serial_dma_tx_int + 0x0 }

  logical irq  88 mapped  : <0x000e7608> { _bfin_serial_dma_rx_int + 0x0 }

  logical irq  95 mapped  : <0x00144a2c> { _bfin_crypto_crc_handler + 0x0 }

  logical irq 138 mapped  : <0x00008af8> { _dpm0_isr + 0x0 }

  logical irq 189 mapped  : <0x05424720> { :bfin_ext_uart:_ext_uart_irq_handler + 0x0 }

  logical irq 250 mapped  : <0x05128f00> /* kernel dynamic memory (maybe user-space) */

  logical irq 253 mapped  : <0x05128f00> /* kernel dynamic memory (maybe user-space) */

RETE: <0x00000000> /* Maybe null pointer? */

RETN: <0x0528bc44> /* kernel dynamic memory (maybe user-space) */

RETX: <0x00000480> /* Maybe fixed code section */

RETS: <0x001bb556> { _packet_sendmsg + 0x8ce }

PC  : <0x0015ce46> { _skb_flow_dissect + 0x86 }

DCPLB_FAULT_ADDR: <0x04f8002c> /* kernel dynamic memory (maybe user-space) */

ICPLB_FAULT_ADDR: <0x0015ce46> { _skb_flow_dissect + 0x86 }

PROCESSOR STATE:

R0 : 00000000    R1 : 00000008    R2 : 00000006    R3 : 00000002

R4 : 0000ff3f    R5 : 0528bc7c    R6 : 0528bc54    R7 : 00000008

P0 : 051a0000    P1 : 00000013    P2 : 04f8001e    P3 : 0528bd20

P4 : 04a8a6c0    P5 : 0000000e    FP : 0528bc94    SP : 0528bb68

LB0: ffa01520    LT0: ffa0151e    LC0: 00000000

LB1: 04c21d23    LT1: 04c21d22    LC1: 00000000

B0 : 00000000    L0 : 00000000    M0 : fffffffc    I0 : 00278b48

B1 : 00000000    L1 : 00000000    M1 : 00000000    I1 : 057fe574

B2 : 00000000    L2 : 00000000    M2 : 00000000    I2 : 00000000

B3 : 00000000    L3 : 00000000    M3 : 00000000    I3 : 00000000

A0.w: 0000051e   A0.x: 00000000   A1.w: 0000051e   A1.x: 00000000

USP : 057fc12c  ASTAT: 02003065

 

Hardware Trace:

   0 Target : <0x00003bf0> { _trap_c + 0x0 }

     Source : <0xffa00730> { _exception_to_level5 + 0xa0 } JUMP.L

   1 Target : <0xffa00690> { _exception_to_level5 + 0x0 }

     Source : <0xffa0054a> { _bfin_return_from_exception + 0x6 } RTX

   2 Target : <0xffa00544> { _bfin_return_from_exception + 0x0 }

     Source : <0xffa005e8> { _ex_trap_c + 0x70 } JUMP.S

   3 Target : <0xffa00578> { _ex_trap_c + 0x0 }

     Source : <0xffa007c6> { _trap + 0x2a } JUMP (P4)

   4 Target : <0xffa0079c> { _trap + 0x0 }

     FAULT : <0x0015ce46> { _skb_flow_dissect + 0x86 } P0 = W[P2 + 3]

     Source : <0x0015cff0> { _skb_flow_dissect + 0x230 } JUMP.S

   5 Target : <0x0015cfea> { _skb_flow_dissect + 0x22a }

     Source : <0x0015ce42> { _skb_flow_dissect + 0x82 } IF CC JUMP pcrel (BP)

   6 Target : <0x0015ce12> { _skb_flow_dissect + 0x52 }

     Source : <0x0015ce06> { _skb_flow_dissect + 0x46 } IF CC JUMP pcrel

   7 Target : <0x0015cdc0> { _skb_flow_dissect + 0x0 }

     Source : <0x001bb552> { _packet_sendmsg + 0x8ca } JUMP.L

   8 Target : <0x001bb54c> { _packet_sendmsg + 0x8c4 }

     Source : <0x001bb520> { _packet_sendmsg + 0x898 } IF CC JUMP pcrel

   9 Target : <0x001bb518> { _packet_sendmsg + 0x890 }

     Source : <0x001bb4e6> { _packet_sendmsg + 0x85e } IF CC JUMP pcrel (BP)

  10 Target : <0x001bb4c4> { _packet_sendmsg + 0x83c }

     Source : <0x001bb496> { _packet_sendmsg + 0x80e } IF CC JUMP pcrel (BP)

  11 Target : <0x001bb47c> { _packet_sendmsg + 0x7f4 }

     Source : <0x00150d62> { _sock_tx_timestamp + 0x3e } RTS

  12 Target : <0x00150d5e> { _sock_tx_timestamp + 0x3a }

     Source : <0x00150d50> { _sock_tx_timestamp + 0x2c } IF CC JUMP pcrel

  13 Target : <0x00150d4a> { _sock_tx_timestamp + 0x26 }

     Source : <0x00150d42> { _sock_tx_timestamp + 0x1e } IF CC JUMP pcrel (BP)

  14 Target : <0x00150d24> { _sock_tx_timestamp + 0x0 }

     Source : <0x001bb478> { _packet_sendmsg + 0x7f0 } JUMP.L

  15 Target : <0x001bb470> { _packet_sendmsg + 0x7e8 }

     Source : <0x001bb458> { _packet_sendmsg + 0x7d0 } IF CC JUMP pcrel

Kernel Stack

Stack info:

SP: [0x0528bf24] <0x0528bf24> /* kernel dynamic memory (maybe user-space) */

Memory from 0x0528bf20 to 0528c000

0528bf20: 00000014 [04c3770c] 00008000  00000000  00000000  0528c000  04c3770c  04c3770c

0528bf40: 05178724  ffa00e26  02001065  04c21d23  04c2595d  04c21d22  04c2595c  00000000

0528bf60: 00000000  0000051e  00000000  0000051e  00000000  00000000  00000000  00000000

0528bf80: 00000000  00000000  00000000  00000000  00000000  00000000  00000000  00000000

0528bfa0: fffffffc  00000000  00000000  051e9710  0698c53a  057fc12c  057fc138  0698c55c

0528bfc0: 057feea4  051e9710  057feea4  04c376f8  00000146  0000000e  051e1200  00000014

0528bfe0: 057fe4e4  00000000  00000056  057fe520  0000000e  0000000e  00000146  00002806

Return addresses in stack:

Modules linked in: bfin_kp(O) bfin_lcd(O) bfin_ext_uart(O) dm9000 bfin_l2_share(O)

Kernel panic - not syncing: Kernel exception

But I do  "bfin-linux-uclibc-objdump -d output/build/linux-custom/vmlinux | less" and get output around  15ce46 :

  15ce3c:d0 a4    R0 = W[P2 + 0x6] (Z);
  15ce3e:20 54    R0 = R0 & R4;
  15ce40:00 0c    CC = R0 == 0x0;
  15ce42:d4 1c    IF CC JUMP 0x15cfea <_skb_flow_dissect+0x22a> (BP);
  15ce44:02 60    R2 = 0x0 (X);    /*       R2=0x0(  0) */
  15ce46:d0 a0    R0 = [P2 + 0xc];
  15ce48:18 93    [P3] = R0;
  15ce4a:10 a1    R0 = [P2 + 0x10];
  15ce4c:58 b0    [P3 + 0x4] = R0;
  15ce4e:50 99    R0 = B[P2] (X);
  15ce50:79 60    R1 = 0xf (X);    /*       R1=0xf( 15) */
  15ce52:01 54    R0 = R1 & R0;
  15ce54:08 32    P1 = R0;
  15ce56:4d 5f    P5 = P5 + (P1 << 0x2);

The operation code "d0 a0" is the same as in memery, but the disassemble of the oper-code "R0 = [P2 + 0xc]" is different with "P0 = W[P2 + 3]" from hareware trace.(The immediate number 3 is the reason that causes this error.)

This is very stange.

Does anyone have any idea about this?

Thanks,

Junhu Hu

Outcomes