BSP porting guide, u-boot-fslc, and boards.cfg

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

BSP porting guide, u-boot-fslc, and boards.cfg

Jump to solution
5,563 Views
noovi
Contributor II

Hi all,

I've been trying to go through the latest BSP porting guide with imx-3.14.28-1.0.0_ga (Freescale Release BSP from git.freescale.com) and I have been having no luck. I am getting stuck at the stage where I am trying to compile U-boot for a custom board that has been created by using imx6sabresd as a template. First problem I see is that performing "bitbake core-image-minimal" pulls "u-boot-fslc" to the tmp\work\imx6qsabresd-poky-linux-gnueabi\ directory. Isn't the preferred provider setting supposed to pull in "u-boot-imx" instead? As I try to continue with the BSP porting guide, the "u-boot-fslc" seems to have been updated to not require boards.cfg, and requires the information to be input elsewhere. I can run genboardscfg.py from the tools directory in the u-boot-fslc folder, but the boards.cfg it generates gets cleaned and deleted when attempting to run a make per the build-u-boot.sh script shown in the BSP porting guide.

Has there been an update to u-boot-fslc that does not mesh with the BSP porting guide or am I doing something wrong?

Thanks in advance,

noovi

Labels (3)
Tags (3)
1 Solution
2,140 Views
noovi
Contributor II

I figured out how to deal with u-boot-fslc. The newer versions of u-boot no longer use boards.cfg. Here are the following steps I had to do to perform the equivalent tasks in the newer version of u-boot:

1. edit arch/arm/cpu/armv7/mx6/Kconfig and add my custom target, following the same syntax as the other targets. At the end of the file, add the path to another Kconfig file located where the source files for your target can be found (e.g. board/<vendor>/<target>/Kconfig).

2. create and edit board/<vendor>/<target>/Kconfig. Follow similar convention to Kconfig from a reference board.

3. create and edit board/<vendor>/<target>/Makefile. Follow similar convention to Makefile from a reference board.

4. create and edit board/<vendor>/<target>/customboard.c (customboard.c being named after your custom board and matching the name of the .o file from the Makefile above). This contains all init code, etc.

5. create and edit configs/customboard_defconfig. Follow similar convention to _defconfig file from a reference board.

6. create and edit include/configs/customboard.h. This contains configuration settings for the board.

7. You should be ready to make now. Run:

     make distclean

     make customboard_defconfig

     make menuconfig

          go through target settings and other settings and make sure everything is correct

     make

This is not a general guide for all custom boards, but is a good starting point for porting the BSP. I hope that in the next version of the Official BSP, the BSP porting guide is updated to reflect the version of u-boot that is actually pulled during build.

View solution in original post

4 Replies
2,139 Views
igorpadykov
NXP Employee
NXP Employee

Hi noo

"u-boot-fslc" is community version of uboot, "u-boot-imx" is official FSL

version, differencies described on

FSL Community BSP Release Notes 1.8 documentation

BSP porting guide and all documentation found in BSP package assumes

"u-boot-imx" usage. For building steps one can follow attached Yocto Guide.

Best regards

igor

-----------------------------------------------------------------------------------------------------------------------

Note: If this post answers your question, please click the Correct Answer button. Thank you!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos
2,140 Views
noovi
Contributor II

I am pulling from the official FSL BSP from git.freescale.com, done by following the instructions in the Yocto Project User's Guide. Even in the BSP porting guide, we see the statement "The U-Boot code is now located at <build directory>/tmp/work/<machine>-poky-linuxgnueabi/

u-boot-fslc/<version>/git, where <machine> can be one of the following..."

The version it pulls is V2014.10+gitAUTOINC+5fd0b607d0-r0. I have made sure my preferred provider in layer.conf is u-boot-imx.

0 Kudos
2,141 Views
noovi
Contributor II

I figured out how to deal with u-boot-fslc. The newer versions of u-boot no longer use boards.cfg. Here are the following steps I had to do to perform the equivalent tasks in the newer version of u-boot:

1. edit arch/arm/cpu/armv7/mx6/Kconfig and add my custom target, following the same syntax as the other targets. At the end of the file, add the path to another Kconfig file located where the source files for your target can be found (e.g. board/<vendor>/<target>/Kconfig).

2. create and edit board/<vendor>/<target>/Kconfig. Follow similar convention to Kconfig from a reference board.

3. create and edit board/<vendor>/<target>/Makefile. Follow similar convention to Makefile from a reference board.

4. create and edit board/<vendor>/<target>/customboard.c (customboard.c being named after your custom board and matching the name of the .o file from the Makefile above). This contains all init code, etc.

5. create and edit configs/customboard_defconfig. Follow similar convention to _defconfig file from a reference board.

6. create and edit include/configs/customboard.h. This contains configuration settings for the board.

7. You should be ready to make now. Run:

     make distclean

     make customboard_defconfig

     make menuconfig

          go through target settings and other settings and make sure everything is correct

     make

This is not a general guide for all custom boards, but is a good starting point for porting the BSP. I hope that in the next version of the Official BSP, the BSP porting guide is updated to reflect the version of u-boot that is actually pulled during build.

2,140 Views
sujay1
Contributor V

Did you get an error saying no rule to make target while make, for custom board?

0 Kudos