Skip to content

DesignWare网络控制器时钟设计问题 #15

@185264646

Description

@185264646

网口初始化的逻辑看起来和Amlogic的官方参考板有些对不上,但却能正常用,反而按照官方demo的寄存器初始化顺序是不能正常用的。
想问下作者的信息来源是什么,反汇编、文档还是单纯靠穷举?

官方参考板的网卡初始化逻辑参见 setup_net_chip()

有以下几个问题:

  1. PREG_ETHERNET_ADDR0这个寄存器的配置和参考板差异比较大,请问当前的寄存器配置是基于什么资料来的?
  2. HHI_MPLL_CNTL6[BIT27] (datasheet 中描述为 CKEN[4]),似乎代码注释不太正确,参考linux的clk驱动,这个应该是 fclk_div2 时钟的门控。实测这一位不设置会导致无法收发包,但似乎没有任何文档说明这个时钟和网络控制器的关系。这个时钟的频率应该是 2550/2 = 1275 MHz,和rgmii的时钟(125MHz)不构成倍数关系,看不出来如何影响收发包。
  3. 某些寄存器的设置看起来是没必要的。比如 HHI_GEN_CLK_CNTL ,从datasheet来看是控制gen_clk_out的,将其设为0不影响通信;还有 eth_reg0.b.phy_ref_clk_enable = 1; // Generate 25MHz clock for PHY ,从硬件来看,phy有一颗独立的晶振,不需要SoC提供参考时钟,把这一位清掉也能正常收发包

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions