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.

Linux/TMDSEVM6678: NetCP driver hangs on restart

Part Number: TMDSEVM6678

Tool/software: Linux

Using linux on the EVM6678, the following command sequence causes the board to hang:

/root # ifconfig eth0 down

/root # ifconfig eth0 up

It may be several seconds before it hangs.  But it always hangs.  No error messages.  No stack trace.  Nothing.  Below is the dmesg prior to attempting restart...

/root # dmesg
Linux version 2.6.34-evmc6678.el-dev-user (user@ubuntu) (gcc version 4.5.1 (Sourcery CodeBench Lite 4.5-124) ) #1 Thu May 4 09:21:17 EDT 2017
Designed for the EVMC6678 board, Texas Instruments.
CPU0: C66x rev 0x0, 1.2 volts, 1000MHz
Initializing kernel
physical RAM map changed by user
Coherent memory (DMA) region start=0x8e000000 end=0x90000000 (size=0x2000000)
disabling caching for 0x8e000000 to 0x8fffffff
On node 0 totalpages: 57344
free_area_init_node: node 0, pgdat 8044f938, node_mem_map 80900000
DMA zone: 448 pages used for memmap
DMA zone: 0 pages reserved
DMA zone: 56896 pages, LIFO batch:0
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 56896
Kernel command line: console=ttyS0,115200 rw mem=256M ip=none initrd=0x80500000,0x400000
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 available: 218444k/224544k RAM, 0k/0k ROM (973k kernel code, 232k data)
SLUB: Genslabs=7, HWalign=128, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Hierarchical RCU implementation.
RCU-based detection of stalled CPUs is enabled.
NR_IRQS:292
Console: colour dummy device 80x25
Calibrating delay loop... 999.42 BogoMIPS (lpj=1998848)
Mount-cache hash table entries: 512
C64x: 9 gpio irqs
NET: Registered protocol family 16
SGMII init complete
bio: create slab <bio-0> at 0
vgaarb: loaded
keystone_qmss keystone_qmss.0: firmware: using built-in firmware keystone/qmss_pdsp_acc48_le_1_0_2_0.fw
TI KeyStone QMSS driver v1.1
KeyStone RapidIO driver v1.1
RIO: register sRIO controller for hostid 0
RIO: port 0 not ready
RIO: port 1 not ready
RIO: port 2 not ready
RIO: port 3 not ready
keystone-pcie: Invoking PCI BIOS ...
keystone-pcie: msi_irq_base: 288
keystone-pcie: msi_irq_num: 4
keystone-pcie: msi_Irq_map: -2147429568
keystone-pcie: Setting up Host Controller...
keystone-pcie: Starting PCI scan...
PCI: bus0: Fast back to back transfers disabled
pci 0000:01:00.0: reg 10: [mem 0x00000000-0x0001ffff 64bit]
pci 0000:01:00.0: reg 18: [io 0x0000-0x001f]
pci 0000:01:00.0: reg 20: [mem 0x00000000-0x00003fff 64bit]
pci 0000:01:00.0: PME# supported from D0 D3hot
pci 0000:01:00.0: PME# disabled
PCI: bus1: Fast back to back transfers disabled
pci 0000:00:00.0: BAR 8: assigned [mem 0x60000000-0x600fffff]
pci 0000:00:00.0: BAR 7: assigned [io 0x70000000-0x70000fff]
pci 0000:01:00.0: BAR 0: assigned [mem 0x60000000-0x6001ffff 64bit]
pci 0000:01:00.0: BAR 0: set to [mem 0x60000000-0x6001ffff 64bit] (PCI address [0x60000000-0x6001ffff]
pci 0000:01:00.0: BAR 4: assigned [mem 0x60020000-0x60023fff 64bit]
pci 0000:01:00.0: BAR 4: set to [mem 0x60020000-0x60023fff 64bit] (PCI address [0x60020000-0x60023fff]
pci 0000:01:00.0: BAR 2: assigned [io 0x70000000-0x7000001f]
pci 0000:01:00.0: BAR 2: set to [io 0x70000000-0x7000001f] (PCI address [0x70000000-0x7000001f]
pci 0000:00:00.0: PCI bridge to [bus 01-01]
pci 0000:00:00.0: bridge window [io 0x70000000-0x70000fff]
pci 0000:00:00.0: bridge window [mem 0x60000000-0x600fffff]
pci 0000:00:00.0: bridge window [mem pref disabled]
PCI: enabling device 0000:00:00.0 (0000 -> 0003)
pci_bus 0000:00: resource 0 [mem 0x60000000-0x6fffffff]
pci_bus 0000:00: resource 1 [io 0x70000000-0x70003fff]
pci_bus 0000:01: resource 0 [io 0x70000000-0x70000fff]
pci_bus 0000:01: resource 1 [mem 0x60000000-0x600fffff]
Switching to clocksource TSC64
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
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
PCI: CLS 128 bytes, default 128
Trying to unpack rootfs image as initramfs...
Freeing initrd memory: 4096k freed
JFFS2 version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc.
ROMFS MTD (C) 2007 Red Hat, Inc.
msgmni has been set to 434
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
Registering driver pcieport
aer 0000:00:00.0:pcie02: service driver aer loaded
Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x2540000 (irq = 276) is a 16550A
console [ttyS0] enabled
Registering driver serial
brd: module loaded
loop: module loaded
at24 1-0050: 131072 byte 24c1024 EEPROM (writable)
uclinux[mtd]: RAM probe address=0x804b77c0 size=0x0
Creating 1 MTD partitions on "RAM":
0x000000000000-0x000000000000 : "ROMfs"
mtd: partition "ROMfs" is out of reach -- disabled
mtd: Giving out device 0 to ROMfs
Generic platform RAM MTD, (c) 2004 Simtec Electronics
NAND device: Manufacturer ID: 0x20, Chip ID: 0x36 (ST Micro NAND 64MiB 1,8V 8-bit)
Scanning device for bad blocks
Creating 3 MTD partitions on "davinci_nand.0":
0x000000000000-0x000000004000 : "bootconfig"
mtd: Giving out device 1 to bootconfig
0x000000004000-0x000001000000 : "kernel"
mtd: Giving out device 2 to kernel
0x000001000000-0x000004000000 : "filesystem"
mtd: Giving out device 3 to filesystem
davinci_nand davinci_nand.0: controller rev. 2.5
m25p80 spi0.0: non-JEDEC variant of n25q128
m25p80 spi0.0: n25q128 (16384 Kbytes)
Creating 1 MTD partitions on "spi_flash":
0x000000000000-0x000001000000 : "nor_flash"
mtd: Giving out device 4 to nor_flash
spi_davinci spi_davinci.0: Controller at 0x20bf0000
keystone_netcp keystone_netcp.0: created a CPSW ALE engine
keystone_netcp keystone_netcp.0: firmware: using built-in firmware keystone/pa_pdsp02_1_0_2_1.fw
keystone_netcp keystone_netcp.0: firmware: using built-in firmware keystone/pa_pdsp02_1_0_2_1.fw
keystone_netcp keystone_netcp.0: firmware: using built-in firmware keystone/pa_pdsp02_1_0_2_1.fw
keystone_netcp keystone_netcp.0: firmware: using built-in firmware keystone/pa_pdsp3_1_0_2_1.fw
keystone_netcp keystone_netcp.0: firmware: using built-in firmware keystone/pa_pdsp45_1_0_2_1.fw
keystone_netcp keystone_netcp.0: firmware: using built-in firmware keystone/pa_pdsp45_1_0_2_1.fw
eth0: TI KeyStone NetCP Driver v1.4 on SGMII1
Hyperlink_DAC: Module loaded.
pktgen 2.72: Packet Generator for packet performance testing.
TCP cubic registered
NET: Registered protocol family 17
Freeing unused kernel memory: 176K freed
Empty flash at 0x00acd594 ends at 0x00acd600
JFFS2 notice: (70) check_node_data: wrong data CRC in data node at 0x00acf5ac: read 0x30eb8779, calculated 0x72db88e7.
net eth0: initialized CPSW ALE revision 1.3
SysLink version : 02.00.00.68_beta1
SysLink module created on Date:May 4 2017 Time:09:24:11
Entered KnlUtilsDrv_initializeModule
traceMask value: 0x0
Leaving KnlUtilsDrv_initializeModule 0x0

Any help / troubleshooting ideas would be appreciated.

  • Hi DocT,

    I've forwarded this to the Linux experts. Their feedback should be posted here.

    BR
    Tsvetolin Shulev
  • Hi, DocT,

    Are you using the new code from git repository or the GA version, 2.0.0.63? If not using the newer code, you may want to try the codd in git repository which had a few NetCP fixes since GA. Though I am not sure if these checkins fix the issue, but if you are not using the newer code, it may worth trying.

    Rex
  • I have all of the netcp changes except  for the following:

    2013-11-05     Aurelien Jacquiot     KeyStone NETCP: assign MAC address to ALE switch port 0    
    2013-10-11     Aurelien Jacquiot     KeyStone NETCP: fix accumulator management for multiple...  

    I will incorporate these and tests.  I noticed another post on e2e:   Could this have something to do with it?  

    Thanks,

    Dan

  • Hi, Dan,

    I had the doubt when I went through the logs because they don't specifically indicates the check-ins were for the up/down scenario. But it worth trying. TI stopped supporting LInux-c6x. If these 2 commits don't solve the issue, you may need to dig more.

    The kernel for DM814 is different from that of C6678. I meant C6678 is ucLinux. They were two different groups which developed the kernels for these 2 platforms. I don't know how much differences between these 2 kernels in NetCP, or any difference at NetCP level.

    Rex
  • Rex,

    Thank you. Is there anyone who can tell me the difference between the davinci, keystone 1, and keystone 2 netCP devices? They appear very similar. It would make it easier for me to figure out which parts of the newer driver files apply to mine.

    Thanks,

    Dan