This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Debugging Mali driver in 3.4 kernel in Origen

Note: This was originally posted on 26th April 2012 at http://forums.arm.com

Hello

I am trying to make ICS Android (Mali) work in Origen with 3.4 kernel

Now  as using Mali driver, gralloc_ump r2p4-02rel in 3.4 kernel with the following Android branch.
repo init -u git://android.git.linaro.org/platform/manifest.git -b linaro_android_4.0.4 -m tracking-origen.xml

I have the following errors:

*******************************************************************************
[   15.225000] MALI PHYSICAL RANGE VALIDATION ERROR!
[   15.235000] We failed to validate a Mali-Physical range that the user-side wished to map in
[   15.245000] It is likely that the user-side wished to do Direct Rendering, but a suitable
[   15.250000] address range validation mechanism has not been correctly setup
[   15.260000] The range supplied was: phys_base=0x6D900000, size=0x004B0000
[   15.270000] Please refer to the ARM Mali Software Integration Guide for more information.
[   15.275000] *******************************************************************************

In my opinion, it seems that user space library call ioctl command with in-proper argument. 
    ioctl command (MALI_IOC_MEM_MAP_EXT)  with the wrong params: phys_base=0x6D900000, size=0x004B0000

In addition, currently I didn't  add UMP remap call  in  Framebuffer drivers.  Is it possible reason ?


Thanks
Sangwook
Parents
  • Note: This was originally posted on 1st May 2012 at http://forums.arm.com

    [Continued]

    I guess that the following function makes Kernel hang up.
    In "mali_osk_irq.c" file,  If queue_work is called, the kernel seems to hang up.
    Please see the line in red.

    -----------------------------------------------------------------------------------
    void _mali_osk_irq_schedulework( _mali_osk_irq_t *irq )
    {
    mali_osk_irq_object_t *irq_object = (mali_osk_irq_object_t *)irq;


    #if MALI_LICENSE_IS_GPL
    if ( irq_object->irqnum == _MALI_OSK_IRQ_NUMBER_PMM )
    {

        MALI_DEBUG_PRINT(2, ("FUNC %s line %d\n", __FUNCTION__, __LINE__));
      queue_work( pmm_wq,&irq_object->work_queue_irq_handle );
    MALI_DEBUG_PRINT(2, ("FUNC %s line %d\n", __FUNCTION__, __LINE__));
    }
    else
    {
    #endif
      MALI_DEBUG_PRINT(2, ("FUNC %s line %d\n", __FUNCTION__, __LINE__));


      schedule_work(&irq_object->work_queue_irq_handle);
    #if MALI_LICENSE_IS_GPL
    }
    #endif
    MALI_DEBUG_PRINT(2, ("FUNC %s line %d\n", __FUNCTION__, __LINE__));
    }
    -------------------------------------------------------------------------------------------------------------

    Thanks
    Sangwook
Reply
  • Note: This was originally posted on 1st May 2012 at http://forums.arm.com

    [Continued]

    I guess that the following function makes Kernel hang up.
    In "mali_osk_irq.c" file,  If queue_work is called, the kernel seems to hang up.
    Please see the line in red.

    -----------------------------------------------------------------------------------
    void _mali_osk_irq_schedulework( _mali_osk_irq_t *irq )
    {
    mali_osk_irq_object_t *irq_object = (mali_osk_irq_object_t *)irq;


    #if MALI_LICENSE_IS_GPL
    if ( irq_object->irqnum == _MALI_OSK_IRQ_NUMBER_PMM )
    {

        MALI_DEBUG_PRINT(2, ("FUNC %s line %d\n", __FUNCTION__, __LINE__));
      queue_work( pmm_wq,&irq_object->work_queue_irq_handle );
    MALI_DEBUG_PRINT(2, ("FUNC %s line %d\n", __FUNCTION__, __LINE__));
    }
    else
    {
    #endif
      MALI_DEBUG_PRINT(2, ("FUNC %s line %d\n", __FUNCTION__, __LINE__));


      schedule_work(&irq_object->work_queue_irq_handle);
    #if MALI_LICENSE_IS_GPL
    }
    #endif
    MALI_DEBUG_PRINT(2, ("FUNC %s line %d\n", __FUNCTION__, __LINE__));
    }
    -------------------------------------------------------------------------------------------------------------

    Thanks
    Sangwook
Children
No data