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.

C6X-LINUX在6678上启动时,QMSS和NETCP的异常问题。



Andy 和Ti的专家:

最近调试C6678上的linux,遇到一个与网络和QMSS有关的很奇怪的问题。

我移植的linux是从www.linux-c6x.org git的最近的版本(201406),目的是可以适用其SRIO特性。但是网络部分出现了奇怪的问题。Linux有时启动很正常,有时又会出现 skb over panic错误。

正常时是这样的:

Linux version 2.6.34 (root@localhost.localdomain) (gcc version 4.5.1
(Sourcery CodeBench Lite 4.5-124) ) #218 Mon Aug 4 10:26:30 CST 2014
Designed for the EVMC6678 board, Texas Instruments.
CPU0: C66x rev 0x0, 1.2 volts, 1000MHz
Initializing kernel
physical RAM map changed by user
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024
Kernel command line: console=ttyS0,115200 rw mem=256M
initrd=0x80800000,0x200000 root=/dev/ram ip=192.168.0.101
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: 253352k/257660k RAM, 0k/0k ROM (908k kernel code, 210k
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:288
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
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 registered
RIO: enumerate master port 0, RIO0 mport
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.
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (no cpio magic); looks like an initrd
Freeing initrd memory: 2048k freed
JFFS2 version 2.2. (NAND) (SUMMARY) © 2001-2006 Red Hat, Inc.
ROMFS MTD (C) 2007 Red Hat, Inc.
msgmni has been set to 498
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)
Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x2540000 (irq = 276) is a 16550A
console [ttyS0] enabled
brd: module loaded
loop: module loaded
at24 1-0050: 131072 byte 24c1024 EEPROM (writable)
uclinux[mtd]: RAM probe address=0x80460740 size=0x90501000
Creating 1 MTD partitions on "RAM":
0x000000000000-0x000090501000 : "ROMfs"
Generic platform RAM MTD, (c) 2004 Simtec Electronics
No NAND device found.
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 SGMII0
pktgen 2.72: Packet Generator for packet performance testing.
TCP cubic registered
NET: Registered protocol family 17
net eth0: initialized CPSW ALE revision 1.3
IP-Config: Guessing netmask 255.255.255.0
IP-Config: Complete:
device=eth0, addr=192.168.0.101, mask=255.255.255.0,
gw=255.255.255.255,
host=192.168.0.101, domain=, nis-domain=(none),
bootserver=255.255.255.255, rootserver=255.255.255.255, rootpath=
RAMDISK: gzip image found at block 0
VFS: Mounted root (ext2 filesystem) on device 1:0.
Freeing unused kernel memory: 148K freed
starting pid 17, tty '': '/etc/rc.sysinit'

Starting system...

Mounting proc filesystem: done.
Mounting other filesystems: mount: mounting devpts on /dev/pts failed: No
such file or directory
done.
Starting mdev
Setting hostname 192.168.0.101: done.
Bringing up loopback interface: done.
Starting inetd: done.

eth0 Link encap:Ethernet HWaddr 00:17:EA:CA:3F:CC
inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:256 (256.0 B) TX bytes:60 (60.0 B)
Interrupt:48

System started.

starting pid 68, tty '/dev/console': '/bin/sh'
/ #

异常时又是这样的(为了调试,我加入了一些监测信息):


debug:hw_qm_setup:link_ram_base=0x00080000,mem_region_base=0x0c000000
Linux version 2.6.34 (root@localhost.localdomain) (gcc version 4.5.1 (Sourcery CodeBench Lite 4.5-124) ) #142 Sat Jul 26
13:27:04 CST 2014
Designed for the EVMC6678 board, Texas Instruments.
CPU0: C66x rev 0x0, 1.2 volts, 1000MHz
Initializing kernel
physical RAM map changed by user
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024
Kernel command line: console=ttyS0,115200 rw mem=256M initrd=0x80800000,0x200000 root=/dev/ram ip=192.168.0.101
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: 253348k/257656k RAM, 0k/0k ROM (908k kernel code, 211k 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:288
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
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 registered
RIO: enumerate master port 0, RIO0 mport
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.
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (no cpio magic); looks like an initrd
Freeing initrd memory: 2048k freed
JFFS2 version 2.2. (NAND) (SUMMARY) ?? 2001-2006 Red Hat, Inc.
ROMFS MTD (C) 2007 Red Hat, Inc.
msgmni has been set to 498
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)
Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x2540000 (irq = 276) is a 16550A
console [ttyS0] enabled
brd: module loaded
loop: module loaded
at24 1-0050: 131072 byte 24c1024 EEPROM (writable)
uclinux[mtd]: RAM probe address=0x80461720 size=0x14029000
Creating 1 MTD partitions on "RAM":
0x000000000000-0x000014029000 : "ROMfs"
Generic platform RAM MTD, (c) 2004 Simtec Electronics
No NAND device found.
netcp alloc at 0x8e08a000
keystone_netcp keystone_netcp.0: created a CPSW ALE engine
debug:netcp_probe:priv->acc_list_addr_rx =0x2c080000,priv->acc_list_addr_tx =0x2c080200
debug:netcp_probe:acc_list_addr_top =0x2c080000
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
debug:pa_alloc_packet:hd=0x2c000000
debug:pa_alloc_packet:hd=0x2c000080
debug:pa_submit_packet:hd=0x2c000080,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c000000,p_info->queue=640
debug:pa_alloc_packet:hd=0x2c000180
debug:pa_alloc_packet:hd=0x2c000200
debug:pa_submit_packet:hd=0x2c000200,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c000180,p_info->queue=640
debug:pa_alloc_packet:hd=0x2c000300
debug:pa_alloc_packet:hd=0x2c000380
debug:pa_submit_packet:hd=0x2c000380,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c000300,p_info->queue=640
debug:pa_alloc_packet:hd=0x2c000480
debug:pa_alloc_packet:hd=0x2c000500
debug:pa_submit_packet:hd=0x2c000500,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c000480,p_info->queue=640
debug:pa_alloc_packet:hd=0x2c000600
debug:pa_alloc_packet:hd=0x2c000680
debug:pa_submit_packet:hd=0x2c000680,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c000600,p_info->queue=640
debug:pa_alloc_packet:hd=0x2c000780
debug:pa_alloc_packet:hd=0x2c000800
debug:pa_submit_packet:hd=0x2c000800,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c000780,p_info->queue=640
debug:pa_alloc_packet:hd=0x2c000900
debug:pa_alloc_packet:hd=0x2c000980
debug:pa_submit_packet:hd=0x2c000980,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c000900,p_info->queue=640
debug:pa_alloc_packet:hd=0x2c000a80
debug:pa_alloc_packet:hd=0x2c000b00
debug:pa_submit_packet:hd=0x2c000b00,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c000a80,p_info->queue=640
debug:pa_alloc_packet:hd=0x2c000c00
debug:pa_alloc_packet:hd=0x2c000c80
debug:pa_submit_packet:hd=0x2c000c80,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c000c00,p_info->queue=640
debug:pa_alloc_packet:hd=0x2c000d80
debug:pa_alloc_packet:hd=0x2c000e00
debug:pa_submit_packet:hd=0x2c000e00,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c000d80,p_info->queue=640
debug:pa_alloc_packet:hd=0x2c000f00
debug:pa_alloc_packet:hd=0x2c000f80
debug:pa_submit_packet:hd=0x2c000f80,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c000f00,p_info->queue=640
debug:pa_alloc_packet:hd=0x2c001080
debug:pa_alloc_packet:hd=0x2c001100
debug:pa_submit_packet:hd=0x2c001100,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c001080,p_info->queue=640
debug:pa_alloc_packet:hd=0x2c001200
debug:pa_alloc_packet:hd=0x2c001280
debug:pa_submit_packet:hd=0x2c001280,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c001200,p_info->queue=640
debug:pa_alloc_packet:hd=0x2c001380
debug:pa_alloc_packet:hd=0x2c001400
debug:pa_submit_packet:hd=0x2c001400,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c001380,p_info->queue=640
debug:pa_alloc_packet:hd=0x2c001500
debug:pa_alloc_packet:hd=0x2c001580
debug:pa_submit_packet:hd=0x2c001580,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c001500,p_info->queue=640
debug:pa_alloc_packet:hd=0x2c001680
debug:pa_alloc_packet:hd=0x2c001700
debug:pa_submit_packet:hd=0x2c001700,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c001680,p_info->queue=640
debug:pa_alloc_packet:hd=0x2c001800
debug:pa_alloc_packet:hd=0x2c001880
debug:pa_submit_packet:hd=0x2c001880,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c001800,p_info->queue=640
debug:pa_alloc_packet:hd=0x2c001980
debug:pa_alloc_packet:hd=0x2c001a00
debug:pa_submit_packet:hd=0x2c001a00,p_info->queue=4001
debug:pa_submit_packet:hd=0x2c001980,p_info->queue=640
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001b00,skb=0x8e2fc500
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001b80,skb=0x8e2fc600
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001c00,skb=0x8e2fc700
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001c80,skb=0x8e2fc800
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001d00,skb=0x8e2fc900
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001d80,skb=0x8e2fca00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001e00,skb=0x8e2fcb00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001e80,skb=0x8e2fcc00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001f00,skb=0x8e2fcd00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001f80,skb=0x8e2fce00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002000,skb=0x8e2fcf00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002080,skb=0x8e383000
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002100,skb=0x8e383100
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002180,skb=0x8e383200
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002200,skb=0x8e383300
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002280,skb=0x8e383400
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002300,skb=0x8e383500
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002380,skb=0x8e383600
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002400,skb=0x8e383700
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002480,skb=0x8e383800
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002500,skb=0x8e383900
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002580,skb=0x8e383a00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002600,skb=0x8e383b00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002680,skb=0x8e383c00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002700,skb=0x8e383d00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002780,skb=0x8e383e00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002800,skb=0x8e383f00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002880,skb=0x8e390000
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002900,skb=0x8e390100
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002980,skb=0x8e390200
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002a00,skb=0x8e390300
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002a80,skb=0x8e390400
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002b00,skb=0x8e390500
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002b80,skb=0x8e390600
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002c00,skb=0x8e390700
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002c80,skb=0x8e390800
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002d00,skb=0x8e390900
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002d80,skb=0x8e390a00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002e00,skb=0x8e390b00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002e80,skb=0x8e390c00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002f00,skb=0x8e390d00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002f80,skb=0x8e390e00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003000,skb=0x8e390f00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003080,skb=0x8e391000
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003100,skb=0x8e391100
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003180,skb=0x8e391200
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003200,skb=0x8e391300
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003280,skb=0x8e391400
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003300,skb=0x8e391500
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003380,skb=0x8e391600
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003400,skb=0x8e391700
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003480,skb=0x8e391800
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003500,skb=0x8e391900
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003580,skb=0x8e391a00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003600,skb=0x8e391b00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003680,skb=0x8e391c00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003700,skb=0x8e391d00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003780,skb=0x8e391e00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003800,skb=0x8e391f00
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003880,skb=0x8e392000
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003900,skb=0x8e392100
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003980,skb=0x8e392200
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003a00,skb=0x8e392300
debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003a80,skb=0x8e392400
eth0: TI KeyStone NetCP Driver v1.4 on SGMII0
pktgen 2.72: Packet Generator for packet performance testing.
TCP cubic registered
NET: Registered protocol family 17
net eth0: initialized CPSW ALE revision 1.3
netcp_poll->netcp_rx,p->ndev=0x8e08a000
received accumulator Rx interrupt on ndev->dev_id =0,channel 0, acc buffer 0x2c080000
netcp_rx:hd=0x2c000000
received a packet of len 64 (skb=0x0, hd=0x2c000000) buffer = 0xe000040
BUG: failure at net/core/skbuff.c:1018/skb_put()!
Kernel panic - not syncing: BUG!
Stack from 80401d0c:
8038abc4 8038abdc 803b840d 804459e8 fffedd65 2c000000 8e08a000 00000000
00000000 802957c4 803b5c9e 803cf556 000003fa 803fb970 80402cd8 00000000
2c000000 8026edf8 803cdc92 00000040 00000000 2c000000 0e000040 8000a2e0
00000100 80038084 8e08a2e0 8e08a2ec 00000010 8e08a2ec 8044a38c 0000012c
8e08a2f4 804038c0 802a1e1c 00000010 804038d0 00000001 fffedd65 80408278
c3858900 00000001 8044a38c 8000a2e0 00000100 00000003 8002e8d0 00000009
Call trace: [<8038abc4>] panic+0x84/0x1c0
[<8038abdc>] panic+0x9c/0x1c0
[<802957c4>] skb_segment+0x0/0xae0
[<8026edf8>] netcp_poll+0x250/0x5f4
[<8000a2e0>] __current_thread_info+0x0/0x20
[<80038084>] process_timeout+0x0/0x20
[<802a1e1c>] net_rx_action+0x1b8/0x2e4
[<8000a2e0>] __current_thread_info+0x0/0x20
[<8002e8d0>] __do_softirq+0x170/0x268
[<8007bae4>] rcu_bh_qs+0x0/0x28
[<80075774>] handle_IRQ_event+0x90/0x274
[<80064d0c>] tick_nohz_restart_sched_tick+0x0/0x428
[<80038568>] do_timer+0x40/0x58
[<800025a4>] default_idle+0x4/0xc
[<8000a2e0>] __current_thread_info+0x0/0x20
[<8038b25c>] schedule+0x0/0x560
[<80064d0c>] tick_nohz_restart_sched_tick+0x0/0x428
[<8002ea50>] do_softirq+0x88/0x94
[<800025a4>] default_idle+0x4/0xc
[<8002f260>] irq_exit+0x158/0x1a0
[<8038b25c>] schedule+0x0/0x560
[<80003f68>] c6x_do_IRQ+0xa8/0x128
[<8000a2e0>] __current_thread_info+0x0/0x20
[<8000f68c>] c6x_arch_idle_led+0x0/0x54
[<800091a0>] ret_from_exception+0x0/0x1c
[<800025a4>] default_idle+0x4/0xc
[<80002794>] cpu_idle+0x100/0x138
[<80207b18>] extract_entropy+0x74/0x1a0
[<80055654>] notifier_call_chain+0x74/0xd0
[<803403c8>] fib_table_insert+0x94/0xc9c
[<801eeb38>] vscnprintf+0x1c/0x44
[<801e28d0>] ida_get_new_above+0x70/0x35c
[<801ee25c>] vsnprintf+0xa00/0x11ec
[<800a06ec>] __slab_alloc.clone.61+0x184/0x778
[<800027c4>] cpu_idle+0x130/0x138
[<80064a44>] tick_nohz_stop_sched_tick+0x5a8/0x85c
[<801e9158>] rb_insert_color+0x0/0x27c
[<800025a0>] default_idle+0x0/0xc
[<8000a2e0>] __current_thread_info+0x0/0x20
[<8000f68c>] c6x_arch_idle_led+0x0/0x54
[<8038b25c>] schedule+0x0/0x560
[<80064d0c>] tick_nohz_restart_sched_tick+0x0/0x428
[<8006449c>] tick_nohz_stop_sched_tick+0x0/0x85c
[<8042eba0>] radix_tree_init+0x0/0xa0
[<8042eb40>] prio_tree_init+0x0/0x60
[<80424040>] init_timers+0x0/0xc0
[<8042f414>] console_init+0x0/0x8c
[<8041be50>] start_kernel+0x74c/0x770
[<8041ffe0>] init_IRQ+0x0/0xe4
[<8043e720>] _einittext+0x0/0x0
[<800014d4>] L1+0x0/0x32c

我查了下,发现netcp使用了错误的Host descriptor。每次错误都在即将完成启动t时,而且只要一错误,发现HD都在0x2c000000。

但如果启动时以太网正常,那之后就会一直正常。

但从代码看QMSS部分对queue和hd的操作看上去似乎又没问题。这是为什么呢?为什么netcp 的RX会填充了错误的HD?是PA的固件问题吗?希望ti的工程师能跟进下,提供些建议和解决办法。非常感谢!

  • 在6678上移植linux遇到了一个奇怪的问题。linux启动时,网络有时启动正常,有时不正常。现象和QMSS和netcp有关联。linux是最新从 www.linux-c6x.org.(201406)git下来的. 板子类似evm6678,但是从emif nor flash启动。

    当启动正常时,打印信息如下:
    Linux version 2.6.34 (root@localhost.localdomain) (gcc version 4.5.1
    (Sourcery CodeBench Lite 4.5-124) ) #218 Mon Aug 4 10:26:30 CST 2014
    Designed for the EVMC6678 board, Texas Instruments.
    CPU0: C66x rev 0x0, 1.2 volts, 1000MHz
    Initializing kernel
    physical RAM map changed by user
    Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024
    Kernel command line: console=ttyS0,115200 rw mem=256M
    initrd=0x80800000,0x200000 root=/dev/ram ip=192.168.0.101
    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: 253352k/257660k RAM, 0k/0k ROM (908k kernel code, 210k
    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:288
    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
    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 registered
    RIO: enumerate master port 0, RIO0 mport
    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.
    Trying to unpack rootfs image as initramfs...
    rootfs image is not initramfs (no cpio magic); looks like an initrd
    Freeing initrd memory: 2048k freed
    JFFS2 version 2.2. (NAND) (SUMMARY) ?? 2001-2006 Red Hat, Inc.
    ROMFS MTD (C) 2007 Red Hat, Inc.
    msgmni has been set to 498
    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)
    Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
    serial8250.0: ttyS0 at MMIO 0x2540000 (irq = 276) is a 16550A
    console [ttyS0] enabled
    brd: module loaded
    loop: module loaded
    at24 1-0050: 131072 byte 24c1024 EEPROM (writable)
    uclinux[mtd]: RAM probe address=0x80460740 size=0x90501000
    Creating 1 MTD partitions on "RAM":
    0x000000000000-0x000090501000 : "ROMfs"
    Generic platform RAM MTD, (c) 2004 Simtec Electronics
    No NAND device found.
    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 SGMII0
    pktgen 2.72: Packet Generator for packet performance testing.
    TCP cubic registered
    NET: Registered protocol family 17
    net eth0: initialized CPSW ALE revision 1.3
    IP-Config: Guessing netmask 255.255.255.0
    IP-Config: Complete:
    device=eth0, addr=192.168.0.101, mask=255.255.255.0,
    gw=255.255.255.255,
    host=192.168.0.101, domain=, nis-domain=(none),
    bootserver=255.255.255.255, rootserver=255.255.255.255, rootpath=
    RAMDISK: gzip image found at block 0
    VFS: Mounted root (ext2 filesystem) on device 1:0.
    Freeing unused kernel memory: 148K freed
    starting pid 17, tty '': '/etc/rc.sysinit'

    Starting system...

    Mounting proc filesystem: done.
    Mounting other filesystems: mount: mounting devpts on /dev/pts failed: No
    such file or directory
    done.
    Starting mdev
    Setting hostname 192.168.0.101: done.
    Bringing up loopback interface: done.
    Starting inetd: done.

    eth0 Link encap:Ethernet HWaddr 00:17:EA:CA:3F:CC
    inet addr:192.168.0.101 Bcast:192.168.0.255 Mask:255.255.255.0
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:4 errors:0 dropped:0 overruns:0 frame:0
    TX packets:1 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:256 (256.0 B) TX bytes:60 (60.0 B)
    Interrupt:48

    System started.

    starting pid 68, tty '/dev/console': '/bin/sh'
    / #

    启动不正常时打印信息如下:(添加了调试信息)
    debug:hw_qm_setup:link_ram_base=0x00080000,mem_region_base=0x0c000000
    Linux version 2.6.34 (root@localhost.localdomain) (gcc version 4.5.1 (Sourcery CodeBench Lite 4.5-124) ) #142 Sat Jul 26 13:27:04 CST 2014
    Designed for the EVMC6678 board, Texas Instruments.
    CPU0: C66x rev 0x0, 1.2 volts, 1000MHz
    Initializing kernel
    physical RAM map changed by user
    Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024
    Kernel command line: console=ttyS0,115200 rw mem=256M initrd=0x80800000,0x200000 root=/dev/ram ip=192.168.0.101
    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: 253348k/257656k RAM, 0k/0k ROM (908k kernel code, 211k 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:288
    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
    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 registered
    RIO: enumerate master port 0, RIO0 mport
    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.
    Trying to unpack rootfs image as initramfs...
    rootfs image is not initramfs (no cpio magic); looks like an initrd
    Freeing initrd memory: 2048k freed
    JFFS2 version 2.2. (NAND) (SUMMARY) ?? 2001-2006 Red Hat, Inc.
    ROMFS MTD (C) 2007 Red Hat, Inc.
    msgmni has been set to 498
    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)
    Serial: 8250/16550 driver, 1 ports, IRQ sharing disabled
    serial8250.0: ttyS0 at MMIO 0x2540000 (irq = 276) is a 16550A
    console [ttyS0] enabled
    brd: module loaded
    loop: module loaded
    at24 1-0050: 131072 byte 24c1024 EEPROM (writable)
    uclinux[mtd]: RAM probe address=0x80461720 size=0x14029000
    Creating 1 MTD partitions on "RAM":
    0x000000000000-0x000014029000 : "ROMfs"
    Generic platform RAM MTD, (c) 2004 Simtec Electronics
    No NAND device found.
    netcp alloc at 0x8e08a000
    keystone_netcp keystone_netcp.0: created a CPSW ALE engine
    debug:netcp_probe:priv->acc_list_addr_rx =0x2c080000,priv->acc_list_addr_tx =0x2c080200
    debug:netcp_probe:acc_list_addr_top =0x2c080000
    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
    debug:pa_alloc_packet:hd=0x2c000000
    debug:pa_alloc_packet:hd=0x2c000080
    debug:pa_submit_packet:hd=0x2c000080,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c000000,p_info->queue=640
    debug:pa_alloc_packet:hd=0x2c000180
    debug:pa_alloc_packet:hd=0x2c000200
    debug:pa_submit_packet:hd=0x2c000200,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c000180,p_info->queue=640
    debug:pa_alloc_packet:hd=0x2c000300
    debug:pa_alloc_packet:hd=0x2c000380
    debug:pa_submit_packet:hd=0x2c000380,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c000300,p_info->queue=640
    debug:pa_alloc_packet:hd=0x2c000480
    debug:pa_alloc_packet:hd=0x2c000500
    debug:pa_submit_packet:hd=0x2c000500,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c000480,p_info->queue=640
    debug:pa_alloc_packet:hd=0x2c000600
    debug:pa_alloc_packet:hd=0x2c000680
    debug:pa_submit_packet:hd=0x2c000680,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c000600,p_info->queue=640
    debug:pa_alloc_packet:hd=0x2c000780
    debug:pa_alloc_packet:hd=0x2c000800
    debug:pa_submit_packet:hd=0x2c000800,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c000780,p_info->queue=640
    debug:pa_alloc_packet:hd=0x2c000900
    debug:pa_alloc_packet:hd=0x2c000980
    debug:pa_submit_packet:hd=0x2c000980,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c000900,p_info->queue=640
    debug:pa_alloc_packet:hd=0x2c000a80
    debug:pa_alloc_packet:hd=0x2c000b00
    debug:pa_submit_packet:hd=0x2c000b00,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c000a80,p_info->queue=640
    debug:pa_alloc_packet:hd=0x2c000c00
    debug:pa_alloc_packet:hd=0x2c000c80
    debug:pa_submit_packet:hd=0x2c000c80,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c000c00,p_info->queue=640
    debug:pa_alloc_packet:hd=0x2c000d80
    debug:pa_alloc_packet:hd=0x2c000e00
    debug:pa_submit_packet:hd=0x2c000e00,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c000d80,p_info->queue=640
    debug:pa_alloc_packet:hd=0x2c000f00
    debug:pa_alloc_packet:hd=0x2c000f80
    debug:pa_submit_packet:hd=0x2c000f80,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c000f00,p_info->queue=640
    debug:pa_alloc_packet:hd=0x2c001080
    debug:pa_alloc_packet:hd=0x2c001100
    debug:pa_submit_packet:hd=0x2c001100,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c001080,p_info->queue=640
    debug:pa_alloc_packet:hd=0x2c001200
    debug:pa_alloc_packet:hd=0x2c001280
    debug:pa_submit_packet:hd=0x2c001280,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c001200,p_info->queue=640
    debug:pa_alloc_packet:hd=0x2c001380
    debug:pa_alloc_packet:hd=0x2c001400
    debug:pa_submit_packet:hd=0x2c001400,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c001380,p_info->queue=640
    debug:pa_alloc_packet:hd=0x2c001500
    debug:pa_alloc_packet:hd=0x2c001580
    debug:pa_submit_packet:hd=0x2c001580,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c001500,p_info->queue=640
    debug:pa_alloc_packet:hd=0x2c001680
    debug:pa_alloc_packet:hd=0x2c001700
    debug:pa_submit_packet:hd=0x2c001700,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c001680,p_info->queue=640
    debug:pa_alloc_packet:hd=0x2c001800
    debug:pa_alloc_packet:hd=0x2c001880
    debug:pa_submit_packet:hd=0x2c001880,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c001800,p_info->queue=640
    debug:pa_alloc_packet:hd=0x2c001980
    debug:pa_alloc_packet:hd=0x2c001a00
    debug:pa_submit_packet:hd=0x2c001a00,p_info->queue=4001
    debug:pa_submit_packet:hd=0x2c001980,p_info->queue=640
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001b00,skb=0x8e2fc500
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001b80,skb=0x8e2fc600
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001c00,skb=0x8e2fc700
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001c80,skb=0x8e2fc800
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001d00,skb=0x8e2fc900
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001d80,skb=0x8e2fca00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001e00,skb=0x8e2fcb00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001e80,skb=0x8e2fcc00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001f00,skb=0x8e2fcd00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c001f80,skb=0x8e2fce00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002000,skb=0x8e2fcf00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002080,skb=0x8e383000
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002100,skb=0x8e383100
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002180,skb=0x8e383200
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002200,skb=0x8e383300
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002280,skb=0x8e383400
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002300,skb=0x8e383500
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002380,skb=0x8e383600
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002400,skb=0x8e383700
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002480,skb=0x8e383800
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002500,skb=0x8e383900
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002580,skb=0x8e383a00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002600,skb=0x8e383b00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002680,skb=0x8e383c00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002700,skb=0x8e383d00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002780,skb=0x8e383e00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002800,skb=0x8e383f00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002880,skb=0x8e390000
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002900,skb=0x8e390100
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002980,skb=0x8e390200
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002a00,skb=0x8e390300
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002a80,skb=0x8e390400
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002b00,skb=0x8e390500
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002b80,skb=0x8e390600
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002c00,skb=0x8e390700
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002c80,skb=0x8e390800
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002d00,skb=0x8e390900
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002d80,skb=0x8e390a00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002e00,skb=0x8e390b00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002e80,skb=0x8e390c00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002f00,skb=0x8e390d00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c002f80,skb=0x8e390e00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003000,skb=0x8e390f00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003080,skb=0x8e391000
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003100,skb=0x8e391100
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003180,skb=0x8e391200
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003200,skb=0x8e391300
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003280,skb=0x8e391400
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003300,skb=0x8e391500
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003380,skb=0x8e391600
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003400,skb=0x8e391700
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003480,skb=0x8e391800
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003500,skb=0x8e391900
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003580,skb=0x8e391a00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003600,skb=0x8e391b00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003680,skb=0x8e391c00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003700,skb=0x8e391d00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003780,skb=0x8e391e00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003800,skb=0x8e391f00
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003880,skb=0x8e392000
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003900,skb=0x8e392100
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003980,skb=0x8e392200
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003a00,skb=0x8e392300
    debug:netcp_init_qs:ndev->dev_id=0,hd=0x2c003a80,skb=0x8e392400
    eth0: TI KeyStone NetCP Driver v1.4 on SGMII0
    pktgen 2.72: Packet Generator for packet performance testing.
    TCP cubic registered
    NET: Registered protocol family 17
    net eth0: initialized CPSW ALE revision 1.3
    netcp_poll->netcp_rx,p->ndev=0x8e08a000
    received accumulator Rx interrupt on ndev->dev_id =0,channel 0, acc buffer 0x2c080000
    netcp_rx:hd=0x2c000000
    received a packet of len 64 (skb=0x0, hd=0x2c000000) buffer = 0xe000040
    BUG: failure at net/core/skbuff.c:1018/skb_put()!
    Kernel panic - not syncing: BUG!
    Stack from 80401d0c:
    8038abc4 8038abdc 803b840d 804459e8 fffedd65 2c000000 8e08a000 00000000
    00000000 802957c4 803b5c9e 803cf556 000003fa 803fb970 80402cd8 00000000
    2c000000 8026edf8 803cdc92 00000040 00000000 2c000000 0e000040 8000a2e0
    00000100 80038084 8e08a2e0 8e08a2ec 00000010 8e08a2ec 8044a38c 0000012c
    8e08a2f4 804038c0 802a1e1c 00000010 804038d0 00000001 fffedd65 80408278
    c3858900 00000001 8044a38c 8000a2e0 00000100 00000003 8002e8d0 00000009
    Call trace: [<8038abc4>] panic+0x84/0x1c0
    [<8038abdc>] panic+0x9c/0x1c0
    [<802957c4>] skb_segment+0x0/0xae0
    [<8026edf8>] netcp_poll+0x250/0x5f4
    [<8000a2e0>] __current_thread_info+0x0/0x20
    [<80038084>] process_timeout+0x0/0x20
    [<802a1e1c>] net_rx_action+0x1b8/0x2e4
    [<8000a2e0>] __current_thread_info+0x0/0x20
    [<8002e8d0>] __do_softirq+0x170/0x268
    [<8007bae4>] rcu_bh_qs+0x0/0x28
    [<80075774>] handle_IRQ_event+0x90/0x274
    [<80064d0c>] tick_nohz_restart_sched_tick+0x0/0x428
    [<80038568>] do_timer+0x40/0x58
    [<800025a4>] default_idle+0x4/0xc
    [<8000a2e0>] __current_thread_info+0x0/0x20
    [<8038b25c>] schedule+0x0/0x560
    [<80064d0c>] tick_nohz_restart_sched_tick+0x0/0x428
    [<8002ea50>] do_softirq+0x88/0x94
    [<800025a4>] default_idle+0x4/0xc
    [<8002f260>] irq_exit+0x158/0x1a0
    [<8038b25c>] schedule+0x0/0x560
    [<80003f68>] c6x_do_IRQ+0xa8/0x128
    [<8000a2e0>] __current_thread_info+0x0/0x20
    [<8000f68c>] c6x_arch_idle_led+0x0/0x54
    [<800091a0>] ret_from_exception+0x0/0x1c
    [<800025a4>] default_idle+0x4/0xc
    [<80002794>] cpu_idle+0x100/0x138
    [<80207b18>] extract_entropy+0x74/0x1a0
    [<80055654>] notifier_call_chain+0x74/0xd0
    [<803403c8>] fib_table_insert+0x94/0xc9c
    [<801eeb38>] vscnprintf+0x1c/0x44
    [<801e28d0>] ida_get_new_above+0x70/0x35c
    [<801ee25c>] vsnprintf+0xa00/0x11ec
    [<800a06ec>] __slab_alloc.clone.61+0x184/0x778
    [<800027c4>] cpu_idle+0x130/0x138
    [<80064a44>] tick_nohz_stop_sched_tick+0x5a8/0x85c
    [<801e9158>] rb_insert_color+0x0/0x27c
    [<800025a0>] default_idle+0x0/0xc
    [<8000a2e0>] __current_thread_info+0x0/0x20
    [<8000f68c>] c6x_arch_idle_led+0x0/0x54
    [<8038b25c>] schedule+0x0/0x560
    [<80064d0c>] tick_nohz_restart_sched_tick+0x0/0x428
    [<8006449c>] tick_nohz_stop_sched_tick+0x0/0x85c
    [<8042eba0>] radix_tree_init+0x0/0xa0
    [<8042eb40>] prio_tree_init+0x0/0x60
    [<80424040>] init_timers+0x0/0xc0
    [<8042f414>] console_init+0x0/0x8c
    [<8041be50>] start_kernel+0x74c/0x770
    [<8041ffe0>] init_IRQ+0x0/0xe4
    [<8043e720>] _einittext+0x0/0x0
    [<800014d4>] L1+0x0/0x32c

    从调试信息看,netcp的rx使用了错误的host descriptor(位于0x2c000000)。但我看了代码,QMSS和netcp对队列和hd的配置似乎没看出明显问题,而且50%的情况下,linux可以正常启动。(正常时hd在0x2c001b00及以后)。

    这是什么原因呢?请各位帮忙看看!

  • 我看你是从Flash启动会出错,可以试试J-tag下载的情况,看是否J-tag下载每次都不出错,Flash加载有时出错?参考下以下链接,看是否是gel初始化和platform_init初始化的问题,platform对网口的初始化有可能失败,请@Allen Yin看看是否是这个问题,谢谢啦!

    http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/68480.aspx