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.

[参考译文] AM6548:从 uboot 传递 PRU MAC ID

Guru**** 2540720 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/987244/am6548-passing-pru-mac-id-from-uboot

器件型号:AM6548

您好!

我们在 SDK 7.1.17上的 Linux 中将 MAC ID 从 u-boot 传递到 PRU 以太网。  

我们使用 eth1addr、eth2addr、eth3addr 和 eth4addr 来传递4个 PRU 以太网的4个 MAC ID。 以下是这些值。

eth1addr=aa:0A:bb:0b:AB:aa
eth2addr=aa:0A:bb:0b:AB:AB
eth3addr=aa:0A:bb:0b:AB:ac
eth4addr=aa:0A:bb:0b:AB:ad

但是、当 Linux 启动时、我们看到 MAC ID 的分配顺序失真、例如对应该是 eth1 <-> eth1addr 等等、但我们可以看到 eth3正在获得 eth1addr 地址、等等、  

它位于我们创建的自定义文件系统上。  

如何在引导期间更改映射、以便在 Linux 中将正确的 ethaddr 映射到正确的 eth。

下面是 Linux ifconfig 日志。

ETH1链路连接:以太网 HWaddr AA:0A:BB:0B:AB:AC
上广播多播 MTU:1500公制:1
RX 数据包:0错误:0丢弃:0超限:0帧:0
TX 数据包:0错误:0丢弃:0超限:0载波:0
冲突:0 txqueuelen:1000
RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)

ETH2 Link encap: Ethernet HWaddr AA:0A:BB:0B:AB:AD
上广播多播 MTU:1500公制:1
RX 数据包:0错误:0丢弃:0超限:0帧:0
TX 数据包:0错误:0丢弃:0超限:0载波:0
冲突:0 txqueuelen:1000
RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)

ETH2链路连接:以太网 HWaddr AA:0A:BB:0B:AB:AA
iNet addr:10.130.178.163 Bcast:10.130.179.255 Mask:255.255.254.0
inet6 addr:fe80::a80a:bbff:fe0b:abaa/64范围:链接
运行多播 MTU:1500公制:1的上广播
RX 数据包:470错误:0丢弃:0超限:0帧:0
TX 数据包:77错误:0丢弃:0超限:0载波:0
冲突:0 txqueuelen:1000
RX 字节:44864 (43.8 KiB) TX 字节:6754 (6.5 KiB)

ETH2链路连接:以太网 HWaddr AA:0A:BB:0B:AB:AB
上广播多播 MTU:1500公制:1
RX 数据包:0错误:0丢弃:0超限:0帧:0
TX 数据包:0错误:0丢弃:0超限:0载波:0
冲突:0 txqueuelen:1000
RX 字节:0 (0.0 B) TX 字节:0 (0.0 B)

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

    在本例中、ICSSG2-PRU0首先启动 ICSSG2-PRU1、然后启动 ICSSG1-PRU0、最后启动 ICSSG1-PRU0。 我们是否可以根据需要安排此序列。

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

    尊敬的 TI:  

    此主题的任何更新?

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

    您好、Sarfaraz、

    很抱歉耽误你的时间、我明天再看一下。

    此致

    葡萄园

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

    您好、Vineyet 对此问题的任何更新。

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

    您好、Vineyet 对此问题的任何更新。

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

    您好、Sarfaraz、

    对拖延答复表示歉意。

    您将需要在 uboot 中进行修改、我将获得这些更改。 不过、映射是静态的、您必须知道这一点。

    eth1addr - eth5

    eth2addr - eth6

    eth3addr - eth3.

    eth4addr - eth4

    eth5addr - eth1

    eth6addr - eth2

    此致

    葡萄园

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

    感谢 Vineet、我们将等待 uboot 中的静态映射更改、就像在我们的映射从一个板变为另一个板时、我们将在您共享 uboot 更改后测试相同的情形。

    谢谢、

    Sarfaraz

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

    您好、Vineyet 对此进行了任何更新。

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

    您好、Sarfaraz、

    Linux 中的 eth 接口的名称由 Linux/arch/arm64/boot/dts/ti 文件夹中 K3-am654-base-board.dts 和 K3-am654-idk.dtso 的别名控制

    在 K3-am654-base-board.dts 中、您将在 SOC 中看到两个对应于 PRUSS2 MII0和 PRUSS2 MII1的 PRU 端口。 另外四个属于 ICSS 扩展卡、对应于 PRUSS0和 PRUSS1 MII0和 MII1

    这两个 DTS 文件中的别名 ethernetX (其中 X 范围为1-6)与您在 Linux 上执行 ifconfig 时看到的 ethX 接口对应于1:1。
    因此、ethernet1对应 eth1、ethernet2对应 eth2、依此类推。

    ethXaddr uboot env 变量具有以下与 pruss 接口的映射

    eth1addr - pruss1_mii0
    eth2addr - pruss1_mii1
    eth3addr - pruss0_mii0
    eth4addr - pruss0_mii1
    eth5addr - pruss2_mii0 (DTS 文件中的 emac0)
    eth5addr - pruss2_mii1 (DTS 文件中的 emac1)

    因此、要在 Linux 中实现 ethXaddr uboot 变量和 ethX 接口之间的所需映射、您需要更改上述两个文件中的别名映射

    随附的 DTS 修补程序将为您提供两者之间的一对一映射。

    e2e.ti.com/.../am65_5F00_eth_5F00_mapping.patch

    若要编译和应用它、您可以在 Linux SDK 的根目录下使用以下命令

    构建 linux-dtbs

    使 linux-dtbs_install

    要进行安装、您需要编辑文件 /Rules.make 并将变量 destdir 指向已安装 SD 卡的 rootfs。

    此致
    葡萄园

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

    更正了我之前的语句、更改是在 Linux 中进行的、而不是 uboot

    此致

    葡萄园