[Freedreno] [GSoC-15] Enabling Freedreno on Android

Rob Clark robdclark at gmail.com
Wed Mar 18 05:09:11 PDT 2015


On Wed, Mar 18, 2015 at 7:12 AM, Varad Gautam <varadgautam at gmail.com> wrote:
> On 03/16/2015 11:59 PM, Emil Velikov wrote:
>> On 16/03/15 16:11, Rob Clark wrote:
>>> If you have access to an ifc6410 board, that would probably be a
>>> pretty good way to start.. on that device, the primary display is HDMI
>>> (which is already well supported in drm/msm), and we can use something
>>> very close to a mainline kernel[1].
>>>
>>> Obviously in the long run, it would be nice to get this working on
>>> some phones/tablets.. which would require backporting the upstream drm
>>> + DSI code, and writing panel drivers for the specific LCD panel in
>>> whichever phone/tablet.. but starting on ifc6410 could allow for some
>>> of that to happen in parallel, depending on exactly how much work is
>>> needed to get drm_gralloc working.
>
> I'll get an ifc6410 right away. CyanogenMod doesn't support the board
> yet, but I think we can find a similar phone while doing the distro
> integration later.
>

The ifc6410 is the same SoC as the nexus4, so that might be a good
starting point.  Although by the time you remove the qcom
surface-flinger/gralloc bits, maybe enough has changed that it doesn't
matter.  I'm not really sure.

The ifc6410, if you order it with android (instead of linaro/ubuntu
build) seems to come with an AOSP build.  Not sure if it is "vanilla"
AOSP or if it has some stuff from CAF?  I think they do have some docs
which should cover how to make a build in their 'techweb' section,
which you can get access to when you have a board.

>
>>
>> I would strongly suggest that as a preparation (although I'll let Rob be
>> the judge)
>>  - checkout android-x86/kitkat-x86
>>  - rebase their mesa kitkat-x86 branch on top of upstream 10.4 [3], and
>> add it to the build.
>>  - get the kernel Rob mentioned, and integrate it into the build (manifest)
>>  - grep through the code for "nouveaufb" and "inteldrmfb". Check the
>> "offending" commits and prep similar patch(es) for freedreno. It should
>> be trivial 5 line patch. Iirc there are initscripts (+ other?) which do
>> funny things depending on the framebuffer. Don't forget to update your
>> manifest :)
>>  - set BOARD_GPU_DRIVERS=freedreno and leave it build a complete image.
>> Note it will take quite some time.
>>  - If it builds try booting it up :)
>>
>> With the above information at hand I believe you'll be OK with setting
>> up a plan/proposal. How much you'll focus on the kernel,
>> gralloc/hwcomposer or mesa depends on what you'll uncover :-)
>
> Thanks for breaking it down, I'm on it. Will the kitkat-x86 build work
> with ifc6410 (or do I need a patched CodeAurora build [1])?

I suspect in the end to get a "fully featured" build you may need a
bit of both.. although if you ignore camera and video encode/decode
stuff to start, then you should be able to use an upstream kernel and
ignore the CAF parts.  IMHO, for the purposes of this GSoC proposal,
it would be fine to ignore camera/vidc/etc.

BR,
-R

>>
>> Last but not least setting up an Android build is going to be a pain. If
>> you're unsure of anything or you might be getting stuck just ask.
>> There are too many things for me to go through in a single email :P
>
> Sure thing :).
>
> [1] https://www.codeaurora.org/xwiki/bin/QAEP/
>
> Thanks,
> Varad
>
>>
>> Cheers,
>> Emil
>>
>> [1]
>> http://git.android-x86.org/?p=platform/hardware/drm_gralloc.git;a=commit;h=c46b2ee2cace20f67b0c5e1121e1973a7678fd60
>>
>> [2]
>> http://git.android-x86.org/?p=platform/hardware/intel/hwcomposer.git;a=shortlog;h=refs/heads/kitkat-x86
>>
>> [3] http://cgit.freedesktop.org/mesa/mesa/log/?h=10.4
>>


More information about the Freedreno mailing list