gpt4 book ai didi

Linux 内核 : CMA & Device Tree

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:35 26 4
gpt4 key购买 nike

我尝试使用配置了 DT 的 CMA(连续内存分配器)。但是我怎样才能从模块访问分配的内存区域呢?

这是DT部分:

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”的函数?

感谢帮助,斯文

最佳答案

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

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);

关于Linux 内核 : CMA & Device Tree,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28755023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com