This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] AM6411:冗余根据初始化顺序在 Linux 下损坏

Guru**** 2783285 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1619420/am6411-redundancy-broken-under-linux-depending-on-init-order

器件型号: AM6411

我们有一个运行 Linux 的定制板。 将两个 PRU 接口置于软件桥接器之后、添加的第一个接口将不起作用。

复制步骤:

  1. ip link add name br0 type bridge
  2. IP LINK SET DEV ETH1 MASTER BR0
  3. IP LINK 设置 DEV ETH1 UP
  4. IP 链路集 dev eth0 master br0
  5. IP 链路设置 dev eth0 up
  6. IP 链路设置设备 br0 up

观察到的结果:冗余中断、只有 eth1 有效(在交换 eth0/eth1 时、仅 eth0 有效)。

SoC:AM641X
meta-ti: 11.00.09.
Linux-Yocto:11.00.15dmesg-redundancy-broken.log 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果我们 在启动之前将这两个接口都添加到网桥、则这两个接口都可以工作。 (即交换步骤 3.&4.)

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ferenc:

    为了进行确认、您尝试将 PRU 以太网端口配置为交换机、对吧?
    https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/11_02_08_02/exports/docs/linux/Foundational_Components PRU-ICSS/PRU-ICSS/PRU_ICSSG Ethernet_Switch Linux_Drivers

    此致、

    Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nick、

    是的、就是这个想法。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Ferenc:

    我链接的 Linux SDK 文档提供了启用切换模式的特定步骤序列。 您观察到的是预期行为。 请按照记录在案的初始化步骤进行操作:

    https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/latest/exports/docs/linux/Foundational_Components PRU-ICSS/PRU-ICSS/PRU_ICSSG Ethernet_Switch Linux_Drivers

    默认情况下、接口以双独立的 emac 模式启动、并且可以在运行时更改为在开关模式下运行。 请注意、从双 EMAC 模式切换到开关模式需要将不同的固件加载到各种 PRU 内核、因此必须遵循以下几节所示的特定顺序:

    3.6.3.4.1. 启用开关 mode Ω

    假设 eth1 和 eth2 作为 ICSSG0 接口的示例:

    ip link add name br0 类型 bridge
     ip link set dev eth1 master br0
    
     ip link set dev eth2 master br0 ip link set dev br0 up
     bridge vlan add dev br0 vid 1 pvid untagged self 
    

    3.6.3.4.2. 返回到双 emac mode

    ip link set dev br0 down
     ip link set dev eth1 nomaster
     ip link set dev eth2 nomaster
     ip link del name br0 type bridge 

    此致、

    Nick

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    虽然它确实可以解决我的问题(如我的第一条评论所述)、但如果驱动程序支持两个步骤序列、或者至少发出警告、指出检测到不受支持的使用情况、这是很好的、因为现在这是一种无声  的、而且很难检测到故障模式:只要在桥接器的工作段上没有断开连接、网络就可以正常工作。