我们的板子上会用到gpmc的4个片选,我在3.14内核的dts中配置了gpmc的range,如下:
ranges = <0 0 0x08000000 0x04000000
1 0 0x04000000 0x04000000
2 0 0x0c000000 0x04000000
3 0 0x10000000 0x04000000>;
片选0是nandflash,另外的是一些外设和fpga,但我在程序中去访问片选1的0x4000_0000这个地址,发现片选1没有被拉低(其他几个片选也是一样的情况),我看了片选1几个寄存器的值,如下:
[ 3.007982] gpmc cs1[1] reg val: 0x78601000
[ 3.012445] gpmc cs1[2] reg val: 0x000a1400
[ 3.016841] gpmc cs1[3] reg val: 0x22010110
[ 3.021263] gpmc cs1[4] reg val: 0x08036a13
[ 3.025658] gpmc cs1[5] reg val: 0x00091116
[ 3.030051] gpmc cs1[6] reg val: 0x80000000
[ 3.034471] gpmc cs1[7] reg val: 0x00000c44
对照了寄存器7的值,配置的地址应该是对的,但访问没有出片选信号,我很疑惑,TI的工程师能否帮忙解答一下,感激不尽!
leo chen:
相关的管脚有没有配置