我目前正在使用Xilinx ZCU106板,我很好奇JTAG是如何支持闪存编程的。我可以上传启动图像或硬件逻辑,只需将JTAG电缆连接到ZCU106板上的USB连接器,然后按下主机上的闪存按钮。通过这样做,它看起来就像QSPI保存了引导映像或硬件逻辑映像,并且系统通过使用这个映像来初始化自己。这似乎是一种魔法,我想知道细节。
到目前为止,我的理解是我可以通过USB电缆访问JTAG接口(感谢FTDI芯片?),JTAG边界扫描连接到它的设备。
但是问题在这里,我找不到JTAG和QSPI (MT25QU512ABB8ESF-0SIT)之间的链接。我搜索了几个参考资料,包括QSPI手册(MT25QU512ABB8ESIT-0SIT,https://media-www.micron.com/-/media/client/global/documents/products/data-sheet/nor-flash/serial-nor/mt25q/die-rev-b/mt25q_qlkt_u_512_abb_0.pdf),但似乎没有JTAG的端口(如TDI、TDO和TCK),而只有SPI。
所以第一个假设,我想在JTAG链上可能有一个SPI控制器来闪存。但是,到目前为止,我还没有发现任何关于引用的线索,以至于链上存在SPI控制器,甚至控制QSPI闪存的SPI控制器也确实存在。第二种假设,我认为PS-手臂皮质A53-抽头(?)有魔力。PS TAP接收JTAG信号并处理JTAG命令。准确地说,让我们说一下闪存编程的情况,那么就像使用JTAG命令通过SPI在闪存上写入数据一样。
在这两种情况下,我想知道是否有答案。最后一件事,如果第二个是答案,那么处理器(Cortex A53)应该通过硬件逻辑实现这些功能,解析来自JTAG接口的Flash写/擦除命令信号,并让系统包含的SPI控制器执行写/擦除任务。在我读到的地方,JTAG本身支持在Flash内存上写入数据,但我所能找到的只有TDI、TCK、TDO、TMS和TRST端口,它们不适合QSPI的任何端口。
可能我混淆了很多概念,但是我想知道JTAG闪存编程场景背后的确切机制。
发布于 2022-10-11 22:20:06
通常,它将按照以下顺序处理:
现在,预期的数据可以在闪存中获得。
https://stackoverflow.com/questions/74027792
复制