各位专家、您好!
现在、我解决了一个问题、即 EDMA 通道无法在 Linux 和 RTOS 上共享。
我的板 SOC 是 DRA711、我们在 IPU2上成功进行了 VisionSDK0304耳启动。
内核 DTS 具有以下配置:
/* Linux 使用前32个通道,BIOS 使用后32个*/
EDMA{(&E)
DMA 请求=<32>;
};
这意味着 Linux 使用前32个通道(0~31)、RTOS 使用最后一个通道(32~63)。
如果在 Linux 内核的 omap_hwmod_7xx_data.c 中启用以下模块,则在 IPU2端,EDMA 无法工作,在 Utils_dmaCopy2D()函数处阻止。 Linux 端 EDMA 可以正常工作。
静态结构 omap_hwmod_opc_if *dra7xx_hwmod_opc_ifs[]__initdata ={
。。。μ A
&dra7xx_L4_cfg_DMA_SYSTEM、
&dra7xx_L3_MAIN_1_tpcc、
&dra7xx_L3_MAIN_1__tptc0、
&dra7xx_L3_main_1__tptc1、
。。。μ A
};
但是、如果我禁用上一个模块、则 IPU2侧可以使用 EDMA 通道32来传输数据、但在 Linux 侧 EDMA 无法正常工作。 内核日志如下所示:
[0.211235] EDMA3-tptc 43400000。tptc:_od_fail_runtime_resume:FIXME:缺少 hwmod/OMA_dev 信息
[0.211294] EDMA3-tptc 43500000。tptc:_od_failure_runtime_resume:FIXME:缺少 hwmod/OMA_dev 信息
[0.211492] EDMA 43300000。EDMA:_od_fail_runtime_resume:FIXME:缺少 hwmod/OMA_dev 信息
[0.211502] EDMA 43300000。EDMA:Pm_runtime_get_sync()失败
有人能帮我解决这个问题吗?
但也无法解决此问题。
因为在完全启动时、EDMA 时钟已经在 IPU2侧启用。 那么、如何在内核方面禁用 EDMA 时钟设置呢?
