小编Hei*_*oit的帖子

Linux 用户空间 PCI 驱动程序选项?(uio_pci_generic)

我的 PCI 总线上有一个 Xilinx FPGA PCIe 端点。Linux 很好地识别了设备,lspci 中的一切看起来都很完美。

我的问题是关于用户空间的 PCI 访问选项以及什么是好/坏。

选项 1:通过 /sys/.../resource0 直接访问

(到目前为止我只成功完成了一项工作)

我可以打开并 mmap 说 /sys/bus/pci/devices/XXXX:XX:XX.X/resource0 然后 mmap 并读/写。只需要先修复权限即可。我的问题是,这是好还是坏方法?感觉这可能不是访问 PCI 地址空间的首选方法?

选项 2:使用 uio_pci_generic

我已经成功配置我的 FPGA,以便该驱动程序能够实际连接,但它需要中断这一事实确实很烦人。似乎这无法访问任何接受中断和配置内存空间?这对我来说似乎不太有用?我错过了什么吗?

选项 3:编写我自己的 uio 驱动程序

这也许是一个合理的选择?我不太确定这有多困难。这样做的一个可能的优点是我可以访问 DMA,从而大大加快速度。

选项 4:编写完全自定义的 Linux PCI 驱动程序

如果可能的话我想避免这个选项

我的问题是最好的方法是什么,以及选项 1 的具体缺点是什么。或者我应该考虑其他方法吗?

(我正在运行 debian,内核已打过 3.14.15 rt 补丁)

linux drivers kernel pci fpga

5
推荐指数
1
解决办法
4979
查看次数

使用串行控制台或网络控制台 (PCH) 在嵌入式系统上安装 Debian

我有一个基于 Intel-Atom 和 PCH 的嵌入式系统,我们正忙于开发。在嵌入式环境中,我有:

  • 通过 PCH 的串行控制台,这意味着这不适用于标准内核。(按CONFIG_SERIAL_PCH_UART_CONSOLE要求)
  • SATA 驱动器仅适用于嵌入式环境,无法取出安装。
  • 我可以通过USB驱动器启动。
  • 该系统确实通过 PCH 具有以太网,我尚未确认它可以工作。

我已经成功构建了一个自定义的 Linux 3.16.7 内核,它可以启动,console=uartPCH0,115200然后在串行线路上显示一个控制台。

但是,从这里移动到实际安装似乎是有问题的。我无法说服使用我的自定义内核构建 debian-installer。

我目前的理论是一个双引导过程,我首先将安装引导到 USB 驱动器,然后引导它,然后将安装引导到系统上的 SATA 驱动器?有什么更好的建议吗?

我不确定是否有某种方法可以通过网络控制台进行安装?

该系统需要 e1000e 驱动程序,我认为它将内置到标准 debian 安装程序 ISO 中,但是到目前为止,我无法找到有关如何说服安装系统启动然后打开 ssh/telnet 的非常明确的文档。

任何提示?

embedded debian system-installation debootstrap

2
推荐指数
1
解决办法
2499
查看次数