下载此文档

飞腾处理器网络控制器的驱动设计和实现.doc


文档分类:IT计算机 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
飞腾处理器网络控制器的驱动设计和实现.doc飞腾处理器网络控制器的驱动设计和实现摘要:随着飞腾处理器性能的提升,原来的网络驱动已经不能满足其需求,急需设计和实现一款针对当前处理器的特性,能最大程度发挥其性能的网络驱动。通过研究飞腾处理器网络控制器相关的硬件原理以及linux下驱动框架的知识,设计和实现飞腾处理器中网络控制器的驱动,并对其进行了优化,使其达到了千兆网卡的使用需求。关键词:飞腾处理器;linux驱动框架;DMA;IP头对齐;NAP;GSO中图分类号:。飞腾处理器芯片内部集成了两个千兆网络控制器,通过高速AMBA总线与CPU系统总线互连。本文研究了飞腾处理器网络控制器相关的硬件原理以及linux下驱动框架知识,设计和实现飞腾处理器中网络控制器的驱动,并对其进行了优化,使其达到了千兆网卡的使用需求。1硬件原理飞腾处理器网络控制器器包括AHB/AXI接口,DMA通道,FIFO缓冲和核心四个逻辑部件。AHB/AXI接口通过AMBA总线控制器与系统总线互连,即可以作为从设备接收CPU的访问操作,也可以作为主设备为DMA启动访存操作;DMA通道负责通过AMBA总线在系统主存和内部FIFO之间进行数据包的传输;DMA通道和FIFO缓冲都是接收和发送专用的,因此一个网络控制器包含两个DMA通道和两个FIFO缓冲;核心逻辑实现了千兆介质无关接口GMII,并负责在FIFO缓冲区和GMII之间进行数据包传输。飞腾处理器通过GMII接口与物理层芯片连接,并通过介质相关MD总线访问物理层芯片的状态和控制寄存器SCR。2网络驱动设计linux网络设备驱动基本框架从上到下划为三层,分别为网络协议接口层,网络设备接口层,设备驱动功能层。网络协议接口层提供统一的数据包收发接口,使得上层ARP或IP协议独立于具体的设备,通过dev_queue_xmit()函数发送数据,if_rx()函数接收数据。网络接口层从宏观上规划了具体操作硬件的设备驱动功能层的结构,_device,该结构体是设备驱动功能层中各函数的容器。_device数据结构的具体成员,是驱使网络设备硬件完成相应动作的程序,它通过hard_start_xmit()函数启动发送操作,并通过网络设备上的中断触发接受操作。飞腾网络控制器驱动实现了linux网络设备驱动基本框架要求的函数接口,并在此基础上进行了一系列的优化,主要技术难点在于资源寻址机制、链路状态监控和基于DMA的数据包收发机制的设计和实现。:一方面是飞腾CPU硬核对网络控制和状态寄存器CSR资源的寻址,另一方面是网络控制器DMA对系统主存资源的寻址。在飞腾处理器中,网络CSR寄存器和所有其他AMBA总线设备的寄存器一样,被固定在AMBA总线地址空间的一段范围内。网络驱动程序在硬件初始化之前,需要将这段AMBA总线地址范围映射到飞腾CPU地址空间上,从而实现网络CSR寄存器的寻址,并通过CSR寄存器中的MD地址和数据寄存器的编程,实现对网络物理层芯片内部MD寄存器的访问。网络控制器的DMA需要在系统主存和内部FIFO缓冲之间进行数据传输,因此DMA需要具有系统主存的访问能力,也就是说,系统主存的部分或者全部可以映射到AMBA总线地址空间上。因为飞腾处理器的AMBA总线长度为64位,所

飞腾处理器网络控制器的驱动设计和实现 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人hqpkhvg379
  • 文件大小111 KB
  • 时间2016-09-21