t4240 uboot下网络调试(88e1111)

本文档介绍了如何在Marvell T4240 SoC的U-Boot环境下调试88E1111网络PHY芯片。内容包括修改相似的88E1111S驱动以适配88E1111,调整`phy_init()`函数,修改MDIO总线配置,以及根据T4240RM手册更新`board_eth_init()`。经过这些步骤,EC1接口的网络已经可以通过ping通验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前有两个网口,分别从t4240的EC1, EC2出来连接的88e1111 phy芯片。其中一个phy接rj45从板子直出,另一个是过背板的(后面再说)。
marvell的phy驱动在uboot下driver/net/phy/marvell.c

1. 查看该驱动,没有看到88e1111的驱动,修改一个最相似的88e1111s驱动,将其修改为88e1111驱动。下面这个是phy_driver结构体源码描述:

static struct phy_driver M88E1111S_driver = {
	.name = "Marvell 88E1111S",
	.uid = 0x1410cc0,
	.mask = 0xffffff0,
	.features = PHY_GBIT_FEATURES,
	.config = &m88e1111s_config,
	.startup = &m88e1011s_startup,
	.shutdown = &genphy_shutdown,
};

uboot下读取设备id,根据读出的设备id:014100cc2 修改下上面源码uid,将其改为014100cc2 ,这样驱动就可以适配上了。

 2. uboot源码,在driver/net/phy/phy.c下修改下phy_init() 只保留phy_marvell_init(),别的也用不上,给注释掉先。

3. 修改mdio总线:

查看board/freescale/t4rdb/eth.c下 board_eth_init()函数。

根据T4240RM手册 rcw部分,ec1对应fm2.mac5, ec2我在rcw下选的是fm2.mac6。根据这些信息我们去修改board_eth_init(),去掉无关的10G网络相关代码,serdes相关的也可以去掉,没有用到serdes上的网络,我们用的是ec上的网口,注意接口类型改成rgmii。

phy地址也需要设置下,比如我的fm2的网口phy地址是0,可以这样设置:

fm_info_set_phy_address(FM2_DTSEC5, 0);

修改完成后进行uboot的编译。

 烧写验证下,FM2.MAC5是EC1,就是我直出的网口,可以ping通了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木泽八

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值