hi all experts,
now i encouter an issue that is edma channel can not be shared on linux and rtos.
my board SOC is DRA711, and we make visionSDK0304 earlyboot on IPU2 successfully.
in kernel dts has following config:
/* Linux uses first 32 channels, BIOS uses last 32 */
&edma {
dma-requests = <32>;
};
this means that linux use first 32 channel(0~31), RTOS use last channel(32~63).
if enable the following module in omap_hwmod_7xx_data.c of linux kernel, on IPU2 side edma can not work, block at Utils_dmaCopy2D() function. linux side edma can work.
static struct omap_hwmod_ocp_if *dra7xx_hwmod_ocp_ifs[] __initdata = {
。。。
&dra7xx_l4_cfg__dma_system,
&dra7xx_l3_main_1__tpcc,
&dra7xx_l3_main_1__tptc0,
&dra7xx_l3_main_1__tptc1,
。。。
};
but if i disable the privious module, IPU2 side can use EDMA channel 32 to transfer data, but on linux side edma can not work. kernel log as following:
[ 0.211235] edma3-tptc 43400000.tptc: _od_fail_runtime_resume: FIXME: missing hwmod/omap_dev info
[ 0.211294] edma3-tptc 43500000.tptc: _od_fail_runtime_resume: FIXME: missing hwmod/omap_dev info
[ 0.211492] edma 43300000.edma: _od_fail_runtime_resume: FIXME: missing hwmod/omap_dev info
[ 0.211502] edma 43300000.edma: pm_runtime_get_sync() failed
could anyone help me figure out the problem?
i look up this post:
but also can not fix this problem.
as edma clock has already enable on IPU2 side when earlyboot. so how can i disable edma clock setting on kernel side?