目前已进行的工作
速率为sata1.0
(1)gxb内循环,进行了loopback内循环,无误码
(2)gxb外循环,通过两根线进行了物理连接,发送数据后接收,无错误
(3)gxb添加相应的rx_signaldetect和tx_forceelecidle信号,用于comreset,comwake发送和cominit和comwake接收,参考了an635文档
实际抓取信号图为:
从图像中可以看到tx_forceelecidle发送6次后,会收到rx_signaldetect信号,但是收到rx_signaldetect信号期间,gxb接收端会收到数据
具体数据为
分析数据可以看出为ALIGN数据,但是数据返还的时间不对,按照协议应该是在host发送完comwake后,device返回comwake,然后主机发送4A4A4A4A后,device发送ALIGN,试了两个sata硬盘情况基本类似
问题:
(1)以前情况是什么原因引起的?为什么ALIGN数据会在cominit期间发送,从signaltap上看,时序是否有问题?
(2)host在收到cominit后,应该多久发送comwake,协议中没有找到
(3)目前gxb设置的为1.5G,看协议中关于oob握手,有速率自协商的部分,自己理解应该是sata盘会按照1.0速率和2.0速率发送ALIGN看host会收到哪个速率下的ALGIN,然后以相同速率发送ALIGN,不知道理解的是否正确
(4)目前gxb工作在1.5G固定速率下,是否还需要gxb_reconfig模块?
此外还做得工作包括:
(1)host发送comreset后,接收cominit,在发送comwake ,接受comwake,发送4a4a4a4a后,认为device发送了align,host发送align,设备并没有返回sync信号
(2)host发送comreset后,接收cominit,cominit接收过程中收到align信号后,host直接发送align信号调过发送comwake过程,设备也没有回发sync信号 |