首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >作为PCI设备访问GPU

作为PCI设备访问GPU
EN

Stack Overflow用户
提问于 2022-04-28 16:14:34
回答 1查看 124关注 1票数 1

我是GPU操作系统内核空间世界的新手。我想以PCI设备的形式访问GPU内存,通过它暴露在条上的内存来使用exmaple dev_alloc (),它正在分配内存并将一个地址返回给这个地址。

代码语言:javascript
运行
复制
void *addr;
addr = dev_alloc ()
//check that the allocated address is in the device bar range 
if(In_bar_range(virt_to_phy(addr))) {
WRITE_ONCE(addr[0], 0);
READ_ONCE(addr[0]);
}

我还尝试使用pci_iomap进行映射,如下所示

代码语言:javascript
运行
复制
  void* __iomap map;
  u32 val;
  map=pci_iomap(pci_dev,0,8);
  iowrite8(0, map);
  val=ioread8(map);
  dev_info(&dev " value = %ud ", val);

试图从值中读取失败。它不返回0。它返回一个垃圾值。我不知道寻址转换(IO_MMU)是否有问题,或者我是否缺少某种CPU和GPU之间的同步,或者是否是另一个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-28 17:25:18

不太确定您已经使用了什么,而且它可能会根据内核版本而有所不同,但我假设您已经有了一个指向设备的指针。

如果您还没有,那么首先需要通过pci_iomap() (asm/pci_iomap.h)获得一个iomem映射,传递一个指向设备(struct pci_dev)和PCI条号的指针。然后,正如在DMA-API-HOWTO中解释的那样,您应该能够使用io{read,write}*()函数之一defined in asm/iomap.h来读取/写入此映射。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72047051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档