uboot的一个问题
有个问题困扰我很多天了,希望大家能够帮忙解答。在u-boot \include\configs下的smdk6410.h,定义了很多宏,比如:
#define DMC1_CHIP0_CFG 0x150FC
这个明显是某个寄存器(有关dram的,从宏的命名可以看出)的配置值。但我想知道,为什么要设定这样的值:0x150FC?这个值的意义在哪里?
如果能够找到这个宏对应的具体寄存器,那么可以通过查看pdf手册得到具体的意义,但是如何找到对应的寄存器呢?
我通过source insight查找了这个宏,在整个文件夹中只出现了:
---- DMC1_CHIP0_CFG Matches (7 in 4 files) ----
Mdirac3.h (d:\uboot1.1.16_256m-for36---v1.01\include):#define DMC1_CHIP0_CFG 0x140fc //0x4000_0000 ~ 0x43ff_ffff ( 64MB)
Smdk6400.h (d:\uboot1.1.16_256m-for36---v1.01\include\configs):#define DMC1_CHIP0_CFG 0x150F8 //0x4000_0000 ~ 0x43ff_ffff (64MB)
Smdk6410.h (d:\uboot1.1.16_256m-for36---v1.01\include\configs)://#define DMC1_CHIP0_CFG 0x150F8
Smdk6410.h (d:\uboot1.1.16_256m-for36---v1.01\include\configs):#define DMC1_CHIP0_CFG 0x150F0
Smdk6410.h (d:\uboot1.1.16_256m-for36---v1.01\include\configs):#define DMC1_CHIP0_CFG 0x150FC
Smdk6430.h (d:\uboot1.1.16_256m-for36---v1.01\include\configs):#define DMC1_CHIP0_CFG 0x150F8
Smdk6430.h (d:\uboot1.1.16_256m-for36---v1.01\include\configs):#define DMC1_CHIP0_CFG 0x150FC
为何只有定义而没有引用呢???uboot究竟在哪里配置各个寄存器? 有定义但是不一定用到,configs中很多这样的,只是没注释掉而已。
看意思然后根据手册找寄存器。 回复 2# rqzrqh
先谢谢了!
上面这个宏对应的寄存器肯定是用到了~因为在sdram从128M移植到256M的时候需要改这个参数。
"看意思然后根据手册找寄存器" 就是通过宏的字面意思?这个不是和猜一样了嘛~
另外我想问,如果这个配置用到(肯定用到了),为什么没有赋值的过程?uboot是如何赋值给寄存器的? 回复 3# r91987
找到设置SDRAM的模块仔细查找。 回复 4# rqzrqh
搜索uboot的所有文档,都没有此宏的引用啊~那sdram到底是如何设置的?不解 回复 5# r91987
SDRAM 怎么被指要看SDRAM 的配置手册。一般具体型号的SDRAM 都会有具体SDRAM 的配置案例 回复 5# r91987
lowlevel_init.s看看,也许source insight没包含这个文件。 回复 7# rqzrqh
非常感谢你!
source insight的确没有包含.s文件,但是我通过windows下搜索(文件中包含文字)功能以及linux下的grep都没有找到此宏的引用,所以非常纳闷,难道uboot对寄存器赋值不是通过a=b这样的形式?
另外移植uboot的人是如何知道应该怎样设置头文件中相关的宏呢(根本就没有对应到寄存器,难道只能通过宏的字面英文意思猜测)? 这个问题困扰我太多天了,就是不知道为什么!!! 有人可以帮帮忙吗?
页:
[1]
2