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.

TDA2PXEVM: NullSrc link -> GFX1 display

Part Number: TDA2PXEVM

Hi. I am trying to run pipeline such as Null Source link to GFX1 display.

My setup is:

  • late attach
  • pipeline on M4 core
  • boot from SD
  • sdk 3.0.7

NullSrc setup:

Void DispInitNullSrcPrms(struct DispApp *appObj)
{
    NullSrcLink_CreateParams *prms = &appObj->graphObj.NullSourcePrm;

    NullSrcLink_CreateParams_Init(prms);

    System_LinkChInfo *pChInfo = &prms->outQueInfo.chInfo[0];

    prms->timerPeriodMilliSecs          = NULLSRC_TIME_INTERVAL;
    prms->outQueInfo.numCh              = 1;
    prms->channelParams[0].numBuffers   = NULLSRC_NUM_OUTBUF;
    prms->appCb = NullSrc_CB;
    prms->inEofCb = NullSrc_inEofCb;
    prms->appCbArg = appObj;

    pChInfo->flags = System_Link_Ch_Info_Set_Flag_Data_Format(pChInfo->flags,
                            SYSTEM_DF_BGR24_888);
    pChInfo->flags = System_Link_Ch_Info_Set_Flag_Scan_Format(pChInfo->flags,
                                            SYSTEM_SF_PROGRESSIVE);
    pChInfo->flags = System_Link_Ch_Info_Set_Flag_Buf_Type(pChInfo->flags,
                                            SYSTEM_BUFFER_TYPE_VIDEO_FRAME);
    pChInfo->width = 1920;
    pChInfo->height = 720;
    pChInfo->startX = 0;
    pChInfo->startY = 0;
    pChInfo->pitch[0] = SystemUtils_align(pChInfo->width * 3, 32);
}

When I set SYSTEM_DF_RGB24_888 data format - I get error while creating GFX display

 [HOST] [IPU2  ]      7.706246 s: hal/src/vpshal_dssDispcVid.c @ Line 960:                                                                         
 [HOST] [IPU2  ]      7.706338 s: Invalid Data format: 20                                                                                          
 [HOST] [IPU2  ]      7.706429 s: dispdrv/src/vpsdrv_displayCore.c @ Line 304:                                                                     
 [HOST] [IPU2  ]      7.706490 s: Set DSS parameter failed                                                                                         
 [HOST] [IPU2  ]      7.706551 s:  Assertion @ Line: 463 in displayLink_drv.c: status==SYSTEM_LINK_STATUS_SOK : failed !!!      

It seems this format is not supported for gfx display:
ti_components/drivers/pdk_01_10_03_07/packages/ti/drv/vps/src/vpslib/hal/src/vpshal_dssDispcVid.c:

Int32 halDssConvFvid2DataFmt(UInt32 handleId, UInt32 fvid2Fmt)
{
    Int32 fmt;
    Int32 dssVidPipe, dssWbPipe;

    dssVidPipe = VpsHal_dssIsVidPipe(handleId);
    dssWbPipe  = VpsHal_dssIsWbPipe(handleId);

    if (((Int32) TRUE == dssVidPipe) || ((Int32) TRUE == dssWbPipe))
    {
......
    }
    else if ((Int32) TRUE == (VpsHal_dssIsGfxPipe(handleId)))
    {
        switch (fvid2Fmt)
        {
            case FVID2_DF_ARGB32_8888:  /*BGRA32-8888*/
                fmt = 0x3;
                break;
            case FVID2_DF_BGR24_888:    /*RGB24_888*/
                fmt = 0x9;
                break;
            case FVID2_DF_XBGR_4444:    /*RGBX12_4444*/
                fmt = 0xA;
                break;
            case FVID2_DF_BGRX_4444:    /*XRGB12_4444*/
                fmt = 0x4;
                break;
            case FVID2_DF_BGRA16_4444:  /*ARGB16_4444*/
                fmt = 0x5;
                break;
            case FVID2_DF_ABGR16_4444:  /*RGBA16_4444*/
                fmt = 0xb;
                break;
            case FVID2_DF_BGRX16_5551:  /*xRGB16-1555*/
                fmt = 0xF;
                break;
            case FVID2_DF_BGRA16_5551:  /*ARGB16-1555*/
                fmt = 0x7;
                break;
            case FVID2_DF_BGR16_565:    /*RGB16- 565*/
                fmt = 0x6;
                break;
            case FVID2_DF_BGRX24_8888:  /*xRGB24-8888*/
                fmt = 0x8;
                break;
            case FVID2_DF_XBGR24_8888:  /*RGBx24-8888*/
                fmt = 0xE;
                break;
            case FVID2_DF_BGRA32_8888:  /*ARGB32-8888*/
                fmt = 0xc;
                break;
            case FVID2_DF_ABGR32_8888:  /*RGBA32-8888*/
                fmt = 0xd;
                break;
            default:
                fmt = BSP_EFAIL;
                break;
        }
    }

There is BGR24_888, not RGB24_888. Ok. I have my Null Source link reconfigured with SYSTEM_DF_BGR24_888, rebuild ipu2 image, copy it on sd card, boot and got kernel panic. 
[    3.160740] Unable to handle kernel paging request at virtual address ffffffec                                                                  
[    3.167992] pgd = c0003000                                                                                                                      
[    3.170708] [ffffffec] *pgd=80000080007003, *pmd=affa6003, *pte=00000000                                                                        
[    3.177464] Internal error: Oops: 207 [#1] PREEMPT SMP ARM                                                                                      
r    3.182972] Modules linked in:                                                                                                                  
[    3.186049] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.4.84-00051-gbdf179e-dirty #3                                                            
[    3.193823] Hardware name: Generic DRA74X (Flattened Device Tree)                                                                               
[    3.199942] task: c09438b8 ti: c093e000 task.ti: c093e000                                                                                       
[    3.205367] PC is at iommu_fault_handler+0x18/0x14c                                                                                             
[    3.210271] LR is at handle_irq_event_percpu+0xb4/0x160                                                                                         
[    3.215518] pc : [<c037c87c>]    lr : [<c00846d0>]    psr: a0070193                                                                             
[    3.215518] sp : c093fdc8  ip : c093fe08  fp : c093fe04                                                                                         
[    3.227045] r10: c098d2cb  r9 : eea56f00  r8 : 00000151                                                                                         
[    3.232292] r7 : 00000000  r6 : 00000000  r5 : eeb04c10  r4 : eeafcc40                                                                          
[    3.238843] r3 : c037c864  r2 : c082dc58  r1 : eeb04c10  r0 : 00000000                                                                          
[    3.245399] Flags: NzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel                                                                
[    3.252824] Control: 30c5387d  Table: ae3be100  DAC: fffffffd                                                                                   
[    3.258592] Process swapper/0 (pid: 0, stack limit = 0xc093e210)                                                                                
[    3.264622] Stack: (0xc093fdc8 to 0xc0940000)                                                                                                   
[    3.268997] fdc0:                   c00950e0 c00961ac c009b4f0 c0506b10 ffffffff 00ffffff                                                       
[    3.277210] fde0: eeafcc40 eea56f60 00000000 00000000 00000151 eea56f00 c093fe4c c093fe08                                                       
[    3.285424] fe00: c00846d0 c037c870 c093fe54 c093fe18 c009b4f0 c082dc6c c082dc58 c082dc30                                                       
[    3.293635] fe20: b5fa7d86 eea56f00 eea56f60 c095d864 00000000 ee808000 c069331c c094050c                                                       
[    3.301846] fe40: c093fe6c c093fe50 c00847bc c0084628 eea56f00 eea56f60 c095d864 00000000                                                       
[    3.310060] fe60: c093fe8c c093fe70 c0087b00 c0084788 c093b424 00000151 00000000 00000000                                                       
[    3.318271] fe80: c093fe9c c093fe90 c0083cfc c0087a4c c093fec4 c093fea0 c0083fd4 c0083cdc                                                       
[    3.326486] fea0: c09408ec fa21200c c093fef0 fa212000 fa213000 c069331c c093feec c093fec8                                                       
[    3.334696] fec0: c000948c c0083f7c c0010600 60070013 ffffffff c093ff24 c093ff60 c069331c                                                       
[    3.342907] fee0: c093ff4c c093fef0 c0013ec0 c0009458 00000001 00000000 fe600000 00000000                                                       
[    3.351119] ff00: c093e000 c09404ac 00000000 00000000 c093ff60 c069331c c094050c c093ff4c                                                       
[    3.359331] ff20: c093ff2c c093ff40 c002b414 c0010600 60070013 ffffffff c00105fc c002b668                                                       
[    3.367542] ff40: c093ff5c c093ff50 c0074f10 c00105e4 c093ff84 c093ff60 c0075170 c0074ef4                                                       
[    3.375753] ff60: c098d2c9 c0940514 c093c5a8 c093a364 00000002 00000000 c093ff9c c093ff88                                                       
[    3.383963] ff80: c06893ec c0074f7c c099005c c0990000 c093fff4 c093ffa0 c08e9dd4 c0689358                                                       
[    3.392176] ffa0: ffffffff ffffffff 00000000 c08e96e8 ffffffff 00000000 00000000 c0940400                                                       
[    3.400386] ffc0: 00000000 c092ba28 00000000 c0990214 c0940484 c092ba24 c0944b38 80007000                                                       
[    3.408598] ffe0: 412fc0f2 00000000 00000000 c093fff8 80008090 c08e9994 00000000 00000000          [    3.416804] Backtrace:                                                                                                                          
[    3.419275] [<c037c864>] (iommu_fault_handler) from [<c00846d0>] (handle_irq_event_percpu+0xb4/0x160)                                           
[    3.428532]  r9:eea56f00 r8:00000151 r7:00000000 r6:00000000 r5:eea56f60 r4:eeafcc40                                                            
[    3.436356] [<c008461c>] (handle_irq_event_percpu) from [<c00847bc>] (handle_irq_event+0x40/0x64)                                               
[    3.445263]  r10:c094050c r9:c069331c r8:ee808000 r7:00000000 r6:c095d864 r5:eea56f60                                                           
[    3.453160]  r4:eea56f00                                                                                                                        
[    3.455714] [<c008477c>] (handle_irq_event) from [<c0087b00>] (handle_fasteoi_irq+0xc0/0x194)                                                   
[    3.464271]  r7:00000000 r6:c095d864 r5:eea56f60 r4:eea56f00                                                                                    
[    3.469988] [<c0087a40>] (handle_fasteoi_irq) from [<c0083cfc>] (generic_handle_irq+0x2c/0x3c)                                                  
[    3.478632]  r7:00000000 r6:00000000 r5:00000151 r4:c093b424                                                                                    
[    3.484349] [<c0083cd0>] (generic_handle_irq) from [<c0083fd4>] (__handle_domain_irq+0x64/0xbc)                                                 
[    3.493089] [<c0083f70>] (__handle_domain_irq) from [<c000948c>] (gic_handle_irq+0x40/0x7c)                                                     
[    3.501473]  r9:c069331c r8:fa213000 r7:fa212000 r6:c093fef0 r5:fa21200c r4:c09408ec                                                            
[    3.509291] [<c000944c>] (gic_handle_irq) from [<c0013ec0>] (__irq_svc+0x40/0x74)                                                               
[    3.516804] Exception stack(0xc093fef0 to 0xc093ff38)                                                                                           
[    3.521875] fee0:                                     00000001 00000000 fe600000 00000000                                                       
[    3.530089] ff00: c093e000 c09404ac 00000000 00000000 c093ff60 c069331c c094050c c093ff4c                                                       
[    3.538300] ff20: c093ff2c c093ff40 c002b414 c0010600 60070013 ffffffff                                                                         
[    3.544939]  r9:c069331c r8:c093ff60 r7:c093ff24 r6:ffffffff r5:60070013 r4:c0010600                                                            
[    3.552762] [<c00105d8>] (arch_cpu_idle) from [<c0074f10>] (default_idle_call+0x28/0x34)                                                        
[    3.560891] [<c0074ee8>] (default_idle_call) from [<c0075170>] (cpu_startup_entry+0x200/0x260)                                                  
[    3.569543] [<c0074f70>] (cpu_startup_entry) from [<c06893ec>] (rest_init+0xa0/0xa4)                                                            
[    3.577316]  r7:00000000                                                                                                                        
[    3.579873] [<c068934c>] (rest_init) from [<c08e9dd4>] (start_kernel+0x44c/0x458)                                                               
[    3.587384]  r5:c0990000 r4:c099005c                                                                                                            
[    3.590990] [<c08e9988>] (start_kernel) from [<80008090>] (0x80008090)                                                                          
[    3.597545] Code: e24cb004 e24dd018 e1a05001 e5910010 (e5103014)                                                                                
[    3.603664] ---[ end trace 4addc15c71dcbf82 ]---                                                                                                
[    3.608300] Kernel panic - not syncing: Fatal exception in interrupt                                                                            
[    3.614680] CPU1: stopping                                                                                                                      
[    3.617401] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G      D         4.4.84-00051-gbdf179e-dirty #3                                              
[    3.626396] Hardware name: Generic DRA74X (Flattened Device Tree)                                                                               
[    3.632513] Backtrace:                                                                                                                          
[    3.634986] [<c00131d4>] (dump_backtrace) from [<c00133d0>] (show_stack+0x18/0x1c)                                                              
[    3.642584]  r7:ee8a9f40 r6:20010193 r5:00000000 r4:c095d5d0                                                                                    
[    3.648308] [<c00133b8>] (show_stack) from [<c02b5c48>] (dump_stack+0x8c/0xa0)                                                                  
[    3.655564] [<c02b5bbc>] (dump_stack) from [<c0016520>] (handle_IPI+0x184/0x198)                                                                
[    3.662989]  r7:ee8a9f40 r6:00000000 r5:00000001 r4:c093b424 

[    3.668704] [<c001639c>] (handle_IPI) from [<c00094c4>] (gic_handle_irq+0x78/0x7c)                                                              
[    3.676302]  r7:fa212000 r6:ee8a9f40 r5:fa21200c r4:c09408ec                                                                                    
[    3.682016] [<c000944c>] (gic_handle_irq) from [<c0013ec0>] (__irq_svc+0x40/0x74)                                                               
[    3.689528] Exception stack(0xee8a9f40 to 0xee8a9f88)                                                                                           
[    3.694601] 9f40: 00000001 00000000 fe600000 00000000 ee8a8000 c09404ac 00000000 00000000                                                       
[    3.702813] 9f60: ee8a9fb0 c069331c c094050c ee8a9f9c ee8a9f7c ee8a9f90 c002b414 c0010600                                                       
[    3.711023] 9f80: 60010013 ffffffff                                                                                                             
[    3.714522]  r9:c069331c r8:ee8a9fb0 r7:ee8a9f74 r6:ffffffff r5:60010013 r4:c0010600                                                            
[    3.722346] [<c00105d8>] (arch_cpu_idle) from [<c0074f10>] (default_idle_call+0x28/0x34)                                                        
[    3.730475] [<c0074ee8>] (default_idle_call) from [<c0075170>] (cpu_startup_entry+0x200/0x260)                                                  
[    3.739125] [<c0074f70>] (cpu_startup_entry) from [<c0016108>] (secondary_start_kernel+0x16c/0x178)                                             
[    3.748205]  r7:c09902a8                                                                                                                        
[    3.750756] [<c0015f9c>] (secondary_start_kernel) from [<8000956c>] (0x8000956c)                                                                
[    3.758180]  r7:c09902a8 r6:30c0387d r5:00000000 r4:ae85d800                                                                                    
[    3.763896] ---[ end Kernel panic - not syncing: Fatal exception in interrupt

According to  links_fw/src/rtos/links_common/nullSrc/nullSrcLink_tsk.c - both SYSTEM_DF_BGR24_888 and SYSTEM_DF_RGB24_888 are suppoted.

What may cuse this beavior when using BGR24_888 format?