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 驱动程序在重新启动时挂起

Guru**** 2576215 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/593682/linux-tmdsevm6678-netcp-driver-hangs-on-restart

器件型号:TMDSEVM6678

工具/软件:Linux

在 EVM6678上使用 Linux 时、以下命令序列会导致电路板挂起:

/root # ifconfig eth0 down

/root # ifconfig eth0 up

它可能会在挂起前几秒钟。  但它始终挂起。  无错误消息。  无堆栈跟踪。  没有。  下面是尝试重新启动之前的 dmesg。。

/root # dmesg
Linux 版本2.6.34-evmc678.el-dev-user (user@Ubuntu)(gcc 版本4.5.1 (Sourcery CodeBench Lite 4.5-124))#1 Thu May 4 09:21:17 EDT 2017
专为 EVMC6678板而设计、德州仪器。
CPU0:C66x 修订版0x0、1.2伏、1000MHz
正在初始化内核
物理 RAM 映射由用户更改
相干存储器(DMA)区域起始= 0x8e000000结束= 0x90000000 (大小= 0x2000000)
禁用0x8e000000到0x8ffffffff 的缓存
在节点0上总计页:57344
FREE_Area_init_node:节点0、pgdat 8044f938、node_mem_map 80900000
DMA 区域:448页用于 memmap
DMA 区域:保留0页
DMA 区:56896页、LIFO 批处理:0
在区域顺序和移动分组中构建1个区域列表。 总页数:56896
内核命令行:console=ttyS0、115200 rw mem=256M IP=none initrd = 0x805000000x400000
PID 哈希表条目:1024 (顺序:0、4096字节)
DEntry 高速缓存散列表条目:32768 (顺序:5、131072字节)
inode 高速缓存哈希表条目:16384 (顺序:4、65536字节)
可用内存:218444k/224544k RAM、0k/0k ROM (973k 内核代码、232k 数据)
slub:Genslabs=7、HWalign=128、order=0-3、MinObjects=0、CPU=1、 节点= 1
分层 RCU 实现。
已启用基于 RCU 的 CPU 检测。
NR_IRQ:292
控制台:彩色虚拟设备80x25
正在校准延迟环路... 999.42茂物剪(lpj=1998848)
挂载高速缓存散列表条目:512
C64x:9个 GPIO IRQ
NET:注册协议系列16.
SGMII 初始化完成
BIO:创建层块 为0
vgaarb:已加载
KeySton_qmss keyston_qms.0:固件:使用内置固件 keyston/qmss_pdsp_acc48_le_1_0_2_0.fw
TI KeyStone QMSS 驱动程序 v1.1
KeyStone RapidIO 驱动程序 v1.1
RIO:寄存器 sRIO 控制器用于 hostid 0
RIO:端口0未就绪
里约:端口1未就绪
里约:端口2未就绪
里约:3号端口未就绪
KeyStone-PCIe:正在调用 PCI BIOS ...
KeyStone-PCIe:MSI_IRQ_BASE:288
KeyStone-PCIe:MSI_IRQ_num:4.
KeyStone-PCIe:MSI_IRQ_MAP:-2147429568
KeyStone-PCIe:正在设置主机控制器...
KeyStone-PCIe:正在启动 PCI 扫描...
PCI:总线0:禁用快速背对背传输
PCI 0000:01:00.0:寄存器10:[MEM 0x0000-0x0001FFFF 64位]
PCI 0000:01:00.0:寄存器18:[IO 0x0000-0x001f]
PCI 0000:01:00.0:reg 20:[MEM 0x00000000-0x00003fff 64bit ]
PCI 0000:01:00.0:D0 D3Hot 支持 PME#
PCI 0000:01:00.0:PME#已禁用
PCI:总线1:禁用快速背对背传输
PCI 0000:00:00.0:条8:已分配[mem 0x60000000-0x600fff]
PCI 0000:00:00.0:条7:已分配[IO 0x70000000-0x70000fff]
PCI 0000:01:00.0:条0:已分配[mem 0x60000000-0x6001FFFF 64位]
PCI 0000:01:00.0:bar 0:设置为[mem 0x60000000-0x600164位 FFF](PCI 地址[0x60000000-0x6001FFF]
PCI 0000:01:00.0:条码4:已分配[mem 0x60020000-0x60023fff 64位]
PCI 0000:01:00.0:bar 4:设置为[mem 0x60020000-0x60023fff 64bit ](PCI 地址[0x60020000-0x60023fff]
PCI 0000:01:00.0:条2:已分配[IO 0x70000000-0x7000001f]
PCI 0000:01:00.0:条码2:设置为[IO 0x70000000-0x7000001f](PCI 地址[0x70000000-0x7000001f]
PCI 0000:00:00.0:PCI 桥至[bus 01-01]
PCI 0000:00:00.0:桥接器窗口[IO 0x70000000-0x70000fff]
PCI 0000:00:00.0:桥接器窗口[mem 0x60000000-0x600fff]
PCI 0000:00:00.0:桥接器窗口[禁用 MEM PREF ]
PCI:启用设备0000:00:00.0 (0000 -> 0003)
PCI_bus 0000:00:资源0 [mem 0x60000000-0x6fffffff]
PCI_BUS 0000:00:资源1 [IO 0x70000000-0x70003fff]
PCI_BUS 0000:01:资源0 [IO 0x70000000-0x70000fff]
PCI_BUS 0000:01:资源1 [mem 0x60000000-0x600fff]
切换到时钟源 TSC64
NET:注册协议系列2.
IP 路由高速缓存哈希表条目:2048 (顺序:1、8192字节)
TCP 建立哈希表条目:8192 (顺序:4、65536字节)
TCP 绑定哈希表条目:8192 (顺序:3、32768字节)
TCP:配置哈希表(建立8192 BIND 8192)
TCP 重新注册
UDP 哈希表条目:256 (顺序:0、4096字节)
UP-Lite 哈希表条目:256 (顺序:0、4096字节)
NET:注册协议系列1
RPC:注册的 UDP 传输模块。
RPC:注册的 TCP 传输模块。
RPC:已注册的 TCP NFSv4.1反向通道传输模块。
PCI:CLS 128字节、默认128
正在尝试将 rootfs 映像解压缩为 initramfs...
释放 initrd 内存:释放4096k
JFFS2版本2.2。 (NAND)(摘要)Copyright2001-2006 Red Hat, Inc.
ROMFS MTD (C) 2007 Red Hat, Inc.
msgmni 已设置为434
块层 SCSI 通用(BSG)驱动程序0.4版已加载(主要254)
已注册 IO 调度程序 NOOP
已登记 IO 调度程序截止日期
已注册 IO 调度程序 cfq (默认)
正在注册驱动程序 pcieport
AER 0000:00:00.0:pcie02:服务驱动程序 aer 已加载
串行:8250/16550驱动程序,1个端口,禁用 IRQ 共享
serial8250.0:MMIO 0x2540000处的 ttyS0 (IRQ = 276)为16550A
控制台[ttyS0]已启用
正在注册驱动程序串行
返修:模块已加载
LOOP:模块已加载
AT24 1-0050:131072字节24c1024 EEPROM (可写)
熟 UX[MTD]:RAM 探针地址= 0x804b77c0大小= 0x0
在"RAM"上创建1个 MTD 分区:
0x0000000000000000 0x00000000:"ROMFS"
MTD:分区"ROMfs"已无法访问--已禁用
MTD:将器件0提供给 ROMfs
通用平台 RAM MTD、(c) 2004 Simtec Electronics
NAND 器件:制造商 ID:0x20、芯片 ID:0x36 (ST Micro NAND 64Mib1、8V)
扫描设备是否有坏块
在"Davinci_nand.0"上创建3个 MTD 分区:
0x0000000000000000 0x00004000:“bootconfig”
MTD:将器件1提供给 bootconfig
0x000000004000-0x000001000000:"内核"
MTD:将器件2提供给内核
0x000001000000-0x000004000000:"文件系统"
MTD:将设备3提供给文件系统
DaVinci_nand DaVinci_nand.0:控制器修订版2.5
m25p80 spi0.0:n25q128的非 JEDEC 变体
m25p80 spi0.0:n25q128 (16384KB)
在"SPI_FLASH"上创建1个 MTD 分区:
0x0000000000000000 0x000001000000:“NOR_FLASH”
MTD:将器件4提供给 NOR_FLASH
SPI_DaVinci SPI_Davinci.0:控制器位于0x20bf0000
Keyston_netcp keyston_netcp.0:创建了 CPSW ALE 引擎
Keyston_netcp keyston_netcp.0:固件:使用内置固件 keyston/pa_pdsp02_1_0_2_1.fw
Keyston_netcp keyston_netcp.0:固件:使用内置固件 keyston/pa_pdsp02_1_0_2_1.fw
Keyston_netcp keyston_netcp.0:固件:使用内置固件 keyston/pa_pdsp02_1_0_2_1.fw
KeySton_netcp keyston_netcp.0:固件:使用内置固件 keyston/pa_pdsp3_1_0_2_1.fw
Keyston_netcp keyston_netcp.0:固件:使用内置固件 keyston/pa_pdsp45_1_0_2_1.fw
Keyston_netcp keyston_netcp.0:固件:使用内置固件 keyston/pa_pdsp45_1_0_2_1.fw
eth0:SGMII1上的 TI KeyStone NetCP 驱动程序 v1.4
Hyperlink_DAC:模块已加载。
pktgen 2.72:用于数据包性能测试的数据包发生器。
TCP 立方注册
NET:注册协议系列17.
释放未使用的内核内存:释放176K
0x00acd594处的空闪存结束于0x00acd600
JFFS2注意:(70) CHECK_NODE_DATA:0x00acf5ac 数据节点中的错误数据 CRC:读取0x30eb8779、计算值0x72db88e7。
NET ETH0:已初始化 CPSW ALE 修订版1.3
SysLink 版本:02.00.00.68_beta1
SysLink 模块创建日期:2017年5月4日时间:09:24:11
输入 KnlUtilsDrv_initializeModule
traceMask 值:0x0
离开 KnlUtilsDrv_initializeModule 0x0

如果有任何帮助/故障排除的想法、我们将不胜感激。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 DocT:

    我已将此内容转发给 Linux 专家。 他们的反馈应发布在此处。

    BR
    Tsvetolin Shulev
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、DocT、

    您使用的是 git 存储库中的新代码还是 GA 版本2.0.0.63? 如果不使用较新的代码、您可能需要在 git 存储库中尝试 cdd、因为 git 存储库自 GA 以来已修复了一些 NetCP。 虽然我不确定这些校验是否能解决问题、但如果您不使用较新的代码、则可能值得尝试。

    雷克斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我有所有 netcp 更改、但 以下情况除外:

    2013-11-05   Aurelien Jacquot   KeyStone NETCP:为 ALE 交换机端口0分配 MAC 地址    
    2013-10-11   Aurelien Jacquot   KeyStone NETCP:修复多个...的累加器管理  

    我将整合这些和测试。  我注意到 e2e 上的另一篇文章:   这与它有关系吗?  

    谢谢、

    Dan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Dan、您好!

    我在查看日志时有疑问、因为它们没有明确表明签入是针对向上/向下情况的。 但值得一试。 TI 停止支持 Linux-C6x。 如果这2个承诺无法解决问题、您可能需要挖掘更多信息。

    DM814的内核与 C6678的内核不同。 我的意思是 C6678是 ucLinux。 他们是两个不同的组、为这两个平台开发了内核。 我不知道 NetCP 中这两个内核之间有多少差异、或 NetCP 级别的任何差异。

    雷克斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Rex、

    谢谢你。 有没有人能告诉我达芬奇、KeyStone 1和 KeyStone 2 netCP 器件之间的区别? 它们看起来非常相似。 这将使我更容易确定较新的驱动程序文件中哪些部分适用于我的。

    谢谢、

    Dan