u-boot 上移植新的 网卡 驱动,初始化了两个网卡

本文档详细介绍了如何在u-boot上移植SMC911x网卡驱动,以适应新的硬件平台myboard。首先,从高版本u-boot获取驱动文件,并在myboard.h中添加宏定义。然后,在myboard.c中实现网卡初始化函数,并在board_eth_init()中调用。最后,修改gpmc_init()和net/eth.c以支持两个网卡的配置。
摘要由CSDN通过智能技术生成

本移植过程假设用户用户是从给定的 demo 板开发自己的新产品。

你也可以参考: http://wenku.baidu.com/view/723e304be45c3b3567ec8b56.html 这篇文章
假设用的 demo 板是 omap3devkit8000,我们自己的板叫 myboard.
看这篇文章前可以先看我写的前一篇文章: u-boot 的移植,然后再做如下的操作

 

目标是: demo 板中的 u-boot 是用的 DM9000 网卡,自己硬件用的 smc911x 网卡

 

大的方案是先找到支持 smc911x 网卡的 uboot(高版本的 uboot 支持), 然后跟自己 demo 板的 uboot 对比。

 

1> 拷贝下面两个驱动文件

     /drivers/net/smc911x.c

     /drivers/net/smc911x.h

 

2> 在 myboard.h 增加以下宏定义

/*
* Net chip
*/
#define CONFIG_SMC911X
#define CONFIG_SMC911X_16_BIT
#define CONFIG_SMC911X_BASE 0x2C000000 /* 网卡的基地址 */

 

3> /board/myboard/myboard.c 文件中加入以下两个函数(参考其它 uboot 做的)

 

/*
 * Routine: setup_net_chip
 * Description: Setting up the configuration GPMC registers specific to the
 *              Ethernet hardware.
 */
static void setup_net_chip(void)
{

    /* 初始化第一个网卡 */

    __raw_writel(0x00001000, GPMC_CONFIG_CS0 + (4 * GPMC_CONFIG_WIDTH) + GPMC_CONFIG1);
    __raw_writel(0x001e1e00, GPMC_CONFIG_CS0 + (4 * GPMC_CONFIG_WIDTH) + GPMC_CONFIG2);
    __raw_

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值