UBOOT+LINUX上电启动(5)

2019-08-30 21:07

typedef struct cmd_tbl_s cmd_tbl_t;

//定义section属性的结构体。 编译时会单独生成一个名为.u_boot_cmd的section段。 #define Struct_Section __attribute__ ((unused,section (\

//这个宏定义一个命令结构体变量。并用name,maxargs,rep,cmd,usage,help初始化各个域。

#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \\

cmd_tbl_t __u_boot_cmd_##name Struct_Section = {#name, maxargs, rep, cmd, usage , help}

21

4 UBOOT启动

4.1 启动第一阶段 3.1.1填充启动配置字

.text

\\

#define _HRCW_TABLE_ENTRY(w)

.fill 8,1,(((w)>>24)&0xff); .fill 8,1,(((w)>>16)&0xff); .fill 8,1,(((w)>> 8)&0xff); .fill 8,1,(((w) )&0xff)

\\ \\ \\

_HRCW_TABLE_ENTRY(CONFIG_SYS_HRCW_LOW) _HRCW_TABLE_ENTRY(CONFIG_SYS_HRCW_HIGH)

在.text开头位置填充启动配置字,执行该句后,TEXT_BASE开头的启动配置字分布情况如下:

22

该图只写出启动配置字的有效部分,例如0x00-0x07填充的是RCWL[0:7],只是取其有效的部分是低八位。启动配置字每个字节重复8次。

3.1.2 填充头部信息及全部函数 头部信息:

.long .globl

0x27051956 version_string

/* U-Boot Magic Number */

version_string:

.ascii U_BOOT_VERSION

.ascii \.ascii \

全局函数: enable_addr_trans disable_addr_trans

23

get_pvr ppcDWstore ppcDWload

################################

紧接着启动配置字的0x64偏移位置,填充0x27051956以及uboot版本,时间和日期等字符串,以及全局函数。但是总容量最好不要超过0x100。

3.1.3. 将_start定位到0x100位置并重新设置IMMR . = EXC_OFF_SYS_RESET /*定位到0x100*/

.globl

_start

_start: /* time t 0 */ li r21, BOOTFLAG_COLD /* Normal Power-On: Boot from FLASH*/

nop b

boot_cold

. = EXC_OFF_SYS_RESET + 0x10

.globl

_start_warm

_start_warm: li r21, BOOTFLAG_WARM /* Software reboot */ b

boot_warm

boot_cold: /* time t 3 */

24

lis r4, CONFIG_DEFAULT_IMMR@h

nop

boot_warm: /* time t 5 */ mfmsr

r5

/* save msr contents

*/

/* 83xx manuals prescribe a specific sequence for updating IMMRBAR. */ bl 1f

上面几步初始化了几个寄存器: R21 = 0x02 R4 = 0xff400000

R5= MSR

#############更新IMMR到0xe000_0000############################

1: mflr r7 //r7=lr

lis r3, CONFIG_SYS_IMMR@h

ori r3, r3, CONFIG_SYS_IMMR@l //r3= 0xe000000

lwz r6, IMMRBAR(r4) //r6=0xff400000

isync

stw r3, IMMRBAR(r4)

//更新IMMR寄存器值为0xe000,0000

lwz r6, 0(r7)

/* Arbitrary external load */

//r6=lr

25


UBOOT+LINUX上电启动(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:科目一 Packet Tracer基本操作 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: