Linux 2.6.20 cs8900驱动详析与移植过程
需积分: 4 42 浏览量
更新于2024-08-02
收藏 247KB DOC 举报
本文档深入分析了Linux 2.6.2版本中的cs8900驱动,针对一款名为cs8900a的网络芯片在该内核版本下的工作原理和移植过程。作者首先强调了在整个过程中,网络驱动的实现得益于互联网资源、Google搜索引擎以及嵌入式开发社区的帮助,特别是weibing博客文章的指导。
硬件配置方面,文章提到了以下关键点:
1. 使用的是S3C2410处理器作为平台基础。
2. cs8900a网络芯片被映射到了S3C2410的bank3空间。
3. cs8900a依赖于INT9中断进行通信处理。
4. 网络内核版本为Linux 2.6.20,这是一个较早但仍然在使用的关键版本。
网络驱动初始化阶段是核心内容,其流程从`init`进程开始,通过一系列函数调用直至`cs89x0_probe1`,在这个阶段完成了对cs8900的探测和初始化。下面是详细步骤:
1.1 `init`函数:作为启动时的第一个关键函数,`init`负责执行早期的系统初始化,包括设置ramdisk_execute_command参数(如初始化引导加载器)。
1.2 探测与初始化过程:
- `cs89x0_probe1`函数是网络驱动的主要入口点,它会检测并配置cs8900a,包括硬件配置、驱动注册以及中断处理设置。
- 通过探测硬件特性,驱动程序会尝试配置芯片的寄存器,设置模式选择、地址映射等。
- 内核会检查设备是否存在,以及是否支持特定功能,如自适应速度和数据模式等。
1.3 模块化与非模块化加载的区别:
- 当cs8900驱动作为内核的一部分编译时,初始化路径会遵循`init`进程的典型调用顺序。
- 如果驱动作为模块编译,虽然流程基本相同,但在启动时可能通过`ethif_probe2`和`probe_list2`等模块探测函数进行加载。
在整个过程中,作者强调了对网络驱动的深入理解对于驱动移植和调试的重要性,并鼓励读者参考weibing的博客文章获取更多实践指导。通过对Linux 2.6.20 cs8900驱动的详细分析,本文为理解和使用这类嵌入式网络芯片提供了有价值的参考信息。
2021-03-24 上传
2021-03-24 上传
2020-02-06 上传
2013-03-30 上传
inserlan
- 粉丝: 5
- 资源: 3
最新资源
- upptime:我的外部监控工具
- HTMLprocessor:HTML 处理和指标提取
- Draft Wed Aug 15 15:32:42 CST 2018-数据集
- Python库 | datatools_mikdowd-0.0.5-py3-none-any.whl
- 基于 C++大地测量学之坐标转化及坐标系转换
- modcopy-开源
- pyg_lib-0.3.0+pt20cpu-cp311-cp311-linux_x86_64whl.zip
- intern_szut:intern_szut网站
- 森兰变频器上位机控制软件SlMonitorV2.1.zip
- Crawling_Project:使用python,BeautifulSoup
- ParkinsonsPredictor:使用两种不同的分类策略来尝试预测某人是否患有帕金森病
- BPMVue:BPM的Vue
- qiyemingpian:nodeJS+express+mysql后端开发教程-企业名片小程序后端开发
- 147. 2019抖音数据报告.rar
- lesson-1
- racket2nix:取得一个info.rkt文件,生成一个info.nix文件