PCI驱动程序框架

news/2024/7/2 23:53:32

PCI驱动程序框架


文章目录

  • PCI驱动程序框架
  • 参考资料:
    • 一、 PCI驱动框架
    • 二、 RK3399驱动
  • 致谢



参考资料:

  • 《PCI Express Technology 3.0》,Mike Jackson, Ravi Budruk; MindShare, Inc.
  • 《PCIe扫盲系列博文》,作者Felix,这是对《PCI Express Technology》的理解与翻译
  • 《PCI EXPRESS体系结构导读 (王齐)》
  • 《PCI Express_ Base Specification Revision 4.0 Version 0.3 ( PDFDrive )》
  • 《NCB-PCI_Express_Base_5.0r1.0-2019-05-22》
  • SOC中AXI总线是如何连接的
  • AXI总线整理总结
  • PCIe中MSI和MSI-X中断机制
  • Firefly-RK3399开发板资料

一、 PCI驱动框架

在这里插入图片描述

二、 RK3399驱动

怎么找到驱动?

  • 在内核目录下根据芯片名字找到文件:drivers\pci\host\pcie-rockchip.c

    • 看到如下代码:

      static const struct of_device_id rockchip_pcie_of_match[] = {
      	{ .compatible = "rockchip,rk3399-pcie", },
      	{}
      };
      
  • 在内核arch/arm64/boot/dts下搜:grep "rockchip,rk3399-pcie" * -nr

    • 找到设备树文件:arch/arm64/boot/dts/rk3399.dtsi,代码如下:

              pcie0: pcie@f8000000 {
                      compatible = "rockchip,rk3399-pcie";
                      #address-cells = <3>;
                      #size-cells = <2>;
                      bus-range = <0x0 0x1f>;
                      ...... /* 省略 */
                      phys = <&pcie_phy>;
                      phy-names = "pcie-phy";
                      ranges = <0x83000000 0x0 0xfa000000 0x0 0xfa000000 0x0 0x1e00000
                                0x81000000 0x0 0xfbe00000 0x0 0xfbe00000 0x0 0x100000>;
                      reg = <0x0 0xf8000000 0x0 0x2000000>,
                            <0x0 0xfd000000 0x0 0x1000000>;
                      ...... /* 省略 */
                };
      


致谢

以上笔记源自韦东山老师的视频课程,感谢韦老师,韦老师是嵌入式培训界一股清流,为嵌入式linux开发点起的星星之火,也愿韦老师桃李满园。聚是一团火,散是满天星!

在这样一个速食的时代,坚持做自己,慢下来,潜心琢磨,心怀敬畏,领悟知识,才能向下扎到根,向上捅破天,背着世界往前行!
仅此向嵌入行业里的每一个认真做技术的从业者致敬!



http://lihuaxi.xjx100.cn/news/804026.html

相关文章

0201源码详解-ConcurrentHashMap-线程安全集合类-并发编程(Java)

文章目录1 概述2 主要属性及内部类3 构造函数3.1 无参3.2 带参3.3 tableSizeFor()4 get()-获取值4.1 get()主方法4.2 pread()方法4.3 Node hash值4.4 Node find()方法4.4.1 单链表结点4.4.2 ForwardingNode4.4.3 TreeBin4.4.4 TreeNode5 put()-放入键值对5.1 putVal()-放入键值…

分享12个面向前端开发人员的设计生产力工具

大家好&#xff0c;我们除了埋头写代码&#xff0c;有时候我们会有更多的选择&#xff0c;调整我们的开发和设计流程&#xff0c;借助这些生产力工具&#xff0c;可以大大提高我们的开发效率&#xff0c;好了废话不多说&#xff0c;今天我看了一篇关于这方面的文章&#xff0c;…

SQLServer数据库导出指定表里所有数据成insert语句

以sql server 2008 R2,数据库是Northwind数据库为例,导出指定表所有数据的sql脚本 目标:把Northwind数据库的Orders表导出成insert语句。1. 选择Northwind数据库,右键-任务-生成脚本:2. 在弹出的“生成和发布脚本”的简介窗口,按“下一步”按钮:3. 在“选择对象”窗口,…

第九章(12):STL之常用查找算法

文章目录前情回顾常用查找算法findfind_ifadjacent_findbinary_searchcountcount_if下一座石碑&#x1f389;welcome&#x1f389; ✒️博主介绍&#xff1a;一名大一的智能制造专业学生&#xff0c;在学习C/C的路上会越走越远&#xff0c;后面不定期更新有关C/C语法&#xff0…

简易三子棋游戏实现

哈喽小伙伴们大家好&#xff0c;我们一起学习三子棋游戏的创建吧。在开始之前我们先来复习一下&#xff0c;函数声明放在头文件中函数定义放在源文件中。那么什么是函数声明和函数定义呢&#xff1f;所谓函数声明就是说明函数的返回参数&#xff0c;函数类型&#xff0c;函数名…

[Windows] 微信超级管家,自动好友回复、计数、自动同意、群发、好友导出、消息日志、无限多开

简介 微信超级管家是一款大神针对微信制作的工具&#xff0c;它的主要功能包括了自动回复、好友计数、自动同意、群发、好友导出、消息日志、无限多开等等&#xff0c;让你拥有无限潜力哈&#xff0c;经常使用微信电脑版的朋友一定会用的上。 下载 微信超级管家 软件功能 1…

SpringBoot+Vue图书馆管理系统

简介&#xff1a;本项目采用了基本的SpringBootVue设计的图书馆管理系统。详情请看截图。经测试&#xff0c;本项目正常运行。本项目适用于Java毕业设计、课程设计学习参考等用途。 项目描述 项目名称SpringBootVue图书馆管理系统源码作者LHL项目类型Java EE项目 &#xff08;…

零基础机器学习做游戏辅助第九课--强化学习DQN(一)

一、强化学习简介 强化学习(英语:Reinforcement learning,简称RL)是机器学习中的一个领域,强调如何基于环境而行动,以取得最大化的预期利益。强化学习是除了监督学习和非监督学习之外的第三种基本的机器学习方法。与监督学习不同的是,强化学习不需要带标签的输入输出对,…