U-Boot:TI Sitara AM335X MII连接到Marvell开关

时间:2018-05-29 14:58:45

标签: linux beagleboneblack u-boot

我们有一块基于AM335X Beaglebone黑色的新主板。我正在使用Beagle U-Boot和Kernel,看起来一切正常,除了网络。不同之处在于我们的主板AM3352通过MII连接到Marvell 5端口交换机(88e6341)。

为了支持该架构,我应该在U-Boot源代码(或内核)中进行哪些修改?

感谢。

2 个答案:

答案 0 :(得分:0)

在U-Boot中,非常粗略,你需要更改board / ti / am335x / board.c :: board_eth_init来设置你拥有的,而不是默认选择,至少查看board / ti / am335x / mux.c确保您仍然可以根据需要设置pinmux。并且您需要启用适当的以太网驱动程序。

然后,对于Linux内核,您需要根据您从参考平台更改的内容编写一个能够正确描述硬件的设备树。

答案 1 :(得分:0)

该解决方案如何修改u-boot以支持基于beagle骨黑的主板,而不是以太网PHY,而是将Marvell Switch(在我的情况下为88e6341)与MII连接:

首先,使用Fix PHY驱动程序-它旨在与DT一起使用的唯一问题,因此,如果不是ETH DT-更改代码以忽略CONFIG。确保软件将Fix驱动程序作为端口phy驱动程序。将其硬编码为100 MB速度,并设置为全双工。

另一个问题是交换机CPU端口和交换机端口的初始化:

在例程board_eth_init中(在board.c中)添加以下初始化(在cpsw初始化之后):

// Set port 0,1,2 to forwarding Mode (through Switch Port registers)

miiphy_write(name, 16,4, 0x7f);
miiphy_write(name, 17,4, 0x7f);
miiphy_write(name, 18,4, 0x7f);

/* RGMII Delay on Port 0 (CPU port), force link to 100Mbps */

miiphy_write(name, 16,1, 0x283d);

/* Power up PHY 1, 2, 3 (through Global 2 registers) */
miiphy_write(name, 28,25, 0x1140);
miiphy_write(name, 28,24, 0x9620);
miiphy_write(name, 28,24, 0x9640);
miiphy_write(name, 28,24, 0x9660);

在内核代码中,只需在文件iam335x-bone-common.dts中进行更改:

   &cpsw_emac0 {

\-       phy_id = <&davinci_mdio>, <0>;

\+       fixed-link = <1 1 100 0 0>;

phy-mode = "mii";

 };

祝你好运

Avner