[Freedreno] Whether A200 driver is supported by Linux Mainline Kernel

Rob Clark robdclark at gmail.com
Sun Aug 6 11:02:22 UTC 2017


On Thu, Aug 3, 2017 at 8:23 AM, abhijit <abhijitnaik27 at gmail.com> wrote:
> Hi All :)
>
> Finally I am able to get freedreno_drv.so and xserver ABI version to get
> matched.
>
> I am using buildroot to get the proper package dependency and build.
>
> Currently our target has following binaries,
>     $(ROOT_DIR)/usr/lib/xorg/modules/drivers/freedreno_drv.so
>     $(ROOT_DIR)/usr/lib/dri/msm_dri.so
>     $(ROOT_DIR)/usr/lib/libdrm_freedreno.so
>
> I also loaded msm_kgsl_core.ko and msm_adreno.ko
>
> But my xinit is giving following output
>   "[   233.794] (WW) Falling back to old probe method for freedreno"
>   "[   233.831] (II) No msm DRM/KMS, fallback to fbdev/kgsl"
>

I guess that it is failing to find the old kgsl shim drm driver, which
enabled allocation of GEM buffers for pixmaps.  I know Wladimir played
a bit with this on imx5, but I think he was just using gbm/kms and not
x11.  I guess he was using imx-drm for GEM buffer allocation?

BR,
-R

>   "[   234.801] (II) UnloadModule: "freedreno""
>   "[   234.801] (II) Unloading freedreno"
>
> Referring to freedreno architecture, I interpreted kgsl must be enabled in
> the libdrm and enabled same. But still freedreno module is getting unloaded
>
> I will be grateful if any body can give lead on this.
>
> Regards,
>    Abhijit
>
>
> On Friday 14 July 2017 05:28 PM, Rob Clark wrote:
>>
>> On Fri, Jul 14, 2017 at 6:52 AM, abhijit <abhijitnaik27 at gmail.com> wrote:
>>>
>>> Hi all,
>>>
>>> Running xinit load freedreno_drv.so file after adding configuration in
>>> /etc/X11/xorg.conf,
>>>
>>> Section "Server Flags"
>>>              Option               "IgnoreABI"
>>> EndSection
>>>
>>> Section "Device"
>>>     Identifier     "Device0"
>>>     Driver         "freedreno"
>>>     VendorName     "Freedreno "
>>>     BoardName      "SoC"
>>> EndSection
>>>
>>> But I am getting segmentaion fault and following is snippet of
>>> /var/log/Xorg.0.log
>>>
>>> [  6587.058] (II) No msm DRM/KMS, fallback to fbdev/kgsl
>>> [  6587.059]
>>> [  6587.059] Backtrace:
>>> [  6587.059]
>>> [  6587.059] Segmentation fault at address 0x3
>>> [  6587.059]
>>> Fatal server error:
>>> [  6587.059] Caught signal 11 (Segmentation fault). Server aborting
>>>
>>> Please let me know how I can go about debugging it
>>>
>>
>> well, IgnoreABI is more than a bit scary.. the old downstream msm
>> fdbdev driver wasn't a bit non-standard, so there might be issues w/
>> xf86-video-freedreno working w/ a different fbdev driver (not to
>> mention the non-KMS codepaths probably haven't been exercised in a
>> while).  But I suspect an ABI mismatch between xf86-video-freedreno is
>> likely to cause more problems.
>>
>> BR,
>> -R
>>
>>
>>>
>>> On Friday 14 July 2017 01:13 PM, abhijit naik wrote:
>>>>
>>>>
>>>> Hi Ilia,
>>>>
>>>> Thank you very much for your reply.
>>>>
>>>> I am able to create msm_dri.so file with options you provided
>>>>
>>>> Even after that, soft pipe is being used for rendering.
>>>>
>>>> I am suspecting that glxinfo will use driver depending on _drv.so being
>>>> detected by xinit
>>>>
>>>> Now I have freedreno_drv.so too. But still soft pipe is being used. I am
>>>> trying to solve this puzzle.
>>>>
>>>>  Warm Regards,
>>>>         Abhijit
>>>>
>>>>> On 10-Jul-2017, at 8:25 PM, Ilia Mirkin <imirkin at alum.mit.edu> wrote:
>>>>>
>>>>>> On Mon, Jul 10, 2017 at 10:53 AM, abhijit <abhijitnaik27 at gmail.com>
>>>>>> wrote:
>>>>>> Hi Rob,
>>>>>>
>>>>>> Thank you very much for your reply.
>>>>>>
>>>>>> I ensured that --enable-freedreno-kgsl is enabled in libdrm build and
>>>>>> the
>>>>>> same is copied to target
>>>>>>
>>>>>> The issue seems to be in mesa build
>>>>>>
>>>>>> I observed that there are two mechanism in which application can
>>>>>> interact
>>>>>> with underlaying DRM,
>>>>>>    1. With DRI ($MESA_INSTALL_PATH/src/mesa/drivers/dri)
>>>>>>    2. With Gallium driver ($MESA_INSTALL_PATH/src/gallium/drivers)
>>>>>>
>>>>>> Freedreno driver is present only in Case 2. For that reason I
>>>>>> disabled dri
>>>>>> in Mesa build and enabled gallium-xlib intreface, which will enable
>>>>>> case 2
>>>>>
>>>>>
>>>>>
>>>>> You absolutely need --enable-dri. Gallium drivers are also DRI
>>>>> drivers. The "src/mesa/drivers/dri" drivers are "classic" drivers,
>>>>> while the others are "gallium" drivers. However they're all DRI
>>>>> drivers.
>>>>>
>>>>> You can build mesa --with-dri-drivers=""
>>>>> --with-gallium-drivers="freedreno", but you have to leave DRI(3)
>>>>> enabled.
>>>>>
>>>>>  -ilia


More information about the Freedreno mailing list