This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5716: gpmc 接口的访问时cs3未有输出。

Part Number: AM5716


AM5716与fpga通过gpmc接口连接。内核打印信息看gpmc正常初始化,实际访问接口时只有地址有输出,cs和其他读写控制信号未有变化。

[ 2.244863] devices_kset: Moving 50000000.gpmc to end of list
[ 2.244872] platform 50000000.gpmc: Retrying from deferred list
[ 2.244894] bus: 'platform': driver_probe_device: matched device 50000000.gpmc with driver omap-gpmc
[ 2.244901] bus: 'platform': really_probe: probing driver omap-gpmc with device 50000000.gpmc
[ 2.245050] omap-gpmc 50000000.gpmc: no init pinctrl state
[ 2.245079] omap-gpmc 50000000.gpmc: no idle pinctrl state
[ 2.245253] omap-gpmc 50000000.gpmc: GPMC revision 6.0
[ 2.250420] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
[ 2.256722] gpio gpiochip8: (omap-gpmc): added GPIO chardev (254:8)
[ 2.256801] gpiochip_setup_dev: registered GPIOs 510 to 511 on device: gpiochip8 (omap-gpmc)
[ 2.256990] gpmc cs3 before gpmc_cs_program_settings:
[ 2.287258] gpmc cs3 access configuration:
[ 2.291371] gpmc,mux-add-data = <2>;
[ 2.294960] gpmc,device-width = <2>;
[ 2.298548] gpmc,wait-pin = <0>;
[ 2.301789] gpmc,burst-length = <4>;
[ 2.305381] gpmc,cycle2cycle-samecsen = <1>;
[ 2.323410] gpmc cs3 timings configuration:
[ 2.333096] gpmc,cs-on-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.342264] gpmc,cs-rd-off-ns = <60>; /* 57 ns - 60 ns; 16 ticks */
[ 2.348559] gpmc,cs-wr-off-ns = <60>; /* 57 ns - 60 ns; 16 ticks */
[ 2.354867] gpmc,adv-on-ns = <3>; /* 1 ns - 3 ns; 1 ticks */
[ 2.360550] gpmc,adv-rd-off-ns = <11>; /* 8 ns - 11 ns; 3 ticks */
[ 2.366766] gpmc,adv-wr-off-ns = <11>; /* 8 ns - 11 ns; 3 ticks */
[ 2.372973] gpmc,adv-aad-mux-on-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.379354] gpmc,adv-aad-mux-rd-off-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.386084] gpmc,adv-aad-mux-wr-off-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.392814] gpmc,oe-on-ns = <15>; /* 12 ns - 15 ns; 4 ticks */
[ 2.398672] gpmc,oe-off-ns = <60>; /* 57 ns - 60 ns; 16 ticks */
[ 2.404703] gpmc,oe-aad-mux-on-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.410995] gpmc,oe-aad-mux-off-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.417376] gpmc,we-on-ns = <15>; /* 12 ns - 15 ns; 4 ticks */
[ 2.423232] gpmc,we-off-ns = <60>; /* 57 ns - 60 ns; 16 ticks */
[ 2.429264] gpmc,rd-cycle-ns = <60>; /* 57 ns - 60 ns; 16 ticks */
[ 2.435471] gpmc,wr-cycle-ns = <60>; /* 57 ns - 60 ns; 16 ticks */
[ 2.441676] gpmc,access-ns = <45>; /* 42 ns - 45 ns; 12 ticks */
[ 2.447707] gpmc,page-burst-access-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.454349] gpmc,bus-turnaround-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.460729] gpmc,cycle2cycle-delay-ns = <7>; /* 4 ns - 7 ns; 2 ticks */
[ 2.467371] gpmc,wait-monitoring-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.473838] gpmc,clk-activation-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.480217] gpmc,wr-data-mux-bus-ns = <26>; /* 23 ns - 26 ns; 7 ticks */
[ 2.486947] gpmc,wr-access-ns = <30>; /* 27 ns - 30 ns; 8 ticks */
[ 2.685761] gpmc cs3 after gpmc_cs_set_timings:
[ 2.715498] gpmc cs3 access configuration:
[ 2.719609] gpmc,mux-add-data = <2>;
[ 2.723195] gpmc,device-width = <2>;
[ 2.726783] gpmc,wait-pin = <0>;
[ 2.730022] gpmc,burst-length = <4>;
[ 2.733610] gpmc,cycle2cycle-samecsen = <1>;
[ 2.737895] gpmc cs3 timings configuration:
[ 2.742094] gpmc,cs-on-ns = <3>; /* 1 ns - 3 ns; 1 ticks */
[ 2.747689] gpmc,cs-rd-off-ns = <112>; /* 110 ns - 112 ns; 30 ticks */
[ 2.754246] gpmc,cs-wr-off-ns = <112>; /* 110 ns - 112 ns; 30 ticks */
[ 2.760801] gpmc,adv-on-ns = <11>; /* 8 ns - 11 ns; 3 ticks */
[ 2.766658] gpmc,adv-rd-off-ns = <52>; /* 49 ns - 52 ns; 14 ticks */
[ 2.773038] gpmc,adv-wr-off-ns = <52>; /* 49 ns - 52 ns; 14 ticks */
[ 2.779418] gpmc,adv-aad-mux-on-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.785798] gpmc,adv-aad-mux-rd-off-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.792527] gpmc,adv-aad-mux-wr-off-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.799257] gpmc,oe-on-ns = <52>; /* 49 ns - 52 ns; 14 ticks */
[ 2.805202] gpmc,oe-off-ns = <112>; /* 110 ns - 112 ns; 30 ticks */
[ 2.811495] gpmc,oe-aad-mux-on-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.817786] gpmc,oe-aad-mux-off-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.824167] gpmc,we-on-ns = <52>; /* 49 ns - 52 ns; 14 ticks */
[ 2.830111] gpmc,we-off-ns = <112>; /* 110 ns - 112 ns; 30 ticks */
[ 2.836405] gpmc,rd-cycle-ns = <112>; /* 110 ns - 112 ns; 30 ticks */
[ 2.842873] gpmc,wr-cycle-ns = <112>; /* 110 ns - 112 ns; 30 ticks */
[ 2.849340] gpmc,access-ns = <82>; /* 79 ns - 82 ns; 22 ticks */
[ 2.855372] gpmc,page-burst-access-ns = <11>; /* 8 ns - 11 ns; 3 ticks */
[ 2.862187] gpmc,bus-turnaround-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.868568] gpmc,cycle2cycle-delay-ns = <30>; /* 27 ns - 30 ns; 8 ticks */
[ 2.875472] gpmc,wait-monitoring-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.881938] gpmc,clk-activation-ns = <0>; /* 0 ns - 0 ns; 0 ticks */
[ 2.888318] gpmc,wr-data-mux-bus-ns = <52>; /* 49 ns - 52 ns; 14 ticks */
[ 2.895134] gpmc,wr-access-ns = <90>; /* 87 ns - 90 ns; 24 ticks */
[ 2.901820] driver: 'omap-gpmc': driver_bound: bound to device '50000000.gpmc'
[ 2.901847] bus: 'platform': really_probe: bound device 50000000.gpmc to driver omap-gpmc

为调试方便直接通过uboot调试gpmc接口,配置cs3相关寄存器,通过md命令参看gpmc配置如下

=>md 0x500000f0

500000f0: 00001200 00101000 00030301 10041004 ................
50000100: 000c1010 08070280 00000f48 00870086 ........H.......
50000110: 00890088 008b008a 00000000 00000000 ................
50000120: 00001000 00101001 22060514 10057016 ...........".p..
50000130: 010f1111 8f070000 00000f00 00000000 ................
50000140: 00000000 00000000 00000000 00000000 ................

访问gpmc基地址,得到值为发送地址的值,cs3未有输出。

=> md.w 0x08000000  
08000000: 0000 0001 0002 0003 0004 0005 0006 0007 ................
08000010: 0008 0009 000a 000b 000c 000d 000e 000f ................

管脚配置为模式0:

=> md 0x4A0034BC
4a0034bc: 00060000 00040000 00040000 00060000 ................
4a0034cc: 00060000 00040000 0001000e 000e0000 ................