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.

[参考译文] AM625:从 EEPROM 读取 eth1 MAC 的 EVM u-boot 代码在哪里?

Guru**** 2468610 points
Other Parts Discussed in Thread: AM625

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1468819/am625-where-is-the-evm-u-boot-code-that-reads-eth1-mac-from-eeprom

器件型号:AM625

工具与软件:

我正在使用基于 AM625的 SOM、它具有板载 EEPROM 以及 eth0和 eth1。  我了解 eth0 MAC 是电子保险丝。  目前 eth1始终附带随机 MAC、也可以在 dts 中或通过 userspace 命令进行设置。  

从常见问题解答中可以看到、EVM 从 EEPROM 读取 eth1 MAC。 我希望有人可以将我指向执行此任务的代码。 我假设它是特定于电路板的、我想将其移植到 SOM 电路板、而该电路板的 EEPROM 位于不同的总线/地址。

提前感谢

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

    您好 Thomas:  

    我深入探究了最新 TI Linux SDK 版本10.1随附的 U-boot 源代码和 Linux 内核源代码、以下内容是获取 MAC 地址的相关部分。

    Linux:

    U-boot:

    我找不到在 U-boot 代码中具体的何处从 EEPROM 获取 MAC 地址、这使我怀疑在 U-boot 阶段、在 Linux 中进行初始化时仅完成了 eth0的 MAC 地址以及其他接口的 MAC 地址是完成的。 如果我从 CPSW 开发人员那里了解到其他信息、我将在回来时提供更新。

    -道林

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

    谢谢你!  这对我来说不是很容易理解、但乍一看、我看不到任何指示 EEPROM 总线和地址是可配置的-您同意吗?

    `、我在我的 PhyBoard 开发板(不是 EVM)上尝试了` ethtool -e eth0 `并得到了响应:`无法获取 EEPROM 数据:不支持操作。  我假设这是因为 EEPROM 不在 tlan 驱动器期望的硬编码总线/地址处?  

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

    您好、Thomas:

    [报价 userid="531489" url="~/support/processors-group/processors/f/processors-forum/1468819/am625-where-is-the-evm-u-boot-code-that-reads-eth1-mac-from-eeprom/5640302 #5640302"]我还在我的 PhyBoard 开发板(非 EVM)上尝试了`ethtool -e eth0`并得到响应: `无法获取 EEPROM 数据:不支持操作`。  我假设这是因为 EEPROM 不在 tlan 驱动器期望的硬编码总线/地址处?  [报价]

    我认为这条消息是由于 SK-AM62x EVM eth0驱动程序(CPSW 以太网驱动程序)不支持 EEPROM 访问这一事实。 您可以尝试运行"ethtool -i eth0"吗? 我希望您看到的内容应该与下面类似。

    root@am62xx-evm:~# ethtool -i eth0
    driver: am65-cpsw-nuss
    version: 6.6.32-ti-g6de6e418c80e-dirty
    firmware-version: 
    expansion-rom-version: 
    bus-info: 8000000.ethernet
    supports-statistics: yes
    supports-test: no
    supports-eeprom-access: no
    supports-register-dump: yes
    supports-priv-flags: yes 

    您使用的 Linux SDK 版本是什么?

    这对我来说并不容易理解、但乍一看、我看不到任何指示 EEPROM 总线和地址是可配置的-您同意吗?

    下面是我从开发人员那里获得的一些信息。

    我将与开发人员确认 tlan.c 驱动程序是否实际用于从 EEPROM 提取 MAC 地址。  

    -道林

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

    最新动态:

    请忽略"https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/board/ti/am64x/evm.c?h=ti-u-boot-2024.04#n221"、因为这适用于 AM64x EVM、我看到您使用的是 AM625 (我没有看到为 AM62x EVM 调用相同的 probe_subtercard 函数)。

    相反、这似乎用于 AM62x https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/board/ti/common/board_detect.c#n392 从 EEPROM 解析 MAC 地址并将其存储到 U-boot ethaddr 环境变量中。

    我将与开发人员核实 tlan.c 驱动程序是否实际用于从 EEPROM 提取 MAC 地址。  [/引号]
    我找不到在 U-boot 代码中从 EEPROM 获取 MAC 地址的具体位置、这使我怀疑在 U-boot 阶段、仅获取 eth0的 MAC 地址、在 Linux 中初始化时其他接口的 MAC 地址已完成。 如果我从 CPSW 开发人员那里找到其他信息、我将再次收到更新。

    我错了。 在 Linux 中、tlan.c 不用于 CPSW 以太网来获取 MAC 地址。 实际上、所有以太网接口的 MAC 地址都是在 U-boot 阶段获取的、而来自 EEPROM 的 MAC 地址应从 AM62x 的 board_detect.c (我在上面已链接)中完成。 然后将 MAC 地址存储在 U-boot 环境变量中、并在此处将其传递到 Linux 阶段。  

    -道林

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

    好极了。  事实上、我的 SOM 供应商也使用 uboot ethaddr env var、但我不清楚设置它是否会将其传递到内核。  `s我编写自定义 u-boot board.c 代码以从不同的 EEPROM 加载 MAC、并从那里加载 μ s etenv ethaddr`、这非常完美、能够解决 Linux 端的问题。

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

    您好、Thomas:

    在与开发人员讨论后、我想说明一点、这是他怀疑 AM62x 如何解析 EEPROM 中的 MAC 地址。 您应该进一步检查电路板中是否实际使用了该工具。

    相反、这似乎用于 AM62x https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/board/ti/common/board_detect.c#n392 解析 EEPROM 中的 MAC 地址并将它们存储到 U-boot ethaddr 环境变量中。

    -道林

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

    谢谢你。  这是我的 SOM 供应商( https://github.com/phytec/u-boot-phytec-ti/blob/v2024.04-10.01.10-phy/board/phytec/common/phytec_som_detection_blocks.c#L55-L88)使用的 u-boot EEPROM 代码

    我不希望大家在考虑供应商代码、但我怀疑它的灵感来自 EVM 电路板检测代码。  无论在哪种情况下、我希望 phytec 代码和 ti-u-boot/tree/board/ti/common/board_detect.c 之间 应该可以为我提供足够的参考资料、如果我需要实现自定义逻辑、即从不同的 EEPROM 位置读取 MAC。  总之、您帮我整理了 EVM 中 MAC 地址处理的工作原理、非常感谢!  再次感谢。

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

    您好、Thomas:  

    没问题,很高兴有了帮助! 如果您还有与此主题相关的其他问题、请随时在此处再次联系。

    -道林