iMX257获取PHY的link状态
来源:互联网 发布:德兴软件ui设计师 编辑:程序博客网 时间:2024/05/19 22:27
处理器:iMX257
以太网PHY:KSZ8041NL
操作系统:linux 2.6.31
获取PHY link状态,主要通过访问iMX257 FEC功能块的MMFR寄存器(使用方法参考IMX25RM 25.3.5.6节)。步骤如下:
1)用户驱动向MMFR寄存器写入读对应寄存器命令,如01_10_00000_00001_10_0000000000000000。
2)fec驱动响应FEC_ENET_MII中断,读取PHY的0x01寄存器的值,提取link status。
3)用户驱动等待fec发出的完成标志位,读取link status。
用户驱动:
#define FEC_REG_BASE_ADDR 0x50038000
#define FEC_REG_SPACE 0x100
#define REG_MMFR 0x40
fec_reg_base_addr = (unsigned long) ioremap(FEC_REG_BASE_ADDR, FEC_REG_SPACE);
//net link is up when return 1, down when return 0
static void netlink_checking(unsigned short *netlink_stat) {
flag_usrRead = 1;
__raw_writel(0x60060000, (fec_reg_base_addr + REG_MMFR));
udelay(2);
if(flag_PhyStateReady )
{
printk ("lxi_front_panel, flag_PhyStateReady = %d, state_PhyLink = %d", flag_PhyStateReady, state_PhyLink);
flag_usrRead = 0;
*netlink_stat = state_PhyLink;
flag_PhyStateReady = 0;
}
}
内核程序fec.h中增加全局变量定义:
unsigned int flag_usrRead = 0;
unsigned int flag_PhyStateReady = 0;
unsigned int state_PhyLink = 0;
EXPORT_SYMBOL(flag_usrRead);
EXPORT_SYMBOL(flag_PhyStateReady);
EXPORT_SYMBOL(state_PhyLink);
内核程序fec.c中断服务程序增加代码:
if (int_events & FEC_ENET_MII) {
ret = IRQ_HANDLED;
if (flag_usrRead == 1)
{
int_mii_data = readl(fep->hwp + FEC_MII_DATA);
printk("int_mii_data = %x\n",int_mii_data);
state_PhyLink = (int_mii_data >> 2) & 0x1;
flag_PhyStateReady = 1;
printk("state_PhyLink = %d; flag_PhyStateReady = %d\n",state_PhyLink,flag_PhyStateReady);
}
else
fec_enet_mii(dev);
}
- iMX257获取PHY的link状态
- Linux PHY几个状态的跟踪
- Linux PHY几个状态的跟踪
- iMX257的GPIO中断配置
- iMX257开发板连接internet的过程
- EasyARM-iMX257 linux两年前的笔记
- EasyARM-iMX257 linxu两年前的笔记
- [BLE--Link Layer]Link Layer状态及其之间的切换
- 通过微信查询iMX257开发板温度传感器的值
- 空闲信道 评估 收发机状态设置 短地址 长地址 phy 层的作用
- PHY的基本知识
- phy device的注册
- PHY的基本知识
- 获取线程的状态
- PHY
- PHY
- PHY
- phy
- 起点!
- Linux中的EAGAIN含义
- 三星手机 调用系统相机 data 为null 崩溃的问题 (未解决)
- Translation of Semantics with Applications【持续更新】
- 字节对齐实践(2)
- iMX257获取PHY的link状态
- 数理统计
- android网络相册(带磁盘缓存DiskLruCache 和内存缓存LruCache)
- 跨iframe框架操作元素
- 我的cocos2d-x-3.2集成云风pbc lua binding方法
- 正确处理浏览器在下载文件时HTTP头的编码问题(Content-Disposition)
- 7zip的编译
- Android中的Interpolator
- Java编写网络爬虫笔记(第三部分:Jsoup的强大)