Bus options (PCI etc.)总线选项
优质
小牛编辑
130浏览
2023-12-01
Bus options (PCI etc.)
总线选项
- PCI support
CONFIG_PCI - PCI是最重要的内部总线,不但PCI与PCI Express设备依赖于它,而且USB/IDE/SATA/SCSI/火线(IEEE 1394)/PCMCIA/CardBus等各种内部和外部总线也都依赖于它.所以必须选"Y",除非你知道自己在干什么.
- Support mmconfig PCI config space access
CONFIG_PCI_MMCONFIG - 允许通过mmconfig方式访问PCI config space,这种访问方式比传统的IO方式速度更快.建议开启.MMCONFIG的意思是"Memory-Mapped config",它是PCI Express引入的新总线枚举方
式.背景知识:PCI设备都有一组叫做'Configuration
Space'的寄存器,PCI-E设备在PCI的基础上又增加了一组叫做'Extended Configuration
Space'的寄存器.这些寄存器都被映射到了内存中(Memory-Mapped),操作系统理应提供相应的API供设备驱动和诊断程序访问这些
'Configuration
Space'.但如果操作系统没有提供Memory-Mapped方式的API的话,这些驱动程序和诊断程序就必须自己根据操作系统的底层规则(IO方
式)去访问,这显然就增加了开发难度.这个选项的目的就是提供Memory-Mapped方式的API. - Read CNB20LE Host Bridge Windows
CONFIG_PCI_CNB20LE_QUIRK - CNB20LE芯片组PCI热插拔支持.除非你非常明确的知道你需要它,否则请关闭此项.
- PCI Express support
CONFIG_PCIEPORTBUS - PCI Express是PCI的升级版并在软件层与PCI兼容,其目标是统一电脑内部总线.基本上只要不是古董机,都早已支持PCI-E了.选"Y".
- PCI Express Hotplug driver
CONFIG_HOTPLUG_PCI_PCIE - 如果你的主板和设备都支持PCI Express热插拔就可以选上.
- Root Port Advanced Error Reporting support
CONFIG_PCIEAER - PCI Express Root Port Advanced Error Reporting (AER)
驱动支持.这样,发送到 Root Port 的 Error reporting messages 就会由 PCI Express AER
处理.建议开启.背景知识:PCI Express
定义了两种错误报告范例:(1)baseline,所有PCI-E组件都必须要支持,功能也比较基础.(2)AER(Advanced Error
Reporting),功能比较高级,也更可靠,但并不要求所有组件都支持. - PCI Express ECRC settings control
CONFIG_PCIE_ECRC - 允许覆写firmware/bios设置的 PCI Express ECRC(端对端循环冗余校验).建议关闭,除非你确实知道为什么要开启.
- PCIe AER error injector support
CONFIG_PCIEAER_INJECT - 允许 PCI-E AER 注入,仅用于测试目的.
- PCI Express ECRC settings control
- PCI Express ASPM control
CONFIG_PCIEASPM - PCI Express ASPM(Active State Power Management) 和 Clock Power Management 支持.这是PCI-E规范制定的一种电源管理方案,可以在设备空闲时采用节电模式.建议开启.ASPM可以在运行时通过 /sys/module/pcie_aspm/parameters/policy 进行开启或关闭.
- Debug PCI Express ASPM
CONFIG_PCIEASPM_DEBUG - 仅供调试.
- Default ASPM policy
- 默认的ASPM电源管理策略.下面的三个选项:"BIOS
default"表示使用BIOS中的设置作为默认."Powersave"表示在可能的情况下,默认使用"L0s"和"L1",以尽可能节约电
力."Performance"表示禁止使用"L0s"和"L1"(即使BIOS开启也同样禁止),以保证最高性能.
- Debug PCI Express ASPM
- PCI Express Hotplug driver
- Message Signaled Interrupts (MSI and MSI-X)
CONFIG_PCI_MSI - PCI/PCI-
E支持三类中断:(1)INTx使用传统的IRQ中断,可以与现行的驱动程序和操作系统兼容.(2)MSI是PCI2.2规范中新增的,通过写入特殊的内
存地址来触发和发送中断,该种方式脱离了中断引脚带来的数目限制,并且延迟小/效率高.不过MSI方式将中断全部落在单个CPU上,对多核CPU利用不
佳.(3)MSI-X是在PCI3.0规范中新增的,在MSI的基础上,支持更多的消息数量以及独立的消息地址,可以自动在多个CPU上分担中断,更适合
多CPU系统.建议开启.开启后,也可以使用"pci=nomsi"内核引导参数关闭MSI特性. - PCI Debugging
CONFIG_PCI_DEBUG - 将PCI调试信息输出到系统日志里.如果你想诊断PCI设备的故障,可以开启,否则应该关闭.
- Enable PCI resource re-allocation detection
CONFIG_PCI_REALLOC_ENABLE_AUTO - 让内核自动检测"是否需要重新分配PCI资源".即使此项已开启,你依然可以用"pci=realloc=[on|off]"来覆盖它.此项仅在已开启CONFIG_PCI_IOV的情况下才有意义.此时,如果BIOS没有为SR-IOV(Single-Root I/O Virtualization) BAR(基地址寄存器)分配资源,那么内核将会自动对PCI资源进行重新分配.不确定的选"N".
- PCI Stub driver
CONFIG_PCI_STUB - PCI设备穿透(PCI Stub)的作用是将属主机的PCI设备跟目前绑定的驱动分离,暂时由其接管,最后再交给虚拟机内的客户操作系统自己去驱动这个PCI设备(例如网卡穿透/显卡穿透),以获得高性能.由于USB等所有外围设备实际上也都是连接在PCI总线上的,所以此功能同样适合各种外围设备,例如U盘加密狗之类.
- Xen PCI Frontend
CONFIG_XEN_PCIDEV_FRONTEND - 如果你使用XEN的半虚拟化技术,并且你的硬件支持IOMMU,那么可以开启此项,否则应该关闭.
- Interrupts on hypertransport devices
CONFIG_HT_IRQ - 允许本地的HyperTransport设备使用中断.这个只可用于AMD平台,Intel平台不支持这个.
- Support mmconfig PCI config space access
- PCI IOV support
CONFIG_PCI_IOV - PCI I/O Virtualization支持.这需要硬件支持IOMMU技术(AMD-Vi,Intel VT-d).
- PCI PRI support
CONFIG_PCI_PRI - PCI Page Request Interface 支持.它允许IOMMU之后的设备能够从页错误中恢复过来.这需要硬件支持IOMMU技术(AMD-Vi,Intel VT-d).
- PCI PASID support
CONFIG_PCI_PASID - PASID(Process Address Space Identifiers)可以被PCI设备用来同时访问多个IO地址空间.这需要硬件IOMMU技术(AMD-Vi,Intel VT-d)支持PASID特性.不确定的选"N".
- PCI IO-APIC hotplug support
CONFIG_PCI_IOAPIC - PCI IO-APIC 热插拔支持.
- ISA-style DMA support
CONFIG_ISA_DMA_API - ISA-style DMA控制器支持.目前基本只有LPC总线设备需要使用,最常见的是串口,并口,PS/2键盘,Super I/O芯片(可以使用Superiotool和sensors-detect工具检测).不确定的选"Y".[说明]这是一个历史遗留问题,对于ISA架构,DMA操作是由一个专用的"DMA控制器"(最常见的是Intel 8237)来执行的,但是到了PCI架构,由于每一个PCI设备都可以控制PCI总线(成为"bus master")并直接读写系统内存,所以"DMA控制器"又消失了.此选项只是为那些需要"ISA-DMA控制器"的设备提供了兼容性接口(API)而已.
- PCCard (PCMCIA/CardBus) support
CONFIG_PCCARD - PCCard(PCMCIA/CardBus/ExpressCard)接口通常出现在笔记本电脑上,这些接口卡通常大小与信用卡差不多,厚度大约3-5毫米.注意:必须要配合pcmciautils工具才能正常使用PCMCIA设备.
- 16-bit PCMCIA support
CONFIG_PCMCIA - 老旧的 16-bit PCMCIA 卡支持
- Load CIS updates from userspace
CONFIG_PCMCIA_LOAD_CIS - 有些PCMCIA卡需要从用户空间更新CIS(Card Information Structure)之后才能正常工作.开启此项后,内核将可以使用内置的固件加载器和热插拔子系统自动加载CIS,而不再需要用户空间工具的辅助.建议选"Yes".
- Load CIS updates from userspace
- 32-bit CardBus support
CONFIG_CARDBUS - 常见的PCMCIA卡基本上都是32位的CardBus与ExpressCard设备.如果你有这样的卡,就选"Yes".由于绝大多数的卡都是"yenta-compatible"的,所以一般你还需要选中CONFIG_YENTA项.
- CardBus yenta-compatible bridge support
CONFIG_YENTA - 使用PCMCIA卡的基本上都需要选择这一项,子项是一些拥有自己特定扩展的硬件,请按实际情况选择.
- {省略的部分请按照自己实际使用的PCMCIA卡选择}
- 16-bit PCMCIA support
- Support for PCI Hotplug
CONFIG_HOTPLUG_PCI - PCI热插拔不仅仅针对PCI和PCI-E设备,也包括CardBus与ExpressCard设备.请按需选择.
- {省略的部分请按照自己实际使用PCI控制器进行选择}
- RapidIO support
CONFIG_RAPIDIO - RapidIO总线支持.这种总线主要用于嵌入式系统.
- Discovery timeout duration (seconds)
CONFIG_RAPIDIO_DISC_TIMEOUT - 等待主机完成枚举(也就是初始化)的超时秒数.
- Enable RapidIO Input/Output Ports
CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS - 开启所有 RapidIO Input/Output 端口.
- DMA Engine support for RapidIO
CONFIG_RAPIDIO_DMA_ENGINE - 使用DMA引擎(CONFIG_DMADEVICES)进行RapidIO数据传输
- RapidIO subsystem debug messages
CONFIG_RAPIDIO_DEBUG - 将RapidIO调试信息输出到系统日志里.如果你想诊断RapidIO设备的故障,可以开启,否则应该关闭.
- {省略的部分请按照自己实际使用的控制器进行选择}
- Discovery timeout duration (seconds)
- Mark VGA/VBE/EFI FB as generic system framebuffer
CONFIG_X86_SYSFB - 此选项的主要是为simplefb(可作为VGA/VBE/EFI FB的单一替代品通用于BIOS和UEFI平台)提供支持,仅在你确实需要开启CONFIG_FB_SIMPLE选项时才需要选"Y",否则请选"N".