工具/软件:
您好:
我看到了在同步模式下从 GPMC 读取时返回全零的问题、但当同步模式未激活时、我正在读取我预期读取的内容。 此外、通过示波器观察 GPMC 线路时、显然会返回从零不同的预期数据。 在同步模式下写入效果很好。
这与此处报告和解决的相当老的问题非常相似:
实际上、我之前已将 GPMC 时钟焊盘配置为输出。 我的理解是、这里必须将 GPMC 时钟焊盘配置为输入(尽管它实际上在输出时钟信号)。 因此、我在器件树文件中相应地更改了 GPMC 时钟焊盘的 PADCONFIG:
AM64X_IOPAD (0x007c、PIN_INPUT、4)
遗憾的是、这无法解决问题。
我可以在引导后读取 PADCONFIG 寄存器来验证 PAD 的接收器是否已启用。 例如通过
devmem2 0xf407c
该器件报告值 0x00050004 然后(其中设置了位 18 并且接收器已启用)。
那么、这里还有什么问题呢?
Im 不确定是否存在关系、但我的配置的特殊之处在于、我需要一个自由运行的 GPMC 时钟输出、因此 MUXMODE 为 4(直接将时钟馈送到焊盘上,绕过 GPMC 模块)。
我应该注意的是、我暂时没有看到针对单个事务使用同步模式的要点。 也就是说、无论使用的是非同步模式还是同步模式、时序都是相同的、采用异步模式似乎没有缺点。 但是、最终我还需要运行突发模式、这在异步模式下不可用。 此外、启用突发后、我会确定性地观察到对 GPMC 窗口进行写入访问的内核错误、或在读取时仅观察到总线错误。 我会尽量把这点整理得更好一点,可能会单独发布一个帖子。 但我不确定这是否与我在这里报告的这个问题有关。
谢谢、
Mario