Other Parts Discussed in Thread: AM2612
器件型号: AM2612
尊敬的 TI 支持团队:
关于 CPSW 模块、我有一个解决方案可帮助确认是否支持该模块:
(1) CPSW 模块是否可以接收来自 RGMII2 的消息并直接通过 RGMII1 发送这些消息?
(2) 如果支持第一项、如何配置 CPSW 模块?
下图显示了网络通信架构、请帮助确认 AM2612 芯片是否支持该架构。

此致、
Bruvin Lu。
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.
尊敬的 Bruvin:
同时、请查看此建议。
如果我们可以控制发送到端口 1 和端口 2 的数据包的默认地址、那么我们可以 根据多个地址强制执行 ALE 配置。
也就是说、我们可以将具有特定多播地址的某些数据包配置为仅转到 Eth 驱动程序(主机端口)、将具有特定多播地址的某些数据包配置为转到下一个端口(本例中为端口 1)、而无需转到 Eth 驱动程序(主机端口)。
此致、
Aswin
如果 FPGA 向端口 2 (RGMII2) 发送具有单播地址的数据包、则数据包是否会发送到 Eth 驱动程序或端口 1 (RGMII1)?
这是 AM261 的 MAC 地址还是其他器件的地址?
如果这是 另一个器件的地址、则数据包将进入端口 1、而不是 Eth 驱动程序。
如果 Eth Driver 向端口 1 (RGMII1) 发送具有单播地址的数据包、则 数据包是否会发送到 PHY?
是、这将发生、因为这是默认行为。
请注意、数据包的路由方式完全基于数据包的无效地址。 不在入口端口号上。 ALE 配置规则将使用目标地址作为匹配条件。
请告诉我这是否满足了要求。
此致、
Aswin
1.不同器件(不是 AM2612)的 MAC 地址。
2. 我认为只有组播或广播地址需要配置 ALE 来过滤消息, 而单播地址将根据目标地址路由到终端,对吗?
3. 如果第二个项目得到满足,则可以满足要求。
4、顺便说一下、如果 FPGA 发送的以太网数据的源地址和目标地址与 ETH 驱动程序发送的数据一致、FPGA 发送的数据是否可以通过端口 1 发送到 PHY?
此致、
Bruvin
尊敬的 Bruvin:
[报价 userid=“666468" url="“ url="~“~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1605974/am2612-about-rgmii-topic/6192009不同器件(而不是 AM2612)的 MAC 地址。
[/报价]则它不会转至 Eth 驱动程序、但会转至端口 1。 但是、有一个选项可以通过启用使其转至 Eth 驱动程序 未知单播泛洪到主机选项。
我认为只有多播或广播地址需要配置 ALE 才能过滤消息、 而单播地址将根据目标地址路由到终端、右
是、这是正确的。 可以使用 ALE 规则配置多播地址和广播地址。
由于广播地址为 ff:ff:ff:ff:ff:ff:ff:ff、如果带有此 DA 的任何数据包到达端口 1 或端口 2 上的器件、它将转到另一个端口、而不会转到主机端口(eth 驱动程序)。
顺便说一句、如果 FPGA 发送的以太网数据的源地址和目标地址与 ETH 驱动程序发送的数据一致、FPGA 发送的数据是否可以通过端口 1 发送到 PHY?
我无法理解。 你能用一个例子来解释一下吗?
此致、
Aswin
例如、
1. FPGA 发送 UDP 数据包 (A1)、其中包含源 MAC 地址 (01:02:03:04:05:06) 和目标 MAC 地址 (05:08:09:05:09:03)。
2. ETH 驱动程序发送一个 UDP 数据包 (A2)、其中包含源 MAC 地址 (01:02:03:04:05:06) 和目标 MAC 地址 (05:08:09:09:09:03)。
3.外部设备的 MAC 地址为 05:08:09:09:03、AM2612 的 MAC 地址为 01:02:03:04:05:06。
A1 和 A2 的 UDP 数据包是否都可以传输到 PHY?
尊敬的 Bruvin:
您在示例中提到的用例也可以使用报警地址实现、而不采用任何 ALE 配置。
假设
AM261 有一个单播器件 Mac 地址 M1
FPGA 有一个单播器件 MAC 地址 M2
连接到 AM261 的外部器件有一个 Mac 地址 M3。
当 FPGA 发送一个包含 M3 作为 DA 的数据包时、它将进入 AM261 并进入端口 1、这不会进入 Eth 驱动程序。
当 AM261 发送 M3 为 DA 的封装时、它将进入端口 1。
您可以使用 AM261 LP 完成此实验。 您可以运行 enet 第 2 层 cpsw 示例并通过发送一些数据包进行检查。
AM261 的端口 1 可以通过 Wireshark 等网络分析器工具连接到 PC。
向 AM261 的端口 2 发送数据包并观察端口 1、您将看到从端口 1 发出的数据包。 ETH 驱动程序不会接收此数据包、因为 ALE 不会将其路由到 PORT0、因为该数据包将用于其他一些设备。
从 AM261 发送数据包并观察端口 1、您将看到从端口 1 发出的数据包。 您可以发送定向数据包以使此数据包只进入端口 1 而不进入端口 2。
此致、
Aswin
尊敬的 Aswin:
请帮助确认以下情况:
AM261 有一个单播器件 Mac 地址 M1
FPGA 有一个单播器件 Mac 地址 M1
连接到 AM261 的外部器件有一个 Mac 地址 M2。
当 FPGA 发送一个包含 M2 的数据包作为 DA 时、它 将进入端口 1?
当 AM261 发送使 M2 作为 DA 的封装时、它将进入端口 1?
此致、
Bruvin
尊敬的 Bruvin:
是否可以为 FPGA 提供不同的 MAC 地址?
在这种情况下、由于 AM261 和 FPGA 的源地址相同、来自 FPGA 的数据包将被 AM261 丢弃。
在 ALE 表中、我们可以看到此 Mac 地址的条目有一个导致此问题的安全位。
我来检查一下是否有替代方法。 同时、您能否确认 FPGA 是否可以具有不同的 MAC 地址?
此致。
Aswin
尊敬的 Bruvin:
要覆盖此项、您需要编辑 ALE 条目。 此 API 可用于执行此操作。
static void addUnicastAleEntry(void)
{
uint32_t status;
Enet_IoctlPrms prms;
CpswAle_SetUcastEntryInArgs setUcastInArgs;
uint32_t entryIdx;
/* ALE entry with "secure" bit cleared is required for loopback */
setUcastInArgs.addr.vlanId = 0U;
setUcastInArgs.info.portNum = CPSW_ALE_HOST_PORT_NUM;
setUcastInArgs.info.blocked = false;
setUcastInArgs.info.secure = false;
setUcastInArgs.info.super = false;
setUcastInArgs.info.ageable = false;
setUcastInArgs.info.trunk = false;
EnetUtils_copyMacAddr(&setUcastInArgs.addr.addr[0U], gEnetApp.perCtxt[0].macAddr);
ENET_IOCTL_SET_INOUT_ARGS(&prms, &setUcastInArgs, &entryIdx);
ENET_IOCTL(gEnetApp.perCtxt[0].hEnet, gEnetApp.coreId, CPSW_ALE_IOCTL_ADD_UCAST, &prms, status);
if (status != ENET_SOK)
{
EnetAppUtils_print("Failed to add ucast entry: %d\r\n", status);
}
}
编辑 ALE 条目后、将不会设置安全位。 则会发生 pakcet 切换。
来自 Eth 驱动程序的数据包也将传输到端口 1。 如果您没有从 Eth 驱动程序发送定向数据包、则数据包可以进入两个端口。 因此、如果从 Eth 驱动程序发送的数据包只需进入特定端口、则需要发送定向数据包。
此致、
Aswin