linux-2.6.35内核移植—网卡驱动的移植

时间:2022-05-30 12:27:16

一、移植环境:

1、  Ubuntu 10.10发行版

2、  u-boot.bin

3、  目标机:FS_S5PC100平台

4、  交叉编译器 arm-cortex_a8-linux-gnueabi-gcc

---------------------------------------------------------------------

二、移植步骤

1、平台代码修改

$ vim arch/arm/mach-s5pc100/mach-smdkc100.c
  • 添加需要的头文件
#if defined(CONFIG_DM9000)
#include
<linux/dm9000.h>
#include
<linux/irq.h>
#endif
  • 平台设备的添加
/** DM9000 Support **/
#if defined(CONFIG_DM9000)
static struct resource dm9000_resources[] = {
[
0] = {
.start
= 0x88000000,
.end
= 0x88000000 + 0x3,
.flags
= IORESOURCE_MEM,
},
[
1] = {
.start
= 0x88000000 + 0x4,
.end
= 0x88000000 + 0x4 + 0x3,
.flags
= IORESOURCE_MEM,
},
[
2] = {
.start
= IRQ_EINT(10),
.end
= IRQ_EINT(10),
.flags
= IORESOURCE_IRQ | IRQ_TYPE_LEVEL_HIGH,
},
};

static struct dm9000_plat_data s5pc100_dm9000_platdata = {
.flags
= DM9000_PLATF_16BITONLY,
.dev_addr[
0] = 0x00,
.dev_addr[
1] = 0x00,
.dev_addr[
2] = 0x3e,
.dev_addr[
3] = 0x26,
.dev_addr[
4] = 0x0a,
.dev_addr[
5] = 0x00,
};

static struct platform_device s5pc100_device_dm9000 = {
.name
= "dm9000",
.id
= -1,
.num_resources
= ARRAY_SIZE(dm9000_resources),
.resource
= dm9000_resources,
.dev
= {
.platform_data
= & s5pc100_dm9000_platdata,
},
};
#endif
  • 平台设备列表的添加
#if defined(CONFIG_DM9000)
&s5pc100_device_dm9000,
#endif

2、配置内核

$ make menuconfig
  • 网络配置
[*] Networking support(NEW) --->
  Networking option
--->
    <*> Packet socket
    
<*> Unix domain socket
    [
*] TCP/IP networking
    [
*] IP: multicasting
    [
*] IP: kernel level autoconfiguration
    [
*] IP: BOOTP support
  • 网上驱动配置
[*] Device Drivers --->
  [
*] Network device support --->
    [
*] Ethernet(10 or 100Mbit) --->
      <*> DM9000 support
  • 网络文件系统的配置
File systems --->
  [
*] Network File Systems --->
    <*> NFS client support
    [
*] NFS client support for NFS version 3
    [
*] NFS client support for the NFSv3 ACL protocol extension
    [
*] Root file system on NFS

---------------------------------------------------------------------

三、编译内核,并拷贝到tftpboot目录下

$ make zImage
$ cp arch
/arm/boot/zImage /tftpboot

启动开发板,修改内核启动参数,通过NFS方式挂载根文件系统,挂载方式可参考 NFS服务器配置

 

原文链接:http://www.cnblogs.com/lr-ting/archive/2012/07/05/2577288.html