/dev/mem 和pcie设备驱动

Buyi_Shizi 2016-04-07 08:56:50
在对pcie设备进行读写的时候,有了/dev/mem这个设备文件之后,是不是就不用安装对应的pcie设备驱动,直接对/dev/mem文件进行mmap映射就能实现对pcie设备的读取了。如果是这样的话,感觉所有的pcie总线上的设备都可以不需要相应的驱动程序了
...全文
2274 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
nswcfd 2016-04-07
  • 打赏
  • 举报
回复
/dev/mem的读写范围不能超过可用的物理内存。
static ssize_t read_mem(struct file * file, char __user * buf,
			size_t count, loff_t *ppos)
{
	unsigned long p = *ppos;
	ssize_t read, sz;
	char *ptr;

	if (!valid_phys_addr_range(p, count))
		return -EFAULT;
static inline int valid_phys_addr_range(unsigned long addr, size_t count)
{
	if (addr + count > __pa(high_memory))
		return 0;

	return 1;
}
#ifdef CONFIG_HIGHMEM
	high_memory = (void *) __va(highstart_pfn * PAGE_SIZE - 1) + 1;
#else
	high_memory = (void *) __va(max_low_pfn * PAGE_SIZE - 1) + 1;
#endif

1,025

社区成员

发帖
与我相关
我的任务
社区描述
Linux /Unix kernel支持不同的硬件体系,X86, ARM, MIPS, 等等
社区管理员
  • CPU和硬件区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧