Linux内核或BIOS如何将PCIe 端点设备内存映射到systems 空间?有什么API可以实现吗?假设在为PCIe端点设备编写Linux设备驱动程序时,如何将PCIe设备内存映射到MMIO空间?还是在枚举期间,设备已经被BIOS映射到MMIO,而我需要做的就是使用ioremap()将设备MMIO重新映射到内核虚拟地址的空间?
平台: Linux on x86
目前,我正在学习Linux设备驱动程序,我觉得自己对设备如何在Linux中实例化产生了根本性的误解。
在Linux模块中,我可以调用alloc_chrdev_region()向内核注册设备。具体来说,这个函数是
int alloc_chrdev_region(dev_t *dev, unsigned int firstminor,
unsigned int count, char *name);
它生成设备编号(主要/次要)并接受设备名称。
成功执行后,将在/proc/devices中创建一个主要编号和设备类型名称的条目。但是,/dev中没有生成任何设备文件。相反,我必须发出一个mknod调