Ticket Name: Linux/TDA2: send model from A15 to C66 Query Text: Part Number: TDA2 Tool/software: Linux i am using tda2x evm i use this chain test my cnn (SDK_VISION_03_04_00_00\vision_sdk\sample_app\src\hlos\usecases\nullSrc_display) in chains_nullSrcDisplay.c i read my cnn model to this buffer (model_fr) gUcObj.Alg_FrameCopyPrm.mybuf = (void*)(void*)OSA_memVirt2Phys((UInt32)model_fr, OSA_HEAPID_DDR_CACHED_SR1); in c66 i get the buffer , but i find the model i get on c66 is not Completely consistent , some weight is diffrent , so i add OSA_memCacheWb after OSA_memVirt2Phys OSA_memCacheWb( (UInt32)gUcObj.Alg_FrameCopyPrm.mybuf, ( (UInt32)gUcObj.Alg_FrameCopyPrm.mybuf + length_fr ) ); I remembered add OSA_memCacheWb slov my problem, (i do this last week it is ok) ,but today it have some problem , add OSA_memCacheWb make crash , follow is the log , can you tell me what is wrong? [HOST] [HOST ] 75.084365 s: #### ENTERING SAMPLE_APP:NULL SOURCE -> DISPLAY USE CASE #### [ 68.756016] Unable to handle kernel paging request at virtual address 84203000 [ 68.763602] pgd = d8a9c0001 s: length_fr=14310568,hlos_model_fr_site=a1fd2000,model_fr_site=-1577246720 [ 68.775570] [84203000] *pgd=00000000 [ 68.779324] Internal error: Oops: 2805 [#1] PREEMPT SMP ARM [ 68.784919] Modules linked in: cmemk(O) memcache(O) xhci_plat_hcd xhci_hcd usbcore rpmsg_proto dwc3 udc_core virtio_rpmsg_bus bc_example(O) extcon_usb_gpio ahci_platform pvrsrvkm(O) libahci_platform libahci libata c_can_platform c_can can_dev scsi_mod omap_aes_driver omap_sham dwc3_omap extcon rtc_omap omap_rng omap_des rng_core omap_remoteproc remoteproc virtio virtio_ring sch_fq_codel [ 68.819576] CPU: 1 PID: 830 Comm: sample_app.out Tainted: G O 4.4.84-00027-g018eb62 #4 [ 68.828659] Hardware name: Generic DRA74X (Flattened Device Tree) [ 68.834777] task: d8ec9200 ti: d8baa000 task.ti: d8baa000 [ 68.840204] PC is at v7_dma_clean_range+0x1c/0x34 [memcache] [ 68.845890] LR is at DMA_devIoctl+0xc4/0x2d8 [memcache] [ 68.851137] pc : [] lr : [] psr: 60070013 [ 68.851137] sp : d8babef0 ip : 00000014 fp : d8babf14 [ 68.862663] r10: 00000000 r9 : d8baa000 r8 : bea48b2c [ 68.867909] r7 : 00000004 r6 : ee742600 r5 : 00da5ca8 r4 : 00000000 [ 68.874462] r3 : 0000003f r2 : 00000040 r1 : 84fa8ca8 r0 : 84203000 [ 68.881016] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none [ 68.888181] Control: 10c5387d Table: 98a9c06a DAC: 00000051 [ 68.893950] Process sample_app.out (pid: 830, stack limit = 0xd8baa210) [ 68.900590] Stack: (0xd8babef0 to 0xd8bac000) [ 68.904965] bee0: 84203000 84fa8ca8 00000000 00000001 [ 68.913179] bf00: bea48b2c d8e364c0 d8babf7c d8babf18 c0131450 bf31b17c 00000001 b6fad000 [ 68.921392] bf20: ee742600 00004000 d8babf5c d8babf38 c013bc38 c008a07c 00000000 00000004 [ 68.929605] bf40: 0002fb40 0000da09 bea48b2c d8baa000 d8babf6c ee742601 00000004 ee742600 [ 68.937819] bf60: 0000da09 bea48b2c d8baa000 00000000 d8babfa4 d8babf80 c0131708 c0130ffc [ 68.946033] bf80: 00000000 00121c1c 0002fb40 00000036 c000fda4 d8baa000 00000000 d8babfa8 [ 68.954247] bfa0: c000fbe0 c01316d8 00000000 00121c1c 00000004 0000da09 bea48b2c 001cfc1c [ 68.962462] bfc0: 00000000 00121c1c 0002fb40 00000036 00da5ca8 001d81c8 b6fb3000 00000000 [ 68.970675] bfe0: b6c924d1 bea48b24 0002a603 b6c924d6 80070030 00000004 00001902 0001e188 [ 68.978883] Backtrace: [ 68.981356] [] (DMA_devIoctl [memcache]) from [] (do_vfs_ioctl+0x460/0x6dc) [ 68.990090] r5:d8e364c0 r4:bea48b2c [ 68.993697] [] (do_vfs_ioctl) from [] (SyS_ioctl+0x3c/0x64) [ 69.001035] r10:00000000 r9:d8baa000 r8:bea48b2c r7:0000da09 r6:ee742600 r5:00000004 [ 69.008939] r4:ee742601 [ 69.011495] [] (SyS_ioctl) from [] (ret_fast_syscall+0x0/0x3c) [ 69.019094] r9:d8baa000 r8:c000fda4 r7:00000036 r6:0002fb40 r5:00121c1c r4:00000000 [ 69.026914] Code: e3a02004 e1a02312 e2423001 e1c00003 (ee070f3a) [ 69.046023] ---[ end trace e689a6a3e574d699 ]---(Wed 2019-01-09 11:57:42 UTC): kernel[658]: [ 68.779324] Internal error: Oops: 2805 [#1] PREEMPT SMP ARM Broadcast message from systemd-journald@dra7xx-evm (Wed 2019-01-09 11:57:42 UTC): kernel[658]: [ 68.893950] Process sample_app.out (pid: 830, stack limit = 0xd8baa210) Broadcast message from systemd-journald@dra7xx-evm (Wed 2019-01-09 11:57:42 UTC): kernel[658]: [ 68.900590] Stack: (0xd8babef0 to 0xd8bac000) Broadcast message from systemd-journald@dra7xx-evm (Wed 2019-01-09 11:57:42 UTC): kernel[658]: [ 68.904965] bee0: 84203000 84fa8ca8 00000000 00000001 Broadcast message from systemd-journald@dra7xx-evm (Wed 2019-01-09 11:57:42 UTC): kernel[658]: [ 68.913179] bf00: bea48b2c d8e364c0 d8babf7c d8babf18 c0131450 bf31b17c 00000001 b6fad000 Thanks! Shuai Responses: Hi Shuai, How much RAM is available on your EVM and have you enabled LPAE? Please provide the output of the below command run on the target: cat /proc/meminfo. Are you seeing this issue only when you do a OSA_memCacheWb from A15? Regards Shravan Hi Shravan root@dra7xx-evm:~# cat /proc/meminfo MemTotal: 616992 kB MemFree: 451208 kB MemAvailable: 500868 kB Buffers: 4752 kB Cached: 56356 kB SwapCached: 0 kB Active: 36364 kB Inactive: 31312 kB Active(anon): 7940 kB Inactive(anon): 7868 kB Active(file): 28424 kB Inactive(file): 23444 kB Unevictable: 0 kB Mlocked: 0 kB HighTotal: 260096 kB HighFree: 214620 kB LowTotal: 356896 kB LowFree: 236588 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 4 kB Writeback: 0 kB AnonPages: 6564 kB Mapped: 9340 kB Shmem: 9244 kB Slab: 17372 kB SReclaimable: 6804 kB SUnreclaim: 10568 kB KernelStack: 856 kB PageTables: 320 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 308496 kB Committed_AS: 37376 kB VmallocTotal: 245760 kB VmallocUsed: 0 kB VmallocChunk: 0 kB CmaTotal: 204800 kB CmaFree: 130808 kB i am using SDK_VISION_03_04_00_00 , i have not change any config just add read model in \SDK_VISION_03_04_00_00\vision_sdk\sample_app\src\hlos\usecases\nullSrc_display\chains_nullSrcDisplay.c in fuction Void Chains_nullSrc_display() Vps_printf(" #### ENTERING SAMPLE_APP:NULL SOURCE -> DISPLAY USE CASE ####"); FILE * fp_fr = fopen("./input_img/model_fr.dat", "rb"); fseek(fp_fr, 0, SEEK_END); int length_fr = ftell(fp_fr); char * model_fr = (char*)OSA_memAllocSR(OSA_HEAPID_DDR_CACHED_SR1, length_fr, 32); //char * model_fr = (char*)malloc(length_fr); fseek(fp_fr, 0, SEEK_SET); fread(model_fr, sizeof(char), length_fr, fp_fr); fclose(fp_fr); Vps_printf("length_fr=%d,hlos_model_fr_site=%x,model_fr_site=%d \n", length_fr,model_fr, model_fr); gUcObj.Alg_FrameCopyPrm.mybuf = (void*)OSA_memVirt2Phys((UInt32)model_fr, OSA_HEAPID_DDR_CACHED_SR1); OSA_memCacheWb( (UInt32)gUcObj.Alg_FrameCopyPrm.mybuf, ( (UInt32)gUcObj.Alg_FrameCopyPrm.mybuf + length_fr ) ); float *model_fr_float = (float *)model_fr; Vps_printf("hlos_model_fr_0=%f,model_fr_1=%f ,model_fr_2=%f,model_fr_3=%f\n", model_fr_float[0], model_fr_float[1], model_fr_float[780171], model_fr_float[780172]); chains_nullSrcDisplay_Create(&gUcObj,NULL); /* Fill the source buffers */ fillSrcBuf(&gUcObj); ChainsCommon_statCollectorReset(); ChainsCommon_memPrintHeapStatus(); chains_nullSrcDisplay_Start(&gUcObj); //////////////////////////////////////////////////////////////////// in SDK_VISION_03_04_00_00\vision_sdk\sample_app\src\rtos\alg_plugins\framecopy \ frameCopyAlgoLocalDma.c fuction Alg_FrameCopyCreate i get the the buf float * model_fr = (float *)pCreateParams->mybuf; Vps_printf("rtos_model_frsite=%x,model_fr_0=%f,model_fr_1=%f ,model_fr_3=%f,model_fr_4=%f \n", model_fr,model_fr[0], model_fr[1],model_fr[780171],model_fr[780172]); i check some elements of the model is right , but i think not all elements are correct ,The phenomenon is random. Every boot is different , maybe from the first fram all the elements are correct, In most cases Previous frames litter elements is differnt. Wait a moment the elements are correct. (in Alg_FrameCopyCreate i just get the model_fr position , i use model_fr in Alg_FrameCopyProcess ) to slove this problem i add OSA_memCacheWb after OSA_memVirt2Phys OSA_memCacheWb( (UInt32)gUcObj.Alg_FrameCopyPrm.mybuf, ( (UInt32)gUcObj.Alg_FrameCopyPrm.mybuf + length_fr ) ); then it crash , the program can ran. thanks !! Shuai Hi Shuai, Can you please modify your kernel configuration with CONFIG_ARM_LPAE=n and perform a clean build and see if this error is observed (add this to the file ti_config_fragments/auto.cfg and perform clean-build). Regards Shravan Hi Shravan i cannot find auto.cfg ,could you please tell me the Detailed path? Regards Shuai Hi Shuai, Below is the diff. This file is present in the kernel. diff --git a/ti_config_fragments/auto.cfg b/ti_config_fragments/auto.cfg index ddfb682..ce09628 100644 --- a/ti_config_fragments/auto.cfg +++ b/ti_config_fragments/auto.cfg @@ -49,3 +49,4 @@ CONFIG_ICS932S401=n CONFIG_VMEM_EXP_DMABUF=y CONFIG_DEBUG_INFO=y +CONFIG_ARM_LPAE=y Regards Shravan Hi Shravan sorry i can not understant you , ti_config_fragments/auto.cfg is a file in vision sdk ? can you tell me the detailed path? i have to add CONFIG_ARM_LPAE=y in this file?? Regards shuai Hi Shuai, This file is present in the Linux kernel. If you used the Vision-SDK installer, the kernel will be in the path it will be present in ti_components/os_tools/linux/ folder. Regards Shravan Hi: Shravan you mean open ti_components/os_tools/linux/omap/ti_config_fragments/auto.cfg and add CONFIG_ARM_LPAE=y at last then make clean ,rebuild ? Regards Shuai Hi Shuai, Set CONFIG_ARM_LPAE=n in the above file. Regards Shravan Hi Shravan i add CONFIG_ARM_LPAE=n in auto.cfg ,make clean then make linux make linux_install make -s -j depend make -s -j but when i restar the EVM have some problem follow is the log 2.777440] VFS: Mounted root (ext4 filesystem) on device 179:50. [ 2.788399] devtmpfs: mounted [ 2.791566] Freeing unused kernel memory: 340K [ 2.796027] This architecture does not have kernel memory protection. /sbin/init: error while loading shared libraries: /usr/lib/libkmod.so.2: file too short [ 2.877469] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00 [ 2.877469] [ 2.886647] CPU0: stopping [ 2.889368] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.84-00027-g018eb62-dirty #10 [ 2.897230] Hardware name: Generic DRA74X (Flattened Device Tree) [ 2.903348] Backtrace: [ 2.905827] [] (dump_backtrace) from [] (show_stack+0x18/0x1c) [ 2.913428] r7:c0931ef0 r6:20000193 r5:00000000 r4:c094f810 [ 2.919149] [] (show_stack) from [] (dump_stack+0x8c/0xa0) [ 2.926406] [] (dump_stack) from [] (handle_IPI+0x184/0x198) [ 2.933829] r7:c0931ef0 r6:00000000 r5:00000000 r4:c092c424 [ 2.939545] [] (handle_IPI) from [] (gic_handle_irq+0x78/0x7c) [ 2.947143] r7:fa212000 r6:c0931ef0 r5:fa21200c r4:c09328ec [ 2.952857] [] (gic_handle_irq) from [] (__irq_svc+0x40/0x74) [ 2.960370] Exception stack(0xc0931ef0 to 0xc0931f38) [ 2.965442] 1ee0: 00000001 00000000 fe600000 00000000 [ 2.973655] 1f00: c0930000 c0686294 00000000 c081eb3c 00000000 c0931f60 c093250c c0931f4c [ 2.981867] 1f20: c0931f2c c0931f40 c0027f6c c0010540 60000013 ffffffff [ 2.988504] r9:c0931f60 r8:00000000 r7:c0931f24 r6:ffffffff r5:60000013 r4:c0010540 [ 2.996327] [] (arch_cpu_idle) from [] (default_idle_call+0x28/0x34) [ 3.004454] [] (default_idle_call) from [] (cpu_startup_entry+0x208/0x264) [ 3.013107] [] (cpu_startup_entry) from [] (rest_init+0x90/0x94) [ 3.020878] r7:00000000 [ 3.023433] [] (rest_init) from [] (start_kernel+0x400/0x40c) [ 3.030944] r5:c0982000 r4:c0982040 [ 3.034550] [] (start_kernel) from [<80008090>] (0x80008090) [ 3.041110] ---[ end Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00 [ 3.041110] Regards Shuai Hi Shuai, The error seems to be while loading kernel modules. Please follow all steps of the Vision-SDK Linux user guide and ensure you're extracting the correct contents into your SD card. Regards Shravan