☰
Marvell88Q5152交换机开发(3)-Board configuration配置
2026/10/5 1:02:04 网站建设 项目流程

本专栏停更了2个星期,主要是因为工作中遇到了一个autosar以太网协议栈的bug,当然主要是因为我们公司使用的SIP包比较陈旧导致的部分patch没有,所以在通讯负载比较高时出现了问题,等后续也整理成文档分享出来。

本章节主要承接上一个博客《Marvell88Q5152交换机开发(2)-配置修改和集成》补充介绍一下配置工具的使用细节,这里主要介绍一下Board configuration的配置。

如上图所示:需要add并且enable对应的单选框才能在xml中生成对应模块的配置项。例如:1. port configuration需要add并且enable1.port才能生效。

General Settings配置

如下图所示这个配置栏非常简单,只有一个Target Device ID的配置,看着不多但是这个配置很重要,这个参数直接决定了switch芯片的SMI的访问地址,当使用单芯片模式时默认是0不需要修改,如果想要使用多芯片模式那就需要需改为对应的地址。

需要注意的是,这个配置会在CPU固件启动后需改bootstraps的硬件配置地址。

Port Configuration配置

88Q5152共有10个port,其中port0是switch内部的port与ARM R52的MAC连接。

1.需要但左边的单选框选中要配置的port的

2.Mode选中Forwarding模式,此模式表示port口的收发使能如果选择disable模式则端口不通,对于一个port来说有4种模式,但是GUI工具只有2个模式。

Disabled不允许帧进入(ingress)或离开(egress)一个被禁用的端口
Blocking/Listening阻塞/侦听阻塞端口只允许MGMT帧进入(ingress)或离开(egress)。所有其他的帧类型都被丢弃。在阻塞端口上禁用学习功能
Learning只允许MGMT帧进入(ingress)或离开(egress)。所有其他类型的帧都将被丢弃,但所有良好的非mgmt帧都将被学习,因为这些帧没有被过滤掉
Forwarding所有帧都是允许的

3.802.1q mode会影响port口接收到vlan报文时的处理策略,有四种模式可以配置

Disabled收到报文时不做vlan table检查,所以报文都可以直接由vlan base table的规则转发
Fallback

报文的vlanid在vlan table中,需要port即是vlan table对应的vlan条目中同时目标和源port也要满足vlan base table的转发规则。

如果报文vlanid不在vlan table中,只需要满足vlan base table的转发规则就可以发送

check模式只检查vlanid是否在vlan table中,并不关心ingress port是否在对应的条目成员中。如果vlan id不在vlan table中会被丢弃,在vlan table中但是port不是对应条目的成员不会被丢弃
securevlanid必须在vlan table并且ingress port也必须时条目的成员,否在丢弃报文

4.Hard limit和Hard Multiplier是port口的egress流量限制,一般不会项目中不会配置这个参数,配置流控限制后会导致丢包,处理时要慎重

5.Schedule Mode是port口的优先级队列的调度算法,默认是加权轮询,如果有AVB的需求就要配置优先级轮询模式,5152支持8个配置模式。

0加权轮询排队,
17 strict优先级,其他加权轮询(strict:严格最高)
27,6 strict优先级,其他加权轮询
37,6,5 strict优先级,其他加权轮询
47,6,5,4 strict优先级,其他加权轮询
57,6,5,4,3 strict优先级,其他加权轮询
67,6,5,4,3,2 strict优先级,其他加权轮询
7全部使用strict优先级

6.TSN Mode,PCP,DSCP优先级映射以及STU映射表,一般不去设置,后续在AVB中在介绍

7.queue配置主要有队列egress流量限制(Limit,Multiplier,mode)。每个port有8个输出队列每个队列都有对应的限制规则。

模式(mode)

0

动态限制队列使能

1

硬件限制队列使能

乘数(Multiplier)

0

队列size乘以1

1

队列size乘以4

2

队列size乘以8

3

队列size乘以16

值(limit)

队列值

Fireware Configuration配置:

fireware配置主要配置5152的R52运行的以太网协议栈的mac地址,以及switch配置的版本号和功能安全监控心跳。

1.心跳配置主要是通过UDP报文实现,通过配置dts mac以及后续章节配置的转发关系,可以确认udp报文会转发给那个设备,从配置内容看很好理解,就是一些基本的周期和udp的port口信息。只需要在monitor设备中创建udp的服务就可以收到对应的心跳报文。

2.Customer Information主要用来区分switch的配置版本号,在固件升级以及版本管理时需要回去这个版本号检验。后续在介绍RMU模块时会说明这个版本的读取方式。

MAC地址就是swith的单播地址。

3.其他的2个配置一般不会用到这里不做过多的说明。

DLT Configuration配置

DLT(Diagnostic Log and Trace)这个是应为车载以太网功能安全需要加上的功能,switch的固件会周期的上报DLT报文给到特定的端口和心跳报文类似都是UDP报文。

DLT有标准的信息格式规范,在wireshark中也有格式解析支持,这里只介绍一下 Default Log Level,在车载系统中一般会设置为0关闭DLT

0DLT_LOG_OFF关闭log
1DLT_LOG_FATAL致命且不可恢复的错误。因此,此类消息应极为罕见地出现。整个(子)系统的稳定性可能会受到威胁
2DLT_LOG_ERRORerr信息
3DLT_LOG_WARN警告信息
4DLT_LOG_INFOinfo信息
5DLT_LOG_DEBUG调试信息
6DLT_LOG_VERBOSE深度调试信息

Runtime Operation Settings配置

当打开marvell的配置工具会发现,工具提供了转发规则的配置以及port的使能配置,但是没有PHY初始化以及port的带宽模式等初始化配置。这个窗口就是用来做port以及phy的初始化配置用的。

基本原理就是配置生成SMI的寄存器配置指令。

1.在空白窗口右击新建一个operation list,然后设置自定义名字

2.右击operation list,选择导入操作。也可以选择Add Register Setting这样的操作,单独添加一个寄存器的读写指令。一般情况下建议直接导入

3.导入脚本是txt格式数据,格式描述。附件会提供port口的初始化脚本。port配置指令是闭源的可以找marvell要,一些开源寄存器的操作可以自己写(关闭端口自学,MTU设置等)。

4.可以调整初始话的执行顺序,通过左边菜单栏的配置列表拖拽

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询