Search code examples
yoctoxilinxdevice-tree

Yocto find the recipe or class that defines a task


I am a yocto noob, trying to decipher how the device tree is built from a Xilinx hardware definition (.hdf) file. But my question is more general.

Is there a yocto way to find the source of task? Given a task name is it possible to find where the tasks source code lives? (presumably in a recipe or class)

As an example, where is the source for the Python task do_create_yaml which is called by recipes in the meta-xilinx-bsp layer that compile the device tree blob?

bitbake -e device-tree

Will dump the python source for do_create_yaml (amongst the rest of it prodigious output) but how can I find where that is coming from?


Solution

  • I found that the datastore contains the filename for tasks as a VarFlag, from a devpyshell

    pydevshell> d.getVarFlags("do_create_yaml")
    

    gives

    {'filename': '.....yocto/sources/core/../meta-xilinx-tools/classes/xsctyaml.bbclass', 'lineno': '61', 'func': 1, 'task': 1, 'python': '1', 'deps':   ['do_prepare_recipe_sysroot']}
    

    So for the example in my question the active definition for the do_create_yaml task is in xsctyaml.bbclass.