腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
(9999+)
视频
沙龙
1
回答
DMA
通道虚拟化意味着什么?
driver
、
linux-device-driver
、
dma
、
mmu
嗨,我看到了
DMA
正在处理
物理地址
的文档。因为
DMA
控制器实际上是使用
物理地址
来访问FIFO。在最近的一次讨论中,出现了一个问题:当我们为
DMA
实现一个
驱动
程序时,这个
驱动
程序是在
物理地址
还是虚拟地址上工作。在讨论中,还出现了术语
DMA
Channel虚拟化。这与虚拟寻址本身有任何关系吗?或者
DMA
根本不使用虚拟寻址。
浏览 0
提问于2017-01-06
得票数 1
回答已采纳
2
回答
什么是linux内核上下文中的
DMA
映射和
DMA
引擎?
linux
、
linux-kernel
、
linux-device-driver
、
dma
、
pci-e
什么是linux内核上下文中的
DMA
映射和
DMA
引擎?什么时候
DMA
映射API和
DMA
引擎API可以在Linux设备
驱动
程序中使用?任何真正的Linux设备
驱动
程序示例作为参考都是很好的。
浏览 10
提问于2015-12-25
得票数 10
1
回答
在雷霆
驱动
程序中绕开重新映射的目的是什么?
macos
、
dma
、
iokit
、
kernel-extension
、
iommu
我的问题只是好奇,我不是MacOS雷电
驱动
程序的开发人员,所以我对此没有经验。 我在页面上看到了雷电
驱动
程序和MacOS上的IOMMU。据我所知,当
驱动
程序请求一个内存地址时,获得的地址不是
物理地址
,而是由IOMMU映射的虚拟地址。我认为这是由于在没有IOMMU的情况下使用
DMA
的安全风险。但是,
驱动
程序可以选择绕过重映射,例如调用IODMACommand对象的initWithSpecification方法,并将mappingOptions设置为kBypassed。但是,在页面中,有人说
浏览 8
提问于2020-09-26
得票数 2
回答已采纳
1
回答
物理地址
、设备地址和虚拟地址之间的差异
android
、
linux-kernel
、
kernel
、
kernel-module
设备地址、
物理地址
和虚拟地址之间有什么区别? 实际上,我正试图在
驱动
程序中使用mmap,我被困在了这个概念上。
浏览 11
提问于2014-07-23
得票数 6
1
回答
DMA
分配的内存掩蔽
物理地址
有效吗?
linux
、
linux-kernel
、
arm
、
fpga
、
dma
我目前正在编写一个Linux内核
驱动
程序,它需要告诉FPGA一个要写入的RAM基址。FPGA是一个带有嵌入式ARM Cortex-A9的旋风V,一个带有
驱动
程序的嵌入式Linux正在运行。现在的问题是,FPGA结构只产生一个27位宽的总线来寻址sdram,而由
dma
调用生成的
物理地址
有32位,例如,
物理
浏览 2
提问于2017-09-25
得票数 1
回答已采纳
1
回答
如何获取V4L2
DMA
虚拟地址的
物理地址
?
linux-kernel
、
linux-device-driver
、
v4l2
我有一个典型的V4L2
驱动
程序,我使用它来配置内存映射IO方法。这个司机把一个虚拟地址交给我的用户空间应用程序。这一切都很好。 我有另一个
驱动
程序,它期望输入一个内核
物理地址
。我想将V4L2
驱动
程序的输出连接到这个
驱动
程序的输入端,但是它需要一个
物理地址
(这个
驱动
程序控制这个
驱动
程序的功能)。我的理解是,内核例程: virt_to_phys()例程将不能使用
DMA
分配的内存映射地址。这是真的吗?如果是的话,如何从传递到用户空间的<em
浏览 3
提问于2018-10-18
得票数 0
回答已采纳
1
回答
如何将
dma
_addr_t转换为linux内核中的虚拟地址?
memory-management
、
linux-kernel
、
linux-device-driver
、
dma
我正在编写一个PCI设备
驱动
程序,我需要为
DMA
分配一些内存,我正在使用以下函数:我把
dma
_handle传递给设备。有没有办法将
物理地址
dma
_handle转换成我可以在内核中使用的地址?类似于这些函数/宏中的一个:
浏览 0
提问于2013-10-30
得票数 0
回答已采纳
1
回答
在x86中中断处理页面错误以服务设备内存副本
x86
、
cpu
、
interrupt
、
interrupt-handling
、
dma
ISR会使用out告诉
DMA
控制器从系统内存向设备发出一份副本(反之亦然),还是我离这里很远?
浏览 4
提问于2012-07-03
得票数 1
回答已采纳
1
回答
如何从DriverKit
驱动
程序访问
物理地址
?
macos
、
scsi
、
driverkit
现在,我正在尝试编写一个IOUserSCSIParallelInterfaceController
驱动
程序,它既不使用
DMA
也不使用PCI,并且模拟一个SCSI目标。我意识到通过UserProcessParallelTask方法给出的SCSIUserParallelTask结构中的fBufferIOVMAddr ( )表示一个
物理地址
,它不能用作
驱动
程序内存空间中的内存地址我需要我的
驱动
程序向缓冲区写入一些东西,并从缓冲区中读取一些东西,因为我想通过我的
驱动
程序代码进行SCSI通信。
浏览 7
提问于2021-07-11
得票数 1
1
回答
为什么当我在Linux中与GFP_
DMA
一起使用kmalloc时,我会得到一个高地址?
linux
、
opensuse
、
dma
、
kmalloc
我正在为Linux中的
DMA
设备编写设备
驱动
程序。在中,它说: physical_pointer0 = kmalloc(number_of_bytes, GFP_
DMA
); printk(KERN_INFO &
浏览 5
提问于2012-09-09
得票数 3
回答已采纳
1
回答
PCIe内核
驱动
程序
DMA
写入错误地址
linux-kernel
、
pci
、
fpga
我目前正在为Linux4.19编写一个PCIe内核
驱动
程序。首先初始化PCIe
驱动
程序。我使用了以下说明: pci_alloc_consi
浏览 5
提问于2020-03-30
得票数 0
1
回答
如何实例化和使用
dma
驱动
程序linux模块
linux
、
kernel
、
driver
、
fpga
我们正在开发定制
DMA
设备,以快速处理大量数据。我们能够让它在裸金属上工作,但在Linux中却有麻烦。我们在ARM linux内核3.9上工作。我们不知道如何为我们的设备实例化和使用内核
驱动
程序:,您有什么建议或示例代码可以共享吗?但我们不确定如何实例化struct设备。
浏览 3
提问于2013-07-28
得票数 4
2
回答
获取Linux下缓冲区的
物理地址
linux-kernel
、
embedded
、
embedded-linux
、
mmap
、
microblaze
我正在做的任务要求我知道以下内容:我需要创建一个文本文件(缓冲区)并定位这个缓冲区的
物理地址
,并且我不希望内核将这个文件写入不连续的内存区域。之所以需要这样做,是因为我有一个
DMA
引擎,可以从预设的物理内存地址流式传输数据,所以我需要强制Linux在那个确切的内存位置创建缓冲文件,这样当我将数据写入这个文件时,它会立即由
DMA
引擎传输到另一个硬件核心更多详细信息: 我的系统有一个512MB的
DMA
通过“Xilinx的多端口内存控制器连接到系统上,这个内存控制器的基地址是0x90000000,系统中的所有单元都通过这个控制器
浏览 11
提问于2013-06-13
得票数 7
1
回答
从
DMA
地址(
dma
_addr_t)获取PFN?
linux-kernel
、
linux-device-driver
我希望将PFN与与
dma
_alloc_coherent一起分配的内存块关联起来,以便与PCIe设备一起使用,如下所示: buffer =
dma
_alloc_coherent注意:内核中似乎有一个名为
dma
_to_pfn的ARM函数,这似乎正是我所需要的,但是对于x86来说。
浏览 4
提问于2020-01-21
得票数 2
回答已采纳
2
回答
如何处理作为网络的
物理地址
以及
DMA
如何连接到它?
linux
、
linux-kernel
、
kernel
、
dma
我正在开发一个网络
驱动
程序,对内存管理有点困惑。在TX路径上,我收到一个skb,因为下层只希望获得
物理地址
,我想我需要调用*virt_to_phys*并将返回值发送到下层。(这有道理吗?)现在,我知道有函数*
dma
_map_single*和*
dma
_unmap_single*。我仍然不知道他们是如何来到这里的。所以下层想要用
DMA
..。我也不确定我是否理解
dma
_map_single描述的含义会很感激你的帮助。
浏览 4
提问于2013-11-11
得票数 0
回答已采纳
1
回答
Linux:如何确定与从ioremap返回的内容对应的
DMA
地址
c
、
linux
、
memory-management
、
linux-kernel
、
dma
假设我有一些
物理地址
(这是我的
DMA
源外围设备的总线位置):我知道:完成此操作后,我不再可以直接访问phys_addr (在我的示例中,我没有访问权限,因为我正在编写的
驱动
程序只传递了virt_addr)。似乎建议取消所有virt_to_bus-like转换,每个人都应该使用
dma
_map_single等来获取
DMA
总线地址。所以接下来我试了一下: wrong_phys
浏览 13
提问于2015-02-19
得票数 3
回答已采纳
1
回答
Linux使用什么指令来指示英特尔CPU设置
DMA
传输?
linux
、
linux-kernel
、
operating-system
我知道设备
驱动
程序可以使用内核api来设置传输方向、计数等,但我想了解api使用什么CPU指令来通知cpu启动
DMA
传输?
浏览 28
提问于2021-02-15
得票数 0
回答已采纳
2
回答
DMA
事务每次都需要复制到缓冲区?
linux-kernel
、
linux-device-driver
、
dma
这可能是一个愚蠢的问题,但到目前为止,我还没有了解
DMA
。当对内存DMAing执行内存时,需要分配
DMA
缓冲区(例如使用
dma
_alloc_coherent()),然后对于每一次传输,我们需要将缓冲区复制到分配的内存(源缓冲区),然后触发
DMA
事务。将源复制到目标-而不带
DMA
的步骤 触发
DMA
事务(最终将
浏览 4
提问于2016-09-06
得票数 1
回答已采纳
1
回答
DMA
缓存相干连续分配
linux-kernel
、
linux-device-driver
我正在考虑为
DMA
事务分配一个缓冲区。我读到有两种方法可以做到这一点--相干映射或流映射。 现在,我们需要缓存一致的缓冲区。但是,我们没有做任何分散/收集,所以我们想要
dma
_map_single调用的好处。我们已经在引导中预留了一些连续内存,所以我们总是有足够的连续内存可用。所以我想知道,我们能不能用
dma
_alloc_coherent返回的虚拟地址调用
dma
_alloc_coherent,然后再调用
dma
_map_single呢?然后将映射单的返回
物理地址
设置为
dm
浏览 2
提问于2013-08-02
得票数 3
回答已采纳
点击加载更多
热门
标签
更多标签
云服务器
ICP备案
对象存储
云点播
实时音视频
活动推荐
运营活动
广告
关闭
领券