IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> T1042 查看 MAC、BMI、QMI寄存器 查看DPAA丢包情况 -> 正文阅读

[嵌入式]T1042 查看 MAC、BMI、QMI寄存器 查看DPAA丢包情况

参考手册:T1040 QorIQ Data Path Acceleration Architecture (DPAA) Reference Manual

MAC/BMI/QMI寄存器组成都是由下面3个部分组成的

The full register address of any DPAA register consists of all of the following:
? CCSR window base address, specified in CCSRBAR (default address 0_FE00_0000h)
? Block base address
? The specific register’s offset within that block

MAC/BMI/QMI寄存器都是FMan memory map的一部分。

?针对MAC而言,每个网口,对应不同的 基地址 ,下面第一个红框,是访问MAC寄存器要用哪个到的,第二个红框的port id 在访问 QMI/BMI 寄存器的时候会用到。

从下面的Map 可以看出来,QMI 和 BMI 的基地址是一样的,就是offset 不一样?

?

?

?

?

1、MAC 寄存器

MAC1? , 0xffe000000 + 0x4e0000 + offset = 0xffe4e0000 + offset

MAC2? , 0xffe000000 + 0x4e0000 + offset = 0xffe4e2000 + offset

MAC3? , 0xffe000000 + 0x4e0000 + offset = 0xffe4e4000 + offset

MAC4? , 0xffe000000 + 0x4e0000 + offset = 0xffe4e6000 + offset

MAC5? , 0xffe000000 + 0x4e0000 + offset = 0xffe4e8000 + offset

然后参考手册中 6.4.2 mEMAC Detailed Memory Map ,

offset? 0x100开始是Rx Statistics Counter Registers;

offset? 0x200开始是Tx Statistics Counter Registers。

比如我想看下 RX ERR 相关的统计

?如果符合下面的情况,都会在这个寄存器中累积,0x13c 是高32位,0x138是 低32位

6.4.3.2.8 Receive Frame Error Counter Register (RERRn)
Incremented for each frame received with an error (except for undersized/fragment frame) :
? FIFO overflow error
? CRC error
? Payload length error
? Jabber and oversized error
? Alignment error (if supported)
? Reception of PHY/PCS error indication (0xFE, not a code error)
MAC1:
	# devmem 0XFFE4E0138 32
	0x00000000
	# devmem 0XFFE4E013c 32
	0x00000000
	
MAC2:
	11个包
    # devmem 0XFFE4E213c 32
	0x00000000
	# devmem 0XFFE4E2138 32
	0x0000000B

同样的 TX 也有一个相关的统计?

?

6.4.3.2.34 Transmit Frame Error Counter Register (TERRn)
Incremented for each frame transmitted with an error:
? FIFO overflow error
? FIFO underflow error
? memory double ECC errors
? late-collision or excessive collisions (half-duplex only)	
MAC1:
	# devmem 0XFFE4E023C 32
	0x00000000
	# devmem 0XFFE4E0238 32
	0x00000000


MAC2:		
	# devmem 0XFFE4E2238 32
	0x00000000
	# devmem 0XFFE4E223c 32
	0x00000000

?2、BMI/QMI 寄存器

BMI/QMI?rx port寄存器, 不同的MAC 对应rx_port_id 不一样,见上面的图。

0xffe000000 + 0x400000 + 0x80000 + 0x01000* rx_port_id + offset

BMI/QMI? tx port寄存器, 不同的MAC 对应tx_port_id 不一样,见上面的图。

0xffe000000 + 0x400000 + 0x80000 + 0x01000* tx_port_id + offset

BMI Rx port寄存器请参考手册章节BMI Rx Port Registers部分,0x200开始是一些统计。

BMI Tx port寄存器请参考手册章节 BMI Tx Port Registers部分,0x200开始是一些统计。

QMI Rx port寄存器请参考手册章节 QMI Rx Port Registers部分,0x41c和0x420是一些统计。

QMI Tx port寄存器请参考手册章节?QMI Tx Port Registers部分,0x41c开始是一些统计。

3、检测脚本


echo "T1042 DPAA Frame Error Check from register"
echo ""

echo "Receive Frame Error Counter Check!"
echo ""
echo "[SGMII][MAC1] High 32bit: `devmem 0XFFE4E013c 32`"
echo "[SGMII][MAC1] Low  32bit: `devmem 0XFFE4E0138 32`"
echo "[SGMII][MAC2] High 32bit: `devmem 0XFFE4E213c 32`"
echo "[SGMII][MAC2] Low  32bit: `devmem 0XFFE4E2138 32`"
echo "[RGMII][MAC4] High 32bit: `devmem 0XFFE4E613c 32`"
echo "[RGMII][MAC4] Low  32bit: `devmem 0XFFE4E6138 32`"
echo "[RGMII][MAC5] High 32bit: `devmem 0XFFE4E813c 32`"
echo "[RGMII][MAC5] Low  32bit: `devmem 0XFFE4E8138 32`"
echo ""

echo "Transmit Frame Error Counter Check!"
echo ""
echo "[SGMII][MAC1] High 32bit: `devmem 0XFFE4E023c 32`"
echo "[SGMII][MAC1] Low  32bit: `devmem 0XFFE4E0238 32`"
echo "[SGMII][MAC2] High 32bit: `devmem 0XFFE4E223c 32`"
echo "[SGMII][MAC2] Low  32bit: `devmem 0XFFE4E2238 32`"
echo "[RGMII][MAC4] High 32bit: `devmem 0XFFE4E623c 32`"
echo "[RGMII][MAC4] Low  32bit: `devmem 0XFFE4E6238 32`"
echo "[RGMII][MAC5] High 32bit: `devmem 0XFFE4E823c 32`"
echo "[RGMII][MAC5] Low  32bit: `devmem 0XFFE4E8238 32`"

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-03-03 16:31:24  更:2022-03-03 16:31:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:33:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码