linux下SI总线驱动.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux下SI总线驱动

Linux下SMI总线驱动 韩大卫@吉林师范大学 剖析某类总线接口的芯片在linux里用户层对其的调用办法,较快捷的办法是直接找到该总线控制器的驱动 程序,从其提供的软件接口展开逐层向上推及。现跟大家分享一下linux下octeon 处理器的SMI总线控制 器的驱动(其架构完全符合platform设备驱动的通过架构)。附录里有用户层访问SMI总线设备,如 marvell PHY芯片88E1111 /1340/1340S的源程序。 下面为cavium octeon的SMI总线驱动源代码的大致内容: drivers/net/phy/mdio-octeon.c static int __init octeon_mdiobus_mod_init(void) { //将octeon_mdiobus_driver 作为一个platform类型的driver 注册到内核 return platform_driver_register(octeon_mdiobus_driver); } module_init(octeon_mdiobus_mod_init); static struct platform_driver octeon_mdiobus_driver = { .driver = { .name = mdio-octeon, .owner = THIS_MODULE, .of_match_table = octeon_mdiobus_match, }, .probe = octeon_mdiobus_probe, .remove = __exit_p(octeon_mdiobus_remove), }; static int __init octeon_mdiobus_probe(struct platform_device *pdev) { struct octeon_mdiobus *bus; struct resource *res_mem; union cvmx_smix_en smi_en; int err = -ENOENT; //申请并初始化一段内存填充数据结构 struct octeon_mdiobus bus = devm_kzalloc(pdev-dev, sizeof(*bus), GFP_KERNEL); if (!bus) return -ENOMEM; /*获取IO 内存资源的描述,这个资料描述是uboot通过读取解析并处理uboot里的dts文件后得到的, 在linux启动后,便可通过platform_get_resource()来获取,成功获取后,后面会向内核申请使用这 段IO 内存,另外, dts文件关于IO地址等资料的描述是按照CPU datasheet 上的信息来写的。 */ res_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (res_mem == NULL) { dev_err(pdev-dev, found no memory resource\n); err = -ENXIO; goto fail_region; } /*通过res_mem来得到地址首地址和地址长度, 这个start 是我在uboot的dts文件里描述的 “ smi0: mdio@1180000001800 { compatible = cavium,octeon-3860-mdio; #a ress-cells = 1; #size-cells = 0; reg = 0x11800 00x0 0x40; “ 首地址 0x1180000001800, 长度为0x40 /*

文档评论(0)

jixujianchi + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档