1.0.2-linux-3.15.6内核移植之DM9000网卡
内核中已经有DM9000的相关驱动了所以我们只需要小小的改动一下就可以用了。
还是在
[linux-3.15.6]# vimarch/arm/mach-s3c24xx/mach-smdk2440.c
1、增加头文件
26 /*add by hxy*/
27 #include <linux/dm9000.h>
28 /*end by hxy*/
2、添加基地址定义
154 /*add by hxy*/
155 #define MACH_SMDK2440_DM9K_BASE (S3C2410_CS4 +0x300)
3、添加结构体
156 /* DM9000AEP 10/100 ethernet controller */
157 static struct resource smdk2440_dm9k_resource[] ={
158 [0] = {
159 .start = MACH_SMDK2440_DM9K_BASE,
160 .end = MACH_SMDK2440_DM9K_BASE + 3,
161 .flags = IORESOURCE_MEM
162 },
163 [1] = {
164 .start = MACH_SMDK2440_DM9K_BASE + 4,
165 .end = MACH_SMDK2440_DM9K_BASE + 7,
166 .flags = IORESOURCE_MEM
167 },
168 [2] = {
169 .start = IRQ_EINT7,
170 .end = IRQ_EINT7,
171 .flags = IORESOURCE_IRQ | IORESOURCE_IRQ_HIGHEDGE,
172 }
173 };
174 /*
175 * TheDM9000 has no eeprom, and it's MAC address is set by
176 * thebootloader before starting the kernel.
177 */
178 static struct dm9000_plat_datasmdk2440_dm9k_pdata = {
179 .flags =(DM9000_PLATF_16BITONLY | DM9000_PLATF_NO_EEPROM),
180 };
181 static struct platform_device smdk2440_device_eth= {
182 .name = "dm9000",
183 .id = -1,
184 .num_resources =ARRAY_SIZE(smdk2440_dm9k_resource),
185 .resource =smdk2440_dm9k_resource,
186 .dev = {
187 .platform_data =&smdk2440_dm9k_pdata,
188 },
189 };
190
191 /*end by hxy*/
4、添加网卡支持
199 &smdk2440_device_eth,