Marvell88Q5152交换机开发(5)-烧录和调试

烧录

当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:超时时间

  1. EtherType=0x9101

  2. 在choose device UI中选择对应的芯片,然后点击Scan Device获取设备数据

6.需要检查Switch Identifier(0x03)的value不等于0,否则代表连接获取配置失败

7.连接成功DA MAC将变成单播地址(依赖固件配置)(最后一位是SMI地址)

GUI工具注意事项:

PC网卡不能设置vlan或者vlan只能设置为1,switch默认支持vlan1

相关推荐
sdm0704271 小时前
仿muduo库实现高并发服务器-下
开发语言·网络·c++·多路转接
AAA代码批发商1 小时前
DAYS41 UART 串口通信 + DS18B20 单总线温度传感器
嵌入式硬件·51单片机
充哥单片机设计1 小时前
【STM32开源项目】智能窗户控制器
stm32·单片机·嵌入式硬件·毕业设计·智能窗户
世岩清上1 小时前
一次性完工的数字展厅,如何预留后期内容更新空间?
大数据·网络·人工智能·音视频·展厅改造
Jlzn88881 小时前
钢带折弯±0.1°怎么来?伺服闭环补偿回弹拆解
大数据·嵌入式硬件·制造
威嵌神州1 小时前
便携式加固产品方案:加固平板、手持终端、巡检仪、管理柜
嵌入式硬件·智能手机·电脑
艾莉丝努力练剑1 小时前
【AI大模型接入SDK】LLMManager类架构与智能指针选型
网络·c++·人工智能·学习·面试·架构
安河桥。2 小时前
PCIe 是什么?为什么这么快?从差分线到 Gen6 的硬核解析与场景全览
嵌入式硬件·车载系统
志栋智能3 小时前
超自动化运维与DevOps的深度融合
运维·网络·人工智能·安全·自动化