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/AM3354: Display shift and freeze

Part Number: AM3354

Tool/software: Linux

Hi,

I'm working AM3354 based custom board and I'm using processor-sdk-04.01.00.06 version. Our custom board has 800x480 LCD display and below are the dts configuration of lcdc.

        panel {
                compatible = "ti,tilcdc,panel";
                status = "okay";
                pinctrl-names = "default";
                pinctrl-0 = <&lcd_pins>;
                panel-info {
                        ac-bias           = <255>;
                        ac-bias-intrpt    = <0>;
                        dma-burst-sz      = <16>;
                        bpp               = <32>;
                        fdd               = <0x80>;
                        sync-edge         = <0>;
                        sync-ctrl         = <1>;
                        raster-order      = <0>;
                        fifo-th           = <0>;
                };

                display-timings {
                        800x480p62 {
                                clock-frequency = <36000000>;
                                hactive = <800>;
                                vactive = <480>;
                                hfront-porch = <210>;
                                hback-porch = <46>;
                                hsync-len = <20>;
                                vback-porch = <23>;
                                vfront-porch = <22>;
                                vsync-len = <10>;
                                hsync-active = <1>;
                                vsync-active = <1>;
                        };
                };
        };

Now we are currently experiencing the issue where the display shift to the right with noise and immediately the board is getting freeze. This is happening randomly during boot time and also during our application runtime. We also ran the opengl chameleon man example on our board and randomly the board just freezes, screen contents stay the same, no crash/error on the debug output.

Regards,

Manoj

  • If I understand correctly, the display works for sometime and then randomly it shifts the position, with starting pixel having some noise and board freezes. This experience is with your custom application. With Chameleonman, there is no shift, but the board randomly freezes. Is this correct understanding?

    Does the freeze only happens with display related application, otherwise the custom board is robust ?

    Regards,
    Manisha
  • Hi Manisha,

    Yes your understanding is correct. Sometimes we will not able to see this issue and it will run for long time.

    The display shift and freeze is happening randomly in following scenario

    1) During kernel boot up(at any stage of kernel bootup. During kernel bootup we are displaying boot logo)

    2) Our application runtime

    3) Chameleonman app runtime

    And the freeze is happening only when display driver is enabled.

    Below is the LCD image of chameleon app display shift and freeze.

    Regards,

    Manoj

  • Logs during chameleon app run

    PVRShell: EGL 1.4 initialized
    [ 84.496508] PVR_K:(Error): SGXOSTimer() detected SGX lockup (0x402e tasks)
    [ 84.503456] PVR_K: HWRecoveryResetSGX: SGX Hardware Recovery triggered
    [ 84.515109] PVR_K: SGX debug (SGX_DDK sgxddk MAIN@3699939)
    [ 84.523330] PVR_K:(Error): SGX Register Base Address (Linear): 0xe0c10000
    [ 84.532592] PVR_K:(Error): SGX Register Base Address (Physical): 0x56000000
    [ 84.542063] PVR_K: Running SGXREG Debug Scripts:
    [ 84.548817] PVR_K: (P0)
    [ 84.551300] PVR_K: (SGXREG) 0x00000000 : 0x00222220
    [ 84.556383] PVR_K: (SGXREG) 0x00000004 : 0x00100110
    [ 84.566592] PVR_K: (SGXREG) 0x00000118 : 0x00000008
    [ 84.571661] PVR_K: (SGXREG) 0x0000012C : 0x20000001
    [ 84.580416] PVR_K: (SGXREG) 0x000004E0 : 0x0009D830
    [ 84.585426] PVR_K: (SGXREG) 0x000004E4 : 0x00031214
    [ 84.594024] PVR_K: (SGXREG) 0x00000658 : 0x00000000
    [ 84.601296] PVR_K: (SGXREG) 0x00000A74 : 0x09BF8200
    [ 84.606399] PVR_K: (SGXREG) 0x00000C04 : 0x00004100
    [ 84.614961] PVR_K: (SGXREG) 0x00000C08 : 0x0A880000
    [ 84.622372] PVR_K: (SGXREG) 0x00000E04 : 0x00000000
    [ 84.629648] PVR_K: (SGXREG) 0x00000624 : 0x00000200
    [ 84.634742] PVR_K: (SGXREG) 0x00000628 : 0x000103ED
    [ 84.643559] PVR_K: (SGXREG) 0x00000630 : 0x00000000
    [ 84.650829] PVR_K: (SGXREG) 0x00000734 : 0x00000000
    [ 84.655835] PVR_K: (SGXREG) 0x00000AA4 : 0xAAAAAAAA
    [ 84.664541] PVR_K: (SGXREG) 0x00000AA8 : 0xAAAAAAAA
    [ 84.671773] PVR_K: (SGXREG) 0x00000B08 : 0x00004337
    [ 84.679080] PVR_K: (SGXREG) 0x00000B14 : 0x0000DADB
    [ 84.684178] PVR_K: (SGXREG) 0x00000B0C : 0x0001F317
    [ 84.692812] PVR_K: (SGXREG) 0x00000B18 : 0x0001D168
    [ 84.700121] PVR_K: (SGXREG) 0x00000B10 : 0x0001402E
    [ 84.705130] PVR_K: (SGXREG) 0x00000B1C : 0x00010000
    [ 84.713761] PVR_K: SGX Register Dump:
    [ 84.719807] PVR_K: (P0) EUR_CR_CORE_ID: 01120000
    [ 84.725254] PVR_K: (P0) EUR_CR_CORE_REVISION: 00010205
    [ 84.734450] PVR_K: (P0) EUR_CR_EVENT_STATUS: 20000001
    [ 84.742399] PVR_K: (P0) EUR_CR_EVENT_STATUS2: 00000008
    [ 84.750096] PVR_K: (P0) EUR_CR_BIF_CTRL: 00000000
    [ 84.755540] PVR_K: (P0) EUR_CR_BIF_INT_STAT: 00004100
    [ 84.764954] PVR_K: (P0) EUR_CR_BIF_FAULT: 0A880000
    [ 84.772616] PVR_K: (P0) EUR_CR_BIF_MEM_REQ_STAT: 00000000
    [ 84.780397] PVR_K: (P0) EUR_CR_CLKGATECTL: 00222220
    [ 84.785844] PVR_K: (P0) EUR_CR_PDS_PC_BASE: 000020FC
    [ 84.795011] PVR_K: Found MMU context for page fault 0x0a880000
    [ 84.803210] PVR_K: GPU memory context is for PID=354 (OGLES2Chameleon)
    [ 84.812039] PVR_K: No PDE found
    [ 84.815224] PVR_K: Host Ctl flags= 00000006
    [ 84.823255] PVR_K: SGX Host control:
    [ 84.829083] PVR_K: (HC-0) 0x00000001 0x00000000 0x00000000 0x00000001
    [ 84.835664] PVR_K: (HC-10) 0x00000000 0x00000001 0x0000000A 0x00030D40
    [ 84.846084] PVR_K: (HC-20) 0x00000000 0x00000000 0x00000007 0x00000000
    [ 84.854993] PVR_K: (HC-30) 0x00000000 0x00011E8E 0xEEC4FD40 0x00000000
    [ 84.864116] PVR_K: (HC-40) 0x00000000 0x00000000 0x00000885 0x0004A42C
    [ 84.872989] PVR_K: SGX TA/3D control:
    [ 84.879008] PVR_K: (T3C-0) 0x0F003000 0x0F003140 0x0F002000 0x00000000
    [ 84.885674] PVR_K: (T3C-10) 0x00000000 0x00000000 0x00000002 0x00000000
    [ 84.896064] PVR_K: (T3C-20) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 84.905166] PVR_K: (T3C-30) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 84.914104] PVR_K: (T3C-40) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 84.923173] PVR_K: (T3C-50) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 84.932154] PVR_K: (T3C-60) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 84.941201] PVR_K: (T3C-70) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 84.950058] PVR_K: (T3C-80) 0x00000000 0x0F09D640 0x00000000 0x0F000000
    [ 84.959280] PVR_K: (T3C-90) 0x9B243000 0x0F08D640 0x00000000 0x0F09E840
    [ 84.966034] PVR_K: (T3C-A0) 0x0F00AEA0 0x0F09D640 0x0F09E840 0x00000000
    [ 84.976719] PVR_K: (T3C-B0) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 84.983477] PVR_K: (T3C-C0) 0x00000000 0x00000000 0x00000167 0x00000167
    [ 84.993903] PVR_K: (T3C-D0) 0x0F000000 0x8000B000 0x8004B000 0x0F004000
    [ 85.003036] PVR_K: (T3C-E0) 0x0F00A420 0x0F00A740 0x0F08B000 0x0F08B000
    [ 85.011989] PVR_K: (T3C-F0) 0x00000000 0x00000162 0x00000162 0x00000000
    [ 85.021235] PVR_K: (T3C-100) 0x00000003 0x00000000 0x00000000 0x00000000
    [ 85.030273] PVR_K: (T3C-110) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 85.039458] PVR_K: (T3C-120) 0x0F00AEA0 0x0F08D640 0x00017A24 0x0004A12C
    [ 85.046299] PVR_K: SGX Kernel CCB WO:0x47 RO:0x44
    [ 85.054613] PVR_K: Active syncs
    [ 85.060132] PVR_K: SyncInfo 15:
    [ 85.063400] PVR_K: Write ops (0x0d80125c): P/C = 120/119 (0x00000078/0x00000077)
    [ 85.074785] PVR_K: Read ops (0x0d801264): P/C = 0/0 (0x00000000/0x00000000)
    [ 85.084403] PVR_K: Read ops 2 (0x0d80126c): P/C = 0/0 (0x00000000/0x00000000)
    [ 85.093944] PVR_K: SyncInfo 13:
    [ 85.099483] PVR_K: Write ops (0x0d80120c): P/C = 121/120 (0x00000079/0x00000078)
    [ 85.109242] PVR_K: Read ops (0x0d801214): P/C = 0/0 (0x00000000/0x00000000)
    [ 85.118810] PVR_K: Read ops 2 (0x0d80121c): P/C = 0/0 (0x00000000/0x00000000)
    [ 85.126196] PVR_K: SyncInfo 2:
    [ 85.132952] PVR_K: Write ops (0x0d801054): P/C = 13/13 (0x0000000d/0x0000000d)
    [ 85.142713] PVR_K: Read ops (0x0d80105c): P/C = 361/359 (0x00000169/0x00000167)
    [ 85.152481] PVR_K: Read ops 2 (0x0d801064): P/C = 0/0 (0x00000000/0x00000000)
    [ 85.162205] PVR_K: SyncInfo 0:
    [ 85.165389] PVR_K: Write ops (0x0d801004): P/C = 361/359 (0x00000169/0x00000167)
    [ 85.176792] PVR_K: Read ops (0x0d80100c): P/C = 0/0 (0x00000000/0x00000000)
    [ 85.184062] PVR_K: Read ops 2 (0x0d801014): P/C = 0/0 (0x00000000/0x00000000)
    [ 85.606484] PVR_K:(Error): SGXOSTimer() detected SGX lockup (0x1ef tasks)
    [ 85.613389] PVR_K: HWRecoveryResetSGX: SGX Hardware Recovery triggered
    [ 85.624296] PVR_K: SGX debug (SGX_DDK sgxddk MAIN@3699939)
    [ 85.632291] PVR_K:(Error): SGX Register Base Address (Linear): 0xe0c10000
    [ 85.641752] PVR_K:(Error): SGX Register Base Address (Physical): 0x56000000
    [ 85.650944] PVR_K: Running SGXREG Debug Scripts:
    [ 85.655607] PVR_K: (P0)
    [ 85.661851] PVR_K: (SGXREG) 0x00000000 : 0x00222220
    [ 85.669027] PVR_K: (SGXREG) 0x00000004 : 0x00110110
    [ 85.674127] PVR_K: (SGXREG) 0x00000118 : 0x00000008
    [ 85.682806] PVR_K: (SGXREG) 0x0000012C : 0x20000000
    [ 85.690138] PVR_K: (SGXREG) 0x000004E0 : 0x0021C310
    [ 85.695148] PVR_K: (SGXREG) 0x000004E4 : 0x00020104
    [ 85.703839] PVR_K: (SGXREG) 0x00000658 : 0x00000000
    [ 85.711062] PVR_K: (SGXREG) 0x00000A74 : 0x09BF8200
    [ 85.716068] PVR_K: (SGXREG) 0x00000C04 : 0x00004002
    [ 85.724951] PVR_K: (SGXREG) 0x00000C08 : 0x00601000
    [ 85.732433] PVR_K: (SGXREG) 0x00000E04 : 0x00000000
    [ 85.739850] PVR_K: (SGXREG) 0x00000624 : 0x00000200
    [ 85.744858] PVR_K: (SGXREG) 0x00000628 : 0x000103ED
    [ 85.753600] PVR_K: (SGXREG) 0x00000630 : 0x00000007
    [ 85.760954] PVR_K: (SGXREG) 0x00000734 : 0x00000000
    [ 85.765965] PVR_K: (SGXREG) 0x00000AA4 : 0xAAAAAAAA
    [ 85.774643] PVR_K: (SGXREG) 0x00000AA8 : 0xAAAAAAAA
    [ 85.781989] PVR_K: (SGXREG) 0x00000B08 : 0x0000B7D5
    [ 85.789197] PVR_K: (SGXREG) 0x00000B14 : 0x0000B8A5
    [ 85.794203] PVR_K: (SGXREG) 0x00000B0C : 0x00011B45
    [ 85.803230] PVR_K: (SGXREG) 0x00000B18 : 0x00011A0D
    [ 85.810350] PVR_K: (SGXREG) 0x00000B10 : 0x000101EF
    [ 85.815360] PVR_K: (SGXREG) 0x00000B1C : 0x00010000
    [ 85.824083] PVR_K: SGX Register Dump:
    [ 85.829991] PVR_K: (P0) EUR_CR_CORE_ID: 01120000
    [ 85.835526] PVR_K: (P0) EUR_CR_CORE_REVISION: 00010205
    [ 85.844733] PVR_K: (P0) EUR_CR_EVENT_STATUS: 20000000
    [ 85.852423] PVR_K: (P0) EUR_CR_EVENT_STATUS2: 00000008
    [ 85.860191] PVR_K: (P0) EUR_CR_BIF_CTRL: 00000000
    [ 85.865721] PVR_K: (P0) EUR_CR_BIF_INT_STAT: 00004002
    [ 85.874861] PVR_K: (P0) EUR_CR_BIF_FAULT: 00601000
    [ 85.882725] PVR_K: (P0) EUR_CR_BIF_MEM_REQ_STAT: 00000000
    [ 85.890306] PVR_K: (P0) EUR_CR_CLKGATECTL: 00222220
    [ 85.895753] PVR_K: (P0) EUR_CR_PDS_PC_BASE: 0000210C
    [ 85.905012] PVR_K: Found MMU context for page fault 0x00601000
    [ 85.913077] PVR_K: GPU memory context is for PID=354 (OGLES2Chameleon)
    [ 85.922043] PVR_K: PDE valid: PTE = 0x9941f001 (PhysAddr = 0x9941f000, valid)
    [ 85.931514] PVR_K: Host Ctl flags= 00000006
    [ 85.935825] PVR_K: SGX Host control:
    [ 85.943185] PVR_K: (HC-0) 0x00000001 0x00000000 0x00000000 0x00000001
    [ 85.952135] PVR_K: (HC-10) 0x00000000 0x00000002 0x0000000A 0x00030D40
    [ 85.961277] PVR_K: (HC-20) 0x00000000 0x00000000 0x00000007 0x00000000
    [ 85.970058] PVR_K: (HC-30) 0x00000000 0x00011F50 0xF3321B60 0x00000000
    [ 85.979039] PVR_K: (HC-40) 0x00000000 0x00000000 0x000008D1 0x0004A42C
    [ 85.985704] PVR_K: SGX TA/3D control:
    [ 85.992959] PVR_K: (T3C-0) 0x0F003000 0x0F003140 0x0F002000 0x00000000
    [ 86.001984] PVR_K: (T3C-10) 0x00000000 0x00000000 0x00000002 0x00000000
    [ 86.010910] PVR_K: (T3C-20) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 86.019871] PVR_K: (T3C-30) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 86.028880] PVR_K: (T3C-40) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 86.035633] PVR_K: (T3C-50) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 86.046135] PVR_K: (T3C-60) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 86.055060] PVR_K: (T3C-70) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 86.064354] PVR_K: (T3C-80) 0x00000000 0x00000000 0x0F09D684 0x0F000000
    [ 86.073403] PVR_K: (T3C-90) 0x9B243000 0x0F092300 0x00000000 0x0F09E840
    [ 86.082453] PVR_K: (T3C-A0) 0x0F00AEA0 0x0F09D684 0x0F09E840 0x00000000
    [ 86.091402] PVR_K: (T3C-B0) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 86.100461] PVR_K: (T3C-C0) 0x00000000 0x00000000 0x00000174 0x00000174
    [ 86.109421] PVR_K: (T3C-D0) 0x0F000000 0x8000B000 0x8004B000 0x0F004000
    [ 86.116178] PVR_K: (T3C-E0) 0x0F00A420 0x0F00A740 0x0F08B000 0x0F08B000
    [ 86.127085] PVR_K: (T3C-F0) 0x00000000 0x00000162 0x00000162 0x00000000
    [ 86.133844] PVR_K: (T3C-100) 0x00000003 0x00000001 0x00000000 0x00000000
    [ 86.144540] PVR_K: (T3C-110) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 86.153653] PVR_K: (T3C-120) 0x0F00AEA0 0x0F092300 0x00017A24 0x0004A12C
    [ 86.162843] PVR_K: SGX Kernel CCB WO:0x6F RO:0x6C
    [ 86.170062] PVR_K: Active syncs
    [ 86.173277] PVR_K: SyncInfo 14:
    [ 86.180254] PVR_K: Write ops (0x0d801234): P/C = 125/124 (0x0000007d/0x0000007c)
    [ 86.190174] PVR_K: Read ops (0x0d80123c): P/C = 0/0 (0x00000000/0x00000000)
    [ 86.199683] PVR_K: Read ops 2 (0x0d801244): P/C = 0/0 (0x00000000/0x00000000)
    [ 86.209343] PVR_K: SyncInfo 13:
    [ 86.212611] PVR_K: Write ops (0x0d80120c): P/C = 125/124 (0x0000007d/0x0000007c)
    [ 86.224035] PVR_K: Read ops (0x0d801214): P/C = 0/0 (0x00000000/0x00000000)
    [ 86.233494] PVR_K: Read ops 2 (0x0d80121c): P/C = 0/0 (0x00000000/0x00000000)
    [ 86.243155] PVR_K: SyncInfo 2:
    [ 86.246338] PVR_K: Write ops (0x0d801054): P/C = 13/13 (0x0000000d/0x0000000d)
    [ 86.257827] PVR_K: Read ops (0x0d80105c): P/C = 374/372 (0x00000176/0x00000174)
    [ 86.265452] PVR_K: Read ops 2 (0x0d801064): P/C = 0/0 (0x00000000/0x00000000)
    [ 86.276378] PVR_K: SyncInfo 0:
    [ 86.282223] PVR_K: Write ops (0x0d801004): P/C = 374/372 (0x00000176/0x00000174)
    [ 86.292087] PVR_K: Read ops (0x0d80100c): P/C = 0/0 (0x00000000/0x00000000)
    [ 86.301689] PVR_K: Read ops 2 (0x0d801014): P/C = 0/0 (0x00000000/0x00000000)
    [ 89.486490] PVR_K:(Error): SGXOSTimer() detected SGX lockup (0x1cdb tasks)
    [ 89.493443] PVR_K: HWRecoveryResetSGX: SGX Hardware Recovery triggered
    [ 89.504699] PVR_K: SGX debug (SGX_DDK sgxddk MAIN@3699939)
    [ 89.512740] PVR_K:(Error): SGX Register Base Address (Linear): 0xe0c10000
    [ 89.522219] PVR_K:(Error): SGX Register Base Address (Physical): 0x56000000
    [ 89.531594] PVR_K: Running SGXREG Debug Scripts:
    [ 89.536258] PVR_K: (P0)
    [ 89.542425] PVR_K: (SGXREG) 0x00000000 : 0x00222220
    [ 89.549638] PVR_K: (SGXREG) 0x00000004 : 0x00100110
    [ 89.554645] PVR_K: (SGXREG) 0x00000118 : 0x00000008
    [ 89.563373] PVR_K: (SGXREG) 0x0000012C : 0x20000001
    [ 89.570581] PVR_K: (SGXREG) 0x000004E0 : 0x00183BD0
    [ 89.575674] PVR_K: (SGXREG) 0x000004E4 : 0x00011D0F
    [ 89.584374] PVR_K: (SGXREG) 0x00000658 : 0x00000000
    [ 89.591620] PVR_K: (SGXREG) 0x00000A74 : 0x09BF8200
    [ 89.598931] PVR_K: (SGXREG) 0x00000C04 : 0x00004100
    [ 89.603942] PVR_K: (SGXREG) 0x00000C08 : 0x0A7D8000
    [ 89.612637] PVR_K: (SGXREG) 0x00000E04 : 0x00000000
    [ 89.619973] PVR_K: (SGXREG) 0x00000624 : 0x00000200
    [ 89.625073] PVR_K: (SGXREG) 0x00000628 : 0x000103ED
    [ 89.633787] PVR_K: (SGXREG) 0x00000630 : 0x00000000
    [ 89.641196] PVR_K: (SGXREG) 0x00000734 : 0x00000000
    [ 89.646207] PVR_K: (SGXREG) 0x00000AA4 : 0xAAAAAAAA
    [ 89.654707] PVR_K: (SGXREG) 0x00000AA8 : 0xAAAAAAAA
    [ 89.662152] PVR_K: (SGXREG) 0x00000B08 : 0x0001527E
    [ 89.669296] PVR_K: (SGXREG) 0x00000B14 : 0x00011934
    [ 89.674392] PVR_K: (SGXREG) 0x00000B0C : 0x0001862A
    [ 89.683122] PVR_K: (SGXREG) 0x00000B18 : 0x000174BA
    [ 89.690362] PVR_K: (SGXREG) 0x00000B10 : 0x00011CDB
    [ 89.695372] PVR_K: (SGXREG) 0x00000B1C : 0x00010000
    [ 89.704236] PVR_K: SGX Register Dump:
    [ 89.710002] PVR_K: (P0) EUR_CR_CORE_ID: 01120000
    [ 89.715448] PVR_K: (P0) EUR_CR_CORE_REVISION: 00010205
    [ 89.724836] PVR_K: (P0) EUR_CR_EVENT_STATUS: 20000001
    [ 89.733304] PVR_K: (P0) EUR_CR_EVENT_STATUS2: 00000008
    [ 89.741484] PVR_K: (P0) EUR_CR_BIF_CTRL: 00000000
    [ 89.749888] PVR_K: (P0) EUR_CR_BIF_INT_STAT: 00004100
    [ 89.755445] PVR_K: (P0) EUR_CR_BIF_FAULT: 0A7D8000
    [ 89.765485] PVR_K: (P0) EUR_CR_BIF_MEM_REQ_STAT: 00000002
    [ 89.773249] PVR_K: (P0) EUR_CR_CLKGATECTL: 00222220
    [ 89.781130] PVR_K: (P0) EUR_CR_PDS_PC_BASE: 002036E0
    [ 89.788810] PVR_K: Found MMU context for page fault 0x0a7d8000
    [ 89.794694] PVR_K: GPU memory context is for PID=354 (OGLES2Chameleon)
    [ 89.805033] PVR_K: No PDE found
    [ 89.810406] PVR_K: Host Ctl flags= 00000006
    [ 89.814717] PVR_K: SGX Host control:
    [ 89.822120] PVR_K: (HC-0) 0x00000001 0x00000000 0x00000000 0x00000001
    [ 89.831118] PVR_K: (HC-10) 0x00000000 0x00000003 0x0000000A 0x00030D40
    [ 89.840147] PVR_K: (HC-20) 0x00000000 0x00000000 0x00000007 0x00000000
    [ 89.849117] PVR_K: (HC-30) 0x00000000 0x00012AD8 0xF3433260 0x00000000
    [ 89.855785] PVR_K: (HC-40) 0x00000000 0x00000000 0x00000D29 0x0004A42C
    [ 89.866236] PVR_K: SGX TA/3D control:
    [ 89.872117] PVR_K: (T3C-0) 0x0F003000 0x0F003140 0x0F002000 0x00000000
    [ 89.881185] PVR_K: (T3C-10) 0x00000000 0x00000000 0x00000002 0x00000000
    [ 89.890149] PVR_K: (T3C-20) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 89.899290] PVR_K: (T3C-30) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 89.906045] PVR_K: (T3C-40) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 89.916416] PVR_K: (T3C-50) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 89.924207] PVR_K: (T3C-60) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 89.934259] PVR_K: (T3C-70) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 89.943501] PVR_K: (T3C-80) 0x00000000 0x0F09D684 0x00000000 0x0F000000
    [ 89.952471] PVR_K: (T3C-90) 0x9B243000 0x0F091480 0x00000000 0x0F09E840
    [ 89.961576] PVR_K: (T3C-A0) 0x0F00AEA0 0x0F09D684 0x0F09E840 0x00000000
    [ 89.970449] PVR_K: (T3C-B0) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 89.979551] PVR_K: (T3C-C0) 0x00000000 0x00000000 0x0000022E 0x0000022E
    [ 89.986308] PVR_K: (T3C-D0) 0x0F000000 0x8000B000 0x8004B000 0x0F004000
    [ 89.996901] PVR_K: (T3C-E0) 0x0F00A420 0x0F00A740 0x0F08B000 0x0F08B000
    [ 90.003660] PVR_K: (T3C-F0) 0x00000000 0x00000162 0x00000162 0x00000000
    [ 90.014462] PVR_K: (T3C-100) 0x00000003 0x00000001 0x00000000 0x00000002
    [ 90.023864] PVR_K: (T3C-110) 0x00000000 0x00000000 0x00000000 0x00000000
    [ 90.032891] PVR_K: (T3C-120) 0x0F00AEA0 0x0F091480 0x00017A24 0x0004A12C
    [ 90.042153] PVR_K: SGX Kernel CCB WO:0x9E RO:0x9B
    [ 90.049120] PVR_K: Active syncs
    [ 90.052337] PVR_K: SyncInfo 14:
    [ 90.055674] PVR_K: Write ops (0x0d801234): P/C = 187/186 (0x000000bb/0x000000ba)
    [ 90.067759] PVR_K: Read ops (0x0d80123c): P/C = 0/0 (0x00000000/0x00000000)
    [ 90.076225] PVR_K: Read ops 2 (0x0d801244): P/C = 0/0 (0x00000000/0x00000000)
    [ 90.087634] PVR_K: SyncInfo 13:
    [ 90.090908] PVR_K: Write ops (0x0d80120c): P/C = 187/186 (0x000000bb/0x000000ba)
    [ 90.102308] PVR_K: Read ops (0x0d801214): P/C = 0/0 (0x00000000/0x00000000)
    [ 90.111810] PVR_K: Read ops 2 (0x0d80121c): P/C = 0/0 (0x00000000/0x00000000)
    [ 90.121497] PVR_K: SyncInfo 2:
    [ 90.124681] PVR_K: Write ops (0x0d801054): P/C = 13/13 (0x0000000d/0x0000000d)
    [ 90.136013] PVR_K: Read ops (0x0d80105c): P/C = 560/558 (0x00000230/0x0000022e)
    [ 90.145885] PVR_K: Read ops 2 (0x0d801064): P/C = 0/0 (0x00000000/0x00000000)
    [ 90.155478] PVR_K: SyncInfo 0:
    [ 90.161182] PVR_K: Write ops (0x0d801004): P/C = 560/558 (0x00000230/0x0000022e)
    [ 90.171038] PVR_K: Read ops (0x0d80100c): P/C = 0/0 (0x00000000/0x00000000)
    [ 90.180518] PVR_K: Read ops 2 (0x0d801014): P/C = 0/0 (0x00000000/0x00000000)
  • Hi Manisha,

    Any update on this issue..?

    Regards,
    Manoj

  • SGX lockup can be due to memory corruption or bad state/info passed from DSS. You need to isolate if the issue is with any bridge connector or DSS or SGX. If possible try not to use SGX for display. May be you can run dual_camera demo application (capture + display).

    Please check for signal integrity from bridge chip.

    Regards,
    Manisha
  • Hi Manisha,

    I don't think so there is any signal integrity in the board, because the custom board what we are using previously had WINCE OS, it was running for very long without any issue.

    I disabled the sgx in kernel. But still I'm able to see display shift and freeze during kernel boot.  Can you give some more info on how to isolate this issue.

    Regards,

    Manoj

  • Hi Manoj,

    Did you have same bridge chip and LCD panel in the custom board that worked with WINCE OS?

    Regards,
    Manisha
  • Hi Manisha,

    Yes, Im using same board. Actually we are updating all WinCE board to linux and we are facing the problem in almost all the boards.

    Regards,

    Manoj

  • Hi Manisha,

    Any update..?

    Regards,
    Manoj
  • Hi Manish,

    Adding more logs chameleon man application with drm_debug enabled. But for me it doesnt give any clue.

    Drm debug= 0x01

    drm_debug_0x01.txt

    Drm debug = 0x10

    drm_debug_0x10.txt

    Regards,

    Manoj

  • Hi Manoj,

    The logs that you shared doesn't flag anything obvious wrong with the system.

    At this moment, I can only suspect your panel and display-timing settings, assuming there is no other changes on the tilcdc driver side and also assuming that the display panel doesn't need any additional configuration other then those. May be you want to compare it against the WINCE system settings.

    Our display driver expert is on vacation till July end. I will consult him your issue once he is back in office and respond if he has any other suggestion for you.

    Regards,
    Manisha
  • Hi Manoj,

    Is the panel still not working for you? If so, you may want to check if you have this patch in your u-boot code-

    Such issues can be seen when the LCDC IP starves to access DDR data. Above patch enables higher priority for the LCDC triggered DDR access above other masters. DDR starvation issue also results in DMA FIFO underflow  "sync lost" issue. Below wiki page content has more information on this.

  • Hi Manish,

    Yes you are correct. Problem is with the DDR frequency configuration. We checked with WinCE again and it was wrongly configured in linux.
    Now it is working properly and we didnt see any freezing issue.

    Thanks for your help

    Regards,
    Manoj