嵌入式linux内核移植步骤,五份文档之一
手把手教你移植linux内核---------OK6410(四)
OK6410--DM9000网卡驱动移植:
在linux的内核中已经带有了DM9000的网卡驱动,所以网卡驱动我们不需要再去写或者移植了,只需要添加一个平台信息就可以。
首先在linux-3.3.5/arch/arm/mach-s3c64xx/mach-ok6410.c里面添加都文件#include
在linux-3.3.5/arch/arm/mach-s3c64xx/mach-ok6410.c里面添加dm9000的平台信息:
[cpp]
1. #define S3C64XX_PA_DM9000 (0x18000000)
2. #define S3C64XX_SZ_DM9000 SZ_1M
3. static struct resource ok6410_dm9000_resources[] = {
4. [0] = {
5. .start= S3C64XX_PA_DM9000,
6. .end= S3C64XX_PA_DM9000 + 3,
7. .flags= IORESOURCE_MEM,
8. },
9. [1] = {
10. .start= S3C64XX_PA_DM9000 + 4,
11. .end= S3C64XX_PA_DM9000 + S3C64XX_SZ_DM9000 - 1,
12. .flags= IORESOURCE_MEM,
13. },
14. [2] = {
15. .start= IRQ_EINT(7),
16. .end= IRQ_EINT(7),
17. .flags= IORESOURCE_IRQ | IRQF_TRIGGER_HIGH,
18. },
19. };
20.
21. static struct dm9000_plat_data ok6410_dm9000_platdata = {
22. .flags= DM9000_PLATF_16BITONLY,
23. .dev_addr= { 0x08, 0x90, 0x00, 0xa0, 0x90, 0x90 },
24. };
25.
26. static struct platform_device ok6410_device_dm9000 = {
27. .name= "dm9000",
28. .id= 0,
29. .num_resources= ARRAY_SIZE(ok6410_dm9000_resources),
30. .resource= ok6410_dm9000_resources,
31. .dev= {
32. .platform_data = &ok6410_dm9000_platdata,
33. }
34. };