I am new to Yocto, and has been trying hard to understand the underlying concept of the Yocto's bitbaking process and repository structure.
As far as my understanding, for the first time we do a repo sync, then bitbake, it will download the recipes from the repo, and put it in <local folder>/sources.
Then, when baking in process, the actual source code of the components (u-boot, kernel, OS etc.) will be downloaded and put into <local folder>/build/tmp/work/<bsp>/...
Hopefully so far my understanding is still correct.
Ok now the part that confused me come.
I tried to change simple things (add in a line of puts(hello) at the starts) in the u-boot source code inside the <local folder>/build/tmp/work/<bsp>/... folder, and then i did a bitbake -c compile u-boot-imx, and then bitbake u-boot-imx. Then i dd the u-boot image into my SD card and run it on the EVK. My changes applied! The "hello" is printed out when the u-boot runs.
Isn't it the <local folder>/build/tmp/work/<bsp> directory supposed to be the source code downloaded from repo? The recipes in the <local folder>/sources directory points the SRC_URI to a git location. Why does the bitbake not fetching the source code from the git directory, instead it uses the local copy that i make changes in the <local folder>/build/tmp/work/... directory?
Please help. Thank you.