网卡驱动分析--IMX6X

ETHER内核数据流处理

--NXP_IMX6x系列

  • eth的初始化:

fec的probe后,进入ether的初始化流程fec_enet_init(dev);

fec_enet_init()的主要工作如下:

  1. fec_enet_alloc_queue();

创建queue等待队列,dma_alloc_coherent()创建一致性DMA地址。

  1. netdev->netdev_ops= ;

netdev->ethtool_ops =

填充netdev_ops和ethtool的ops.

  1. netif_napi_add();添加napi接口。

  • irq申请:

Irq = platform_get_irq()

Devm_request_irq(irq)

  • netdev注册:

register_netdev(ndev)

  • Mdio总线创建:

fec_enet_mii_init()

首先,需要确认SR8201FN网卡是否是通过SPI接口与imx6ull交互。如果是,则需要在uboot中添加SPI驱动,并在SPI驱动中添加SR8201FN网卡驱动支持。 以下是添加SPI驱动的步骤: 1. 打开uboot源码目录中的configs目录,复制一个与你的开发板相似的配置文件,例如mx6ull_14x14_evk_defconfig,重命名为你自己的配置文件名。 2. 在你的配置文件中,添加以下配置选项: ``` CONFIG_SPI=y CONFIG_DM_SPI=y CONFIG_SPI_FLASH=y ``` 3. 如果你的开发板中使用的SPI控制器不同于MX6UL/DL内置的ECspi控制器,则需要添加SPI控制器的驱动支持,例如,如果你的开发板使用的是MX6ULL内置的QSPI控制器,则需要添加以下配置选项: ``` CONFIG_SPI_MXS_QSPI=y CONFIG_SPI_FLASH_SPANSION=y ``` 4. 如果你的开发板中使用的SPI接口与SR8201FN网卡连接,则需要添加SR8201FN网卡驱动支持。你可以从SR8201FN网卡的官网下载驱动程序,并将其添加到uboot源码的drivers目录中。然后在你的配置文件中添加以下配置选项: ``` CONFIG_DM_ETH=y CONFIG_CMD_NET=y ``` 5. 在你的配置文件中添加以下配置选项启用SR8201FN网卡驱动支持: ``` CONFIG_ETH_DESIGNWARE=y CONFIG_ETH_DESIGNWARE_SPI=y CONFIG_ETH_DESIGNWARE_SPI_BUS_MAX=1 CONFIG_DM_ETH_SPI=y CONFIG_MII=y CONFIG_PHYLIB=y CONFIG_PHYLIB_10G=y CONFIG_PHY_ATHEROS=y CONFIG_PHYLIB_ETHERNET=y CONFIG_PHYLIB_MICREL=y CONFIG_PHYLIB_NETPHY=y CONFIG_PHYLIB_REALTEK=y CONFIG_PHYLIB_SMSC=y CONFIG_DM_GPIO=y CONFIG_DM_SPI_FLASH=y CONFIG_DM_SPI=y CONFIG_DM_SPI_SLAVE=y CONFIG_SPI_FLASH=y CONFIG_CMD_SPI=y CONFIG_SPI_FLASH_MTD=y CONFIG_DM_SPI_FLASH_MTD=y CONFIG_SPI_FLASH_BAR=y CONFIG_SPI_FLASH_MACRONIX=y CONFIG_SPI_FLASH_SPANSION=y CONFIG_SPI_FLASH_STMICRO=y CONFIG_SPI_FLASH_SST=y CONFIG_SPI_FLASH_WINBOND=y ``` 6. 将你的配置文件编译成uboot二进制文件并烧写到开发板中,测试SR8201FN网卡是否工作正常。 以上是添加SR8201FN网卡驱动的大致步骤,具体实现可能会因为开发板和uboot版本的不同而略有不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值