How to add support of custom board into YOCTO


The new page about how to add support for a custom board in YOCTO is now here:
How to develop your own software: uBoot, Linux, Filesystem, YOCTO

Note: Below is the old page, but it still can be useful.

Content

See also


On this page, you will find step-by-step instructions to add support of your own custom hardware into YOCTO. As an example we will be working with u-Boot, but same applies to Linux. In your case replace imx6rex with your own board name. Also, use your own github repositories (e.g. replace https://github.com/FEDEVEL/imx6rex-uboot-2014.01.git with your own path like https://github.com//yourboard-uboot-2014.01.git )

Prepare the environment

Prepare the YOCTO environment. If you already have the fsl-community-bsp directory with YOCTO, skip this step:

cd
mkdir fsl-community-bsp
cd fsl-community-bsp
git config --global user.email "your_email@example.com"
git config --global user.name "yourname"
repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b daisy
repo sync
source setup-environment build

Once we have the fsl-community-bsp and YOCTO, we need to get all the latest source code. Run this:

cd ~/fsl-community-bsp/build
bitbake core-image-minimal

After this step, all the latest source code for u-Boot is located in this temp directory:

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git/

This directory is always deleted and over written after a ‘-c clean’ command. If you do any changes directly in this directory, after -c clean everything will be gone. Therefore we have to create something called meta layer.

uBoot: Create a custom meta layer

We are going to create a new meta layer (this is the place were all the changes for our board will be recorded). As an example, I will use imx6rex:

cd ~/fsl-community-bsp/sources
yocto-layer create imx6rex

Go through the procedure and also create examples (here are the values I used to generate a new layer: 6, y, example, y, example, 0.1). Note: Here you can find more info about how to create new layer: YOCTO – Create a new layer

This is important, do not forget update bblayers.conf. Do this:

gedit ~/fsl-community-bsp/build/conf/bblayers.conf

and add this (add this line after ‘${BSPDIR}/sources/meta-fsl-demos \’):

${BSPDIR}/sources/meta-imx6rex \

Save the bblayers.conf and test if you can see the meta-imx6rex:

cd ~/fsl-community-bsp/build/
bitbake-layers show-layers

There should be this line:

meta-imx6rex          /home/fedevel/fsl-community-bsp/sources/meta-imx6rex  6

uBoot: Customize the source code and create a patch file

Now the hard part. We have to add all our changes into our new imx6rex meta layer. The thing is, the meta layer uses patch files. To generate patch files, we will use github.

Be sure you start with empty meta-imx6rex (no patches inside). Run this to get clean starting source code. Run this:

cd ~/fsl-community-bsp/build/
bitbake -c clean u-boot-fslc
bitbake -c compile -f u-boot-fslc
bitbake core-image-minimal

We need to do a small correction for github. Delete the old .git:

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git
rm -rf .git

and edit .gitignore

nano .gitignore

Go on the end of the file and add following line (a folder .pc/ is added during applying patches and we dont want to have it in github):

/.pc/*

We need to upload the u-Boot source code to github. Create a new repository and put it there. (Here you can find more information about these steps: YOCTO – Using a Git Workflow)

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git
git init
git add .
git commit -m 'Initial version'
git remote add origin https://github.com/FEDEVEL/imx6rex-uboot-2014.01.git
git push -u origin master

I normally also create a branch:

git branch daisy
git push origin daisy

Change to the branch ‘daisy’:

git checkout daisy

Just to test if everything is working oki, make a change in one of the files (e.g. change name of the board):

gedit ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git/board/freescale/mx6sabresd/mx6sabresd.c

Find: ‘puts(“Board:’ and change it to your board name.

Upload the change to github:

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git/
git branch
git add .
git diff origin/daisy
git commit -m 'Initial change: Board name change'
git push origin daisy

Now, run this command to generate the patch which we need for our meta-imx6rex (a *.patch file will be generated):

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git/
git format-patch -1

uBoot: Add the patch into our custom meta layer

How to put these changes into our meta-imx6rex? In our meta-imx6rex we have to create exactly same path as is used in the meta-fsl-arm which defines sabresd u-boot:

cd ~/fsl-community-bsp/sources/meta-imx6rex
mkdir recipes-bsp
cd recipes-bsp
mkdir u-boot
cd u-boot

Now we will create a file with exactly the same name as the file from the meta-fsl-arm which defines sabresd u-boot and which we would like to change. Our meta layer will apply our *.bbappend file on the top of the sabresd *.bb file. Basically, it just adds our patch on the top of the patches done for the sabresd.

gedit ~/fsl-community-bsp/sources/meta-imx6rex/recipes-bsp/u-boot/u-boot-fslc_2014.01.bbappend

Copy this inside the ‘u-boot-fslc_2014.01.bbappend’ file:

FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

SRC_URI += "file://0001-Initial-change-Board-name-change.patch"

The “files” inside “FILESEXTRAPATHS_prepend := “${THISDIR}/files:”" defines the directory where our patch “0001-Initial-change-Board-name-change.patch” is located. This line ‘SRC_URI += “file://0001-Initial-change-Board-name-change.patch”‘ inside u-boot-fslc_2014.01.bbappend, tells about the patch file which should be applied.

Now create the “files” directory and move there the patch file:

mkdir ~/fsl-community-bsp/sources/meta-imx6rex/recipes-bsp/u-boot/files
cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git/
mv 0001-Initial-change-Board-name-change.patch ~/fsl-community-bsp/sources/meta-imx6rex/recipes-bsp/u-boot/files

It’s very important we store our original .git directory from the u-boot source code as it initialize the git branches for our github repositories. Later, when we get a fresh source code, we will just copy it and we can easily use it with our github.

Note for me: Without the .git it always wanted to initialize ALL the files and it always wanted to report ALL the files in the github as the new changes (not only the small changes what I really made)

We will create a directory, where we are going to backup our .git

cd ~/fsl-community-bsp/sources/
mkdir GitConfigs-iMX6Rex
cd GitConfigs-iMX6Rex
mkdir GitConfig-uBoot
cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git/
cp -prv .git ~/fsl-community-bsp/sources/GitConfigs-iMX6Rex/GitConfig-uBoot/
cp -prv .gitignore ~/fsl-community-bsp/sources/GitConfigs-iMX6Rex/GitConfig-uBoot/

Ideally, we want to keep copy of this directory. Zip the files and store it in the meta-imx6rex location:

cd ~/fsl-community-bsp/sources/GitConfigs-iMX6Rex/
tar -zcvf ../meta-imx6rex/YOCTO-Git-Config-iMX6Rex-uBoot.tar.gz GitConfig-uBoot

We would like to also keep our meta files and GitConfigs in our github. Upload them under ‘daisy’ branch:

cd ~/fsl-community-bsp/sources/meta-imx6rex
git init
git add .
git commit -m 'Initial version'
git remote add origin https://github.com/FEDEVEL/meta-imx6rex.git
git push -u origin master
git branch daisy
git push origin daisy
git checkout daisy

uBoot: Procedure of updating source code and creating patches

During development, you will need to keep updating the source code. Follow this procedure to do so.

Important! You need to run all the steps up to the line starting with “NOW do all the source changes …” before you start editing your files.

Get the latest meta-imx6rex and GitConfigs:

cd ~/fsl-community-bsp/sources/meta-imx6rex
git checkout daisy
git branch
git pull origin daisy

Update our local GitConfigs with the one from Github:

cd ~/fsl-community-bsp/sources/GitConfigs-iMX6Rex/
rm -rf GitConfig-uBoot
tar -zxvf ../meta-imx6rex/YOCTO-Git-Config-iMX6Rex-uBoot.tar.gz

We can clean the u-Boot source and build it again, with the changes defined in our meta-imx6rex layer:

cd ~/fsl-community-bsp/build/
bitbake -c clean u-boot-fslc
bitbake -c compile -f u-boot-fslc
bitbake core-image-minimal

Delete the old .git, initialize our own .git:

cd ~/fsl-community-bsp/build/
rm -rf tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git/.git
cp -prv ../sources/GitConfigs-iMX6Rex/GitConfig-uBoot/.git tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git/
cp -prv ../sources/GitConfigs-iMX6Rex/GitConfig-uBoot/.gitignore tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git/

Compare our u-Boot source code and the new YOCTO u-Boot source code:

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git
git init
git fetch origin daisy
git diff origin/daisy

Check the differences, correct them if needed. Normally, there should be none.

Merge the changes and switch to ‘daisy’:

git checkout daisy

NOW do all the source changes you need to do. Don’t forget to compile and test:

cd ~/fsl-community-bsp/build/
bitbake -c compile -f u-boot-fslc
bitbake core-image-minimal

Note: If you have problems with compilation, you may need tu run ‘bitbake -c clean u-boot-fslc’, but this will remove all the source code and you will need to start this procedure again.

Plug in an SD card into your host computer and run this:

sudo dd if=~/fsl-community-bsp/build/tmp/deploy/images/imx6qsabresd/core-image-minimal-imx6qsabresd.sdcard of=/dev/sdb
umount /media/Boot\ imx6qs 

To test it, remove the SD from PC and insert it into the iMX6 Rex SD slot placed on the edge. Connect power. Once you are in the u-Boot, insert this command to boot from SD:

mw.l 0x020d8040 0x3040; mw.l 0x020d8044 0x10000000; reset

Once you are happy, you can flash u-Boot into SPI memory. Read How to update uBoot 2014

!!! Compilation may remove your changes in some files !!!! Always check the changes before you start uploading them to Github!

Important! Once you are done with all the changes, you need to run all the commands below, down to ‘uBoot: How to update uBoot 2014 in SPI’:

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git
git add .
git commit -m 'Memory config update'
git push origin daisy

Create a patch and copy it to our custom meta-imx6Rex layer:

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git/
git format-patch -1
mv 0001-Memory-config-update.patch ~/fsl-community-bsp/sources/meta-imx6rex/recipes-bsp/u-boot/files

Open our *.bbappend file:

gedit ~/fsl-community-bsp/sources/meta-imx6rex/recipes-bsp/u-boot/u-boot-fslc_2014.01.bbappend

and add this line referencing to the new patch:

SRC_URI += "file://0001-Memory-config-update.patch"

Note: be careful how you copy and paste the line. Sometimes you may get like “ERROR: ParseError at /home/fedevel/fsl-community-bsp/sources/meta-imx6rex/recipes-bsp/u-boot/u-boot-fslc_2014.01.bbappend:4: unparsed line: ‘SRC_URI += “file://0001-Memory-config-update.patch.”. In this case, just delete it and try again. You have there probaly some unvisible characters.

Store the current .git directory, so we can use it after next fresh source code import:

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git/
rm -rf ~/fsl-community-bsp/sources/GitConfigs-iMX6Rex/GitConfig-uBoot/.git
cp -prv .git ~/fsl-community-bsp/sources/GitConfigs-iMX6Rex/GitConfig-uBoot/

Update meta-imx6rex github repository with the new patch + upload there also our GitConfigs:

cd ~/fsl-community-bsp/sources/GitConfigs-iMX6Rex/
tar -zcvf ../meta-imx6rex/YOCTO-Git-Config-iMX6Rex-uBoot.tar.gz GitConfig-uBoot

We would like to also keep our meta files and GitConfigs in our github. Upload them under ‘daisy’ branch:

cd ~/fsl-community-bsp/sources/meta-imx6rex
git checkout daisy
git branch
git add .
git commit -m 'Memory patch added'
git push origin daisy

And that’s it. If you need to do more changes, go back to Procedure of updating source code and creating patches.

This may not be the most optimal way how to work with github, but it works. If you have any suggestions how to improve this process, please send me an email. Thank you.

uBoot: How to update uBoot 2014 in SPI

Important note: This YOCTO uBoot is not ready yet!. I still need to make one for 2GB and one for 512MB. Plus I need to add support for saveenv. Use the standard uBoot.

Compile a new u-Boot 2014 as described in the Procedure of updating source code and creating patches. Then copy u-boot.imx to tftp directory:

cp -prv ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git/u-boot.imx /tftp

Go to the iMX6 Rex board and run following line (dont forget to update ipaddr and serverip according to your network):

setenv ipaddr 192.168.0.150;setenv serverip 192.168.0.74;mw.b 0x10800000 0xFF 0x80000;tftp 0x10800400 u-boot.imx;sf probe;sf erase 0x0 0x80000;sf write 0x10800000 0x0 0x80000

Note for me: The *.imx file needs offset 0×400 (Memory map of the SPI: 0-0x3FF Free region; 0×400-0x41f Image Vector Table; …. for more info see http://cache.freescale.com/files/32bit/doc/app_note/AN4581.pdf).

######################################################################################

Go through the uBoot section (above) before you go to the Linux (below)

Linux: Create a custom meta layer

Prepare the Linux source code:

cd ~/fsl-community-bsp/build/
bitbake -c clean linux-imx
bitbake -c compile -f linux-imx

Update meta-imx6rex layer directory structure to support our custom modifications in kernel:

cd ~/fsl-community-bsp/sources/meta-imx6rex
mkdir recipes-kernel
cd recipes-kernel
mkdir linux
cd linux
mkdir linux-imx-3.10.17
cd linux-imx-3.10.17
mkdir mx6

Create *.bbappend file:

gedit ~/fsl-community-bsp/sources/meta-imx6rex/recipes-kernel/linux/linux-imx_3.10.17.bbappend

and place there this:

FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"

Copy the original .config file to our meta-imx6rex, so we can modify it for our hardware:

cp ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/.config mx6/defconfig

Linux: Customize the source code and create a patch file

Delete the old .git directory

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/
rm -rf .git

Edit .gitignore

gedit ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/.gitignore

Find and of the file and add following line:

/.pc/*

Upload source code to github. Create a new repository and put it there:

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/
git init
git add .
git commit -m 'Initial version'
git remote add origin https://github.com/FEDEVEL/imx6rex-linux-3.10.17.git
git push -u origin master

And create new branch daisy:

git branch daisy
git push origin daisy

Switch to ‘daisy’:

git checkout daisy

To test if everything is working oki, make a change in one of the files (e.g. change name of the board):

gedit ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/arch/arm/boot/dts/imx6q-sabresd.dts

Find: ‘model = “Freescale i.MX6 Quad SABRE Smart Device Board”;’ and change it for ‘model = “iMX6 Rex Development Baseboard”;’

Upload the change to github:

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/
git branch
git add .
git diff origin/daisy
git commit -m 'Initial change: Board name change'
git push origin daisy

Now, run this command to generate the patch which we need for our meta-imx6rex (a *.patch file will be generated):

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/
git format-patch -1

Linux: Add the patch into our custom meta layer

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/
mv 0001-Initial-change-Board-name-change.patch ~/fsl-community-bsp/sources/meta-imx6rex/recipes-kernel/linux/linux-imx-3.10.17

Edit:

gedit ~/fsl-community-bsp/sources/meta-imx6rex/recipes-kernel/linux/linux-imx_3.10.17.bbappend

Add:

SRC_URI += "file://0001-Initial-change-Board-name-change.patch"

We will create a directory, where we are going to backup our .git

cd ~/fsl-community-bsp/sources/GitConfigs-iMX6Rex
mkdir GitConfig-Linux
cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/
cp -prv .git ~/fsl-community-bsp/sources/GitConfigs-iMX6Rex/GitConfig-Linux/
cp -prv .gitignore ~/fsl-community-bsp/sources/GitConfigs-iMX6Rex/GitConfig-Linux/

Ideally, we want to keep copy of this directory. Zip the files and store it in the meta-imx6rex location:

cd ~/fsl-community-bsp/sources/GitConfigs-iMX6Rex/
tar -zcvf ../meta-imx6rex/YOCTO-Git-Config-iMX6Rex-Linux.tar.gz GitConfig-Linux

We would like to also keep our meta files and GitConfigs in our github. Upload them under ‘daisy’ branch:

cd ~/fsl-community-bsp/sources/meta-imx6rex
git checkout daisy
git branch
git add .
git commit -m 'Linux: Board name udpated'
git push origin daisy
git checkout daisy

Linux: Procedure of updating source code and creating patches

Get the latest meta-imx6rex and GitConfigs:

cd ~/fsl-community-bsp/sources/meta-imx6rex
git checkout daisy
git branch
git pull origin daisy

Update our local GitConfigs with the one from Github:

cd ~/fsl-community-bsp/sources/GitConfigs-iMX6Rex/
rm -rf GitConfig-Linux
tar -zxvf ../meta-imx6rex/YOCTO-Git-Config-iMX6Rex-Linux.tar.gz

We can clean the Linux source and build it again, with the changes defined in our meta-imx6rex layer:

cd ~/fsl-community-bsp/build/
bitbake -c clean linux-imx
bitbake -c compile -f linux-imx

Delete the old .git, initialize our own .git:

cd ~/fsl-community-bsp/build/
rm -rf tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/.git
cp -prv ../sources/GitConfigs-iMX6Rex/GitConfig-Linux/.git tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/
cp -prv ../sources/GitConfigs-iMX6Rex/GitConfig-Linux/.gitignore tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/

Compare our Linux source code and the new YOCTO Linux source code:

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/
git init
git fetch origin daisy
git diff origin/daisy

Check the differences, correct them if needed. Normally, there should be none.

Merge the changes and switch to ‘daisy’:

git checkout daisy

NOW do all the source changes you need to do. Don’t forget to compile and test:

cd ~/fsl-community-bsp/build/
bitbake -c compile -f linux-imx

Now you can also change defconfig Here is how:
For example, let’s disable ‘CONFIG_TOUCHSCREEN_MAX11801′. Open imx6rex defconfig:

gedit ~/fsl-community-bsp/sources/meta-imx6rex/recipes-kernel/linux/linux-imx/linux-imx-3.10.17/mx6/defconfig

Find the line with ‘CONFIG_TOUCHSCREEN_MAX11801′ and change it from:

CONFIG_TOUCHSCREEN_MAX11801=y

to:

# CONFIG_TOUCHSCREEN_MAX11801 is not set

Recompile again:

cd ~/fsl-community-bsp/build/
bitbake -c compile -f linux-imx

If you would like to test the new kernel and you already have SD card created, you can just replace the old uImage with the new one. Insert your SD card and copy our new uImage:

cp ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/arch/arm/boot/uImage /media/Boot\ imx6qs/
umount /media/Boot\ imx6qs
umount /media/f0af9ccb-3217-4e68-be14-3ea3ead5f0f4

Remove the SD card from the host computer and run it on your iMX6 Rex board.

!!! Compilation may remove your changes in some files !!!! Always check the changes before you start uploading them to Github!

Important! Once you are done with all the changes, you need to run all the commands below, up to ‘APPENDIX: …’:

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/
git add .
git commit -m 'MAX11801 removed from DTSI'
git push origin daisy

Create a patch and copy it to our custom meta-imx6Rex layer:

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/
git format-patch -1
mv 0001-MAX11801-removed-from-DTSI.patch ~/fsl-community-bsp/sources/meta-imx6rex/recipes-kernel/linux/linux-imx-3.10.17

Edit:

gedit ~/fsl-community-bsp/sources/meta-imx6rex/recipes-kernel/linux/linux-imx_3.10.17.bbappend

Add:

SRC_URI += "file://0001-MAX11801-removed-from-DTSI.patch"

Store the current .git directory, so we can use it after next fresh source code import:

cd ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/linux-imx/3.10.17-r0/git/
rm -rf ~/fsl-community-bsp/sources/GitConfigs-iMX6Rex/GitConfig-Linux/.git
cp -prv .git ~/fsl-community-bsp/sources/GitConfigs-iMX6Rex/GitConfig-Linux/

Update meta-imx6rex github repository with the new patch + upload there also our GitConfigs:

cd ~/fsl-community-bsp/sources/GitConfigs-iMX6Rex/
tar -zcvf ../meta-imx6rex/YOCTO-Git-Config-iMX6Rex-Linux.tar.gz GitConfig-Linux

We would like to also keep our meta files and GitConfigs in our github. Upload them under ‘daisy’ branch:

cd ~/fsl-community-bsp/sources/meta-imx6rex
git checkout daisy
git branch
git add .
git commit -m 'Linux: MAX11801 removed from DTSI'
git push origin daisy

And that’s it. If you need to do more changes, go back to Procedure of updating source code and creating patches.

######################################################################

APPENDIX: Notes

APPENDIX: Important uBoot files

(Tip: Press CTRL+L show the path in Ubuntu 12.04 File Browser)

//main board file
gedit ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git/board/freescale/mx6sabresd/mx6sabresd.c
gedit ~/fedevel/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git/include/configs/mx6sabre_common.h

//Memory configuration
gedit ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git/board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg

//these are also important
gedit ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git/include/configs/mx6sabresd.h
gedit ~/fsl-community-bsp/build/tmp/work/imx6qsabresd-poky-linux-gnueabi/u-boot-fslc/v2014.01-r0/git/arch/arm/include/asm/arch/mx6q_pins.h

APPENDIX: Run make menuconfig

To run make menuconfig:

bitbake linux-imx -c menuconfig