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.

[参考译文] Linux/AM4379:自定义 AM437x 板、在 u-boot 中从 SDK 启用 MII LAN8710时出现问题

Guru**** 2555630 points
Other Parts Discussed in Thread: AM4379, TPS65218

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/624353/linux-am4379-custom-am437x-board-problem-to-enable-mii-lan8710-in-u-boot-from-sdk

器件型号:AM4379
主题中讨论的其他器件: TPS65218

工具/软件:Linux

你好!

我在 MII 模式下连接了基于 AM4379和 LAN8710以太网 PHY 的定制板。 我已经对 PROCESSOR-SDK-LINUX-AM437X 04_00_00_04中的 u-boot 进行了一些修改、但以太网完全不起作用。 我无法加载 Linux、因为以太网无法正常工作。 但我也移植了  v2017.09-rc2 to the board and Ethernet works as expected, so the HW design is OK. And I used the same dts file for both u-boot versions (mainline and SDK)

到目前为止、我发现了:

1) 1) TI SDK 对引脚多路复用器使用内部 DTB 文件。 不涉及文件 board/ti/am43xx/mux.c、因此无需修改即可更改引脚多路复用

2) 2) MII 模式不工作、但 MDIO 工作正常、因为我可以读取 PHY 寄存器

3) 3) LAN8710为 CPU 提供所有必要的频率、但正如 u-boot 2017-09之前所述、工作正常。

MII 功能是否减少或修改? 如果我使用 u-boot 版本作为 SDK 所有修改的基准..

我想让 TI 的 SDK 完全正常工作、因此需要弄清楚它有什么问题、并最终为我的电路板启用它。 我已附加 diff 文件以供参考

U-Boot SPL 2017.01-00319-g33a324a-脏 污(2017年9月11日- 16:14:10)
尝试从 MMC1引导
SPL:请为您的电路板实施 spl_start_uboot()
SPL:直接 Linux 引导未激活!
正在读取 u-boot.img
正在读取 u-boot.img
正在读取 u-boot.img
正在读取 u-boot.img


U-Boot 2017.01-00319-g33a324a-脏 污(2017年9月11日- 16:14:10 +0300)

CPU:AM437X-GP 1.2版
型号:TI AM437x uSomIQ AM437x
DRAM:512 MiB
PMIC:TPS65218
NAND:0 MIB
MMC:OMAP SD/MMC:0
正在读取 uboot.env

**无法从 mmc0:1读取"uboot.env"**
使用默认环境

网络: 未设置。 验证第一个电子保险丝 MAC
CPsw、USB_ether
按任意键停止自动引导:0
=>设置自动载入否
=> DHCP
端口0、速度100、全双工上的链路
BOOTP 广播1
BOOTP 广播2.
BOOTP 广播3.
BOOTP 广播4.
BOOTP 广播5.
BOOTP 广播6.
BOOTP 广播7.
BOOTP 广播8.
BOOTP 广播9.

中止

=> MII 信息
PHY 0x00:OUI = 0x01F0、模型= 0x0F、修订版= 0x01、100BaseT、FDX
=> MII 转储0 0
(3100)-- PHY 控制寄存器--
(8000:0000) 0.15 = 0复位
(4000:0000) 0.14 = 0环回
(2040:2000) 0。 6、13 = B01速度选择= 100Mbps
(1000:1000) 0.12 = 1 A/N 使能
(0800:0000) 0.11 = 0断电
(0400:0000) 0.10 = 0隔离
(0200:0000) 0。 9 = 0重新启动 A/N
(0100:0100) 0。 8 = 1双工=全双工
(0080:0000) 0。 7 = 0冲突测试使能
(003f:0000) 0。 5- 0 = 0 (保留)


=> MII 转储0 1
(782d)-- PHY 状态寄存器--
(8000:0000) 1.15 = 0 100BASE-T4可用
(4000:4000) 1.14 = 1 100BASE-X 全双工
(2000:2000) 1.13 = 1 100BASE-X 半双工
(1000:1000) 1.12 = 1 10 Mbps 全双工
(0800:0800) 1.11 = 1 10 Mbps 半双工能力
(0400:0000) 1.10 = 0 100BASE-T2全双工功能
(0200:0000) 1. 9 = 0 100BASE-T2半双工能力
(0100:0000) 1. 8 = 0扩展状态
(0080:0000) 1. 7 = 0 (保留)
(0040:0000) 1. 6 = 0 mF 前导码抑制
(0020:0020) 1. 5 = 1 A/N 完成
(0010:0000) 1. 4 = 0远程故障
(0008:0008) 1. 3 = 1 A/N
(0004:0004) 1. 2 = 1链路状态
(0002:0000) 1. 1 = 0 Jabber 检测
(0001:0001) 1. 0 = 1扩展功能


=> MII 转储0 2
(0007)-- PHY ID 1寄存器--
(FFFF:0007) 2.15-0 = 7 OUI 部分

以下是 u-boot 2017.09的引导方式:

U-Boot SPL 2017.09-RC2-N脏(2017年9月07日- 12:45:08)
尝试从 MMC1引导
SPL:请为您的电路板实施 spl_start_uboot()
SPL:直接 Linux 引导未激活!
正在读取 u-boot.img
正在读取 u-boot.img
正在读取 u-boot.img
正在读取 u-boot.img


U-Boot 2017.09-RC2-N脏(2017年9月07日- 12:45:08 +0300)

CPU:AM437X-GP 1.2版
型号:TI AM437x uSomIQ AM437x
DRAM:512 MiB
PMIC:TPS65218
NAND:0 MIB
MMC:OMAP SD/MMC:0
正在读取 uboot.env

**无法从 mmc0:1读取"uboot.env"**
使用默认环境

NET:高速缓存:在范围内未对齐操作[9df1bf80、9df1c024]

警告:以太网@4a100000、使用来自 ROM 的 MAC 地址
eth0:以太网@4a100000
按任意键停止自动引导:0
=>设置自动载入否
=> DHCP
端口0、速度100、全双工上的链路
BOOTP 广播1
BOOTP 广播2.
BOOTP 广播3.
BOOTP 广播4.
DHCP 客户端绑定到地址192.168.1.103 (2509ms)
=>e2e.ti.com/.../u_2D00_boot_2D00_usomiq.diff

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将对此进行研究。 我将在此处公布我的调查结果。

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

    Yordan、您好!

    我的板在16位模式下连接 DDR3、因此两个存储寄存器有修改。 我的板没有刷写 EEPROM、所以我做了一个丑小黑客来硬核板的 ID。 请记住、如果您直接应用我的补丁

    我想、检查此 u-boot 版本 MII 功能的最简单方法是为 BeagleBone Black 编译 MII 并使用它启动电路板。 我有 BBB、因此我明天将测试它。

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

    LAN8710连接原理图

    e2e.ti.com/.../am437x_2D00_lan8710a.pdf

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

    乍一看、代码看起来是正确的。 实际上、如果您看一下最新的 TI SDK04 u-boot、请参阅 arch/arm/dts/AM335x-bone-common.dtsi、它用于 boneback、您可以看到 cpsw_emac0/1配置为在 MII 模式下工作:
    cpsw_emac0{&cpsw_emac0}
    PHY_ID =<&Davinci_MDIO>、<0>;
    PHY 模式="MII";
    };

    cpsw_emac1{&cpsw_emac1}
    PHY_ID =<&Davinci_MDIO>、<1>;
    PHY 模式="MII";
    };

    Mac{(&M)
    pinctrl-names ="default"、"sleep";
    pinctrl-0 =<&cpsw_default>;
    pinctrl-1 =<&cpsw_sleep>;
    状态="正常";
    };

    DaVinci_MDIO{
    pinctrl-names ="default"、"sleep";
    pinctrl-0 =<&Davinc_MDIO_default>;
    pinctrl-1 =<&Davinc_MDIO_SLEEP>;
    状态="正常";
    };

    我将检查原理图。

    此致、
    Yordan