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 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开启也同样禁止),以保证最高性能.
    PCIe Downstream Port Containment support
        PCIe下游端口遏制支持
    PCIe Precision Time Measurement support
        PCIe精确时间测量支持

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资源进行重新分配.建议与CONFIG_PCI_IOV同开关.

PCI Stub driver
CONFIG_PCI_STUB

  PCI Stub driver 的作用是将PCI设备跟目前绑定的驱动分离,
  暂时由其接管,最后再交给虚拟机自己去驱动这个PCI设备.
  

Xen PCI Frontend
CONFIG_XEN_PCIDEV_FRONTEND

  如果你使用XEN的半虚拟化技术,并且你的硬件支持IOMMU,那么可以开启此项,否则应该关闭.
  

Interrupts on hypertransport devices
CONFIG_HT_IRQ

  允许本地的HyperTransport设备使用中断.这个一般用于AMD平台,Intel平台不支持这个.
  

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).

Support for PCI Hotplug
支持PCI Hotplug
DesignWare PCI Core Support
DesignWare PCI核心支持
PCI Endpoint
PCI端点
PCI switch controller drivers
PCI开关控制器驱动器

PCI IO-APIC hotplug support
CONFIG_PCI_IOAPIC

PCI IO-APIC 热插拔支持.

ISA-style bus support on modern systems

现代系统上的ISA式总线支持

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".
32-bit CardBus support
CONFIG_CARDBUS
    常见的PCMCIA卡基本上都是32位的CardBus与ExpressCard设备.如果你有这样的卡,就选"Yes".
    由于绝大多数的卡都是"yenta-compatible"的,所以一般你还需要选中CONFIG_YENTA项.
CardBus yenta-compatible bridge support
CONFIG_YENTA
    使用PCMCIA卡的基本上都需要选择这一项,子项是一些拥有自己特定扩展的硬件,请按实际情况选择.
{省略的部分请按照自己实际使用的PCMCIA卡选择}
Special initialization for O2Micro bridges
    O2Micro网桥的特殊初始化
Special initialization for Ricoh bridges
    理光桥的特殊初始化
Special initialization for TI and EnE bridges
    TI和EnE网桥的特殊初始化
   Auto-tune EnE bridges for CB cards
       自动调整CB卡的EnE网桥
Special initialization for Toshiba ToPIC bridges
    Toshiba ToPIC网桥的特殊初始化

Cirrus PD6729 compatible bridge support

Cirrus PD6729兼容桥接支持
i82092 compatible bridge support
   i82092兼容网桥支持

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设备的故障,可以开启,否则应该关闭.
{省略的部分请按照自己实际使用的控制器进行选择}

Mark VGA/VBE/EFI FB as generic system framebuffer

将VGA / VBE / EFI FB标记为通用系统帧缓冲区