移植U-BOOT-2016.11到JZ2440详细教程(8)

本文详细介绍了如何将U-boot-2016.11移植到JZ2440开发板,并解决启动时的WARNING和ERROR信息,裁剪U-boot大小,以及为U-boot添加分区。通过修改配置文件和源代码,实现了错误警告消除、U-boot瘦身和地址区块的命名与初始化。
摘要由CSDN通过智能技术生成

完善以及裁剪U-boot

U-boot移植到这步就马上接近尾声了,这一节我们对U-boot做一些最后的完善。首先看一下开机时候打印出的信息。
在这里插入图片描述

解决打印出的WARING和ERROR信息

几个错误和警告信息都是用同样的套路,先看第一个 “WARNING: Caches not enabled” ,找一下在哪里打印的

  • initr_caches(\common\board_r.c)
    • enable_caches();(\arch\arm\lib\cache.c)
      • puts(“WARNING: Caches not enabled\n”);

但是我们看一下
\arch\arm\cpu\arm920t\start.S,第143行

	mrc	p15, 0, r0, c1, c0, 0
	bic	r0, r0, #0x00002300	@ clear bits 13, 9:8 (--V- --RS)
	bic	r0, r0, #0x00000087	@ clear bits 7, 2:0 (B--- -CAM)
	orr	r0, r0, #0x00000002	@ set bit 1 (A) Align
	orr	r0, r0, #0x00001000	@ set bit 12 (I) I-Cache
	mcr	p15, 0, r0, c1, c0, 0

在这里面已经是启用了I/Dcache,上面的注释是错的,所以就没有必要再修改,我们直接把打印信息注释掉就好了。
\arch\arm\lib\cache.c,第35行

__weak void enable_caches(void)
{
   
	//puts("WARNING: Caches not enabled\n");
}

接是using default environment,出现这个是因为上电以后U-boot会去我们指定的地方读取环境变量,但是我们现在没有设置,所以会出现这个警告,现在我们看一下代码中在哪打印的,然后就可以找到存放环境变量的数组default_environment。从上一个个往下看,宏CONFIG_BOOTARGS表示U-boot传递给Linux内核的参数,在 \include\configs\smdk2440.h里找个地方定义

#define CONFIG_BOOTARGS "console=ttySAC0 root=/dev/mtdblock3"

表示信息都从串口传递,系统从第三个块运行。

#define CONFIG_BOOTCOMMAND  "nand read 30000000 kernel 0x200000;bootm 30000000"

表示u-boot上电一段时间后自动执行的命令,CONFIG_BOOTDELAY代表的就是这段时间的长度。CONFIG_BAUDRATE代表串口波特率。
这版少了网卡的MAC地址,直接在数组里面添加一项

#ifdef  CONFIG_ETHADDR
    "ethaddr="  __stringify(CONFIG_ETHADDR) "\0"
#endif

然后在头文件里修改一下网络相关的配置

#define CONFIG_NETMASK		255.255.255.0
#define CONFIG_IPADDR		192.168.9.172
#define CONFIG_SERVERIP		192.168.9.16
#define CONFIG_ETHADDR      08:00:3e:26:0a:5b

设置完这些以后只要我们把网卡的MAC地址也保存在环境变量里,就顺带的把dm9000 address not set问题也一起解决了。
但是看到这里我们没有找到相关的save指令,现在我们重启一下开发板,输入?save看一下save是怎么用的。
在这里插入图片描述
接着我们在源码里搜索一下saveenv
在这里插入图片描述
发现有好多

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值