This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/DRA725:将编码器的物理地址传递到 IPU 失败

Guru**** 2587365 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/591258/linux-dra725-pass-physical-address-to-ipu-for-encoder-failed

器件型号:DRA725

工具/软件: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、&params);
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

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我已将您的问题转交给图形专家进行评论。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    GLSDK 不支持 OMAP-BO_new_paddr ()。 您能否确认此补丁是如何到达的?

    此致、
    Anand
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Anand、您好!
    感谢您的回复。 OMAP-BO_new_paddr()已实现,我使用来自 infodas 的一些修补程序。 在 GLSDK 上工作正常。
    我已经使用它来在 VIP 和 Display 中分配 DMA_buf。 但编码器(IPU)不能解决问题,当地的 TI FAE 工程师告诉我,这可能是一个不会让人感到很失望的地方
    编码器(IPU)侧。
    上面的附加 zip 文件中有三个补丁:
    "0006-hack-drm-omap-creating gem-hand-for-a-buffer-with -.patch"和"0007-omapdrm-fix-cache_flush-isseme-for-paddr-gem.patch"软件在内核 omap_gem 驱动程序模块中工作。
    "0008-libdrm-add-support-for -paddr-ioctls.patch"在 libdrm 中工作。
    如果您需要修改后的 OMAP-Gem 驱动程序模块和 libdrm_omap.so、我可以为您提供。 否则,您可以使用修补程序来添加 OMAP-BO_new_paddr()。
    此致、
    SID
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Sid、

    啊、我明白。 如补丁本身所述、它仅适用于 INFOA、不应与 GLSDK 一起使用。

    我建议使用相应的 INFOADAS 版本移至 PSDKLA 3.02。 在此版本中、我们为您使用 DMABUF 实现的用例支持提供了更强大的支持。 所有处理块(INFOADAS、DSS、SGX 等)都支持 dmabuf 导入、因此可以轻松地传递缓冲区。

    我们还有一个基于 GStreamer 的汽车黑匣子演示、该演示对拼接的环视内容进行编码。

    此致、
    Anand