2015년 새해가 되면서 U-Boot 최신 v2015.01 버전이 릴리즈 되었습니다. 


기존에 boards.cfg를 통해서 관리하던 설정 사항들이 커널처럼 Kconfig 방식으로 변경되었습니다.


아래 U-Boot denx 사이트에서 최신 소스를 내려 받아 봅니다.


http://git.denx.de/cgi-bin/gitweb.cgi?p=u-boot.git;a=summary


git 주소 : git://git.denx.de/u-boot.git

$ git clone git://git.denx.de/u-boot.git

다 받고 나면 태그를 확인하고 최신 릴리즈 태그로 체크아웃합니다.

$ git tag
...
v2014.10-rc3
v2015.01
v2015.01-rc1
v2015.01-rc2
...
v2015.01이 최신 릴리즈입니다. rc는 relese candidate 약자로 정식 릴리즈를 위한  테스트 버전입니다.

$ git checkout v2015.01

$ cd u-boot

디렉토리를 조회해보면 이전과 다르게 configs라는 디렉토리가 생겼고 위에서도 언급했지만 보드 관련 설정이 들어 있던 boards.cfg가 없어졌습니다.

u-boot$ ls
api     config.mk  drivers   include  Licenses     net      snapshot.commit
arch    configs    dts       Kbuild   MAINTAINERS  post     test
board   disk       examples  Kconfig  MAKEALL      README   tools
common  doc        fs        lib      Makefile     scripts

u-boot$ cd configs/
configs$ ls
A10-OLinuXino-Lime_defconfig
A10s-OLinuXino-M_defconfig
A13-OLinuXino_defconfig
A13-OLinuXinoM_defconfig
A20-OLinuXino-Lime2_defconfig
A20-OLinuXino-Lime_defconfig
...
수 많은 보드 defconfig가 나옵니다. 이것을 make하면 .config가 생성됩니다.

i.mx6의 레퍼런스 보드인 sabrelite 보드로 컴파일 해봅니다. 툴체인은 GCC ARM으로 수행합니다.

configs$ ls *sabre*
mx6dlsabreauto_defconfig  mx6qsabrelite_defconfig   mx6sxsabresd_defconfig
mx6dlsabresd_defconfig    mx6qsabresd_defconfig
mx6qsabreauto_defconfig   mx6sabresd_spl_defconfig

이중에서  mx6qsabrelite_defconfig로 진행합니다.
 

u-boot$ make ARCH=arm CROSS_COMPILE=arm-none-eabi- mx6qsabrelite_defconfig

  HOSTCC  scripts/basic/fixdep

  HOSTCC  scripts/kconfig/conf.o

  SHIPPED scripts/kconfig/zconf.tab.c

  SHIPPED scripts/kconfig/zconf.lex.c

  SHIPPED scripts/kconfig/zconf.hash.c

  HOSTCC  scripts/kconfig/zconf.tab.o

  HOSTLD  scripts/kconfig/conf

#

# configuration written to .config

#


.config가 생성되었습니다.

이제 유부트를 빌드합니다.

u-bootmake ARCH=arm CROSS_COMPILE=arm-none-eabi-

...

 LDS     u-boot.lds

  LD      u-boot

  OBJCOPY u-boot.bin

  CFGS    board/boundary/nitrogen6x/nitrogen6q.cfg.cfgtmp

  MKIMAGE u-boot.imx

  OBJCOPY u-boot.srec


u-boot.imx가 생성되었습니다. 이 파일을 보드에 퓨징하면 됩니다.

그리고 커널과 같이 설정이 필요하면 동일하게 menuconfig를 실행 하면 됩니다.

make ARCH=arm CROSS_COMPILE=arm-none-eabi- menuconfig