我正在尝试编写嵌入式裸机GMAC和PHY驱动程序,以便能够在Allwinner R40上使用以太网。我同时配置了:GMAC和PHY(Realtek rtl8211),但我怀疑我错过了某些东西或做错了。现在,我可以打开以太网连接器上的LED。 RGMII状态寄存器告知RGMII链接已正确设置。 我已经为GMAC创建了正确的RX和TX描述符列表,并将它们的地址传递给了GMAC。
问题是我目前无法发送或接收任何内容。在我设置了适当的位以启动用于TX的DMA之后,整个描述符列表将保持不变。我的意思是,如果GMAC可以工作,则至少应更改一个TX描述符,但事实并非如此。在第一个描述符字中有第31位,指示该描述符属于TX DMA。我根据文档进行设置。遍历描述符列表时,GMAC DMA应清除该位。但这还没有清除。
第二件事-PHY在PHYSR(17.10)中返回以太网链路不正常。 由于PHY报告该链接不正常,是否GMAC无法遍历描述符列表?如果不是,还有什么原因会导致GMAC无法开始任何传输?