【PCIE】
玛丽奥ZJY
这个作者很懒,什么都没留下…
展开
-
PCI/PCIe基础——配置空间
PCI/PCIe设备有自己的独立地址空间,这部分空间会映射到整个系统的地址空间。映射地址在BIOS/UEFI下指定(如果有的话,对于使用非BIOS启动的OS,不清楚),它有两种类型,一种是MMIO,一种是IO。对于MMIO的访问,跟访问内存的方式一样,它从称为PCIEXBAR的基地址开始,有很大的一段空间,这个PCIEXBAR的值根据不同的平台可能不同,大致可能值有0xC0000000、0转载 2017-10-31 10:48:37 · 1519 阅读 · 0 评论 -
Linux下PCI设备驱动程序开发
Linux下PCI设备驱动程序开发肖文鹏2004 年 3 月 09 日发布WeiboGoogle+用电子邮件发送本页面 1一、PCI总线系统体系结构PCI是外围设备互连(Peripheral Component Interconnect)的简称,作为一种通用的总线接口转载 2018-01-09 22:24:27 · 360 阅读 · 0 评论 -
Linux下PCIe驱动以及DMA机制
1. 驱动程序作用:· 设备驱动程序向应用程序屏蔽了硬件在实现上的细节,使得应用程序可以像操作普通文件一样操作外部设备。Linux操作系统抽象了对硬件的处理,可以使用和操作文件相同的,标准的系统调用接口来完成打开,关闭,读写喝I/O控制操作,而驱动程序主要任务也就是实现这些系统调用函数。· 每个设备文件对应两个设备号,其中主设备号标识设备种类,也标识了设转载 2018-01-09 22:27:23 · 6207 阅读 · 0 评论 -
Freesclae i.MX6 Linux PCIE驱动源码分析
最近需要做一个工具来测试PCIE的link是否成功,但是由于PCIE的驱动都是在内核空间中,因此需要首先分析一下i.MX6 PCIE的驱动源码。首先我不得不吐槽一下驱动源码的存放位置很混乱,在Linux 3.0.35_4.1.0中,驱动居然是在arch/arm/mach-mx6/目录下,通常的情况来说,这里是存放板极信息文件的地方,而pcie的驱动更应该放在drivers/pci等相关目录下,因此转载 2018-01-09 21:56:05 · 546 阅读 · 0 评论 -
PCIe 配置空间读写内核实现
1 PCI及PCI-E配置空间介绍 PCI-E是用来互联如计算和通信平台应用中外围设备的第三代高性能I/O总线。PCI-E采用了与PCI相同的使用模型和读写(load-store)通信模型,支持各种常见的事务,如存储器读/写、IO读/写和配置读/写事务。其存储器、IO和配置地址空间与PCI的地址空间相同。PCI Express与PCI系统是软件向后兼容的。PCI-E的配置空间大小为40...转载 2018-04-21 20:12:16 · 2915 阅读 · 0 评论 -
Linux确认硬件驱动模块方法(modules.pcimap)
本文是转帖,原文链接:http://www.edward-han.com/248.html在系统上执行 depmod -a 命令后,会在 /lib/modules/`uname -r`/ 目录下创建 modules.*map 文件,如何能确认硬件所需要的驱动模块是什么,就需要通过硬件的ID,来查看 /lib/modules/`uname -r`/modules.pcimap 中定义的模块名称,下面...转载 2018-05-23 10:00:37 · 632 阅读 · 1 评论 -
PCI驱动程序 (国嵌)
PCI驱动程序 总线是一种传输信号的信道; 总线是连接一个或多个导体的电气连线。总线由电气接口和编程接口组成,我们重点关注编程接口。PCI是Peripheral Component Interconnect(外围设备互联) 的简称, 是在桌面及更大型的计算机上普遍使用的外设总线。PCI总线具有三个非常显著的优点:1在计算机和外设间传输数据时具有更好的性能2能够尽量独立于具体的平台3可...转载 2018-07-30 13:34:14 · 815 阅读 · 0 评论 -
浅谈Linux PCI设备驱动(上)
转载:https://mp.weixin.qq.com/s?__biz=MzAxNTAyOTczMw==&mid=2649330302&idx=1&sn=79d0de64235673457eaecc215d99e3dc&chksm=839776f4b4e0ffe24e5600882237c7c3844b43155ca106cbe7cde90f49c70c76b228...转载 2019-01-08 07:10:28 · 1217 阅读 · 0 评论 -
浅谈Linux PCI设备驱动(上)
有学员建议写写PCI驱动,今天就找到一篇,文章很长,这基本上是全网对PCI讲的比较详细的博客了,分成上下两篇,这是上部分,未完待续。要弄清楚Linux PCI设备驱动,首先要明白,所谓的Linux PCI设备驱动实际包括Linux PCI设备驱动和设备本身驱动两部分。不知道读者理不理解这句话,本人觉得这句话很重要,对于PCI、USB这样的驱动来说,必须要理解这个概念,才能明白该如何看待Li...转载 2019-04-05 12:36:12 · 332 阅读 · 0 评论 -
浅谈Linux PCI设备驱动(下)
我们在浅谈Linux PCI设备驱动(上)中(以下简称 浅谈(一) )介绍了PCI的配置寄存器组,而Linux PCI初始化就是使用了这些寄存器来进行的。后面我们会举个例子来说明Linux PCI设备驱动的主要工作内容(不是全部内容),这里只做文字性的介绍而不会涉及具体代码的分析,因为要分析代码的话,基本就是对 Linux内核源代码情景分析(下册)第八章的解读,读者若想分析代码,可以参考该书的内...转载 2019-04-05 12:37:26 · 816 阅读 · 0 评论 -
PCIe 驱动流程(LTSSM)
本次的工作是完成刚流片的FPGA中PCIe IP核的bring up,也就是芯片的中PCIe的第一个使用者,将PCIe IP核正常使用起来,并配合公司的EDA团队,完成PCIe IP核到用户的呈现。 经过两个月的调试和文档阅读,对PCIe也有了初步的认识,对于PCIe的学习主要来自3个方面: 1、 王齐老师的《PCI Express 体系结构导读》和王齐老转载 2018-01-09 22:16:49 · 8004 阅读 · 0 评论 -
PCIe INTx 学习笔记
PCIe INTx study-v0.1 2015.3.28 Sherlock draftPCIe总线驱动一般也要支持INTx中断。一般的INTx驱动是在dts中配置好(这里分析的是 ARM架构下的PCI INTx),然后在PCI的子系统中又相关的代码解析得到的。调用链大致是:pci_device_add() -->pcibios_add_device(de转载 2018-01-09 22:11:49 · 740 阅读 · 0 评论 -
PCIe INTx 学习笔记
PCIe INTx study-v0.1 2015.3.28 Sherlock draftPCIe总线驱动一般也要支持INTx中断。一般的INTx驱动是在dts中配置好(这里分析的是 ARM架构下的PCI INTx),然后在PCI的子系统中又相关的代码解析得到的。调用链大致是:pci_device_add() -->pcibios_add_device(de转载 2018-01-09 22:11:08 · 1047 阅读 · 0 评论 -
Linux lspci查看硬件设备
Linux 主机的硬件配备lspci 找到的是目前主机上面的硬件配备[root@www ~]# lspci [-vvn]选项与参数:-v :显示更多的 PCI 接口装置的详细信息-vv :比 -v 还要更详细的信息-n :直接观察 PCI 的 ID 而不是厂商名称查阅您系统内的 PCI 装置:[root@www ~]# lspci#不必加上任转载 2017-11-29 09:22:43 · 20080 阅读 · 0 评论 -
uboot中PCIe驱动程序说明
针对之前分析uboot中PCIe部分的代码,这里进行简要的PCIE体会说明,回头再整理一下格式1. 概论这边的说明只针对Uboot中P1020开发板的PCIE部分。简要说明功能和注意问题。2. PCIe相关基本概念Host主桥:HOST 主桥与主存储器控制器在同一级总线上,其主要功能是隔离处理器系统的存储器域与处理器系统的PCI总线域。PCI 设备可以方便地通过 H转载 2017-12-08 21:22:28 · 2288 阅读 · 1 评论 -
7、PCIE总线-PCI、PCIE关系及信号定义
版权声明:本文为博主原创文章,未经博主允许不得转载。PCI(Peripheral Component Interconnect)总线规范在上世纪九十年代由Intel提出。在处理器体系结构中,PCI总线属于局部总线(Local Bus)。局部总线作为系统总线的延伸,主要功能是为了连接外部设备。处理器主频的不断提升,要求速度更快,带宽更高的局部总线。起初PC使用8位的X转载 2017-10-30 17:43:07 · 1783 阅读 · 0 评论 -
linux pci/pcie驱动
/driver/pci/probe.c/arch/powerpc/kernel/pci_64.c在pci驱动中pci调用pci_scan_device扫描每个设备的每个功能,当发现该功能存在时(通过读设备的vendor及product ID确定),就为该设备功能建立一个完整的pci_dev(通过pci_setup_device 完成),并将该设备功能加入到全局链表及总线链表中,转载 2018-01-02 09:38:06 · 10265 阅读 · 0 评论 -
PowerPC的PCI总线的dts配置【转】
powerpc使用称为FDT 扁平设备描述树的机制传递给内核硬件配置参数,从而引导内核。 这样的优势是PowerPC在Linux上的移植基本上都是对dts文件的修改,而升级内核的工作量远远小于其他cpu体系结构。只是目前介绍FDT或者OPEN Firmware的中文资料欠缺,这里记录我领悟的关于PCI总线树部分的ranges参数。pci0: pci@e0008500 {in转载 2018-01-02 09:38:57 · 2074 阅读 · 0 评论 -
PCIe 学习笔记(一)
pci study note 1-v0.1 2014.11.5 *** draft 本文是学习linux kernel中PCI子系统代码的一个笔记。PCI子系统的代码最主要的就是 实现整个PCI树的枚举和资源的分配。本文先总体介绍,然后主要分析pci_create_root_bus 函数,该函数实现pci_bus结构和pci_host_bridge结构的分配。本文分析的代码版本转载 2018-01-09 22:06:29 · 2456 阅读 · 0 评论 -
PCIe 学习笔记(二)
pci note 2-v0.1 2014.11.18 *** draft 本文继续pci note 1, 介绍pci_create_root_bus函数, 内核版本为3.18-rc1 调用关系: pci_scan_root_bus --> pci_create_root_bus[cpp] view plain copy转载 2018-01-09 22:07:47 · 1205 阅读 · 0 评论 -
PCIe 学习笔记(三)
pci note 3-v0.1 2014.11.22 sherlock draft-v0.2 2015.1.24 sherlock add pci_scan_bridge anlysispci_scan_child_bus(b)这个函数完成pci总线的枚举,完成整个pci树各个总线号的分配。但是并没有分配各个pci桥,pci device的BAR和mem, I转载 2018-01-09 22:09:44 · 712 阅读 · 0 评论 -
PCIe 学习笔记(四)
pci note 4==========-v0.1 2015.6.20 Sherlock draft: about pci resource assignment, just analysis ARM specific PCIe-v0.2 2015.6.22 Sherlock add introduction, so转载 2018-01-09 22:10:26 · 1953 阅读 · 0 评论 -
浅谈Linux PCI设备驱动(上)
点击上方"百问科技",选择置顶公众号嵌入式干货,及时送达------文 | linuxdrivers来源 |https://blog.csdn.net/linuxdrivers/article/details/5849698有学员建议写写PCI驱动,今天就找到一篇,文章很长,这基本上是全网对PCI讲的比较详细的博客了,分成上下两篇,这是上部分,未完待续...转载 2019-07-21 09:00:17 · 175 阅读 · 0 评论