首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将PCIe驱动程序从Linux移植到FreeBSD

将PCIe驱动程序从Linux移植到FreeBSD
EN

Stack Overflow用户
提问于 2015-08-22 12:33:16
回答 1查看 2.2K关注 0票数 3

我在Linux上编写了一个相当大的PCIe驱动程序,现在我需要将它移植到FreeBSD上。我还不知道BSD版本,但我认为在这一点上,它是无关的,因为我想了解一般情况下,在移植过程中需要修改哪些主要项目。

好处是驱动程序被划分为操作系统独立的“库”层( OSI )和操作系统依赖层,因此它已经有了允许将其移植到其他OS-es上的“框架”,我希望大部分工作将集中在OSI方面。到目前为止,我看到了以下大量的工作:

  1. init代码,即将驱动程序“插入”到系统中的操作系统专用代码(类似于Linux中的init_module、cleanup_module )。
  2. 内核的PCI核心子系统中的代码注册驱动程序
  3. 字符驱动程序注册代码4) DMA操作

我还应该注意什么呢?该驱动程序是一个进行硬件加密的设备,因此它是卸载设备(正常从NIC enter系统输入数据包,然后转到设备上)。

如果有用于描述BSD驱动程序开发/移植(类似于LDD)的有用的web链接,我很乐意接受:)

EN

回答 1

Stack Overflow用户

发布于 2015-08-28 21:02:35

在2011年,Jeff (以及后来的Mellanox)添加了一些shims来简化Linux驱动程序的移植,这使得大部分代码可以按原样使用,当他将Linux InfiniBand驱动程序移植到FreeBSD时。因此,假设我是Linux驱动程序开发领域的新手,我首先看一下:

https://svnweb.freebsd.org/base/head/sys/ofed/include/linux/

在这里,您可以找到许多所需的Linux的实现以及它们的FreeBSD本机对应程序。

还有一个由John,这里编写的快速文档,对那些已经熟悉驱动程序编写的人很有帮助。

如果您希望从一开始就开始,我认为FreeBSD架构手册将是一个有用的起点。

此外,还有柯克McKusick,罗伯特沃森和乔治内维尔-尼尔的书,题为“FreeBSD操作系统的设计和实现”,最新版本是第二版,第8章详细的设备驱动程序。

大多数设备驱动程序只是硬件操作的包装器,以适应OS接口,因此,良好的分层驱动程序现在应该相对容易移植。

如果您有问题,或者是硬件供应商,您也可以加入各种FreeBSD邮件列表(freebsd@等)。

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

https://stackoverflow.com/questions/32156173

复制
相关文章

相似问题

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