您的位置:首页 > 其它

u-boot-2014.10移植第13天----创建开发板

2015-02-03 08:32 435 查看
board_init_r 函数在文件arch/arm/lib/board.c中,都是C挺复杂的,以后看情况,如果用到了就深入研究,这里就跳过了。
“通过上面的叙述,大家应该比较了解U-boot的大致情况,下面开始移植工作了。 
我们要做的工作是移植,就是根据不同的地方做修改。U-Boot一直都没有支持
S3C2440,移植仍是用 U-Boot支持的友善之臂 SBC2410的文件作蓝本来移植。所以移植所
要做的就是针对 S3C2440和S3C2410的不同,以及 SBC2410和 mini2440开发板的外设不
同作相应的修改,并增加新的功能。 
移植之前必须对 S3C2440和 S3C2410有所了解,移植过程和芯片关系紧密。特别是
Nandboot的原理和 Norboot的内部 ram映射原理必须搞清楚。 
S3C2440和S3C2410的区别主要是2440的主频更高,接口方面,增加了摄像头接口和
AC‘97音频接口;寄存器方面,除了新增模块的寄存器外, NAND FlASH控制器的寄存器有
较大的变化,芯片时钟频率控制寄存器有一定的变化,其他寄存器基本是兼容的。 
下面大部分以补丁的形式介绍移植过程:”
开始:
添加tq2440开发板:
u-boot-2014.10]$ mkdir -p board/samsung/tq2440/
选用board/smdk2410开发板作为tq2440开发板的模板,将board/smdk2410目录中的文件悉数拷贝到tq2440目录中:
samsung]$ cp -rf smdk2410/* tq2440/修改主文件名:
tq2440]$ mv smdk2410.c tq2440.c
修改makefile文件:
[fulinux@ubuntu tq2440]$ vim Makefile

obj-y := tq2440.o添加一个tq2440的configs/tq2440.h头文件:
u-boot-2014.10]$ cp include/configs/smdk2410.h include/configs/tq2440.h

与以往的版本不同,根目录下没有了boards.h文件,而是换成了类似内核配置的方式:u-boot-2014.10]$ vt100
u-boot-2014.10]$ make menuconfig
你可以看到下面这个界面:



修改tq2440目录下 的Kconfig文件:
[fulinux@ubuntu tq2440]$ vim Kconfig
if TARGET_TQ2440

config SYS_CPU
default "arm920t"

config SYS_BOARD
default "tq2440"

config SYS_VENDOR
default "samsung"

config SYS_SOC
default "s3c24x0"

config SYS_CONFIG_NAME
default "tq2440"

endif
修改arch/arm目录下的Kconfig文件:
u-boot-2014.10]$ vim arch/arm/Kconfig
...
config TARGET_SMDK2410
bool "Support smdk2410"

config TARGET_TQ2440
bool "Support tq2440"
...
source "board/samsung/smdk2410/Kconfig"
source "board/samsung/tq2440/Kconfig"
...

经过上面简单的修改就可以在配置界面上找到tq2440了
u-boot-2014.10]$ make menuconfig
界面中找到下面这个选项中找到ARM体系架构的选项
Architecture select (ARM architecture)选中上面后,再在下面一个选项如下:
ARM architecture
进入该选项找到:
(X) Support tq2440

我们暂时就选中这两项,其他的先别动。保存退出。
会在根目录下生成.config(前面有一个点,隐藏文件)文件。

“在内核配置make menuconfig(或xconfig等)时,从Kconfig中读出配置菜单,用户配置完后保存到.config(在顶层目录下生成)中。在内核编译时,主Makefile调用这个.config,就知道了用户对内核的配置情况。”

我们运行make命令:
[fulinux@ubuntu u-boot-2014.10]$ make
scripts/kconfig/conf --silentoldconfig Kconfig
CHK include/config.h
GEN include/autoconf.mk
cc1: error: bad value (armv4) for -march= switch
make[2]: *** [include/autoconf.mk] 错误 1
make[1]: *** [silentoldconfig] 错误 1
make: *** 没有规则可以创建“include/config/uboot.release”需要的目标“include/config/auto.conf”。 停
这里出现了错误,我们明天继续。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: