首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux内核: CMA和设备树

Linux内核: CMA和设备树
EN

Stack Overflow用户
提问于 2015-02-27 07:47:27
回答 1查看 1.6K关注 0票数 1

我尝试使用DT配置的CMA (连续内存分配器)。但是如何从模块访问分配的内存区呢?

这是DT部分:

代码语言:javascript
复制
reserved-memory {
    #address-cells = <1>;
    #size-cells = <1>;
    ranges;

    dsp_reserved: dsp@83400000 {
        reg = <0x83400000 0x400000>;
        no-map;
    };
};

c64_dsp {
    compatible = "c64-dsp";
    interrupt-parent = <&intc>;
    interrupts = <26>;
    memory-region = <&dsp_reserved>;
};

如何在自己的驱动程序中获得保留的内存区"dsp_reserved“?该地域是否已被"dma_alloc_coherent“请求?有没有类似于"platform_get_irq“的功能?

谢谢你的帮助,斯文

EN

回答 1

Stack Overflow用户

发布于 2015-02-28 02:05:44

我找到了一个解决方案(在probe()函数中调用):

代码语言:javascript
复制
memory = of_parse_phandle(dev->of_node, "memory-region", 0);
if (!memory) {
    return -ENODEV;
}

addr = of_translate_address(memory,
             of_get_address(memory, 0, &memory_size, NULL));

virt_addr = phys_to_virt(addr);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28755023

复制
相关文章

相似问题

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