这个过程比编译内核的过程更简单一些。这里一mini2410开发板为例
(1)      下载文件,我用的是u-boot-1.3.0.tar.bz2
(2)      解压文件,tar –jxvf u-boot-1.3.0.tar.bz2
(3)      修改makefile,在makefile[u-boot-1.3.0目录下的]添加
mini2410_config: unconfig
       @$(MKCONFIG) $(@:_config=)arm arm920t mini2410 NULL s3c2410
第一行的意思是为mini2410开发板建立一个编译选项,下面是指定cpu类型,及芯片型号
(4)      建立mini开发板目录,在board目录下建立mini2410目录,并将s3c2410目录的内容拷贝过来,修改smdk2410.c文件mini2410.c。同时修改mini2410下的makefile文件:OBJS:=mini2410.o flash.o
(5)      建立配置头文件,在include/configs目录下建立mini2410.h头文件,并拷贝smdk2410.h的内容到其中
(6)      指定交叉编译环境,这一步,我们在安装交叉编译环境的时候已经指定好了
(7)      编译,#make mini2410_config    #make CROSS_COMPILE=arm-linux-
 
编译正确,则会在u-boot-1.3.0目录下生成u-boot, u-boot.bin, u-boot.srec三个映像文件,其中u-bootELF格式二进制的p_w_picpath文件,u-boot.bin是原始的二进制p_w_picpath文件,u-boot.srecMotorola S-Record格式的p_w_picpath文件。
 
说明,这样生成的p_w_picpath文件,是基于标准s3c2410公板的,需要针对具体的开发板进行代码级的修改。