SylixOS PCIe设备驱动开发杂项 1. 参考驱动代码 在SylixOS内核中,有一些PCIe设备驱动代码可以参考,具体的路径在libsylixos/SylixOS/driver/pci下: 其...
SylixOS PCIe设备驱动开发(十五)
SylixOS PCIe设备驱动中断处理 现在的PCIe设备要想正常工作基本都会用到中断功能,在SylixOS下要想使用设备中断功能,必须注册设备的中断处理函数并使能中断。而PCIe的中断又分为INT...
SylixOS PCIe设备驱动开发(十四)
SylixOS PCIe设备驱动获取BAR空间信息 通过前面的学习我们知道了如何编写一个简单PCIe设备驱动的基本框架,但是我们还需要知道这个设备的寄存器基址,中断号等才能进一步编写驱动硬件的代码。我...
SylixOS PCIe设备驱动开发(十三)
SylixOS PCIe设备驱动注册和卸载入口 通过前面的介绍我们知道当驱动注册时,如果匹配通过会调用我们自己的probe初始化函数,同样在卸载时会调用我们自己的退出函数。我们先来看看我们自己的pro...
SylixOS PCIe设备驱动开发(十二)
SylixOS PCIe设备ID匹配 我们知道声卡有声卡的驱动,网卡有网卡的驱动,那么我们在加载声卡驱动的时候,系统是怎么知道当前的驱动是给声卡这个设备用的而不是给网卡用的呢?这就是通过驱动中定义的设...
SylixOS PCIe设备驱动开发(十一)
SylixOS PCIe设备驱动注册和卸载 在SylixOS中,使用PCI_DRV_CB 数据结构来表示一个PCIe设备驱动: typedef struct { LW_LIST_LINE PCIDRV...
SylixOS PCIe设备驱动开发(十)
SylixOS PCI相关shell命令使用 SylixOS下可以使用一些命令来查看PCI设备的信息,具体使用方法请看下面介绍。 1. pcis命令 pcis 命令是SylixOS内核自带的shell...
SylixOS PCIe控制器驱动开发(九)
SylixOS PCIe控制器驱动使用自动配置功能 1. 地址空间简单回顾 自动配置主要就是配置各个设备BAR空间的PCIe地址,所以我们简单回顾下PCIe地址和CPU物理地址的概念。 PCIe控制器...
SylixOS PCIe控制器驱动开发(八)
SylixOS初始化PCI控制器数据结构 通过前面的几篇文章我们初始化好了PCI_DRV_FUNCS0 中的读写和中断申请这三个回调函数,现在我们要将这个操作集初始化给PCI控制器数据结构: pci_...
SylixOS PCIe控制器驱动开发(七)
SylixOS申请PCIe设备中断 本来这篇文章是想和读写配置空间放一起讲的,但是梳理了下发现PCIe的中断方面的知识还是比较重要的,因为现在一般的PCIe设备都需要配合中断来进行工作,而PCIe中断...
SylixOS PCIe控制器驱动开发(六)
SylixOS读写PCIe设备配置空间 在上一节中,我们知道注册控制器驱动后,SylixOS会遍历所有总线上的设备信息,这是通过读取设备的配置空间信息实现的。SylixOS中配置空间的读写都是通过调用...
SylixOS PCIe控制器驱动开发(五)
SylixOS注册PCIe控制器驱动 PCIe驱动主要分为两大类,PCIe控制器驱动和PCIe设备驱动。PCIe控制器驱动主要负责配置空间读写方法的实现、中断号获取和BAR地址自动配置功能,设备驱动根...