Marvell以太网交换芯片-88E6390x-调试过程

1 引言

    下载Marvell的器件资料,需要公司与其签订NDA保密协议。Marvell 用户访客登陆网址:https://marvell-customers.okta.com/login/login.htm
在这里插入图片描述
找到相应的器件,下载相关的资料。
在这里插入图片描述

2 硬件环境准备

仿真器:USB2SMI
用途:用于交换芯片eeprom 镜像烧写,交换芯片从eeprom读取镜像进行启动和配置
在这里插入图片描述
相关使用文档:《MV-S400452-00_USB2SMI-Module-DC201-Adapter-User-Guide.pdf》

3 软件环境准备

  1. 安装CodeBlocks
    CodeBlocks 用于编写代码,编译后生成的 .ihx文件用于烧写eeprom.
    在这里插入图片描述
    参考文档:
    《Creating-EEPROM-images-for-Amethyst-Peridot-and-Topaz_02_01_2019.pdf》

  2. 安装 IMPGUI 工具
    该工具用于eeprom 镜像文件的格式转换和eeprom烧写;
    在这里插入图片描述
    参考文档:
    《Creating-EEPROM-images-for-Amethyst-Peridot-and-Topaz_02_01_2019.pdf》

  3. 安装SwitchGUI 工具
    该工具用于读写交换芯片各端口寄存器;
    在这里插入图片描述
    该工具可以将已配置好的寄存器值 dump 出来,形成regloader code,可以放到 CodeBloaks中编辑。

4 实际应用

由于公司与Marvell签了保密协议,手册中的部分截图无法贴出来,网友们见谅啦!
我们使用的场景如下,使用MPU的一个MAC+PHY与交换芯片的Port9端口通过SGMII连接。交换的Port1作为级联口接外部网络,Port2-Port7连接背板,Port8预留暂没有使用。
交换芯片使用的是No CPU模式,即上电后从eeprom读取配置文件。
在这里插入图片描述
交换芯片上需做的修改:
在这里插入图片描述
交换芯片需要做3个地方的修改:
(1) 设置 C_MODE
参考:《fs_88E6390X_88E6390_88E6290_88E6190X_88E6190-Switch-Functional-Specification-Draft-Rev0-04.pdf》
Page-182
设置Port9和Port10的C_MODE =0x9,让其工作模式为1000BASE-X
(2)设置 VLAN
参考:《fs_88E6390X_88E6390_88E6290_88E6190X_88E6190-Switch-Functional-Specification-Draft-Rev0-04.pdf》
Page-200
设置各端口的Frame Mode为Normal Network
(3)设置各端口的PHY - Fiber Transceiver Registers全部关闭自协商,强制1000M/FULL
参考:《88E6390X_88E6390_88E6190X_88E6190-PHY-and-SERDES-Functional-Specification-and-Registers.pdf》
Page-112

CodeBlock编辑的代码如下:


#include <stdio.h>
#include <Peridot.h>
int main ()
{
    /****************************************************
     * set C_MODE - Switch - Page182
     ****************************************************/
    /* P9 - 1000BASE-X ; P2\P3\P4 - AutoMedia */
    WriteReg(0x9,0x0,0xde09);
    /* P10 - 1000BASE-X ; P5\P6\P7 - AutoMedia */
    WriteReg(0xa,0x0,0xde09);


    /****************************************************
     * set VLAN - Frame Mode - Switch - Page200
     ****************************************************/
    /* P1-P10 */
    WriteReg(0x1,0x4,0x7f);
    WriteReg(0x2,0x4,0x7f);
    WriteReg(0x3,0x4,0x7f);
    WriteReg(0x4,0x4,0x7f);
    WriteReg(0x5,0x4,0x7f);
    WriteReg(0x6,0x4,0x7f);
    WriteReg(0x7,0x4,0x7f);
    WriteReg(0x8,0x4,0x7f);
    WriteReg(0x9,0x4,0x7f);
    WriteReg(0xa,0x4,0x7f);

    /********************************************************
     * Close AutoNegotitaion, force 1000M/FULL - PHY - Page112
     ********************************************************/

    /* P9-P10 */
    //C45RegWrite(0x9,0x4,0x2000,0x140,0);
    //C45RegWrite(0xa,0x4,0x2000,0x140,0);
    /* P2-P7 */
    C45RegWrite(0x12,0x4,0x2000,0x140,0);
    C45RegWrite(0x13,0x4,0x2000,0x140,0);
    C45RegWrite(0x14,0x4,0x2000,0x140,0);
    C45RegWrite(0x15,0x4,0x2000,0x140,0);
    C45RegWrite(0x16,0x4,0x2000,0x140,0);
    C45RegWrite(0x17,0x4,0x2000,0x140,0);

    return 0;
}

另外,交换芯片的复位时序也要特别注意!

  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

heat.huang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值