This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Resetting the Broadcom NetXtreme BCM5751 chip in TIGON3 driver (tg3.c) causes the system to crash on Mistral DM814X EVM

Other Parts Discussed in Thread: TLC59108

I am using ti-ezsdk_dm814x-evm_5_05_02_00 to build the Linux system including TIGON3 driver module for Broadcom NetXtreme BCM5751 based Gigabit Ethernet Controller card as a PCIe Endpoint. However, when I load the tg3.ko module, it causes the system to crash in tg3_chip_reset() function while resetting the BCM57xx chip. May be EP reset causes the system/PCIe bus to go in undefined state. Our BCM5751 card works fine with Linux driver tg3.ko on Dell machine but why are we facing this reset issue with Mistral DM814x EVM Rev D? Is there any hardware/software configuration that we are missing.

- We are setting the max. remote read request size (MRRQS) to 128

- Placing the firmware files (tg3.bin and tg3_tso/bin) in the root file system at /lib/firmware

Your urgent insight in this matter will be highly appreciated.

Thanks.

  • Here is the Linux trace when system crashes in the chip reset:

    root@dm814x-evm:/lib/modules/2.6.37/kernel/drivers/ethernet# insmod tg3.ko
    tg3.c:v3.115 (October 14, 2010)
    PCI: enabling device 0000:01:00.0 (0140 -> 0142)
    tg3 0000:01:00.0: eth1: Tigon3 [partno(BCM95751A519) rev 4000] (PCI Express) MAC
    address 00:10:18:06:0e:ee
    tg3 0000:01:00.0: eth1: attached PHY is 5750 (10/100/1000Base-T Ethernet) (WireS
    peed[1])
    tg3 0000:01:00.0: eth1: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1]
    tg3 0000:01:00.0: eth1: dma_rwctrl[76180000] dma_mask[64-bit]
    root@dm814x-evm:/lib/modules/2.6.37/kernel/drivers/ethernet# Unhandled fault: Pr
    ecise External Abort on non-linefetch (0x1008) at 0xdbae4000
    Internal error: : 1008 [#1]
    last sysfs file: /sys/devices/pci0000:00/0000:00:00.0/0000:01:00.0/device
    Modules linked in: tg3 broadcom tlc59108 ti81xxhdmi ti81xxfb vpss syslink
    CPU: 0 Not tainted (2.6.37 #5)
    PC is at tg3_write_flush_reg32+0x1c/0x28 [tg3]
    LR is at tg3_chip_reset+0x558/0x88c [tg3]
    pc : [<bf3dd08c>] lr : [<bf3e45a0>] psr: 40000013
    sp : d5919d18 ip : d5919d28 fp : d5919d24
    r10: ffc15000 r9 : 00005717 r8 : d5c183a0
    r7 : bf3dd070 r6 : d5c184e0 r5 : d5c18360 r4 : 00001388
    r3 : dbae0000 r2 : 00000002 r1 : 00004000 r0 : d5c18360
    Flags: nZcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
    Control: 10c5387d Table: 95940019 DAC: 00000015
    Process ifconfig (pid: 1492, stack limit = 0xd59182e8)
    Stack: (0xd5919d18 to 0xd591a000)
    9d00: d5919d54 d5919d28
    9d20: bf3e45a0 bf3dd07c 00000001 ffffffff 00000000 f70f0001 00000001 d5c18360
    9d40: 00000001 00000000 d5919da4 d5919d58 bf3e4d5c bf3e4054 00000000 00000000
    9d60: d5c18360 00000001 00000001 00000000 d5c183a0 00005717 ffc15000 d5c18360
    9d80: 00000001 00000001 00000000 d5c183a0 00005717 ffc15000 d5919dbc d5919da8
    9da0: bf3e6f1c bf3e4d08 d5c18360 00000001 d5919dfc d5919dc0 bf3ece8c bf3e6ef0
    9dc0: d5c18000 d5c18400 c008b9c0 c008b988 00000000 d5c18000 bf3f3fb8 00001043
    9de0: 00001002 d5e5610c 00000000 d5c18000 d5919e14 d5919e00 c0349f80 bf3ec8e8
    9e00: d5c18000 00000041 d5919e34 d5919e18 c03473d4 c0349ee4 d5c18000 00001002
    9e20: d5e56100 d5919e70 d5919e54 d5919e38 c0349ea4 c0347348 00000001 00000000
    9e40: d5e56100 d5919e70 d5919ebc d5919e58 c038bd90 c0349e98 beab8c78 00008914
    9e60: 31687465 00000000 00000000 00000000 000a1043 400a4b78 4000ebd0 00000001
    9e80: 000a1043 400a4b78 4000ebd0 00000001 000a1002 beab8c78 00008914 beab8c78
    9ea0: 00000003 beab8c78 d5918000 00000000 d5919ed4 d5919ec0 c038cf70 c038bab4
    9ec0: 00000000 00008914 d5919ef4 d5919ed8 c0338564 c038ceac 00000000 d593e780
    9ee0: 00000003 00000003 d5919f04 d5919ef8 c00d66ec c0338380 d5919f74 d5919f08
    9f00: c00d6dfc c00d66d0 c040a5c0 00000003 d6298480 d5919f38 d5919f64 d5919f28
    9f20: c0339a70 c00caf2c 00000000 00000000 00000000 c04fcc85 d6429c80 d62a2e80
    9f40: 00000000 00000002 00000196 00000000 beab8c78 00008914 00000003 d593e780
    9f60: d5918000 00000000 d5919fa4 d5919f78 c00d6e94 c00d6908 d5919fa4 00000000
    9f80: c033a5f8 0008eef4 beab8f92 beab8f92 00000036 c0046fa8 00000000 d5919fa8
    9fa0: c0046e00 c00d6e48 0008eef4 beab8f92 00000003 00008914 beab8c78 0008eef4
    9fc0: 0008eef4 beab8f92 beab8f92 00000036 0008ee90 000ae838 00001043 00000042
    9fe0: beab8eb0 beab8c50 000116f0 40244aec 20000010 00000003 00000000 00000000
    Backtrace:
    [<bf3dd070>] (tg3_write_flush_reg32+0x0/0x28 [tg3]) from [<bf3e45a0>] (tg3_chip_
    reset+0x558/0x88c [tg3])
    [<bf3e4048>] (tg3_chip_reset+0x0/0x88c [tg3]) from [<bf3e4d5c>] (tg3_reset_hw+0x
    60/0x21e8 [tg3])
    r7:00000000 r6:00000001 r5:d5c18360 r4:00000001
    [<bf3e4cfc>] (tg3_reset_hw+0x0/0x21e8 [tg3]) from [<bf3e6f1c>] (tg3_init_hw+0x38
    /0x3c [tg3])
    [<bf3e6ee4>] (tg3_init_hw+0x0/0x3c [tg3]) from [<bf3ece8c>] (tg3_open+0x5b0/0x91
    4 [tg3])
    r5:00000001 r4:d5c18360
    [<bf3ec8dc>] (tg3_open+0x0/0x914 [tg3]) from [<c0349f80>] (__dev_open+0xa8/0xf8)
    [<c0349ed8>] (__dev_open+0x0/0xf8) from [<c03473d4>] (__dev_change_flags+0x98/0x
    11c)
    r5:00000041 r4:d5c18000
    [<c034733c>] (__dev_change_flags+0x0/0x11c) from [<c0349ea4>] (dev_change_flags+
    0x18/0x4c)
    r7:d5919e70 r6:d5e56100 r5:00001002 r4:d5c18000
    [<c0349e8c>] (dev_change_flags+0x0/0x4c) from [<c038bd90>] (devinet_ioctl+0x2e8/
    0x668)
    r7:d5919e70 r6:d5e56100 r5:00000000 r4:00000001
    [<c038baa8>] (devinet_ioctl+0x0/0x668) from [<c038cf70>] (inet_ioctl+0xd0/0x100)
    [<c038cea0>] (inet_ioctl+0x0/0x100) from [<c0338564>] (sock_ioctl+0x1f0/0x240)
    r5:00008914 r4:00000000
    [<c0338374>] (sock_ioctl+0x0/0x240) from [<c00d66ec>] (vfs_ioctl+0x28/0x44)
    r7:00000003 r6:00000003 r5:d593e780 r4:00000000
    [<c00d66c4>] (vfs_ioctl+0x0/0x44) from [<c00d6dfc>] (do_vfs_ioctl+0x500/0x540)
    [<c00d68fc>] (do_vfs_ioctl+0x0/0x540) from [<c00d6e94>] (sys_ioctl+0x58/0x7c)
    [<c00d6e3c>] (sys_ioctl+0x0/0x7c) from [<c0046e00>] (ret_fast_syscall+0x0/0x30)
    r8:c0046fa8 r7:00000036 r6:beab8f92 r5:beab8f92 r4:0008eef4
    Code: f57ff04f e5903014 e7832001 e5903014 (e7933001)
    ---[ end trace 8a7803e6230c6e7a ]---
    Kernel panic - not syncing: Fatal exception in interrupt
    Backtrace:
    [<c004abd0>] (dump_backtrace+0x0/0x110) from [<c03d7f7c>] (dump_stack+0x18/0x1c)
    r7:bf3dd090 r6:d5919bc7 r5:bf3dd08e r4:c0571fd0
    [<c03d7f64>] (dump_stack+0x0/0x1c) from [<c03d7fe0>] (panic+0x60/0x17c)
    [<c03d7f80>] (panic+0x0/0x17c) from [<c004af64>] (die+0x284/0x2d8)
    r3:00000200 r2:c0573472 r1:00000000 r0:c04a2b44
    [<c004ace0>] (die+0x0/0x2d8) from [<c004b078>] (arm_notify_die+0x5c/0x60)
    [<c004b01c>] (arm_notify_die+0x0/0x60) from [<c003c2f0>] (do_DataAbort+0x88/0x9c
    )
    r5:c052a7c0 r4:00000007
    [<c003c268>] (do_DataAbort+0x0/0x9c) from [<c03d9fac>] (__dabt_svc+0x4c/0x60)
    Exception stack(0xd5919cd0 to 0xd5919d18)
    9cc0: d5c18360 00004000 00000002 dbae0000
    9ce0: 00001388 d5c18360 d5c184e0 bf3dd070 d5c183a0 00005717 ffc15000 d5919d24
    9d00: d5919d28 d5919d18 bf3e45a0 bf3dd08c 40000013 ffffffff
    r8:d5c183a0 r7:bf3dd070 r6:d5c184e0 r5:d5919d04 r4:ffffffff
    [<bf3dd070>] (tg3_write_flush_reg32+0x0/0x28 [tg3]) from [<bf3e45a0>] (tg3_chip_
    reset+0x558/0x88c [tg3])
    [<bf3e4048>] (tg3_chip_reset+0x0/0x88c [tg3]) from [<bf3e4d5c>] (tg3_reset_hw+0x
    60/0x21e8 [tg3])
    r7:00000000 r6:00000001 r5:d5c18360 r4:00000001
    [<bf3e4cfc>] (tg3_reset_hw+0x0/0x21e8 [tg3]) from [<bf3e6f1c>] (tg3_init_hw+0x38
    /0x3c [tg3])
    [<bf3e6ee4>] (tg3_init_hw+0x0/0x3c [tg3]) from [<bf3ece8c>] (tg3_open+0x5b0/0x91
    4 [tg3])
    r5:00000001 r4:d5c18360
    [<bf3ec8dc>] (tg3_open+0x0/0x914 [tg3]) from [<c0349f80>] (__dev_open+0xa8/0xf8)
    [<c0349ed8>] (__dev_open+0x0/0xf8) from [<c03473d4>] (__dev_change_flags+0x98/0x
    11c)
    r5:00000041 r4:d5c18000
    [<c034733c>] (__dev_change_flags+0x0/0x11c) from [<c0349ea4>] (dev_change_flags+
    0x18/0x4c)
    r7:d5919e70 r6:d5e56100 r5:00001002 r4:d5c18000
    [<c0349e8c>] (dev_change_flags+0x0/0x4c) from [<c038bd90>] (devinet_ioctl+0x2e8/
    0x668)
    r7:d5919e70 r6:d5e56100 r5:00000000 r4:00000001
    [<c038baa8>] (devinet_ioctl+0x0/0x668) from [<c038cf70>] (inet_ioctl+0xd0/0x100)
    [<c038cea0>] (inet_ioctl+0x0/0x100) from [<c0338564>] (sock_ioctl+0x1f0/0x240)
    r5:00008914 r4:00000000
    [<c0338374>] (sock_ioctl+0x0/0x240) from [<c00d66ec>] (vfs_ioctl+0x28/0x44)
    r7:00000003 r6:00000003 r5:d593e780 r4:00000000
    [<c00d66c4>] (vfs_ioctl+0x0/0x44) from [<c00d6dfc>] (do_vfs_ioctl+0x500/0x540)
    [<c00d68fc>] (do_vfs_ioctl+0x0/0x540) from [<c00d6e94>] (sys_ioctl+0x58/0x7c)
    [<c00d6e3c>] (sys_ioctl+0x0/0x7c) from [<c0046e00>] (ret_fast_syscall+0x0/0x30)
    r8:c0046fa8 r7:00000036 r6:beab8f92 r5:beab8f92 r4:0008eef4
  • Zeeshan,

    Zeeshan Aslam said:
    I am using ti-ezsdk_dm814x-evm_5_05_02_00

    This come with PSP04.04.00.01. Can you try with the latest linux kernel code base (which is PSP04.04.00.02 plus several patches above) available at the below branch:

    I can find that this NetXtream BCM5751 chip is tested with DM8148 TI EVM, but with PSP04.04.00.02:

    See also the below links:

    BR
    Pavel