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/AM5728:CMEM 的 GC320错误

Guru**** 2558250 points
Other Parts Discussed in Thread: AM5728

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/611754/linux-am5728-gc320-error-with-cmem

器件型号:AM5728

工具/软件:Linux

你(们)好

我 根据  ti-processor-sdk-linux-am57xx-evm-04.00.04修改了 VPE 使用 CMEM 而不是 OMAP 平铺内存。

e2e.ti.com/.../582810 (6011.galRunTest2_DRM.c、双摄像头演示示示示例)

没关系。 非常感谢。

但是、我修改 了 GC320使用 CMEM 而不是 OMAP 平铺器存储器。

gcoSURF_SetBuffer 有错误。 我认为 GC320驱动程序不起作用 vaddr (cmem_buf   = CMEM_LOCAT2(...)) CMEM 的性能。

然后、我尝试使用 GC230、就像您在下面所说的那样。

e2e.ti.com/.../582810 ( review.omapzoom.orgreview.omapzoom.orgreview.omapzoom.org 、   
arago-project.org/.../)

换句话说、 我尝试让我们的应用程序使用 CMA 存储器、如下所示。

flags = OMA_BO_MEM_CONTIG;

BO = omap_bo_new (((omap_device*) m_dcceCtx、大小、标志);
断言(bo);
vaddr = omap_bo_map (bo);
 assert (vaddr); //此点为错误。

[41.289245]  ------ [在此处剪切]-----
[41.296082]  警告:CPU:0 PID:1131、位于 drivers/GPU/DRM/omapdrm/omap_gem.c:617 omap_gem_mmap_obj+0xd0/0xd4
[41.306585]  模块链接在: galcore (O) bc_example (O) SHA512_generic SHA512_arm SHA256_generic SHA1_generic SHA1_ARM_NEON SHA1_ARM MD5 CBC xfrm_user xfrm4_tunnel ipcomp xfrm_ipus 4 ahp_key xfrm_arm_neonf clus_pric_mpu_clus_mpu_mpu_clus_mpu_mpu_mpu_clus_mpu_mpu_mpu_mpue_platform_mpu_mpu_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_platform_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_mpue_ omap_des dwc3_OMAP DES_generic rtc_omap_engine snd_soc_tlv320aic3x crypcir_i2c_ts rtc_Palmas rtc_ds1307 extcon_Palmas extcon_core omap_remotess_rpmsg_bus rpmsgmsg_core memtio_fq_cdel uio (drom_otiv_otiv_dr)模块(dr)(dr)(drom_remotiv_otiv_otiv_otiv_otiv_dr)(dr)(
[41.380012]  CPU:1 PID:1131 Comm:omk_exe 被污染:G          O   4.9.28-geed43d1050 #1
[41.388314]  硬件名称:通用 DRA74X (平展器件树)
[41.394432]  回扫:
[41.396907][   ](dump_backtrace)从[ ](show_stack+0x18/0x1c)
[41.404512]   r7:00000009 R6:60000013 R5:00000000 R4:c1022410
[41.410200]  [ ](show_stack)从[ ](dump_stack+0x8c/0xa0)
[41.417456]  [ ](dump_stack)从[ ](_warn+0xec/0x104)
[41.424449]   r7:00000009 r6:c0bdb2bc r5:00000000 r4:00000000
[41.430135][   ](__warn)从[ ](WARN_RASPEK_NULL_0x28/0x30)
[41.437739]   R9:eca91300 R8:d50c6fc0 r7:00000000 R6:ed597300 R5:d5379ea0 R4:ffffea
[41.445521]  [ ](warn_slowpath_null)、来自[ ](omap_gma_mmap_obj+0xd0/0xd4)
[41.454088]  [ ](omap_gma_mmap_obj)、来自[ ](OMAP-G宝石_mMAP+0x28/0x58)
[41.462215]   r7:00010000 R6:d5379cd0 R5:d5379ea0 R4:00000000
[41.467905][   ](omap_gma_mmap)、来自[ ](mmap_region+0x364/0x68c)
[41.475681]   R5:b4a2f000 R4:d5379cd8
[41.479276][   ](mmap_region)从[ ](do_mmap+0x340/0x3bc)
[41.486530]   R10:000000fb R9:00000384 R8:d50c6fc0 r7:ed5973c0 R6:00000003 R5:b4a2f000
[41.494392]   R4:00384000
[41.496941]  [ ](DO _mmap)从[ ](VM_mmap_pgoff+0x84/0xac)
[41.504196]   R10:00000000 R9:d50ae000 R8:00000003 r7:00384000 R6:00000000 R5:ed5973c0
[41.512057]   R4:d50c6ffc
[41.514604][   ](VM_mmap_pgoff)、来自[ ](sys_mmap_pgoff+0x98/0xc8)
[41.522468]   R8:ed5973c0 r7:00000003 R6:00384000 R5:00000000 R4:00000001
[41.529202]  [ ](sys_mmap_pgoff)从[ ](RET_FAST_SYSCALL+0x0/0x34)
[41.537241]   R8:c0207d84 r7:000000c0 R6:10000000 R5:00010000 R4:00000006
[41.544058]  --[结束线迹 a948b9404884143b ]--

我附加 了已修补的内核文件。

我希望您能对其进行审核和测试。

感谢您访问 lot.e2e.ti.com/.../omap_5F00_gem.c

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Lee、

    我已经测试了 gc320表面缓冲器的 CMA 分配、它工作正常、但在终止期间存在问题。 我没有看到过这个问题。

    在您的应用中、您已经设置了 flags = OMA_BO_MEM_CONTIG;

    它还应具有 OMAP-BO_WC。 您是否在标记中设置了此项?

    下面是正确的标志设置

    flags = OMA_BO_MEM_CONTIG | OMA_BO_WC;

    RAM

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

    器件型号:AM5728

    工具/软件:Linux

    你(们)好

    非常感谢 您的帮助( https://e2e.ti.com/support/arm/sitara_arm/f/791/t/611754 )。

    gcoSURF_SetBuffer 没有错误、但 下一个编码的 gcoSURF_SetWindow 有错误。

     状态= gcoSURF_SetBuffer()
                   lpSurface->Surface、
                   gcvSURF_bitmap、
                   格式、
                   跨步、
                   Vaddr、
                   PHY);

    status = gcoSURF_SetWindow (lpSurface->Surface、0、0、width/*1280*/、height/*720*/);
       如果(状态< 0)
       {
      printf("*error*未能为 gcoSURF 对象设置窗口");
           Destory_P_Surface (lpSurface);
        返回空;
       }

    [33.906229]  第0页上的 Pte 条目无效

    如果我使用 OMAP 平铺内存(仅 OMAP-BO_WC)、我不会有问题。

    我想解决这个问题。

    非常感谢。