1.参考mini2440拷贝:
linux-3.4.2\arch\arm\mach-s3c24xx\mach-mini2440.c
里的
/* DM9000AEP 10/100 ethernet controller */
1 /* DM9000AEP 10/100 ethernet controller */ 2 3 static struct resource mini2440_dm9k_resource[] = { 4 [0] = { 5 .start = MACH_MINI2440_DM9K_BASE, 6 .end = MACH_MINI2440_DM9K_BASE + 3, 7 .flags = IORESOURCE_MEM 8 }, 9 [1] = { 10 .start = MACH_MINI2440_DM9K_BASE + 4, 11 .end = MACH_MINI2440_DM9K_BASE + 7, 12 .flags = IORESOURCE_MEM 13 }, 14 [2] = { 15 .start = IRQ_EINT7, 16 .end = IRQ_EINT7, 17 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE, 18 } 19 }; 20 21 /* 22 * The DM9000 has no eeprom, and it‘s MAC address is set by 23 * the bootloader before starting the kernel. 24 */ 25 static struct dm9000_plat_data mini2440_dm9k_pdata = { 26 .flags = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM), 27 }; 28 29 static struct platform_device mini2440_device_eth = { 30 .name = "dm9000", 31 .id = -1, 32 .num_resources = ARRAY_SIZE(mini2440_dm9k_resource), 33 .resource = mini2440_dm9k_resource, 34 .dev = { 35 .platform_data = &mini2440_dm9k_pdata, 36 }, 37 };
到linux-3.4.2\arch\arm\mach-s3c24xx\mach-smdk2440.c文件里面
2.修改为如下:
1 #include <linux/dm9000.h> /* by zhutao 添加头文件*/ 2 #define MACH_SMDK2440_DM9K_BASE (S3C2410_CS4 + 0x300) /* by zhutao 添加宏定义*/ 3 4 /* DM9000AEP 10/100 ethernet controller */ 5 6 static struct resource smdk2440_dm9k_resource[] = { 7 [0] = { 8 .start = MACH_SMDK2440_DM9K_BASE, 9 .end = MACH_SMDK2440_DM9K_BASE + 3, 10 .flags = IORESOURCE_MEM 11 }, 12 [1] = { 13 .start = MACH_SMDK2440_DM9K_BASE + 4, 14 .end = MACH_SMDK2440_DM9K_BASE + 7, 15 .flags = IORESOURCE_MEM 16 }, 17 [2] = { 18 .start = IRQ_EINT7, 19 .end = IRQ_EINT7, 20 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE, 21 } 22 }; 23 24 /* 25 * The DM9000 has no eeprom, and it‘s MAC address is set by 26 * the bootloader before starting the kernel. 27 */ 28 static struct dm9000_plat_data smdk2440_dm9k_pdata = { 29 .flags = (DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM), 30 }; 31 32 static struct platform_device smdk2440_device_eth = { 33 .name = "dm9000", 34 .id = -1, 35 .num_resources = ARRAY_SIZE(smdk2440_dm9k_resource), 36 .resource = smdk2440_dm9k_resource, 37 .dev = { 38 .platform_data = &smdk2440_dm9k_pdata, 39 }, 40 }; 41 42 /* 增加平台设备 */ 43 static struct platform_device *smdk2440_devices[] __initdata = { 44 &s3c_device_ohci, 45 &s3c_device_lcd, 46 &s3c_device_wdt, 47 &s3c_device_i2c0, 48 &s3c_device_iis, 49 &smdk2440_device_eth, /* by zhutao */ 50 };
编译启动内核:
nfs挂接网络文件系统:
修改以下根文件系统inittab
1 #s3c2410_serial0::askfirst:-/bin/sh /* 注释掉 */ 2 console::askfirst:-/bin/sh /* 改成console */
时间: 2024-11-09 10:08:04