[Freedreno] Whether A200 driver is supported by Linux Mainline Kernel
abhijit
abhijitnaik27 at gmail.com
Fri Jun 2 05:55:39 UTC 2017
Hi Rob and Nicolas,
Thank you very much for your replies.
On Wednesday 31 May 2017 05:45 PM, Rob Clark wrote:
> On Wed, May 31, 2017 at 3:42 AM, abhijit <abhijitnaik27 at gmail.com> wrote:
>> Hi,
>>
>> We are working on iMx53 Quick start board based on iMx53 application
>> processor. As you know this has A200 GPU.
>>
>> If I see in the mainline kernel 4.11.3, there are no source files for A2XX
>> GPU. Based on this I am assuming that the mainline doesn't have support for
>> A2XX.
>>
>> However in kernel-msm git checkout from Freedreno, there are A2XX related
>> source code. I wanted to know whether this code is tested one and reason for
>> non-inclusion of this code in mainline kernel.
>
> With the kgsl backend in libdrm_freedreno, the userspace mesa driver
> can work with some specific of kgsl (drivers/gpu/msm) from downstream
> kernel-msm tree.. that kind of involves some hacks that don't work
> perfectly to fake implicit-sync. And I think downstream api changed
> over time, I don't think many have had much luck getting that working
> on newer android kernel branches.
Actually I am new to GPU technology. Can you please point to some links
w.r.t implicit-sync..
>
> As far as upstream driver (drivers/gpu/drm/msm), no one has sent
> patches, yet. Someone would need to study the a2xx parts in
> downstream kernel and figure out how to add that in drm/msm/adreno.
> Since the gpummu is part of the gpu (rather than a separate iommu
> block with iommu driver outside of drm/msm), that would also need to
> be ported.
Does IOMMU supported in downstream kernel?
Actually instead of porting the driver to upstream kernel, I was
thinking about building these components as loadable modules and using
it in the upstream kernel, as we have very less time w.r.t this
activity. If we are successful, we can take it as starting point for
putting things together for porting.
Following is the approach I want to take for getting A200 to work on
upstream kernel, based on suggestion by Rob,
1. Get working old binary only GPU driver to work on the board and
get clock and register values.
2. These clock values can be passed from Device tree entries or
platform data when booting it from main-line kernel
3. Build Gallium dri component, drm component and driver
component(KGSL) for upstream kernel(Only OPENGL path with KGSL approach)
I am comparing upstream stream Linux kernel provided by Freescale for
i.mx53 QSB. The kernel version is 4.11.3.
The downstream kernel is, freedreno git repository
"https://github.com/freedreno/kernel-msm.git",
this repository and I am on hp-tenderloin-3.0 branch, which is android
kernel.
Please let me know if my understanding is correct.
If you have a setup w/ the downstream kernel driver
> working (for example on an old kernel), doing something approximately
> like this[1] could be useful to log clock/regulator/register access.
> The demsm tool in freedreno envytools tree[2] can decode the logged
> registers to make it easier to read.
>
> Note, there have been some mesa patches on userspace side to make
> things work better on a20x variants (previously I only had a22x
> devices), although I don't think I've seen those posted to mesa-devel
> yet.
>
> [1] https://github.com/freedreno/kernel-msm/commit/814a28f5cedc8621fe746b601dd51d5869931845
> [2] https://github.com/freedreno/envytools/blob/master/rnn/demsm.c
>
> BR,
> -R
>
>> Are there any pointers how I can go about it.
>>
>> Thank you very much :)
>>
>> Regards,
>> Abhijit
>> _______________________________________________
>> Freedreno mailing list
>> Freedreno at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/freedreno
Regards,
Abhijit
More information about the Freedreno
mailing list