完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我已经制作了一块定制板,目前正在尝试让以太网在 U-Boot 中工作。
处理器是 i.MX6ULL,PHY 芯片是 LAN8720。仅使用 1 个以太网(以太网 1)。 连接是: .dtsi: &fec1 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_enet1>; phy-mode = "rmii"; phy-handle = <ðphy0>; status = "okay"; mdio { #address-cells = <1>; #size-cells = <0>; ethphy0: ethernet-phy@0 { compatible = "ethernet-phy-ieee802.3-c22"; reg = <0>; max-speed = <100>; clocks = <&clks IMX6UL_CLK_ENET_REF>; clock-names = "rmii-ref"; }; }; }; &iomuxc { pinctrl-names = "default"; pinctrl_enet1: enet1grp { fsl,pins = < MX6UL_PAD_ENET1_RX_EN__ENET1_RX_EN 0x1b0b0 /* FEC_CRS_DV */ MX6UL_PAD_ENET1_RX_ER__ENET1_RX_ER 0x1b0b0 /* FEC_RX_ER */ MX6UL_PAD_ENET1_RX_DATA0__ENET1_RDATA00 0x1b0b0 /* FEC_RXD0 */ MX6UL_PAD_ENET1_RX_DATA1__ENET1_RDATA01 0x1b0b0 /* FEC_RXD1 */ MX6UL_PAD_ENET1_TX_EN__ENET1_TX_EN 0x1b0b0 /* FEC_TX_EN */ MX6UL_PAD_ENET1_TX_DATA0__ENET1_TDATA00 0x1b0b0 /* FEC_TXD0 */ MX6UL_PAD_ENET1_TX_DATA1__ENET1_TDATA01 0x1b0b0 /* FEC_TXD1 */ MX6UL_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 0x4001b031 /* FEC_TXCLK */ MX6UL_PAD_ENET2_RX_DATA0__ENET1_MDIO 0x1b0b0 /* ENET_MDIO */ MX6UL_PAD_ENET2_RX_DATA1__ENET1_MDC 0x1b0b0 /* ENET_MDC */ >; }; ..... }; 董事会.c文件: #define ENET_PAD_CTRL (PAD_CTL_PUS_100K_UP | PAD_CTL_PUE | PAD_CTL_SPEED_HIGH | PAD_CTL_DSE_48ohm | PAD_CTL_SRE_FAST) #define MDIO_PAD_CTRL (PAD_CTL_PUS_100K_UP | PAD_CTL_PUE | PAD_CTL_DSE_48ohm | PAD_CTL_SRE_FAST | PAD_CTL_ODE) #define ENET_CLK_PAD_CTRL (PAD_CTL_DSE_40ohm | PAD_CTL_SRE_FAST) #ifdef CONFIG_FEC_MXC static iomux_v3_cfg_t const fec1_pads[] = { MX6_PAD_ENET2_RX_DATA0__ENET1_MDIO | MUX_PAD_CTRL(MDIO_PAD_CTRL), MX6_PAD_ENET2_RX_DATA1__ENET1_MDC | MUX_PAD_CTRL(ENET_PAD_CTRL), MX6_PAD_ENET1_TX_DATA0__ENET1_TDATA00 | MUX_PAD_CTRL(ENET_PAD_CTRL), MX6_PAD_ENET1_TX_DATA1__ENET1_TDATA01 | MUX_PAD_CTRL(ENET_PAD_CTRL), MX6_PAD_ENET1_TX_EN__ENET1_TX_EN | MUX_PAD_CTRL(ENET_PAD_CTRL), MX6_PAD_ENET1_TX_CLK__ENET1_REF_CLK1 | MUX_PAD_CTRL(ENET_CLK_PAD_CTRL), MX6_PAD_ENET1_RX_DATA0__ENET1_RDATA00 | MUX_PAD_CTRL(ENET_PAD_CTRL), MX6_PAD_ENET1_RX_DATA1__ENET1_RDATA01 | MUX_PAD_CTRL(ENET_PAD_CTRL), MX6_PAD_ENET1_RX_ER__ENET1_RX_ER | MUX_PAD_CTRL(ENET_PAD_CTRL), MX6_PAD_ENET1_RX_EN__ENET1_RX_EN | MUX_PAD_CTRL(ENET_PAD_CTRL), }; static void setup_iomux_fec(int fec_id) { if (fec_id == 0) { printf("setup_iomux_fec(0);"); imx_iomux_v3_setup_multiple_pads(fec1_pads, ARRAY_SIZE(fec1_pads)); } } #endif #ifdef CONFIG_FEC_MXC int board_eth_init(struct bd_info *bis) { int ret; setup_iomux_fec(CONFIG_FEC_ENET_DEV); ret = fecmxc_initialize_multi(bis, CONFIG_FEC_ENET_DEV, CONFIG_FEC_MXC_PHYADDR, IMX_FEC_BASE); if (ret) printf("FEC%d MXC: %s:failed ", CONFIG_FEC_ENET_DEV, __func__); return 0; } static int setup_fec(int fec_id) { struct iomuxc *const iomuxc_regs = (struct iomuxc *)IOMUXC_BASE_ADDR; int ret; if (fec_id == 0) { /* * Use 50MHz anatop loopback REF_CLK1 for ENET1, * clear gpr1[13], set gpr1[17]. */ clrsetbits_le32(&iomuxc_regs->gpr[1], IOMUX_GPR1_FEC1_MASK, IOMUX_GPR1_FEC1_CLOCK_MUX1_SEL_MASK); } ret = enable_fec_anatop_clock(fec_id, ENET_50MHZ); if (ret) return ret; enable_enet_clk(1); return 0; } int board_phy_config(struct phy_device *phydev) { phy_write(phydev, MDIO_DEVAD_NONE, 0x1f, 0x8190); if (phydev->drv->config) phydev->drv->config(phydev); return 0; } #endif int board_init(void) { /* Address of boot parameters */ gd->bd->bi_boot_params = PHYS_SDRAM + 0x100; #ifdef CONFIG_FEC_MXC setup_fec(CONFIG_FEC_ENET_DEV); #endif return 0; } 开发板.h文件: #ifdef CONFIG_CMD_NET #define CONFIG_FEC_ENET_DEV 0 #define IMX_FEC_BASE ENET_BASE_ADDR #define CONFIG_FEC_MXC_PHYADDR 0x0 #endif 默认配置: CONFIG_PHYLIB=y CONFIG_PHY_SMSC=y CONFIG_DM_ETH_PHY=y CONFIG_FEC_MXC=y CONFIG_MII=y 启动时U-Boot控制台显示: 网络:无法获得 FEC0 的 PHY:地址 0 错误:ethernet@2188000 地址未设置。 未找到以太网。 mdio 列表返回: 找不到 MDIO 总线 mii 设备返回: 信息产业部设备: 在这一点上,我已经没有关于如何调试它的想法了。我也尝试过使用 printf() 在 u-boot 中添加一些调试输出,但没有成功成功(这些是单独的查询/问题)。 [PS 编辑:用示波器探测我可以在 ENET1_TX_CLK 上看到 50MHz 的信号,大约。ENET1_MDC 上的 2.357MHz 信号和 ENET1_MDIO 上的一些数据突发。] |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1894个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36297 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4364 浏览 0 评论
6019 浏览 1 评论
6740 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4188 浏览 0 评论
598浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
591浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
580浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
669浏览 2评论
751浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-31 18:42 , Processed in 0.855669 second(s), Total 45, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号