• PCIe 中的Capability 结构的寻址


    PCI-X 和PCIe 总线规范要求其设备必须支持Capabilities 结构。在PCI 总线的基本配置空间中,包含一个Capabilities Pointer 寄存器,该寄存器存放Capabilities 结构链表的头指针。在一个PCIe 设备中,可能含有多个Capability 结构,这些寄存器组成一个链表,如下图所示。

     其中每一个Capability 结构都有唯一的ID 号,每一个Capability 寄存器都有一个指针,这个指针指向下一个Capability 结构,从而组成一个单向链表结构,这个链表的最后一个Capability 结构的指针为0。链表开始的指针地址为0x34处的1byte数值,寻址过程如下。

     

    1. We look at address 34h and see the address of the next capability register set (50h).

    Start.jpg

    2. We jump to 50h and see a capability ID of 05h (MSI Capability Structure).  We look at the next capability pointer in 51h to find which address to jump to next (78h).

    Msi.jpg

    3. We jump to 78h and see a capability ID of 01h (Power Management Capability Structure). We look at the next capability pointer in 79h to find which address to jump to the next (80h).

    Pm.jpg

    4. We jump to 80h and see a capability ID of 10h (PCI Express Capability Structure). We see 00h as the next capability pointer in 81h signifying the end of the linked list.

    Pcie.jpg

    参考:http://www.alterawiki.com/wiki/PCI_Configuration_Space

  • 相关阅读:
    二重循环
    汇编中的大小写转换
    编译出错:must be index or base register
    [bx]和loop指令
    poj1012约瑟夫
    fenshijin
    poj3050
    抹蛋糕
    poj1190
    uuu
  • 原文地址:https://www.cnblogs.com/zhongzhe/p/3900111.html
Copyright © 2020-2023  润新知