Original question:
Linux/TDA2PXEVM: run vision sdk demo on the tda2px board fail
Replies: 12
Views: 185
Part Number: TDA2PXEVM
Tool/software: Linux
hi all,
i design the follow link connect, i want dump the dispDistSrc link data through Null link, but the andriod system crash.
Dup -> Gate_Null (A15) -> Null_vid1 (A15)
DispDistSrc_Android -> Dup -> Gate_Android -> Display_vid1
set the Null_vid1 parameter as following:
void chains_DemoDisplay_SetNullPrms(NullLink_CreateParams *pPrm){ pPrm->dumpDataType = NULL_LINK_COPY_TYPE_FILE; strcpy((char*)pPrm->nameDataFile[0], "/data/vid1_raw_file_dump.dat");}
crash log as following:
[ 58.232770] Internal error: Oops: 2a05 [#1] PREEMPT SMP ARM[ 58.239898] Modules linked in: cmemk(O) memcache(O) pvrsrvkm(O) input_polldev ti_fpd3_serdes sd_mod usb_storage scsi_mod[ 58.250897] CPU: 0 PID: 1430 Comm: apps.out Tainted: G W O 4.4.117-gc33c12e #1[ 58.259109] Hardware name: Generic DRA74X (Flattened Device Tree)[ 58.265228] task: cf728e00 task.stack: cf6fe000[ 58.269784] PC is at v7_dma_inv_range+0x30/0x48 [memcache][ 58.275296] LR is at DMA_devIoctl+0x248/0x288 [memcache][ 58.280631] pc : [<bf02a074>] lr : [<bf02a3cc>] psr: 600f0013[ 58.280631] sp : cf6ffed0 ip : 00000014 fp : cf6fff04[ 58.292157] r10: 00000000 r9 : 00000004 r8 : 00000004[ 58.297402] r7 : cf636780 r6 : 9defa76c r5 : 00000000 r4 : c120394c[ 58.303956] r3 : 0000003f r2 : 00000040 r1 : 00000000 r0 : 00000000[ 58.310511] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user[ 58.317675] Control: 30c5387d Table: 8f71a1c0 DAC: fffffffd[ 58.323444][ 58.323444] SP: 0xcf6ffe50:[ 58.327729] fe50 00000002 dc8ba675 bf02a074 600f0013 ffffffff cf6ffeb4 00000004 00000004[ 58.336017] fe70 cf6fff04 cf6ffe80 c020d498 c0201278 00000000 00000000 00000040 0000003f[ 58.344300] fe90 c120394c 00000000 9defa76c cf636780 00000004 00000004 00000000 cf6fff04[ 58.352582] feb0 00000014 cf6ffed0 bf02a3cc bf02a074 600f0013 ffffffff c120394c bf02a390[ 58.360864] fed0 00000000 00000000 00000000 00000000 00000225 dc8ba675 d1253150 c120394c[ 58.369145] fef0 cf691798 0000fdfd cf6fff7c cf6fff08 c039a23c bf02a190 cf6fff1c dc8ba675[ 58.377426] ff10 ee36ef10 cfb31880 c120da08 0000000b cf6fff10 c02081a4 cf6fe000 dc8ba675[ 58.385706] ff30 c123d564 c123affc 9defa76c 0000da08 cf636780 00000004 cf6fff7c cf6fff58[ 58.393989][ 58.393989] FP: 0xcf6ffe84:[ 58.398277] fe84 00000000 00000040 0000003f c120394c 00000000 9defa76c cf636780 00000004[ 58.406558] fea4 00000004 00000000 cf6fff04 00000014 cf6ffed0 bf02a3cc bf02a074 600f0013[ 58.414838] fec4 ffffffff c120394c bf02a390 00000000 00000000 00000000 00000000 00000225[ 58.423121] fee4 dc8ba675 d1253150 c120394c cf691798 0000fdfd cf6fff7c cf6fff08 c039a23c[ 58.431403] ff04 bf02a190 cf6fff1c dc8ba675 ee36ef10 cfb31880 c120da08 0000000b cf6fff10[ 58.439684] ff24 c02081a4 cf6fe000 dc8ba675 c123d564 c123affc 9defa76c 0000da08 cf636780[ 58.447967] ff44 00000004 cf6fff7c cf6fff58 c04eab28 dc8ba675 00000000 cf636781 cf636780[ 58.456249] ff64 9defa76c 0000da08 00000004 cf6fffa4 cf6fff80 c039a49c c0399e08 837be068[ 58.464532][ 58.464532] R4: 0xc12038cc:[ 58.468818] 38cc 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000[ 58.477102] 38ec 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000[ 58.485384] 390c 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000[ 58.493665] 392c 00000000 00000000 00000000 00000000 00000000 00000000 00000001 00000001[ 58.501945] 394c dc8ba675 003fb0d6 00000000 00000009 c021aa00 c021aa20 c021b430 c021b434[ 58.510227] 396c c0200044 c021b460 c021b46c c021b3e0 c021b3f8 00000024 c021b4b0 c021b4e0[ 58.518509] 398c 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000[ 58.526790] 39ac 00000000 c021b364 c021b39c 90f00000 c021ad74 c021ad30 00000022 ffffffff[ 58.535073][ 58.535073] R7: 0xcf636700:[ 58.539359] 6700 00000000 00000000 00000000 c0a027f8 00000000 00000000 00000000 00000048[ 58.547642] 6720 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000[ 58.555923] 6740 00000000 00000000 00000000 00000000 00000000 00000000 00000000 ffff0000[ 58.564204] 6760 ffff0000 d0116448 d0116540 d0116400 d0116400 000002c0 00000001 00000000[ 58.572489] 6780 00000000 00000000 ee36ef10 cfb31880 cf691798 bf02a67c 00000000 00000003[ 58.580772] 67a0 00020002 0000001f 00000001 00000000 cf6367b0 cf6367b0 00000000 00000000[ 58.589051] 67c0 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000[ 58.597335] 67e0 cf64b900 00000000 00000000 00000000 00000000 00000000 00000000 00000000[ 58.605618] Process apps.out (pid: 1430, stack limit = 0xcf6fe210)[ 58.611824] Stack: (0xcf6ffed0 to 0xcf700000)[ 58.616200] fec0: 00000000 00000000 00000000 00000000[ 58.624413] fee0: 00000225 dc8ba675 d1253150 c120394c cf691798 0000fdfd cf6fff7c cf6fff08[ 58.632627] ff00: c039a23c bf02a190 cf6fff1c dc8ba675 ee36ef10 cfb31880 c120da08 0000000b[ 58.640841] ff20: cf6fff10 c02081a4 cf6fe000 dc8ba675 c123d564 c123affc 9defa76c 0000da08[ 58.649054] ff40: cf636780 00000004 cf6fff7c cf6fff58 c04eab28 dc8ba675 00000000 cf636781[ 58.657269] ff60: cf636780 9defa76c 0000da08 00000004 cf6fffa4 cf6fff80 c039a49c c0399e08[ 58.665482] ff80: 837be068 837be068 9defa7a8 00000036 c02081a4 cf6fe000 00000000 cf6fffa8[ 58.673695] ffa0: c0207fe0 c039a434 837be068 837be068 00000004 0000da08 9defa76c 9defa764[ 58.681909] ffc0: 837be068 837be068 9defa7a8 00000036 837155d4 83717240 837829e8 837197b4[ 58.690122] ffe0: 00000000 9defa750 a70e2e3d a710e43c 600f0010 00000004 ff261011 ff250e12[ 58.698331] Backtrace:[ 58.700807] [<bf02a184>] (DMA_devIoctl [memcache]) from [<c039a23c>] (do_vfs_ioctl+0x440/0x62c)[ 58.709542] r6:0000fdfd r5:cf691798 r4:c120394c[ 58.714209] [<c0399dfc>] (do_vfs_ioctl) from [<c039a49c>] (SyS_ioctl+0x74/0x84)[ 58.721548] r9:00000004 r8:0000da08 r7:9defa76c r6:cf636780 r5:cf636781 r4:00000000[ 58.729374] [<c039a428>] (SyS_ioctl) from [<c0207fe0>] (ret_fast_syscall+0x0/0x40)[ 58.736974] r9:cf6fe000 r8:c02081a4 r7:00000036 r6:9defa7a8 r5:837be068 r4:837be068[ 58.744797] Code: 1e070f3e e1110003 e1c11003 1e071f3e (ee070f36)[ 58.751016] ---[ end trace 1b9ea86ae3fcf40e ]---[ 58.755691] Kernel panic - not syncing: Fatal exception[ 58.760942] CPU1: stopping[ 58.763666] CPU: 1 PID: 146 Comm: logd.klogd Tainted: G D W O 4.4.117-gc33c12e #1[ 58.771965] Hardware name: Generic DRA74X (Flattened Device Tree)[ 58.778081] Backtrace:[ 58.780550] [<c020c80c>] (dump_backtrace) from [<c020ca08>] (show_stack+0x18/0x1c)[ 58.788149] r6:60070193 r5:c1241e94 r4:00000000 r3:dc8ba675[ 58.793870] [<c020c9f0>] (show_stack) from [<c0b166b0>] (dump_stack+0x94/0xa8)[ 58.801126] [<c0b1661c>] (dump_stack) from [<c021052c>] (handle_IPI+0x320/0x33c)[ 58.808550] r6:00000000 r5:c1085518 r4:00000005 r3:dc8ba675[ 58.814269] [<c021020c>] (handle_IPI) from [<c0201510>] (gic_handle_irq+0x78/0x7c)[ 58.821868] r10:ab387830 r9:ab387747 r8:fa213000 r7:fa212000 r6:ed70bfb0 r5:fa21200c[ 58.829773] r4:c12048c0 r3:00000005[ 58.833381] [<c0201498>] (gic_handle_irq) from [<c020d7e8>] (__irq_usr+0x48/0x60)[ 58.840893] Exception stack(0xed70bfb0 to 0xed70bff8)[ 58.845966] bfa0: abcf3568 00000002 ab3876b0 becb9f9e[ 58.854180] bfc0: 00000041 abcf3568 00000002 00000054 7fffffff ab387747 ab387830 cccccccd[ 58.862391] bfe0: ab922000 ab38769c ab922034 abceade2 80070030 ffffffff[ 58.869030] r8:30c5387d r7:30c5387d r6:ffffffff r5:80070030 r4:abceade2 r3:abcf3568[ 58.876852] Rebooting in 5 seconds..
could you help me find out the problem?
In reply to Shravan Karthik:
hi shravan,
i grep my kernel dir:
arch/arm/mach-omap2/board-generic.c:#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)arch/arm/mach-omap2/board-generic.c:#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)arch/arm/mach-omap2/board-generic.c:#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)arch/arm/mach-keystone/keystone.c:#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)arch/arm/mach-highbank/highbank.c:#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE)arch/arm/mm/init.c:#ifdef CONFIG_ARM_LPAEarch/arm/mm/init.c:#ifdef CONFIG_ARM_LPAEarch/arm/mm/fault.h:#ifdef CONFIG_ARM_LPAEarch/arm/mm/pgd.c:#ifdef CONFIG_ARM_LPAEarch/arm/mm/pgd.c:#ifdef CONFIG_ARM_LPAEarch/arm/mm/pgd.c:#ifndef CONFIG_ARM_LPAEarch/arm/mm/pgd.c:#ifdef CONFIG_ARM_LPAEarch/arm/mm/idmap.c:#ifdef CONFIG_ARM_LPAEarch/arm/mm/idmap.c:#else /* !CONFIG_ARM_LPAE */arch/arm/mm/idmap.c:#endif /* CONFIG_ARM_LPAE */arch/arm/mm/proc-macros.S:#if !defined (CONFIG_ARM_LPAE) && \arch/arm/mm/proc-v7.S:#ifdef CONFIG_ARM_LPAEarch/arm/mm/proc-v7.S:#ifdef CONFIG_ARM_LPAEarch/arm/mm/proc-v7.S:#ifdef CONFIG_ARM_LPAEarch/arm/mm/proc-v7.S:#ifndef CONFIG_ARM_LPAEarch/arm/mm/proc-v7.S:#ifndef CONFIG_ARM_LPAEarch/arm/mm/proc-v7.S:#endif /* CONFIG_ARM_LPAE */arch/arm/mm/mmu.c:#ifdef CONFIG_ARM_LPAEarch/arm/mm/mmu.c:#ifndef CONFIG_ARM_LPAEarch/arm/mm/mmu.c:#ifndef CONFIG_ARM_LPAEarch/arm/mm/mmu.c:#ifndef CONFIG_ARM_LPAEarch/arm/mm/mmu.c:#ifndef CONFIG_ARM_LPAEarch/arm/mm/mmu.c:#ifdef CONFIG_ARM_LPAEarch/arm/mm/mmu.c:#ifndef CONFIG_ARM_LPAEarch/arm/mm/mmu.c:#ifndef CONFIG_ARM_LPAEarch/arm/mm/mmu.c:#endif /* !CONFIG_ARM_LPAE */arch/arm/mm/mmu.c:#ifndef CONFIG_ARM_LPAEarch/arm/mm/mmu.c:#ifndef CONFIG_ARM_LPAEarch/arm/mm/mmu.c:#ifdef CONFIG_ARM_LPAEarch/arm/mm/context.c:#ifdef CONFIG_ARM_LPAEarch/arm/mm/dump.c:#ifndef CONFIG_ARM_LPAEarch/arm/mm/dump.c:#ifndef CONFIG_ARM_LPAEarch/arm/mm/dump.c:#ifdef CONFIG_ARM_LPAEarch/arm/mm/fault.c:#ifndef CONFIG_ARM_LPAEarch/arm/mm/fault.c:#ifdef CONFIG_ARM_LPAEarch/arm/mm/fault.c:#ifndef CONFIG_ARM_LPAEarch/arm/mm/fault.c:#endif /* CONFIG_ARM_LPAE */arch/arm/mm/fault.c:#ifdef CONFIG_ARM_LPAEarch/arm/mm/fault.c:#ifndef CONFIG_ARM_LPAEarch/arm/mm/ioremap.c:#if !defined(CONFIG_SMP) && !defined(CONFIG_ARM_LPAE)arch/arm/mm/ioremap.c:#ifndef CONFIG_ARM_LPAEarch/arm/mm/ioremap.c:#if !defined(CONFIG_SMP) && !defined(CONFIG_ARM_LPAE)arch/arm/mm/ioremap.c:#if !defined(CONFIG_SMP) && !defined(CONFIG_ARM_LPAE)arch/arm/kernel/head.S:#ifdef CONFIG_ARM_LPAEarch/arm/kernel/head.S:#ifdef CONFIG_ARM_LPAEarch/arm/kernel/head.S:#ifdef CONFIG_ARM_LPAEarch/arm/kernel/head.S:#ifdef CONFIG_ARM_LPAEarch/arm/kernel/head.S:#if defined(CONFIG_ARM_LPAE) && defined(CONFIG_CPU_ENDIAN_BE8)arch/arm/kernel/head.S:#ifdef CONFIG_ARM_LPAEarch/arm/kernel/head.S:#ifdef CONFIG_ARM_LPAEarch/arm/kernel/head.S:#ifdef CONFIG_ARM_LPAEarch/arm/kernel/smp.c:#ifdef CONFIG_ARM_LPAEarch/arm/kernel/machine_kexec.c:#ifdef CONFIG_ARM_LPAEarch/arm/include/asm/pgtable.h:#ifdef CONFIG_ARM_LPAEarch/arm/include/asm/pgtable.h:#ifdef CONFIG_ARM_LPAEarch/arm/include/asm/atomic.h:#ifdef CONFIG_ARM_LPAEarch/arm/include/asm/pgalloc.h:#ifdef CONFIG_ARM_LPAEarch/arm/include/asm/pgalloc.h:#else /* !CONFIG_ARM_LPAE */arch/arm/include/asm/pgalloc.h:#endif /* CONFIG_ARM_LPAE */arch/arm/include/asm/pgalloc.h:#ifndef CONFIG_ARM_LPAEarch/arm/include/asm/pgalloc.h: if (__LINUX_ARM_ARCH__ >= 6 && !IS_ENABLED(CONFIG_ARM_LPAE))arch/arm/include/asm/tlb.h:#ifdef CONFIG_ARM_LPAEarch/arm/include/asm/tlb.h:#ifdef CONFIG_ARM_LPAEarch/arm/include/asm/memory.h:#if !defined(CONFIG_SMP) && !defined(CONFIG_ARM_LPAE)arch/arm/include/asm/pgtable-hwdef.h:#ifdef CONFIG_ARM_LPAEarch/arm/include/asm/bug.h:#ifdef CONFIG_ARM_LPAEarch/arm/include/asm/page.h:#ifdef CONFIG_ARM_LPAEarch/arm/include/asm/proc-fns.h:#ifdef CONFIG_ARM_LPAEarch/arm/include/asm/proc-fns.h:#ifdef CONFIG_ARM_LPAEarch/arm/include/asm/proc-fns.h:#ifdef CONFIG_ARM_LPAEarch/arm/configs/keystone_defconfig:CONFIG_ARM_LPAE=yarch/arm/configs/axm55xx_defconfig:CONFIG_ARM_LPAE=yarch/arm/configs/dntc_android_defconfig:CONFIG_ARM_LPAE=yti_config_fragments/dra7_only.cfg:CONFIG_ARM_LPAE=yti_config_fragments/lpae.cfg:CONFIG_ARM_LPAE=yinclude/config/auto.conf:CONFIG_ARM_LPAE=yinclude/generated/autoconf.h:#define CONFIG_ARM_LPAE 1.config:CONFIG_ARM_LPAE=y.config.old:CONFIG_ARM_LPAE=y
i wonder to know which one should modify to n?
In reply to user5884909:
Hi,
As indicated in the previous post please modify the file 'ti_config_fragments/auto.cfg' in the kernel. Please set CONFIG_ARM_LPAE=n in this file and perform a clean build.
Regards
Shravan
hi Shravan, (1) i zcat the config as following: jacinto6evm:/vendor/bin # zcat /proc/config.gz | grep LPAE # CONFIG_ARM_LPAE is not set # CONFIG_IOMMU_IO_PGTABLE_LPAE is not set (2) before running demo, we must excute memcache_load.sh, as following: insmod /vendor/lib/modules/cmemk.ko phys_start=0xA9000000 phys_end=0xAD000000 if [ ! -f /dev/memcache ] then major=`cat /proc/devices | grep memcache | cut -d ' ' -f1` mknod /dev/memcache c ${major} 0 fi (3) i change the link as following: Dup -> Gate_Null -> Null_vid1 (A15) (i think it is the same as: Dup -> Gate_Null ->IPC_OUT[RTOS] -> IPC_IN[A15] ->Null_vid1(A15) ) DispDistSrc_Android -> Dup -> Gate_Android -> Display_vid1 i track the buffer follow between links as following: DispDistSrc link: /dev/vdrm-controller-0, bufferAddr = 0xf0b00000 [Dup link] [0] payload = 0x99fa4a88, buffaddr = 0xf0b00000 [Dup link] [1] payload = 0x99fa4a88, buffaddr = 0xf0b00000 [IPC OUT] [RTOS] payload = 0x99fa4a88, buffaddr = 0xf0b00000 [IPC IN] [A15] payload = 0x8ca2b8f8, buffaddr = 0x0 Null link write bufAddr: 0x0, bufList.buffers[bufId]->payload = 0x8ca2ba08 [type: 0], pVidFrame->metaBufAddr = 0x0, size = 0, fillLength = 0 i can see the buffer from IPC_OUT[RTOS] to IPC_IN[A15] has been changed to NULL.
I add log in IPC IN of A15:
[HOST] [HOST ] 110.080156 s: [IPC IN] [A15] bufferType = 0, pBuffer->payloadSize = 72 [HOST] [HOST ] 110.080156 s: [IPC IN] [A15] memPhys2Virt: before (0xf1b00000) [HOST] [HOST ] 110.080156 s: [IPC IN] [A15] memPhys2Virt: after (0x0) [HOST] [HOST ] 110.080186 s: [IPC IN] [A15] index = 6, pIpcBuffer->payload = 0xa5796b90, pIpcBuffer->payload->buffaddr = 0xf1b00000 [HOST] [HOST ] 110.080186 s: [IPC IN] [A15] pSysBuffer->payload = 0x88e92e48, pSysBuffer->payload->buffaddr = 0x0
I found that when call IpcInLink_drvTranslateSystemBufferPayloadPtrs() -> OSA_memPhys2Virt() return NULL pointer.
why? the memory space is not enough?
i can dump the data from DispDistSrc link by call OSA_memMap() map the physics address to virtual address, then fwrite the data to file.
but i can not call OSA_memPhys2Virt() to map the address.
thanks!
hi Shravan, Thanks , i don't think this buffaddr is virtual address, because i can call OSA_memMap() to map this address to virtual then call fwrite to dump the data, and i can see the image by 7yuv tool.
what's more, this path DispDistSrc_Android -> Dup -> Gate_Android -> Display_vid1 is OK. so i dont think the buffAddr from DispDispSrc link is wrong.
Does that mean 0xf0b00000 is a physical address? If that's the case where does this region belong to (SR0 / SR1.. etc).
If 0xf0b00000 is a physical address how are you passing it to IPU? Have you modified the AMMU configuration? By default the IPU can access only 1GB of DDR.