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.

[参考译文] PCP-AM243X:HSR/PRP MCU-PLUS-SDK 到 ICSS-EMAC 队列编号

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1225938/mcu-plus-sdk-am243x-hsr-prp-qos-vlan-pcp-to-icss-emac-queue-number

器件型号:MCU-PLUS-SDK
主题中讨论的其他器件:AM2432

我使用 AM2432上的 MCU_PLUS_SDK_am243x_08_05_00_24和 PRU 的 HSR/PRP FW

在文档中,我发现  ICSS-EMAC 不强制执行任何 QoS 方案。 它高达固件、可实施 QoS 方案(PCP 到队列映射)。 ICSS-EMAC 支持四级队列

https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/08_05_00_24/exports/docs/api_guide_am243x/ICSS_EMAC_DESIGN.html#ICSS_EMAC_DESIGN_QOS

我想知道 PRP PRU FW 和 HSR PRU FW 的 QoS 方案是什么。

ICSS-EMAC 具有4个队列级别、VLAN PCP 具有3个位(8个优先级别)。

映射是什么?

谢谢

  安德烈亚

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

    有新闻吗?

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

    尊敬的 Andrea:

    很抱歉耽误你的时间。 我将在周五回到这个话题。

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

    尊敬的 Nilabh:

      我使用 PRP 固件进行了一些测试、发现:

    端口1  

    注入数据包 VLAN 0、prio 4 -> rxPktInfo 端口1、队列0
    注入数据包  VLAN 0、prio 3  ->  rxPktInfo 端口1、队列1

    因此、对于端口1、PRio 值3及更低的值用于 NRT 流量(队列0)
    高于 PRIO 4的值用于 RT 流量(队列1)

    端口2

    注入数据包  VLAN 0、prio 7  ->  rxPktInfo 端口2、队列3
    注入数据包  VLAN 0、prio 4  ->  rxPktInfo 端口2、队列3
    注入数据包  VLAN 0、prio 3  ->  rxPktInfo 端口2、队列3
    注入数据包  VLAN 0、prio 1  ->  rxPktInfo 端口2、队列3
    注入数据包  VLAN 0、prio 0  ->  rxPktInfo 端口2、队列3

    对于端口2、每个数据包都被视为 NRT 流量、并始终由 PRU FW 插入队列3。

    如何将队列2作为端口2的 RT 队列?

    展望未来

     安德烈亚

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

    尊敬的 Andreas:

    对于延迟回复深表歉意。

    是的、您的观察结果是正确的。 更多信息、请参阅以下内容:

    https://software-dl.ti.com/mcu-plus-sdk/esd/AM243X/latest/exports/docs/api_guide_am243x/HSR_PRP_FWHAL.html#:~:text=the%20registered%20callback.-,Interface%20with%20ICSS%2DEMAC,-HSR/PRP%20packets

    另请参阅以下五氯苯酚与队列映射的相关信息:

    映射非常简单。 存储器是一个4字节字符数组、
     并且每个字节都包含队列。 字节的索引对应于
     PCP 值。 此处、较低的值是较高优先级队列、例如请参阅 DEFAULT_PCP_2_QUEED_MAP
     我们以 DEFAULT_PCP_2_Queue_map 为例进行说明(请参阅 DEFAULT_PCP_2_map)
     PCP     队列   存储器偏移量(queue _2_PCP_MAP_OFFSET 为基数)
     0      问题4      0
     1      问题4      0
     2      第3季度      1
     ..
     ...
    7      第1季度      3
    请参阅 mcu_plus_sdk\examples\industrial_comms\HSR_prp_demo\HSR_prp_main.c 中的 hsrprp_loadPCPtoQueueMap 函数
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Nilabh Anand:

      我阅读了这些文档。

    顺便说一下、从我的测试中、我可以看到来自端口2的数据包始终位于 NRT 队列中、无论 PCP 级别是多少。

    我在 ICSS_EMAC_pollPkt 中使用断点进行了检查。

    来自端口2的数据包仅在 VLAN 0中被接受,并且 rxPktInfo.queueNumber 始终为3,因此 NRT 队列。

    我尝试为 VID 1添加 VLAN 过滤器、但 VID = 1时来自端口2的数据包未排序。

    vlan_filter_update_vid (prusshandle、1、Add_vlan_vid);

    展望未来

      安德烈亚

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

    您好!

    通过 RT 队列路由数据包的能力对我们至关重要。

    非常感谢有关我们如何设计数据包以进入此类队列、或我们如何指示 PRU 获取此类结果的任何建议。  

    谢谢!

     马可

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

    尊敬的 Marco:

    我们已经确定这个问题是固件中的错误。 我们将尝试在下一个 SDK 版本中修复。 请查找 JIRA 票证作为参考 jira.itg.ti.com/.../PINDSW-5532(internal仅查看)

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

    尊敬的 Nilabh Anand:

      我请您仔细检查一下、我们是否可以使用解决方法将 VLAN 流量与 LwIP 流量分开。

    根据我们的测试,VLAN-id = 0的 VLAN 流量与 LwIP 流量一起从端口2被接受并发送到队列3。

    是否有可以解决此问题的 VLAN 过滤器设置或任何 FW 配置设置?

    否则、我们必须测试从端口2传入的 L2高优先级数据包的唯一方法是完全删除此端口的 IP 流量。

    展望未来。

       安德烈亚

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

    尊敬的 Andrea:

    我们目前正在检查固件。 修复完毕后、我们可以在下一个 SDK 版本中提供补丁版本供您进行测试

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

    好消息! 谢谢

      安德烈亚

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

    请允许我们在6月16日之前重新讨论这个问题。

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

    尊敬的 Nilabh Anand:

      我们仍在等待测试补丁。

    展望未来。

      安德烈亚

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

    尊敬的 Andrea:  

    我尝试使用8.5版的 AM64 EVM 在我旁边重现问题。  

    我已尝试将 VLAN 数据包发送到 EVM、但具有以下配置和结果:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    VID: 100
    Port 1:
    PCP 0: Q1
    PCP 7: Q0
    Port 2:
    PCP 0: Q3
    PCP 7: Q2
    VID: 001
    Port 1:
    PCP 0: Q1
    PCP 7: Q0
    Port 2:
    PCP 0: Q3
    PCP 7: Q2
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    我正在检查 ICSS_EMAC_pollPkt(icssEmacHandle)函数中 rxPktInfo.queueNumber 中的这些队列值。
    我看不到端口2存在问题。

    请告诉我这是否有帮助。 我稍后也会使用 AM243 EVM 来检验它。

    希曼舒

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

    尊敬的 Himanshu Mittal:

      我再次进行了测试、结果在我旁边是相同的:端口2上的 VID 100或 VID 1是被丢弃的数据包(仅接受 VID 0)。

    请使用 AM243x 上的 PRP MII PRU FW 进行检查。

    展望未来

      安德烈亚

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

    尊敬的 Andrea:  

    您能否与我们分享您用于测试的数据包的 pcap、以便我们能够使用相同的数据包进行测试。

    谢谢、Himanshu

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

    尊敬的  Himanshu Mittal:

      不可能"重放"我的 pcap 文件,因为我们的 MAC 地址是不同的,所以它不起作用。

    我使用 python scapy 库来注入数据包。

    我使用静态地址192.168.1.10、网络掩码255.255.255.0、网关192.168.1.1 (我的 PC)配置了 LwIP 接口

    from scapy.all import *
    IFACES.show() # let’s see what interfaces are available. Windows only
    iface = IFACES.dev_from_index(7 # 7是我的 PC 以太网卡
    套接字=配置 L2插座(iface=iface)
    socket.send(Ether()/Dot1Q(vlan=100、prio=0)/ip (dst="192.168.1.10")/Raw (load="data")# VID = 100 - PCP = 0
    socket.send(Ether()/Dot1Q(vlan=1、prio=0)/ip (dst="192.168.1.10")/Raw (load="data")# VID = 1 - PCP = 0

    socket.send(Ether()/Dot1Q(vlan=0、prio=0)/ip (dst="192.168.1.10")/Raw (load="data")# VID = 0 - PCP = 0、它起作用

    socket.send(Ether()/Dot1Q(vlan=100、prio=0)/ip (dst="192.168.1.10")/Raw (load="data")# VID = 100 - PCP = 7
    socket.send(Ether()/Dot1Q(vlan=1、prio=0)/ip (dst="192.168.1.10")/Raw (load="data")# VID = 1 - PCP = 7

    展望未来

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

    尊敬的 Andrea:  

    谢谢您提供的信息、仍然可以从发送器 PC 共享 Wireshark 捕获。  

    谢谢、Himanshu

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

    尊敬的  Himanshu Mittal:

      这里是我用于检查 PRU FW 将哪些数据包发送到 ICSS-FWHAL 的调试代码。

    每个传入数据包的 I log 长度写入阵列包长度

    第一个案例-注入 VLAN 0 PCP 0 IP 数据包

    命令:

    socket.send(Ether(dst="0a:0b:0b:00:00:02"、src ="78:24:af:08:4d:9e")/dot1q (VLAN=0、prio=0)/IP (dst="192.168.1.10"、src ="192.168.1.1")/Raw (load="dataaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")

    数据包以4字节不同的大小进行记录和呈现(检查周围的其他数据包以进行确认)。

    您还可以看到来自电路板的回复"host unreached"

    第二个案例- 注入  VLAN 100 PCP 0 IP 数据包

    命令:

    socket.send(Ether(dst="0a:0b:0b:00:00:02"、src ="78:24:af:08:4d:9e")/dot1q (VLAN=100、prio=0)/IP (dst="192.168.1.10"、src ="192.168.1.1")/Raw (load="dataaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")

    数据包丢失(检查长度为82字节的数据包作为参考)

    第三个案例- 注入  VLAN 100 PCP 7 IP 数据包

    命令:

    socket.send(Ether(dst="0a:0b:0b:00:00:02"、src ="78:24:af:08:4d:9e")/dot1q (VLAN=100、prio=7)/IP (dst="192.168.1.10"、src ="192.168.1.1")/Raw (load="dataaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa")

    数据包丢失(检查长度为60字节的数据包作为参考)

    展望未来。

      安德烈亚

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

    尊敬的 Himanshu Mittal:

      有任何关于您的测试与我的设置的消息吗?

    展望未来

     安德烈亚

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

    尊敬的 Andrea:  

    我通过与您一样进行更改来检查问题、从而在我身边进行了测试。 但如前所述、我仍会在队列中接收数据包。  

    设置:  
    AM243EVM、 prp_mII_demo_am243x-evm_r5fss0-0_freertos_ti-arm-clang 示例、 mcu_plus_sdk_am243x_08_06_00_45

    用于数据包生成:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    from scapy.all import *
    # IFACES.show() # let’s see what interfaces are available. Windows only
    iface = IFACES.dev_from_index(23) #23 is my PC ethernet card
    socket = conf.L2socket(iface=iface)
    # DA_MAC = 70:ff:76:1e:ec:36
    socket.send(Ether(dst="70:ff:76:1e:ec:36", src="78:24:af:08:4d:9e")/Dot1Q(vlan=0, prio=0)/IP(dst="192.168.1.11", src="192.168.1.100")/Raw(load="deadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeed"))
    socket.send(Ether(dst="70:ff:76:1e:ec:36", src="78:24:af:08:4d:9e")/Dot1Q(vlan=0, prio=7)/IP(dst="192.168.1.11", src="192.168.1.100")/Raw(load="deadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeed"))
    socket.send(Ether(dst="70:ff:76:1e:ec:36", src="78:24:af:08:4d:9e")/Dot1Q(vlan=100, prio=0)/IP(dst="192.168.1.11", src="192.168.1.100")/Raw(load="deadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeed"))
    socket.send(Ether(dst="70:ff:76:1e:ec:36", src="78:24:af:08:4d:9e")/Dot1Q(vlan=100, prio=7)/IP(dst="192.168.1.11", src="192.168.1.100")/Raw(load="deadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeed"))
    socket.send(Ether(dst="70:ff:76:1e:ec:36", src="78:24:af:08:4d:9e")/Dot1Q(vlan=1, prio=0)/IP(dst="192.168.1.11", src="192.168.1.100")/Raw(load="deadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeed"))
    socket.send(Ether(dst="70:ff:76:1e:ec:36", src="78:24:af:08:4d:9e")/Dot1Q(vlan=1, prio=7)/IP(dst="192.168.1.11", src="192.168.1.100")/Raw(load="deadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeeddeadfeed"))
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    此外、我没有看到 Wireshark capture 和 pLength 之间的4字节数据包长度的区别、如您所看到的。  

    谢谢、Himanshu

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

    尊敬的  Himanshu Mittal:

     我已经对您的示例进行了重新测试、并针对我们的电路板进行了修改、遗憾的是、我的情况与以前相同。

    顺便说一下、我使用 ICSSG0而不是 ICSSG1、因此必须更改 HSR_prp_soc.c 中的一些 IRQ 设置、如下所示:

    /*通过 MDIO FW WA 配置的 TX_PRU 内核的 R10的值*/
    CSL_REG32_WR (CSL_PRU_ICSSG0_DRAM0_SLV_RAM_BASE + CSL_ICSS_G_PR1_PDSP_TX0_IRAM_DEBUG_REGS_BASE + PRU_REG_10、MDIO_MANUAL_MODED_FW_CONFIG_VALUE);
    /*通过 TX_PRU 内核的 R12值来仿真 MDIO 基址*/
    CSL_REG32_WR (CSL_PRU_ICSSG0_DRAM0_SLV_RAM_BASE + CSL_ICSS_G_PR1_PDSP_TX0_IRAM_DEBUG_REGS_BASE + PRU_REG_12、MDIO_MANUAL_MODE_BASE_ADDRESS);

    主要为 CSL_PRU_ICSSG0_DRAM0_SLV_RAM_BASE、而不是 CSL_PRU_ICSSG1_DRAM0_SLV_RAM_BASE

    我还 在 HSR_prp_main.c 中添加了自定义 MAC 地址、以初始化字段 lclMac

    uint8_t lclMac[6]={0xA、0xB、0xB、0x0、0x0、 0x2};

    我删除了函数 hsrprp_socgetMACAddress、因为不会从 EEPROM 读取 MAC 地址。

    结果与我之前提到的相同:

    -接受 VLAN 0的数据包,但始终具有 NRT 优先级,无论 PCP 值是什么

    - VLAN 不为0的数据包被丢弃

     ICSS_EMAC_pollPkt (ICSS_EMAC.c)中记录的数据包长度比 Wireshark 记录的长度短4个字节

    展望未来

      安德烈亚

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

    尊敬的  Himanshu Mittal:

      我们在想是否可以将我们的板送到您的实验室进行测试。

    展望未来

      安德烈亚

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

    尊敬的 Andrea:

    在我们采用这种方法之前、我建议您自己在 TI EVM 上试用此示例。 这将检查是软件问题还是硬件问题?

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

    尊敬的 Nilabh:

     我相信它能够在 TI EVM 上正常工作、但我真的想知道它是如何工作的。

    您的 EVM 具有 RGMII PHY、因此与我们采用 MII PHY 的电路板相比、它会运行不同的 PRU FW。

    第二、我们使用 ICSSG0部分、而不是在 EVM 中使用 ICSSG1:这会强制我更改示例中的 PRU IRQ 配置。

    可能是我遗漏了一些其他的配置更改,以使用 ICSSG0部分的正确方式?

    这就是为什么我们认为有必要在带有 MII 和 ICSSG0的电路板上进行检查(不是在带有 RGMII 和 ICSSG1的 EVM 上)。

    展望未来

     安德烈亚

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的 EVM 具有 RGMII PHY,因此与我们具有 MII PHY 的电路板相比,它将运行不同的 PRU FW。

    我认为这不是正确的 Andrea,因为我们正在使用 prp MII 模式进行测试。 我们电路板上的 PHY、即 DP 83869也支持 MII 以及 RGMII。

    其次,我们使用 ICSSG0部分而不是 EVM 中使用的 ICSSG1:这迫使我更改示例中的 PRU IRQ 配置。

    这可能是我们可以检查的内容、您能否在终端重新检查配置?

    因此我们认为检查具有 MII 和 ICSSG0的电路板时很重要(不是在具有 RGMII 和 ICSSG1的 EVM 上)。

    我们应重点检查 SDK icssg1与您的 icssg1配置之间的差异。

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

    尊敬的 Nilabh:

      我们的讨论中已经提到了我在示例中更改的内容:

    I 使用 ICSSG0 而不是 ICSSG1、因此我必须按如下方式更改 HSR_prp_soc.c 中的一些 IRQ 设置:

    /*通过 MDIO FW WA 配置的 TX_PRU 内核的 R10的值*/
    CSL_REG32_WR (CSL_PRU_ICSSG0_DRAM0_SLV_RAM_BASE + CSL_ICSS_G_PR1_PDSP_TX0_IRAM_DEBUG_REGS_BASE + PRU_REG_10、MDIO_MANUAL_MODED_FW_CONFIG_VALUE);
    /*通过 TX_PRU 内核的 R12值来仿真 MDIO 基址*/
    CSL_REG32_WR (CSL_PRU_ICSSG0_DRAM0_SLV_RAM_BASE + CSL_ICSS_G_PR1_PDSP_TX0_IRAM_DEBUG_REGS_BASE + PRU_REG_12、MDIO_MANUAL_MODE_BASE_ADDRESS);

    主要是 CSL_PRU_ICSSG0_DRAM0_SLV_RAM_BASE 不是 CSL_PRU_ICSSG1_DRAM0_SLV_RAM_BASE

    我还 在 HSR_prp_main.c 中添加了自定义 MAC 地址、以初始化字段 lclMac

    uint8_t lclMac[6]={0xA、0xB、0xB、0x0、0x0、 0x2};

    我删除了函数 hsrprp_socgetMACAddress、因为不会从 EEPROM 读取 MAC 地址。

    是否有其它配置更改可以推荐使用 ICSSG0而不是 ICSSG1?

    展望未来

     安德烈亚

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

    尊敬的 Andrea:

    感谢您重复相同的内容。 让我们在内部检查并返回。  

    [报价用户 id="484939" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1225938/mcu-plus-sdk-am243x-hsr-prp-qos-vlan-pcp-to-icss-emac-queue-number/4739586 #4739586"]

    *针对 MDIO FW WA 配置向 TX_PRU 内核的 R10传递值*/
    CSL_REG32_WR (CSL_PRU_ICSSG0_DRAM0_SLV_RAM_BASE + CSL_ICSS_G_PR1_PDSP_TX0_IRAM_DEBUG_REGS_BASE + PRU_REG_10、MDIO_MANUAL_MODED_FW_CONFIG_VALUE);
    /*通过 TX_PRU 内核的 R12值来仿真 MDIO 基址*/
    CSL_REG32_WR (CSL_PRU_ICSSG0_DRAM0_SLV_RAM_BASE + CSL_ICSS_G_PR1_PDSP_TX0_IRAM_DEBUG_REGS_BASE + PRU_REG_12、MDIO_MANUAL_MODE_BASE_ADDRESS);

    主要是 CSL_PRU_ICSSG0_DRAM0_SLV_RAM_BASE 不是 CSL_PRU_ICSSG1_DRAM0_SLV_RAM_BASE

    [/报价]

    Himanshu 您好、您觉得这些更改有任何问题吗?

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

    请 Nilabh 和  Himanshu、检查我是否需要更多更改才能将 PRU FW 配置为在 ICSSG0上运行。

    由于我能够收集数据包,我想 IRQ 设置是可以的,但我怀疑的是,有一些其他的变化,我不知道,并丢失了...也许关于 VLAN

    展望未来

     安德烈亚

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

    尊敬的 Nilabh:

      为了加快解决此问题或配置错误的速度,您认为我们是否可以使用 PRU 源代码进行调试?

    展望未来

      安德烈亚

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

    您好!  
    对我来说、所做的更改似乎很好。
    它应该能提供用于调试的源代码、下面我再讨论一下。  

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

    谢谢 Himanshu、好消息。

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

    尊敬的 Andrea:
    我将设置一个共享文件夹以提供源文件。  

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

    很棒的 Himanshu

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

    尊敬的 Andrea:

    我们计划与我们的软件团队和您进行调试呼叫。 因为我们最终无法重现问题。  
    您可以共享 icssg 内存转储。

    要获取存储器转储、您需要使用 CCS 中的"Memory Browser"。 当您使用 ICSSG0时、我们需要 ICSSG0存储器转储。

    起始地址为0x030000000、结束地址为0x030080000

    点击 SAVE、您应该会看到转储保存在弹出窗口中提到的位置": /resized-image/__size/320x240/__key/communityserver-discussions-components-files/908/pastedimage1691566719487v3.png

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

    我还为与会议相关的查询共享了一封私人消息。

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

    尊敬的 Nilabh:

      感谢您的支持、我们与您的团队一起发现问题出在我们的系统中、因为我们有一个以太网交换机负责从 PRU1上注入的流量中移除 VLAN 标签。

    我们做了一个新的测试平台、能够通过此交换机将 VLAN 流量注入 PRU0、我们发现了同样的问题、因此我们了解到您的 PRU 固件中没有该问题。

    展望未来。

      安德烈亚