PCI驱动程序框架

news2025/2/26 2:20:27

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://www.coloradmin.cn/o/197714.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【NS2】打印c++函数名字/bash将echo赋值给变量

需求&#xff1a;将tcl在c调用的路由算法名字&#xff08;函数名&#xff09;输出&#xff0c;并作为变量赋值给文件名字&#xff0c;但就怎么将函数名字打印出来就思考了很久&#xff0c;并尝试了其他网站“在shell脚本使用tcl变量、如何在bash脚本打印tcl变量、NS2&#xff0…

【实际开发12】- 经验 experience

目录 1. 经验 experience 1. 无多大价值 , 停留数据展示层面 2. 保证数据一致性问题 3. 新增时 , 可先关注核心基础数据 ( 复杂数据以修改形式完善 ) 4. 新增 / 修改 ( 幂等性处理 ) 5. 增 / 删 / 改 添加日志 , 查询无需日志 6. 需要对接多模块的通用字段设计 : String…

什么是CRM系统 企业如何选择合适的CRM系统

在如今市场竞争激烈情况下&#xff0c;企业更加注重客户的数据和管理&#xff0c;因此逐渐形成了“以客户为核心”的理念。而借助CRM系统管理客户数据已然成为一种趋势。 选择一款适合企业的CRM系统可以帮助企业实现更多的价值。但一些企业在初期根本不了解什么是CRM系统&…

Hadoop安装(一) --- JDK安装

目录 1.安装虚拟机 2.关防火墙 3.修改网络配置文件 4.重启网络服务 5.连接shell 6.安装vim工具 7.免密登陆 8. 开启远程免密登录配置 9.远程登录 10.同步时间 10.1.安装ntpdate 10.2.定时更新时间 10.3.启动定时任务 10.4.查看状态 11.修改计算机名 12.配置ho…

数据仓库的架构以及传统数据库与数据仓库的区别

一、数据仓库的分层架构 数据仓库的数据来源于不同的源数据&#xff0c;并提供多样的数据应用&#xff0c;数据自下而上流入数据仓库后向上层开放应用&#xff0c;而数据仓库只是中间集成化数据管理的一个平台。 1&#xff0c;源数据层&#xff08;ODS&#xff09; 操作性数…

袁树雄和杨语莲究竟什么关系 ,《早安隆回》走红后又是《汉川》

自从《早安隆回》火爆全网后&#xff0c;歌迷们就有一种担心&#xff0c;不知道这首好听的歌曲&#xff0c;究竟还能再够火爆多久。歌迷们的担心也不无道理&#xff0c;毕竟花无百日红&#xff0c;人无千般好&#xff0c;《早安隆回》就是再好听&#xff0c;也不可能红一辈子吧…

windows搭建go语言开发环境

1.下载Go语言开发包可以在Go语言官网 ( https://golang.google.cn/dl/ )下载Windows 系统下的Go语言开发包&#xff0c;如下图所示。这里我下载的是 64位的开发包&#xff0c;如果读者的电脑是 32 位系统的话&#xff0c;则需要下载 32 位的开发包&#xff0c;在上图所示页面中…

Fiddler手机抓包

手机抓包软件Fiddler 下载地址以及下载流程 Fiddler 下载地址&#xff1a;https://www.telerik.com/download/fiddler 下载后直接一键安装即可 重要的注意项卸载最前面 pc和手机需要在同一个局域网&#xff0c;也就是同一个wifi 配置 Fiddler界面的简单介绍 pc端Fildde…

Windows Server 2022 Install Veeam ONE 12

借助有关 Veeam Backup & Replication™ 和 Veeam Agents 及 VMware vSphere、Microsoft Hyper-V 和 Nutanix AHV 的洞察&#xff0c;Veeam ONE™ 可通过交互式工具和智能学习提供深度智能监控、报告和自动化功能&#xff0c;帮助客户发现问题并前瞻性地解决问题。 Veeam O…

CUDA编程之CUDA流

文章目录前言CUDA流在默认流中重叠主机与设备用非默认CUDA流重叠多个核函数的执行重叠多个核函数的例子用非默认CUDA流重叠核函数的执行与数据传递不可分页主机内存与异步的数据传输函数总结参考前言 CUDA程序的并行层次主要有两个&#xff0c;一个是核函数内部的并行&#xff…

C++面向对象——C++ 重载运算符和重载函数

C面向对象——C 重载运算符和重载函数C 重载运算符和重载函数C 中的函数重载C 中的运算符重载运算符重载实例C 一元运算符重载C 二元运算符重载C 关系运算符重载C 和 -- 运算符重载C 赋值运算符重载C 函数调用运算符 () 重载C 下标运算符 [] 重载C 类成员访问运算符 -> 重载…

三、进程通信

一、基础知识数据传输一个进程将他的数据发送给另一个进程资源共享多个进程间共享同样的资源通知时间一个进程向另一个进程发送消息&#xff0c;通知他们发生了某种事情通信方式&#xff1a;管道和有名管道信号signal消息队列共享内存信号量套接字二、管道&#xff1a;无名管道…

c++11 标准模板(STL)(std::multiset)(六)

定义于头文件 <set> template< class Key, class Compare std::less<Key>, class Allocator std::allocator<Key> > class multiset;(1)namespace pmr { template <class Key, class Compare std::less<Key>> usi…

基于python Django 餐馆点菜管理系统

问题描述&#xff1a; 随着网络的迅速发展&#xff0c;越来越多的人开始接受甚至时依赖了网络营业的这种交易形式&#xff0c;传统的点菜模式不仅浪费时间&#xff0c;效率低下&#xff0c;而且特别耗费成本与人力&#xff0c;因此不少商家开始使用网上点菜系统。网上点菜系统是…

皮尔森相关系数(Pearson correlation coefficient)

最近在看脑机接口的网络&#xff0c;看到有使用通道的皮尔森相关系数作为特征的方法&#xff0c;这里记录一下皮尔森相关系数的学习内容&#xff0c;方便以后查阅。 皮尔森相关系数(Pearson correlation coefficient&#xff09;相关系数简单相关系数复相关系数典型相关系数参考…

【MySQL】MySQL中的数学函数有哪些?

数学函数MySQL函数简介数学函数1.绝对值函数ABS&#xff08;x&#xff09;和返回圆周率的函数PI&#xff08;&#xff09;2.平方根函数SQRT&#xff08;x&#xff09;和求余函数MOD&#xff08;x&#xff0c;y&#xff09;3.获取整数的函数CEIL&#xff08;x&#xff09;、CEIL…

关于Json Web Token(token)在前后端的实践思考

1、前言 啥也不说了&#xff0c;直接进入正题&#xff0c;来学习一下Token在前端和后端的简单应用分析 Token是在客户端频繁向服务端请求数据&#xff0c;服务端频繁的去数据库查询用户名和密码进行对比&#xff0c;判断用户名和密码是否正确&#xff0c;并作出相应提示&…

华为机试题:HJ37 统计每个月兔子的总数(python)

文章目录博主精品专栏导航知识点详解1、input()&#xff1a;获取控制台&#xff08;任意形式&#xff09;的输入。输出均为字符串类型。1.1、input()与list(input())的区别、及其相互转换方法2、print() &#xff1a;打印输出。3、整型int() &#xff1a;将字符串或数字转换为整…

C语言基础(二)—— 常量与变量、数据类型、进位制、关键字、原码反码补码、限定符、字符串格式化输入输出

1. 常量与变量1.1 关键字1.2 数据类型数据类型的作用&#xff1a;编译器预算对象&#xff08;变量&#xff09;分配的内存空间大小。1.3 常量在程序运行过程中&#xff0c;其值不能被改变的量常量一般出现在表达式或赋值语句中整型常量100&#xff0c;200&#xff0c;-100&…

MySQL事务篇

目录​​​​​​​ 一.事务有哪些特性&#xff1f; 二.并行事务会引发什么问题&#xff1f; 脏读 不可重复读 幻读 三.事务的隔离级别有哪些&#xff1f; 一.事务有哪些特性&#xff1f; 原子性&#xff08;Atomicity&#xff09;&#xff1a;一个事务中的所有操作&…