配置工具:
Marvell官方提供了switch的网络功能配置工具:AutomotiveSwitchV4.exe。这个GUI工具可以静态配置switch的ARL表,vlan等功能,同时也集成了寄存器操作的拓展接口,基本可以完成绝大部分的静态配置。同时这个工具也支持配置文件打包成bin文件和在线运行功能。
配置工具依赖三份xml文件:

tool.xml:AutomotiveSwitchV4配置工具相关联的文件,在软件包里面会直接提供。
board_config_0xb52_0x9101.xml:88Q5152芯片相关联的文件,芯片信息(productid 芯片名称 端口数量等),固件能力(固件版本信息 ptp配置 心跳配置 可配置的寄存器信息)。可以从芯片获取,也可以使用发版工具默认的文件
switch_test.xml: 文件名称自定义,里面保存我们的网络的配置参数。描述switch的各个模块的配置过程执行数据,用户可以直接修改xml文件(xml文件信息更全)。本质上它是一个cpu执行配置的命令描述文件,每个条目会调用固件特定的接口根据参数去修改switch的配置,执行顺序根据条目的entity_order_no值顺序执行。
工具使用说明
一般情况下,配置软件包下会有三个文件,如果没有board_config_0xb52_0x9101可以先找供应商要一个。注意:文件路径不要有中文

1.双击工具,选择offline mode,在弹出框选择board_config_0xb52_0x9101文件,


2.选择对应需要配置的模块,然后add配置。注意:左边的单选框一定要勾上,不然配置无效

3.导出bin文件,将配置转化为bin文件。同时也有Activate Configuration和Delete Configuration from flash memory这样的指令,调试过程会用,一般开发用不到这些。

创建bin文件命令行:
指令:\AutomotiveSwitchV4 -switchcfg=%1 -productioncfg=%2 -targetid=%3 (可选 -prodnum=0x0B92 )
%1:switch config xml文件
%2:输出的配置bin文件
%3:smi地址
例程:(将123xml编译成123bin ,smi地址2)
.\AutomotiveSwitchV4 -switchcfg=”123.xml” -productioncfg=”123.bin” -targetid=2 (可选-prodnum=0x0B92 )
上传启动配置实时运行;
\AutomotiveSwitchV4 -runtimecfg -switchcfg=‘switch配置文件‘ -hostaddr=‘pc mac‘ -ethertype=0x9101 -deviceaddr=’芯片mac‘ (可选 -prodnum=0x0B92 )
上传启动配置同时保存到flash
\AutomotiveSwitchV4 -developmentcfg -switchcfg=‘switch配置文件‘ -hostaddr=‘pc mac‘ -ethertype=0x9101 -deviceaddr=’芯片mac‘ (可选 -prodnum=0x0B92 )
删除flash中的配置
.\AutomotiveSwitchV4 -hostaddr=‘pc mac‘ -ethertype=0x9101 -deviceaddr=’芯片mac‘ -eraseactivecfg (可选-prodnum=0x0B92 )
如何创建board_config_0xb52_0x9101.xml文件
初始拿到软件包时,在目录下只会有一个可执行和一个tool.xml文件,我们首先要创建一个芯片配置xml文件。

1.首先通过网线连接上switch的任意一个以太网口(vlan和优先级不要使能,vlanid==0)。如果在硬件设计之初所有的port没有active,网线时连接不上的,可以找供应商获取一个初始配置文件或者用开发板连接到switch芯片。
后续流程默认网络连接没有问题
2.工具双击打开,选择Online Mode,然后选择一个与设备连接的网卡


3.如果网络连接没有问题会在弹出对话框找到一个设备,在info空白处鼠标右击选择Create Board Configuration,保存就可以。选择next就进入了switch的配置界面。

也可以使用命令行工具创建:确保网络连接没有问题
命令行:
.\AutomotiveSwitchV4 –createboardcfg=自定义名称 -hostaddr=host mac -ethertype=0x9101 -deviceaddr=01:50:43:00:00:03(记录在Unsecure data区) (可选-prodnum=0x0B92 )
如何创建switch_test.xml文件
当配置完对应的模块之后,我们需要将配置的文件保存,选择文件保存就可以

switch configuration level选择level1就可以

集成工具
集成原理
集成switch配置之前首先我们需要了解一件事情,marvell的固件是闭源的每次我们修改配置是通过patch的方式将配置的指令保存到固定的地址空间。switch的固件运行时会到配置空间读取配置指令运行实现交换机的配置。
固件分区

分区块功能
| Master Boot Records(MBRs) |
1.不支持修改,除了同时写入; 2.Die0是芯片0,Die1是芯片1,对于5152的Die0 内容 == Die1内容,5192两个区域内容不同 |
| Unsecure data | 存放预设MAC address,详细说明查看《Unsecure data区说明》 |
| TIM(Trusted Image Module) |
用于Trusted boot。 unsecured mode:仅仅使用TIM0; secure mode:必须使用TIM0和TIM1,TIM 0 包括 Key Manifest block 和 Load TIM block,被Key Authentication (KAK)保护。 TIM 1 包括 firmware 和configuration image information 被Customer Signing Key (CSK)保护. CSK IDs从 1开始 并且 CSK HASH value 被保存在 Key Manifest block. |
| PIE(Primitive Intructions Extensions) |
用于marvell bootrom的功能拓展 1.配置eHSM时存放 embedded Hardware Security Module (eHSM)需要的原始指令,存放MACsec 的security artifacts, secure RMU 和 Customer wrap keys 和 data keys 2.Secure固件中存放PIE.rom扩展固件 |
| Firmware | 固件 |
| configuration | Switch配置 |
Unsecure data区说明:

40:设置的smi地址0,如果smi地址是3则对应0x43
F3 01:RMU的mac地址存储指令
02-00-00-00-00-01:设置的mac地址
注意:一个smi地址对应一条记录

switch的集成本质就是将配置工具生成的bin文件集成到configuration代码段。
从固件分区中可以看到switch的软件在flash中分成了3个部分
| Primary区 | 运行固件主分区 | 默认主分区运行 |
| Secondary区 | 运行固件次分区 | 主分区失败从次分区运行 |
| Temporary区 | 固件临时分区 | 刷写pie,配置eHSM,以太网刷写时会先存到这个区域然后拷贝到对应的其他分区。 |
MAC地址配置
固件中使用的MAC地址的选择过程:
如图所示:
- 如果JTAG禁用且Secure Boot Mode使能则MAC地址必须已经在OTP域(eFuse)且不可修改
- Mac地址的修改域是0x4000地址可以看 ”二、总体框架说明->2.固件描述->b.固件分区描述”。
- 如果Secure Boot Mode未使能且在0x4000地址无有效mac地址,固件回退默认的mac地址单播:02:00:00:00:SMI:00,多播:01:50:43:00:00:03
工具:“Flash Image Patch Tool“
修改指令:.\patch_image.exe -fwimage=%1 -aesgen=3 -macaddress=%2 -devicenum %3
%1:需要修改的固件名称,工具和固件在一个目录下
%2:需要写入的MAC地址
%3:SMI address,该地址用法类似每个记录条目的index
例程:
.\patch_image.exe -fwimage=“88Q5152_flash.bin” -aesgen=3 -macaddress=”00:11:22:33:44:06” -devicenum 6
删除指令:.\patch_image.exe -fwimage=%1 -aesgen=3 -clearall -devicenum %2
%1:需要修改的固件名称,工具和固件在一个目录下
%2:SMI address,需要删除的配置的index
例程:.\patch_image.exe -fwimage=”88Q5152_flash.bin” -aesgen=3 -clearall -devicenum 0
集成操作
工具:create_secure_image_v3.exe
指令:
主分区(primary):
.\create_secure_image_v3.exe -imagefile=%1 -partitionoffset=0x100000 -partitionsize=0x0F0000 -cfgimagefile=%2 -padto=4
备份分区(secondary):
.\create_secure_image_v3.exe -imagefile=%1 -partitionoffset=0x010000 -partitionsize=0x0F0000 -cfgimagefile=%2 -padto=4
%1:固件文件
%2:switch配置bin文件


477

被折叠的 条评论
为什么被折叠?



