当前位置: 首页 > news >正文

门头沟新乡网站建设北京学会网站建设

门头沟新乡网站建设,北京学会网站建设,网络营销方式的选择,wordpress调用最新文章列表1. PHY调试过程 1.设备树中配置正确的PHY ADDR、PHY ID、clause 45或者22协议,PHY ADDR配置不正确会导致MDC/MDIO通信不正常或失败,PHY ID用于匹配PHY驱动程序。 2.通过MDC/MDIO读写PHY ID并对比datasheet中的PHY ID,确认MDC/MDIO通信是否正常…

1. PHY调试过程

        1.设备树中配置正确的PHY ADDR、PHY ID、clause 45或者22协议,PHY ADDR配置不正确会导致MDC/MDIO通信不正常或失败,PHY ID用于匹配PHY驱动程序。

        2.通过MDC/MDIO读写PHY ID并对比datasheet中的PHY ID,确认MDC/MDIO通信是否正常。

        3.MDC/MDIO通信正常的情况下,读写PHY的寄存器查看PHY的状态是否正常,比如主从、RGMII模式、Link状态。

        4.确认TXCLK是否正常,2.5MHZ对应10M速度,25MHZ对应100M速度,125MHZ对应1000兆速度,当自动协商不成功的时候,可以在设备树中配置fixed-link节点强制配置MAC工作在某种状态,比如100兆全双工。

fixed-link {speed = <100>;full-duplex;
};

        5.确认SOC侧MAC RGMII接口是否有配置delay,如果没有,PHY侧需要配置delay。

        6.确认SOC侧MAC是否工作正常,通过devmem dump寄存器信息确认RGMII模式、全双工/半双工模式、link状态、speed状态。

2. phy驱动开发步骤说明

        针对phy 驱动而言,主要实现两部分的内容:

        1.实现probe、remove、suspend、resume接口,用于完成phy_driver的注册与注销,以及针对linux设备-总线-驱动模型的基础;

        2.实现phy device处理相关的接口:

config_init
config_aneg
read_status
ack_interrupt
config_intr
did_interrupt
match_phy_device
ts_info
hwtstamp
rxtstamp
txtstamp
set_wol
get_wol

        2.1其中config_init主要是对phy device进行一些初始化配置;

        2.2而config_aneg、read_status主要用于设置phy device的自适应机制已经获取phy的状态(主要用于获取适配速率、双工模式等),一般这两个接口直接使用genphy_config_aneg、genphy_read_status即可,触发该phy device有特殊的定义;

        2.3而ack_interrupt、config_intr、did_interrupt主要用于phy device的link up/down相关的中断处理,这个与具体的phy device有关,查看相应的芯片手册说明即可;

        2.4而针对ts_info、hwtstamp、rxtstamp、txtstamp、set_wol、get_wol主要是时间戳相关的处理,大多数phy device均不需实现这几个接口。

        2.5match_phy_device主要用于实现phy_device与phy_driver的匹配检测,若一个phy_driver支持多个类型的phy_device,则最好实现该接口,若该phy_driver只适配某一个型号的phy_device,则不需要实现该接口,只需要设置支持的phy_id与phy_mask即可。

        以上即是实现phy driver的大体步骤,一般情况下若phy device不是很特殊,完全可以不实现phy driver,而在mdiobus_register时针对没有匹配phy_driver的设备,会将其与genphy_driver进行绑定,而genphy_driver基本上对大多数phy device而言,均可以正常驱动。但若我们仅需要在phy driver的probe接口中进行一些配置(如设置phy device的led mode 等),则完全可以将config_ange、read_status等接口使用genphy_driver中的接口,仅实现probe接口即可。

3. Claus45读写接口封装

        SOC芯片:高通默认不支持C45协议

        PHY芯片:marvell 88q1110,支持寄存器13&14扩展控制PCS/PMA寄存器

        path:Linux/include/phy.h

static inline int phy_write_c45(struct phy_device *phydev, u32 dev_id, u32 regnum, u16 val)
{mdiobus_write(phydev-&gt;mdio.bus, phydev-&gt;mdio.addr, 0x0d, dev_id);mdiobus_write(phydev-&gt;mdio.bus, phydev-&gt;mdio.addr, 0x0e, regnum);mdiobus_write(phydev-&gt;mdio.bus, phydev-&gt;mdio.addr, 0x0d, 0x4000 | dev_id);return mdiobus_write(phydev-&gt;mdio.bus, phydev-&gt;mdio.addr, 0x0e, val);
}static inline int phy_read_c45(struct phy_device *phydev, u16 dev_id, u32 regnum)
{       mdiobus_write(phydev-&gt;mdio.bus, phydev-&gt;mdio.addr, 0x0d, dev_id);mdiobus_write(phydev-&gt;mdio.bus, phydev-&gt;mdio.addr, 0x0e, regnum); mdiobus_write(phydev-&gt;mdio.bus, phydev-&gt;mdio.addr, 0x0d, 0x4000 | dev_id);return mdiobus_read(phydev-&gt;mdio.bus, phydev-&gt;mdio.addr, 0x0e);
}

http://www.yayakq.cn/news/721821/

相关文章:

  • html5网站源码php英文网站建设中
  • 一个公司如何把网站做好一个页面的html5网站模板 psd
  • 域名网站建设教程深圳动漫制作
  • 临沂市兰山区建设局网站logo设计在线生成免费标小智
  • 哪个网站可有做投票搭建做棋牌网站违法
  • php 小企业网站 cms网站单页面
  • 网站代备案公司广州建设网站公司哪个济南兴田德润有活动吗
  • 安卓系统app开发seo网站结构
  • 自己做图网站自己做的网站怎么上线
  • 嘉兴城乡建设局网站推广普通话主题班会记录
  • ci策划 网站开发做网站是怎么赚钱的
  • 北京市著名的网站制作公司北京网站设计浩森宇特
  • 去视频网站做编辑广州网站建设策划书
  • 电子商务网站建设论文结论怎么做弹幕视频网站
  • 专业网站建设品牌策划wordpress ajax登录
  • 太原网站制作机构襄阳网站推广优化技巧
  • 装修网站排行榜前十名有哪些企业名录搜索软件终身免费
  • 网站的技术分析珠海网站制作策划
  • 淘宝客网站空间深圳住房建设官方网
  • 服务器架构做网站网站开发信息平台项目总结
  • 西宁网站设计公司免费下载软件全免费
  • 国家高新技术企业有效期几年百度手机端排名如何优化
  • 浙江省龙泉市建设局网站项目管理软件模块
  • 兴远建设网站庆阳网络营销
  • 网站优化的好处山东监理工程师考试最新消息
  • 电子商务企业网站的基本功能成都php网站建设
  • 公司在选择网站时应考虑什么问题杭州萧山网站开发
  • 网站备案后经营如何做提卡网站
  • 丰台网站建设淘宝网页版看直播
  • 怎样用dw做 网站首页御名是什么意思