微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 行业新闻动态 > 基于PowerPC处理器的uboot移植方法(续)

基于PowerPC处理器的uboot移植方法(续)

时间:03-23 来源: 点击:

7 U-Boot移植要点

① BDI2000的配置文件。如果采用第二种移植方法,即先烧入Flash的方法,配置项只需很少几个,就可以 进行U-Boot的烧写与调试了。对PPC 8xx系列的主板,可参考DULG文档中TQM8xx的配置文件进行相应的修改。下面,笔者以美国Embedded Planet公司的RPXlite Dw 板为例,给出在嵌入式Linux交叉开发环境下的BDI2000参考配置文件以作参考。
;bdiGDB configurationfileforRPXliteDW orLITE DW
[INIT】
;init core register
WSPR 149 0x2002000F ;DER :set debug enable
;register
WSPR 149 0x2002000F ;DER :enable SYSIE for BDI
;Flash Program
WSPR 638 oxFA200000 ;IMMR :internal memory at
;0xA200000
WM 32 oxFA200004 0xFFFFFF89 ;SYPCR
[TARGET]
CPUCLOCK 4000000 ;the CPU clock rate after processing
;the init list
BDIMODE AGENT :the BDI WOrking mode
(LOADONLY | AGENT)
BREAKMODE HARD ;SOFT or HARD,HARD uses PPC
;hardware breakpoints
[HOST]
IP l72.16.115.6
FILE ulmage.litedw
FORMAT BIN
LOAD M ANUAL ;load code MANUAL or AUTO after rese
DEBUGPORT 2001
START 0x0100
[FLASH]
CHIPTYPE AM29BX8 ;Flash type(AM29F l AM29BX8
;AM29BX16 f I28BX8 f 128BX16)
CHIPSIZE 0x400000 ;The size of one flash chip in bytes
BUSWIDTH 32 ;The width of the flash memory bus
;inbits(8f 16f 32)
WORKSPACE 0xFA202000 ;RAM buffer for fast flash
;programming
FILE u-boot.bin ;The file to program
FORMAT BIN 0x00000000
ERASE 0x00000000 BLOCK
ERASE OxO0008000 BLOCK
ERASE 0x00010000 BL0CK
ERASE 0x000l8000 BLOCK
[REGS]
DMM 1 OxFA200000
FILE reg823.def
② U-Boot移植参考板,这是进行U.Boot移植首先要明确的。可以根据目标板上CPU、Flash、SDRAM的情况, 以尽可能相一致为原则,先找出一个与所移植目标板为同一个或同一系列处理器的u.Boot支持板为移植参考板。如RPXlite DW 板可选择U.Boot源码中RPXlite板作为U-Boot移植参考板。对U.Boot移植新手, 建议依照循序渐进的原则, 目标板文件名暂时先用移植参考板的名称,在逐步熟悉U-BOOt移植基础上, 再考虑给目标板重新命名。在实际移植过程中,可用Linux命令查找移植参考板的特定代码,如grep.r RPXlite./可确定出在U-Boot中与RPXlite板有关的代码,依此对照目标板实际进行屏蔽或修改。同时, 应不局限于移植参考板中的代码, 要广泛借鉴U.BOOt中已有的代码, 更好地实现一些具体的功能。

③ U-Boot烧写地址。不同目标板,对U-Boot在Flash中存放地址的要求不尽相同。事实上,这是由处理器中断复位向量来决定的, 与主板硬件相关。对MPC8xx主板来讲,就是由硬件配置字(HRCW)决定的。也就是说,U-Boot烧写具体位置是由硬件决定的, 而不是程序设计来选择的。程序中相应U-Boot起始地址必须与硬件所确定的硬件复位向量相吻合,如RPXlite DW 板的中断复位向量设置为0x00000100。因此,U.Boot的BIN镜像文件必须烧写到Flash的起始位置。事实上, 大多数的PPC系列的处理器中断复位向量是0x00000100和0xfff00100。这也是一般所说的高位启动和低位启动的Bootloader所在位置。可通过修改u-BOot源码<目标板>.h头文件中CFG MONITOR BASE和board/<目标板>/config.mk中的TEX T - BASE的设置来与硬件配置相对应。

④ CPU寄存器参数设置。根据处理器系列、类型不同, 寄存器名称与作用有一定差别, 必须根据目标板的实际进行合理配置。一个较为可行和有效的方法是, 借鉴参考移植板的配置,再根据目标板实际,进行合理修改。这是一个较费功夫和考验耐力的过程, 需要仔细对照处理器各寄存器定义、参考设置、目标板实际作出选择并不断测试。MPC 8XX处理器较为关键的寄存器设置为SIUMCR、PLPRCR、SCCR、BRx和ORx。

⑤ 串口调试。能从串口输出信息,即使是乱码,也可以说U.Boot移植取得了实质性突破。依据笔者调试经历, 串口是否有输出,除了与串口驱动相关外,还与Flash相关的寄存器设置有关。因为U-Boot是从Flash中被引导启动的, 如果Flash设置不正确,U.BOot代码读取和执行就会出现一些问题。因此,还需要就Flash的相关寄存器设置进行一些参数调试。同时, 要注意串口收发芯片相关引脚工作波形。依据笔者调试情况,如果串口无输出或出现乱码, 一种可能就是该芯片损坏或工作不正常。

⑥ 与启动Flash相关的寄存器BR0、OR0的参

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top