处理器: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(u