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

Daniel Thompson daniel.thompson at linaro.org
Mon Apr 13 03:40:24 PDT 2015


On 12/04/15 14:52, Varad Gautam wrote:
> On 04/08/2015 05:33 PM, Daniel Thompson wrote:
>> On 07/04/15 17:13, Varad Gautam wrote:
>>> Hi Daniel,
>>>
>>> On 04/07/2015 06:11 PM, Daniel Thompson wrote:
>>>> On 05/04/15 18:35, Varad Gautam wrote:
>>>>> Thanks Rob, Emil. While android-x86 [1] is down, I am going with
>>>>>   android-ifc6410 with a rebased mesa.
>>>>>
>>>>> Daniel,
>>>>
>>>> Hi Varad.
>>>>
>>>>> I had the following errors while building android-ifc6410 [2]:
>>>>>
>>>>> [...] build/core/base_rules.mk:154: ***
>>>>> device/linaro/vexpress/audio:
>>>>> MODULE.TARGET.SHARED_LIBRARIES.audio.primary.vexpress already
>>>>> defined by device/linaro/ifc6410/audio.  Stop.
>>>>>
>>>>> #### make failed to build some targets (01:15 (mm:ss)) ####
>>>>>
>>>>> [...] including ./external/libdrm/Android.mk ...
>>>>> build/core/base_rules.mk:154: *** external/libdrm:
>>>>> MODULE.TARGET.SHARED_LIBRARIES.libdrm already defined by
>>>>> external/drm. Stop.
>>>>>
>>>>> #### make failed to build some targets (01:20 (mm:ss)) ####
>>>>>
>>>>> [...] including
>>>>> ./kernel/linaro/vexpress/tools/gator/daemon/Android.mk ...
>>>>> build/core/base_rules.mk:154: ***
>>>>> kernel/linaro/vexpress/tools/gator/daemon:
>>>>> MODULE.TARGET.EXECUTABLES.gatord already defined by
>>>>> kernel/linaro/armv8/tools/gator/daemon.  Stop.
>>>>>
>>>>> #### make failed to build some targets (01:54 (mm:ss)) ####
>>>>>
>>>>>
>>>>> As a temporary fix, I have dropped device/linaro/vexpress/audio,
>>>>>   external/libdrm and kernel/linaro/armv8/tools/gator/daemon from
>>>>> the build. Would it be okay if these duplicates are removed from
>>>>> the build permanently for ifc6410?
>>>>
>>>> None of these directories should exist in the first place! They are
>>>> present in the manifest but we use the grouping feature of repo to
>>>> prevent them from being checked out for ifc6410.
>>>>
>>>> Could you check your command line history for the arguments you
>>>> provided to "repo init" and share this?
>>>
>>> I used
>>>
>>> $ repo init -u
>>> http://android.git.linaro.org/git/platform/manifest.git -b
>>> android-5.0.2_r1 -g default,-non-default,ifc6410
>>>
>>> but looks like I have everything in the non-default group (like
>>> device/linaro/juno and uefi) cloned too.
>>
>> Weird.
>>
>> What does your .repo/manifests.git/config look like? I think this file
>> is where what you type during repo init is stored. Mine is:
>> --- cut here ---
>> [core]
>>           repositoryformatversion = 0
>>           filemode = true
>> [remote "origin"]
>>           url = http://android.git.linaro.org/git/platform/manifest.git
>>           fetch = +refs/heads/*:refs/remotes/origin/*
>> [manifest]
>>           groups = default,-non-default,ifc6410,platform-linux
>> [branch "default"]
>>           remote = origin
>>           merge = android-5.0.2_r1
>> --- cut here ---
>>
>>
>>>> In the mean time I'll try a complete repo init/sync from scratch to
>>>> double check if I get the same thing (this will take a long time so
>>>> don't expect results before tomorrow).
>>>>
>>>
>>> Thank you! I suspect I've missed something, but it would be good to
>>> verify.
>>
>> The test I ran last night did not check out any of the paths you
>> indicated were causing build problems. At the moment it looks like
>> something has gone wrong with your repo init or sync although right now
>> I have no idea what.
>>
>>
>> Daniel.
>>
>
> I fixed my manifest and re-synced, and can now boot to the "ANDROID"
> text banner with android-ifc6410 (does not display any graphics; is it
> because of not having the adreno blob driver?).

When you say you fixed your manifest, did you understand why the 
grouping didn't work?

I'm asking this because there is a sub-group that can be used to 
enable/disable the DRM based hardware composer. By default this is off 
(because it doesn't yet work) and graphics will be software rendered to 
the framebuffer. This should work out of the box.


 > I faced a kernel oops
> issue which I figured was due to a bad dtb I was using, and hacked a
> serial cable during the process which can come in handy later.

However...

If the DRM hardware composer is enabled then it will try to open the msm 
DRM device, which will issue a stack dump because the firmware it needs 
cannot be found by the firmware loader.

Android keeps the firmware in a different directory to regular distros. 
I'll double check what that is and get back to you.

Once you have the firmware loaded you are probably ready to code. The 
graphics won't start up with the DRM composer and the next step is to 
figure out why (I have not had a chance to look into why at this stage).


PS
If you have either of external/drm or external/libdrm in your tree then 
you are probably already trying to use the DRM based hwcomposer 
(hardware/libhardware/modules/hwcomposer).


> In the meantime I've got used to adb and fastboot, and have followed
> through multiple resources to get a clearer picture of DRM/KMS and
> atomic modesetting/pageflips.
>
> Android-x86 is now up, and I will soon try building it for the board.
>
> Thanks,
> Varad
>



More information about the Freedreno mailing list