Part Number: DRA725
Tool/software: Linux
Hello,
I want alloc continuous physical address to do encoder in GLSDK, and add the below code in videnc2test.c :
unsigned int out_pa = 0;
unsigned int *out_buf = NULL;
CMEM_AllocParams params;
params.type = CMEM_HEAP;
params.alignment = 0;
params.flags = CMEM_CACHED;
out_buf = CMEM_alloc2(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_CACHED);
enc->cdata = CMEM_map(out_pa, output_size);
When i rebuild and run videnc2test, get some error form kernel:
“[ 113.163800] rpmsg_rpc rpmsg-dce: error from rproc_pa_to_da, rproc = df75ec00, pa = 0x90000000 ret = -22
[ 113.178281] rpmsg_rpc rpmsg-dce: unwinding UVA to RDA translations! translation = 0
113.211200] rpmsg_rpc rpmsg-dce: failed to translate all pointers for remote core!”
The CMEM's memory was alloced form CMA "global" memory pool, and to use omap_bo_new_paddr(), I use some patches from infoadas ,the patches in attach zip file.
Does the encoder(IPU) support continuous physical mem which allocated from MPU side? Maybe i need do some mem change in IPUMM,but I dont know how to implementation it.
Regards,