热度 20
2016-5-31 17:31
2793 次阅读|
0 个评论
最近在做PowerPC 相关设计,所用芯片是P4080,资料比较少。希望做过相关设计的前辈给一些指导。 下面的这篇总结对于P4080 RCW的加载说的很清楚。 转自:http://bbs.chinaunix.net/forum.php?mod=viewthreadtid=3632354 1. P4080 RCW总结 和原有的P2020,MPC8548有所不同,P4080是通过RCW(Reset Configuration Word)来加载硬件配置字的,而freescale之前的cpu多数都可以通过硬件管脚加载。这样可以省去好多硬件管脚,而且更加灵活,下面就来讨论RCW是如何加载的。 通过设定硬件管脚cfg_rcw_src 来选择RCW的加载源,如从i2c,NAND flash,Nor flash, Hard-coded options等,我们就以从Nor flash加载为例进行。硬件把cfg_rcw_src 设置为01100b或者01101b(位宽不同)来选择从nor flash加载,这里先讨论下PBL的概念: PBL(pre-boot loader)顾名思义,就是在我们传统的loader之前运行的,它就是个二进制的image,通常包含2部分内容:64byte的rcw内容和PBI程序,PBI的缩写是pre-boot initialization, 是在RCW被加载之后被执行的,通常运来配置cpu或者local bus上的设备,PBI是可选的,所以PBL可以只含RCW或者是RCW+PBI的组合。PBL,RCW,PBI的格式定义见p4080的手册,下面讨论PBL是怎么被cpu访问的: 硬件把cs0片选信号连接到含有PBL image的Nor flash上,并且源也选在nor flash,这样一来系统刚上电时0x0地址就对应了flash的偏移地址0了,所以只需把PBL的image烧写在flash最开始的地方即可。freescale有专门的工具生成PBL image,只要把需要配置的内容按需填好即可生成。 如果选择i2c作为源,好像把对应的存储设备接到0x50的i2c地址上即可。 这样一来设备起来后就可以找到PBL并去加载它了,之后PC指针会跳入到0xFFFFFFFC的地址去从firmware中运行。 总结有错误疏漏之处,往大家指正。