Linux kernel Linux SRAM到RAM DMA传输

Linux kernel Linux SRAM到RAM DMA传输,linux-kernel,beagleboneblack,dma,Linux Kernel,Beagleboneblack,Dma,我正在beaglebone black上使用linux 4.1内核。我想从SRAM(通过GPMC连接的FPGA)和普通RAM进行DMA传输。我该怎么做?我看到很多关于设备到内存或内存到设备的文档,但关于内存到内存的文档不多。可能重复:@SamProtsenko这取决于SRAM的寻址方式。如果它占用相同数量的CPU地址空间,那么mem-2-mem传输是可以的,否则就必须使用不同的方法。@AndyShevchenko是的,我知道。不过,这一点很好。不久前,我在基于OMAP的TI SoC中使用GPMC

我正在beaglebone black上使用linux 4.1内核。我想从SRAM(通过GPMC连接的FPGA)和普通RAM进行DMA传输。我该怎么做?我看到很多关于设备到内存或内存到设备的文档,但关于内存到内存的文档不多。

可能重复:@SamProtsenko这取决于SRAM的寻址方式。如果它占用相同数量的CPU地址空间,那么mem-2-mem传输是可以的,否则就必须使用不同的方法。@AndyShevchenko是的,我知道。不过,这一点很好。不久前,我在基于OMAP的TI SoC中使用GPMC IP核,所以我知道它被映射到主地址空间。请看第2.1节,它为GPMC内存指定了从0x0000_0000到0x1FF_ffff的地址。因此,在这种情况下,从RAM到RAM的DMA拷贝应该可以正常工作。是的,再仔细研究一下,看起来RAM到RAM的传输可以正常工作。但是,我还没有连接GPMC设备,也没有配置内核。我如何确定我的内核模块是唯一允许访问SRAM接口的东西?@CalebMerchant我想你真的应该把它作为另一个问题来问。可能重复:@SamProtsenko这取决于SRAM的地址。如果它占用相同数量的CPU地址空间,那么mem-2-mem传输是可以的,否则就必须使用不同的方法。@AndyShevchenko是的,我知道。不过,这一点很好。不久前,我在基于OMAP的TI SoC中使用GPMC IP核,所以我知道它被映射到主地址空间。请看第2.1节,它为GPMC内存指定了从0x0000_0000到0x1FF_ffff的地址。因此,在这种情况下,从RAM到RAM的DMA拷贝应该可以正常工作。是的,再仔细研究一下,看起来RAM到RAM的传输可以正常工作。但是,我还没有连接GPMC设备,也没有配置内核。我如何确定我的内核模块是唯一允许访问SRAM接口的东西?@CalebMerchant我想你真的应该把它当作另一个问题来问。