烧录
当Marvell 88Q5152从CPU启动就需要外挂flash启动,flash的刷写有3种方式:1.flash线刷;2.JTAG烧录;3.以太网烧录。直接线刷flash是一个完全的硬件操作,刷完flash再去贴片这个不去讲解了。下文主要介绍JTAG刷写和以太网刷写。
JTAG烧录
关于JTAG工具的连接以及设备在《Marvell88Q5152交换机开发(1)-硬件》中已经介绍过,这里就不做说明了。
JTAG正确连接后直接命令行调用刷写指令就可以直接烧录配置。
工具名称:spi_flash.exe
.\spi_flash.exe -jtagmode=MAX -update=SPD --fastverify -infile=%FWFILE% %1 %2 %3 %4 %5 %6 %7 %8 %9
SPD理解:
P:主固件区和配置区(对应固件框图的Primary段)
S:次固件区和配置区(对应固件框图的Secondary段)
D:非加密数据区(对应固件框图的Unsecure Data段)
在实际的项目中刷写工具已经使用bat脚本进行了封装,只需直接调用bat脚本就可以。
附件提供了jtag调试和烧录工具和脚本
.\fwupdate.bat 88Q5152_flash.bin
以太网烧录
以太网烧录分2个方式 1.固件正常运行更新;2.固件损坏或者无初始化固件烧录
固件更新
当switch程序正常启动,需要将以太网口正确的连接到switch上:1.vlan不使能或者vlan=1;2.mac地址需要符合ATU表的配置;3.确保port口和switch内部的port0通讯链路正常
固件的烧录原理是先将需要更新的数据存入Temporary区,当执行TIM刷写时将更新的固件或配置覆盖对应的分区。这个一定要注意,以太网更新时必须更新TIM才会生效。
本文档介绍的更新刷写不涉及secure boot,后续会有单独章节介绍。
工具会在附件中提供。
工具名称:Ethernet Firmware Upgrade Tool 2.x
指令:
获取网卡列表:.\DownloadImage_V2 --li
更新主固件:.\DownloadImage_V2 -ha00:0e:c6:bf:e9:50 -if%1 -dt1 -io0x030000 -is0x7D000 -da%2 -dn%3
更新备份固件:.\DownloadImage_V2 -ha00:0e:c6:bf:e9:50 -if%1 -dt1 -io0x120000 -is0x7D000 -da%2 -dn%3
更新主配置:.\DownloadImage_V2 -ha00:0e:c6:bf:e9:50 -if%1 --dt2 -io0x0B0000 -is0x50000 -da%2 -dn%3
更新备份配置:.\DownloadImage_V2 -ha00:0e:c6:bf:e9:50 -if%1 --dt2 -io0x1A0000 -is0x50000 -da%2 -dn%3
更新主PIE:.\DownloadImage_V2 -ha00:0e:c6:bf:e9:50 -if%1 --dt5 -io0x012000 -is0x1E000 -da%2 -dn%3
更新备份PIE:.\DownloadImage_V2 -ha00:0e:c6:bf:e9:50 -if%1 --dt5 -io0x102000 -is0x1E000 -da%2 -dn%3
更新主TIM:.\DownloadImage_V2 -ha00:0e:c6:bf:e9:50 -if%1 -dt3 -io0x10000 -is0x02000 -da%2 -dn%3
更新备份TIM:.\DownloadImage_V2 -ha00:0e:c6:bf:e9:50 -if%1 -dt4 -io0x100000 -is0x02000 -da%2 -dn%3
更新临时区PIE(secureboot):.\DownloadImage_V2 -ha00:0e:c6:bf:e9:50 -if%1 --dt6 -da%2 -dn%3
00-0e-c6-bf-e9-50:主机mac地址
%1:完整的固件bin文件
%2:switch mac地址 01:50:43:00:00:03
%3:smi地址
-io:段地址
-is:段大小
固件损坏烧录
当固件损坏时或者cpu使能但是flash中没有烧录初始固件,可以通过此方法更新程序。核心原理:开机时触跳过flash引导指令从网络引导(flash中固件引导失败,自动切换到网络引导),先加载一个烧录算法给到88Q5152的RAM中,然后在通过升级算法加载目标固件给到flash。
命令:.\DownloadImage_V2 -ha00-0e-c6-bf-e9-50 -if%1 -sf%4 -da%2 -dn%3 -fa0
00-0e-c6-bf-e9-50:主机mac地址
%1:完整的固件bin文件
%2:switch mac地址(01:50:43:00:00:03)
%3:smi地址
%4:升级算法固件
例程:.\DownloadImage_V2 -ha00-0e-c6-bf-e9-50 -if"目标固件" -sf"升级算法" -da20-51-52-B1-20-01 -dn0 -fa0
需要特别注意,想要实现这个功能的前提条件是cpu能够正常启动,并且其中至少有一个port口可以正常和switch的mcu通讯,可以通过管理HOST通过SMI接口控制switch的某个口的状态,实现刷写。关于switch的外设接口介绍以及smi的port初始化会在后续文档说明。
调试
调试也分为JTAG调试,以太网调试和SMI调试。
JTAG调试
JTAG工具是一个命令行工具,正确连接JTAG口并安装驱动后就可以通过命令行访问寄存器信息。
帮助菜单命令行:.\jtag_rat.exe --help
设备信息查询命令行:.\jtag_rat.exe --listdevices
连接设备命令行:.\jtag_rat.exe -target=0
help:查看命令组
help <xxx>:查看指令组包含哪些指令,具体指令操作

一般主要的指令有:
showbootstraps:获取初始化的硬件io的值
showports:回去端口的配置以及连接状态
还有一些读取寄存器的一些指令,可以通过help指令获取帮助。
网络调试
工具名称:Automotive_SwitchGUI_V4.0.0
1.打开gui工具选择'HW Interface" -->"FWRMU',在弹出对话框选择pc连接主板的网口。
2.DA MAC默认是01:50:43:00:00:03广播地址,如果固件修改过地址需要针对修改
3.TrgDev 是SMI的物理地址,PRI是报文的优先级,Timeout:超时时间
-
EtherType=0x9101
-
在choose device UI中选择对应的芯片,然后点击Scan Device获取设备数据
6.需要检查Switch Identifier(0x03)的value不等于0,否则代表连接获取配置失败
7.连接成功DA MAC将变成单播地址(依赖固件配置)(最后一位是SMI地址)

GUI工具注意事项:
PC网卡不能设置vlan或者vlan只能设置为1,switch默认支持vlan1