工具/软件:Linux
您好!
我想在 GLSDK 中为编码器分配连续物理地址,并 在 videnc2test.c 中添加以下代码:
unsigned int out_PA = 0;
unsigned int * out_buf = NULL;
CMEM_AllocParams 参数;
params.type = CMEM_heap;
params.alignment = 0;
params.flags = CMEM_cached;
OUT_BUF = CMEM_LOCAT2 (CMEM_CMABLOCKID、OUTPUT_SIZE、¶ms);
OUT_PA = CMEM_getPhys (OUT_BUF);
ENC->output_bo = omap_bo_new_paddr (enc_>dev、output_size、out_PA、omap_BO 缓存);
ENC->CDATA = CMEM_MAP (OUT_PA、OUTPUT_SIZE);
当我重建并运行 videnc2test 时,从内核中获取一些错误:
"[113.163800] rpmsg_RPC rpmsg-DCE:rproc_pa_to_da 错误,rproc = df75ec00,pA = 0x90000000 ret =-22
[113.178281] rpmsg_RPC rpmsg-DCE:将 UVA 解压到 RDA 转换! 转换= 0
113.211200] rpmsg_RPC rpmsg-DCE:无法转换远程内核的所有指针!”
CMEM 的内存是 从 CMA “全局”内存池中分配的,要使用 omap_bo_new_paddr(),我使用 infoadas 中的一些修补程序, 附加 zip 文件中的修补程序。
编码器(IPU)是否支持 从 MPU 侧分配的连续物理测量? 也许我需要在 IPUMM 中进行一些修改、但我不知道如何实施 。
此致、
e2e.ti.com/.../0008_2D00_libdrm_2D00_Add_2D00_support_2D00_for_2D00_paddr_2D00_ioctls.zip