ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Marvell88Q5152交换机开发(3)-Board configuration配置

Marvell88Q5152交换机开发(3)-Board configuration配置 本专栏停更了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严格最高276 strict优先级其他加权轮询3765 strict优先级其他加权轮询47654 strict优先级其他加权轮询576543 strict优先级其他加权轮询6765432 strict优先级其他加权轮询7全部使用strict优先级6.TSN ModePCPDSCP优先级映射以及STU映射表一般不去设置后续在AVB中在介绍7.queue配置主要有队列egress流量限制LimitMultipliermode。每个port有8个输出队列每个队列都有对应的限制规则。模式mode0动态限制队列使能1硬件限制队列使能乘数Multiplier0队列size乘以11队列size乘以42队列size乘以83队列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配置DLTDiagnostic Log and Trace这个是应为车载以太网功能安全需要加上的功能switch的固件会周期的上报DLT报文给到特定的端口和心跳报文类似都是UDP报文。DLT有标准的信息格式规范在wireshark中也有格式解析支持这里只介绍一下 Default Log Level在车载系统中一般会设置为0关闭DLT0DLT_LOG_OFF关闭log1DLT_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.可以调整初始话的执行顺序通过左边菜单栏的配置列表拖拽
返回列表