r91987 发表于 2011-08-19 14:20

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究竟在哪里配置各个寄存器?

rqzrqh 发表于 2011-08-19 14:30

有定义但是不一定用到,configs中很多这样的,只是没注释掉而已。
看意思然后根据手册找寄存器。

r91987 发表于 2011-08-19 14:33

回复 2# rqzrqh

先谢谢了!

    上面这个宏对应的寄存器肯定是用到了~因为在sdram从128M移植到256M的时候需要改这个参数。
    "看意思然后根据手册找寄存器" 就是通过宏的字面意思?这个不是和猜一样了嘛~
    另外我想问,如果这个配置用到(肯定用到了),为什么没有赋值的过程?uboot是如何赋值给寄存器的?

rqzrqh 发表于 2011-08-19 14:48

回复 3# r91987

找到设置SDRAM的模块仔细查找。

r91987 发表于 2011-08-19 15:28

回复 4# rqzrqh


    搜索uboot的所有文档,都没有此宏的引用啊~那sdram到底是如何设置的?不解

npuazm 发表于 2011-08-19 15:32

回复 5# r91987


    SDRAM 怎么被指要看SDRAM 的配置手册。一般具体型号的SDRAM 都会有具体SDRAM 的配置案例

rqzrqh 发表于 2011-08-19 15:33

回复 5# r91987


    lowlevel_init.s看看,也许source insight没包含这个文件。

r91987 发表于 2011-08-19 23:52

回复 7# rqzrqh


    非常感谢你!

source insight的确没有包含.s文件,但是我通过windows下搜索(文件中包含文字)功能以及linux下的grep都没有找到此宏的引用,所以非常纳闷,难道uboot对寄存器赋值不是通过a=b这样的形式?
另外移植uboot的人是如何知道应该怎样设置头文件中相关的宏呢(根本就没有对应到寄存器,难道只能通过宏的字面英文意思猜测)?

r91987 发表于 2011-08-19 23:53

这个问题困扰我太多天了,就是不知道为什么!!!

r91987 发表于 2011-08-20 15:56

有人可以帮帮忙吗?
页: [1] 2
查看完整版本: uboot的一个问题