S3C2410 CS8900A网卡驱动移植与问题解析

0 下载量 120 浏览量 更新于2024-09-02 收藏 98KB PDF 举报
本文档深入探讨了在SBC-2410X开发板(搭载S3C2410X CPU)上移植Linux内核(2.6.11.1)以支持CS8900A网卡驱动的问题和解决方案。首先,作者强调了从官方源代码库获取Linux内核的重要性,并介绍了如何进行必要的配置,如修改Makefile以指定目标平台(从$(SUBARCH)更改为arm)和交叉编译器路径。 在驱动程序移植过程中,关键步骤是添加cs8900.c和cs8900.h这两个针对2.6.7内核的驱动源代码到drivers/net/arm/目录。作者注意到,为了确保网卡的正确初始化,需要在cs8900_probe()函数中添加两条特殊设置,即__raw_writel()函数调用,分别设置S3C2410_BWSCON寄存器的值和S3C2410_BANKCON3寄存器的值。这些操作的具体原因将在“第二部分”详细讨论,可能与芯片的特定初始化序列或硬件特性有关。 此外,文档还提及了在Kconfig文件中的配置,通过添加名为ConfigARM_CS8900的选项,用户可以选择是否启用CS8900A网卡的支持。这个选项依赖于NET_ETHERNET、ARM和ARCH_SMDK2410条件,以确保在正确环境下启用此功能,并提供了帮助文本说明其功能。 文章继续可能涵盖的问题排查,如设备注册失败、驱动加载错误、性能优化以及与嵌入式操作系统(如Debian2.6.8)的兼容性测试。整体而言,本文提供了一个实用的指南,对想要在S3C2410平台上移植并调试CS8900A网卡驱动的开发者具有很高的参考价值。