腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
Linux
PCIe
DMA
驱动程序
、
、
、
我目前正在为PCIe设备编写一个驱动程序,该驱动程序应该使用
DMA
将数据发送到
Linux
系统。据我所知,我的PCIe设备需要一个
DMA
控制器(
DMA
主),我的
Linux
系统也需要(
DMA
从机)。目前,PCIe设备没有
DMA
控制器,不应该有一个控制器。这让我很困惑。 启动从
内存
映射的PCIe寄存器到的
DMA
传输。从用户空间中的
内存<
浏览 13
提问于2019-07-09
得票数 1
1
回答
Xilinx Zynq平台上使用AXI-
DMA
IP的PCM
DMA
引擎
、
、
、
、
我正在尝试在基于Zynq-7000的平台上使用
DMA
引擎来将PCM流传输到Zynq中的自定义I2S控制器。我的I2S控制器连接到外部放大器。我想通过AXI-
DMA
控制器使用
DMA
。这是我当前的数据路径: 我在Zynq PS上使用的是
Linux
4.10内核。我使用
Linux
的ASoC子系统来产生pcm流和控制我的外部音频放大器。我有512MB的DDR
内存
连接到Zynq。", "
dma
1", "
dma
2&qu
浏览 57
提问于2017-02-24
得票数 3
3
回答
是否每个
dma
_map_single调用都需要相应的
dma
_unmap_single?
、
、
我正在将一个大的代码库移植到
Linux
内核设备驱动程序。ASIC使用大量的
DMA
通道。 我用GFP_KERNEL|GFP_
DMA
实现了kmalloc
内存
。在启动
DMA
之前,我使用
dma
_map_single获取硬件(物理)
内存
地址,将其提供给硬件。(还会刷新/无效dcache中的
内存
吗?)在
DMA
完成后,我有时需要CPU访问数据,但并不经常。在我通过代码访问数据之前,我做了一个
dma
_unmap_singl
浏览 4
提问于2013-04-23
得票数 5
回答已采纳
1
回答
PCIe内核驱动程序
DMA
写入错误地址
、
、
我目前正在为
Linux
4.19编写一个PCIe内核驱动程序。首先初始化PCIe驱动程序。分配后,我将物理地址推入
DMA
配置并启动传输。我遇到的问题是,当使用虚拟地址读取
DMA
数据时,我只读取零,而不是通过
DMA
写入任何零。我还测试了
内存
区域,首先通过CPU将ramp写入
内
浏览 5
提问于2020-03-30
得票数 0
2
回答
是否可以使用
dma
_set_mask()告诉内核不要在4G下使用
内存
、
、
、
、
我的pcie设备有一个错误,它不能将地址设置在4G以下,我应该用什么掩码和
dma
_set_mask一起告诉内核呢?
浏览 19
提问于2015-03-12
得票数 0
回答已采纳
2
回答
如何处理作为网络的物理地址以及
DMA
如何连接到它?
、
、
、
我正在开发一个网络驱动程序,对
内存
管理有点困惑。在TX路径上,我收到一个skb,因为下层只希望获得物理地址,我想我需要调用*virt_to_phys*并将返回值发送到下层。(这有道理吗?)现在,我知道有函数*
dma
_map_single*和*
dma
_unmap_single*。我仍然不知道他们是如何来到这里的。所以下层想要用
DMA
..。我也不确定我是否理解
dma
_map_single描述的含义会很感激你的帮助。
浏览 4
提问于2013-11-11
得票数 0
回答已采纳
1
回答
用户空间缓冲区与
内存
映射文件之间的
DMA
、
、
、
内存
通过用户空间
DMA
:在
linux
中可以通过用户空间
DMA
实现memcpy吗?我知道有一些方法可以通过
DMA
将内核缓冲区复制到用户空间缓冲区,但是想要在用户空间中通过
DMA
对memcpy进行扩展吗?
浏览 1
提问于2014-04-07
得票数 1
回答已采纳
1
回答
pci_alloc_consistent无缓存存储器
、
、
、
公平地说,pci_alloc_consistent分配一个连续的、非缓存的、非分页的内核
内存
块。我问这个问题的原因是,我在一些内核/驱动程序代码(不是在普通内核源代码中)中看到了这样的评论,我认为我理解
内存
是连续的,但是不能确定它是否被分配到非缓存中,因为缓存一致性的思想是保持缓存和
DMA
内存
中的数据一致例如,在Part Ia一节中说:因此,人们无法推断
内存
是非缓存的,所
浏览 6
提问于2015-08-04
得票数 1
回答已采纳
2
回答
获取
Linux
下缓冲区的物理地址
、
、
、
、
我在Xilinx的Microblaze上运行
Linux
内核3.3,带有完整的MMU。之所以需要这样做,是因为我有一个
DMA
引擎,可以从预设的物理
内存
地址流式传输数据,所以我需要强制
Linux
在那个确切的
内存
位置创建缓冲文件,这样当我将数据写入这个文件时,它会立即由
DMA
引擎传输到另一个硬件核心更多详细信息: 我的系统有一个512MB的
DMA
通过“Xilinx的多端口
内存
控制器连接到系统上,这个
内存
控制器的基地址是0x90000000,
浏览 11
提问于2013-06-13
得票数 7
1
回答
如何创建100M字节的缓冲区
我正在测试
Linux
上的一个接口的吞吐量。我正在使用
DMA
进行数据传输。
DMA
需要连续的
内存
位置。但是kmalloc无法分配超过1MB的
内存
。有没有其他方法可以创建高达100M字节的大缓冲区?
浏览 0
提问于2011-05-01
得票数 4
1
回答
我可以使用
dma
_map_single()返回的地址在DeviceB上调用DeviceA吗?
、
、
、
、
我正在编写自定义
linux
驱动程序,它需要多个PCIE设备之间的
DMA
内存
。我有以下情况:如果#1是"ok",则仍不确定是否有必要调
浏览 3
提问于2021-07-26
得票数 0
1
回答
DMA
的快速
内存
缓冲器
、
、
我目前正在为
DMA
开发
linux
驱动程序。驱动程序使用
dma
_alloc_coherent分配
内存
区域,我使用_
dma
_mmap_id = (int*) mmap(NULL, buffer_size, PROT_READ | PROT_WRITE我试图为测试目的分配非相干
内存
(使用kmalloc和
dma
_alloc_noncoherent) (只是为了查看这是否加速了
内存
访问),但在这些情况下,我能够分配的
内存
量非常有限(例如,4MB
浏览 1
提问于2016-05-16
得票数 2
2
回答
Linux
内核如何决定使用哪个
内存
区域?
、
、
、
当我检查页面时
Linux
如何选择一个
内存
区域来分配一个新页面?
浏览 2
提问于2013-08-05
得票数 3
1
回答
映射
linux
内核中的
DMA
中断
、
、
我正在为一个包含
DMA
控制器的powerpc SoC编写一个内核模块。我想映射
linux
内核中的
DMA
中断。我的
DMA
结构有两个中断:{ u32
dma
2;
内存
映射了内核中的
DMA
结构。
dma
->
dma
1=irq_of_parse_and_map(ofdev->node,0);
dma
浏览 2
提问于2011-05-18
得票数 3
1
回答
Linux
操作--如何启动传输
、
、
我读过
Linux
设备驱动程序,
DMA
-API.txt,
DMA
-HOWTO.txt也看过驱动程序/
dma
/dmatest.c,但是我不知道您是如何启动
dma
传输的。所有关于映射
内存
的讨论都没有讨论如何启动事务。PCI示例驱动程序有一个传输功能,但是它使用“特定的”
DMA
操作,我正在试图找出一个更通用/可移植的实现,它不依赖于硬件。我试着做些像 中断事
浏览 10
提问于2012-12-04
得票数 2
回答已采纳
1
回答
在
Linux
内核模块中配置
DMA
、
、
、
、
对于我的应用程序,我会通过内核空间中的
DMA
将一些在RAM中分配的数据发送给PWM fifo。当数据向量完成时,我会使用
DMA
生成一个中断,所以要加载下一个向量并触发其他行为.我读过O‘’Reilly的第三版"
Linux
设备驱动程序“,但我对使用
DMA
引擎有点困惑。我需要学习如何在内核空间中使用(
内存
-> pwm fifo)。
浏览 1
提问于2019-06-29
得票数 0
1
回答
在X86平台上,
DMA
操作是否意味着在MMIO空间和系统
内存
地址空间之间移动数据?
、
在现代的X86/X86_64平台上,由于MMIO机制的存在,
DMA
操作是否可以在MMIO地址空间和
内存
地址空间之间移动数据?在
Linux
内核中,我看到有一个
dma
_addr_t定义。
浏览 2
提问于2012-02-02
得票数 0
1
回答
带iommu=on和不带VFIO的
Linux
用户空间
DMA
、
、
Linux
用户空间应用程序是否有可能在不被IOMMU阻塞和不使用VFIO的情况下为
DMA
使用自己的
内存
?但是,当启用IOMMU (intel_iommu=on)时,它不能工作,因为我们在用户空间中分配的
内存
不允许
DMA
。官方的解决方案是使用
Linux
接口来管理IOMMU,但是我们认为VFIO特性还不是很成熟,我们更希望找到一个更简单的解决方案。 我们能否以某种方式指示IOMMU为我们分配的物理
内存
允许
DMA
?有关如何分配
内存
的详细信息
浏览 4
提问于2015-05-01
得票数 3
2
回答
什么是
linux
内核上下文中的
DMA
映射和
DMA
引擎?
、
、
、
、
什么是
linux
内核上下文中的
DMA
映射和
DMA
引擎?什么时候
DMA
映射API和
DMA
引擎API可以在
Linux
设备驱动程序中使用?任何真正的
Linux
设备驱动程序示例作为参考都是很好的。
浏览 10
提问于2015-12-25
得票数 10
2
回答
将静态数据结构用于
DMA
、
我有一个用于
linux
kernel (2.6.18)的驱动程序,其中我使用kmalloc(sizeof(my_struct_t),GFP_ATOMIC)来分配
内存
,这些
内存
后来被用于通过某些设备的
DMA
它变得太大了,以至于kmalloc()代码使用静态断言和编译的__you_cannot_kmalloc_that_much符号来通知
内存
区块太大而无法分配。我定义了静态my_struct_t my_struct; 但是
DMA
事务不能很好地工作,并且我得到了无效的数据
DMA</em
浏览 3
提问于2009-12-03
得票数 3
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
图解|Linux内存碎片整理
Linux内存映射mmap原理分析
DMA分区计量探讨
解读 Linux 内存管理新特性 Memory folios
FreeBSD 14 将用 dma 取代 sendmail
热门
标签
更多标签
云服务器
ICP备案
对象存储
腾讯会议
云直播
活动推荐
运营活动
广告
关闭
领券