AnsweredAssumed Answered

Vivante GPU driver can't load into kernel

Question asked by jun sun on Apr 30, 2013
Latest reply on Dec 1, 2015 by Gurtaj Singh
Branched to a new discussion

We have encountered a strange problem on our customiezed board based on i.mx6q platform.

The LTIB package is L3.0.35_12.05.01.01_GA_source.tar.gz

Steps to reproduce the problem are listed below

1. Build the GPU driver ( galcore.ko ) in module way.

2. Poweron the board.

3. insmod the driver module (galcore.ko ) into kernel from usb disk.

4. The driver probe process is halted forever.

 

After added some debug infor in to kernel source code, we found the probe process is halted in _ResetGPU() function which is located in

../drivers/mxc/gpu-viv/arch/XAQ2/hal/kernel/gc_hal_kernel_hardware.c

 

Then we checked why the _ResetGPU can't work. We found that GPU idle register value and control register value are always 0x0. Below is the code.

 

for(;;)

       /* Disable clock gating. */

        gcmkONERROR(gckOS_WriteRegisterEx(Os,

                                     Core,

                    Hardware->powerBaseAddress +

                    0x00104,

                    0x00000000));

          ......

      

          gcmkONERROR(gckOS_ReadRegisterEx(Os,

                                         Core,

                                         0x00004,

                                         &idle));

        printk("@@GPU idle_reg: 0x%x\n",idle);

        gcmkONERROR(gckOS_ReadRegisterEx(Os,

                                         Core,

                                         0x00000,

                                         &control));

         printk("@@GPU control_reg: 0x%x\n",control);

         

          ......

                  

 

Outcomes