forked from u-boot/u-boot
-
Notifications
You must be signed in to change notification settings - Fork 48
Open
Description
网口初始化的逻辑看起来和Amlogic的官方参考板有些对不上,但却能正常用,反而按照官方demo的寄存器初始化顺序是不能正常用的。
想问下作者的信息来源是什么,反汇编、文档还是单纯靠穷举?
官方参考板的网卡初始化逻辑参见 setup_net_chip()
有以下几个问题:
- PREG_ETHERNET_ADDR0这个寄存器的配置和参考板差异比较大,请问当前的寄存器配置是基于什么资料来的?
- HHI_MPLL_CNTL6[BIT27] (datasheet 中描述为 CKEN[4]),似乎代码注释不太正确,参考linux的clk驱动,这个应该是 fclk_div2 时钟的门控。实测这一位不设置会导致无法收发包,但似乎没有任何文档说明这个时钟和网络控制器的关系。这个时钟的频率应该是 2550/2 = 1275 MHz,和rgmii的时钟(125MHz)不构成倍数关系,看不出来如何影响收发包。
- 某些寄存器的设置看起来是没必要的。比如 HHI_GEN_CLK_CNTL ,从datasheet来看是控制gen_clk_out的,将其设为0不影响通信;还有
eth_reg0.b.phy_ref_clk_enable = 1; // Generate 25MHz clock for PHY,从硬件来看,phy有一颗独立的晶振,不需要SoC提供参考时钟,把这一位清掉也能正常收发包
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels