以太网详解(四)GMII、RGMII、SGMII 接口 MAC 配置流程(Quartus 平台)

GMII、RGMII MAC 配置流程

在这里插入图片描述
在这里插入图片描述
对于上图所示的示例,使用以下推荐的初始化序列。

  1. 使用 MDIO 进行外部 PHY 初始化
    // 假设外部 PHY 地址为 0x0A
    mdio_addr0 = 0x0A
    // 外部 PHY 寄存器将映射到 MDIO 空间 0
    读/写 MDIO 空间 0 (dword 偏移量 0x80 - 0x9F) = 读/写 PHY 寄存器 0 ~ 31
  2. MAC 配置寄存器初始化
    a. 禁用 MAC 发送和接收数据路径
    在执行任何配置更改之前禁用 MAC 发送和接收数据路径。
    // 在命令配置寄存器中设置 TX_ENA 和 RX_ENA 位为 0
    Command_config Register = 0x00802220
    // 读取 TX_ENA 和 RX_ENA 位设置为 0,确保 TX 和 RX 路径被禁用
    等待 Command_config Register = 0x00802220
    b. MAC FIFO 配置
    Tx_section_empty = 最大 FIFO 大小 - 16
    Tx_almost_full = 3
    Tx_almost_empty = 8
    Rx_section_empty = 最大 FIFO 大小 - 16
    Rx_almost_full = 8
    Rx_almost_empty = 8
    // 直通模式,设置该阈值为 0,启用存储转发模式
    Tx_section_full = 16
    // 直通模式,设置该阈值为 0,启用存储转发模式
    Rx_section_full = 16
    c. MAC 地址配置
    // MAC 地址为 00-1C-23-17-4A-CB
    mac_0 = 0x17231C00
    mac_1 = 0x0000CB4A
    d. MAC 功能配置
    // 最大帧长为 1518 字节
    Frm_length = 1518
    // 最小包间距为 12 字节
    Tx_ipg_length = 12
    // 流量控制的最大暂停量值
    Pause_quant = 0xFFFF
    // 使用以下选项设置 MAC:
    // 100Mbps,用户可以从 PHY 状态 / PCS 状态获取此信息
    // 全双工,用户可以从 PHY 状态 / PCS 状态获取该信息
    // 在接收时移除填充
    // CRC 删除
    // 发送报文的 MAC 地址插入
    // 选择 mac_0 和 mac_1 作为源 MAC 地址
    Command_config Register = 0x00800220
    e. 重置 MAC
    英特尔建议您在软件中发生更改时执行软件重置
    MAC 速度或双工。MAC 软件复位位自清除
    完成软件复位。
    // 设置 SW_RESET 位为 1
    Command_config Register = 0x00802220
    等待 Command_config Register = 0x00800220
    f. 启用 “MAC 发送和接收数据路径”
    // 在命令配置寄存器中设置 TX_ENA 和 RX_ENA 为 1
    Command_config Register = 0x00800223
    // 读取 TX_ENA 和 RX_ENA 位置 1,确保 TX 和 RX 路径为启用
    等待 Command_config Register = 0x00800223

SGMII MAC 配置流程

在这里插入图片描述
对于上图所示的示例,使用以下推荐的初始化序列。

  1. 使用 MDIO 进行外部 PHY 初始化
    参考 GMII、RGMII MAC 配置流程第一步
  2. PCS 配置寄存器初始化。
    a. Set Auto Negotiation Link Timer
    // 设置 SGMII 的 Link timer 为 1.6ms
    link_timer(地址偏移量 0x12) = 0x0D40
    Link_timer(地址偏移量 0x13) = 0x03
    b. 配置 SGMII
    // 启用 SGMII 接口和启用 SGMII 自动协商
    // SGMII_ENA = 1, USE_SGMII_AN = 1
    if_mode = 0x0003
    c. Enable Auto Negotiation
    // 使能 Auto Negotiation
    // Auto_Negotiation_ENA = 1,Bit 6,8,13 可以忽略
    PCS Control Register = 0x1140
    d. PCS Reset
    // 配置改变时建议软件复位
    // Reset = 1
    PCS 控制寄存器 = 0x9140
    等待 PCS 控制寄存器复位位清除
  3. MAC 配置寄存器初始化
    参考 GMII、RGMII MAC 配置流程第二步

参考资料

https://www.intel.com/content/www/us/en/docs/programmable/683402/15-0/introduction.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值