首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Intel公司82545 for以太网卡编程指南

Intel公司82545 for以太网卡编程指南
EN

Stack Overflow用户
提问于 2017-11-29 17:58:38
回答 1查看 288关注 0票数 0

OS: Centos x86_64

以太网驱动程序: E1000

代码语言:javascript
复制
root@localhost e1000]# cat /proc/ioports | grep e1000
      2000-203f : e1000

[root@localhost e1000]# cat /proc/iomem | grep e1000
      fd5c0000-fd5dffff : e1000
      fdff0000-fdffffff : e1000

考虑到上述信息和物理卡(英特尔公司82545EM),如何更好地理解io_ports或io_mem与英特尔公司82545EM卡之间的关系?

例如,如何知道在何种情况下使用io_port和io_mem地址?我是否可以使用某种类型的API来列出每个端口地址的用途以及如何使用它们?

io_mem地址与DMA地址的关系如何?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-29 21:51:21

编程接口(包括哪些端口)应该由Intel记录;它们通常很好地记录硬件的编程接口(不像一些只提供驱动程序的供应商)。尽管开源Linux驱动程序通常对哪些端口有相当好的评论)。

但不,硬件并不是自我记录在这个层次的细节。相反,HW供应商发布文档(通常是在线的)。它将增加额外的硬件复杂性,为硬件提供一个标准的API来告诉您如何编程,而仅仅知道每个MMIO或编程-IO端口号的名称并不能告诉您如何使用它们的语义。

On x86,IO端口是一个独立于内存的地址空间,由inout指令使用,而不是mov加载/存储。

现代硬件主要使用内存映射的I/O,其中普通加载/存储到特殊地址,访问设备上的IO寄存器。(在被翻译成PCI / PCIe消息之后)。

我不想给这个问题写一个巨大的答案,我只想指出I/O,在那里你可以阅读到与端口I/O和DMA相关的内容,还有指向更多内容的链接。

一个合理的大小,所以答案将无法教你所有的东西,你不知道司机如何与硬件互动,对不起。有很多关于这个问题的书,但除了书之外,我不知道该用什么资源来指导你。http://wiki.osdev.org/有很多好东西,例如它有几种以太网卡的编程细节。i217很长。它开始于:

我写这个Wiki是为了展示我自己的经验,让英特尔I217和82577LM网卡的驱动程序工作,在一个真正的原生裸金属硬件上工作,

它是Linux使用e1000e的一张卡,而不是e1000。看看其他有文章的NIC,看看其中一个是否是e1000卡,如果您对自己的硬件特别感兴趣的话。(像NE2000这样更简单的硬件可能是一个比英特尔网卡更好的起点。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47558941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档