VirtualBox

Changeset 83462 in vbox


Ignore:
Timestamp:
Mar 27, 2020 6:35:56 AM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
136696
Message:

AMD IOMMU: bugref:9654 Bits.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Bus/DevIommuAmd.cpp

    r83461 r83462  
    15491549typedef CMD_BUF_HEAD_PTR_T      EVT_LOG_B_TAIL_PTR_T;
    15501550
     1551/**
     1552 * PPR Log Auto Response Register (MMIO).
     1553 * In accordance with the AMD spec.
     1554 */
     1555typedef union
     1556{
     1557    struct
     1558    {
     1559        uint32_t    u3AutoRespCode : 4;     /**< Bits 3:0   - PprAutoRespCode: PPR log Auto Response Code. */
     1560        uint32_t    u1AutoRespMaskGen : 1;  /**< Bit  4     - PprAutoRespMaskGn: PPR log Auto Response Mask Gen. */
     1561        uint32_t    u27Rsvd0 : 27;          /**< Bits 31:5  - Reserved. */
     1562        uint32_t    u32Rsvd0;               /**< Bits 63:32 - Reserved.*/
     1563    } n;
     1564    /** The 32-bit unsigned integer view. */
     1565    uint32_t    au32[2];
     1566    /** The 64-bit unsigned integer view. */
     1567    uint64_t    u64;
     1568} PPR_LOG_AUTO_RESP_T;
     1569AssertCompileSize(PPR_LOG_AUTO_RESP_T, 8);
     1570
     1571/**
     1572 * PPR Log Overflow Early Indicator Register (MMIO).
     1573 * In accordance with the AMD spec.
     1574 */
     1575typedef union
     1576{
     1577    struct
     1578    {
     1579        uint32_t    u15Threshold : 15;  /**< Bits 14:0  - PprOvrflwEarlyThreshold: Overflow early indicator threshold. */
     1580        uint32_t    u15Rsvd0 : 15;      /**< Bits 29:15 - Reserved. */
     1581        uint32_t    u1IntrEn : 1;       /**< Bit  30    - PprOvrflwEarlyIntEn: Overflow early indicator interrupt enable. */
     1582        uint32_t    u1Enable : 1;       /**< Bit  31    - PprOvrflwEarlyEn: Overflow early indicator enable. */
     1583        uint32_t    u32Rsvd0;           /**< Bits 63:32 - Reserved. */
     1584    } n;
     1585    /** The 32-bit unsigned integer view. */
     1586    uint32_t    au32[2];
     1587    /** The 64-bit unsigned integer view. */
     1588    uint64_t    u64;
     1589} PPR_LOG_OVERFLOW_EARLY_T;
     1590AssertCompileSize(PPR_LOG_OVERFLOW_EARLY_T, 8);
     1591
     1592/**
     1593 * PPR Log B Overflow Early Indicator Register (MMIO).
     1594 * In accordance with the AMD spec.
     1595 * Currently identical to PPR_LOG_OVERFLOW_EARLY_T.
     1596 */
     1597typedef PPR_LOG_OVERFLOW_EARLY_T        PPR_LOG_B_OVERFLOW_EARLY_T;
     1598
    15511599
    15521600/**
     
    15791627    /** @} */
    15801628
     1629    /** @todo IOMMU: SMI filter. */
     1630
    15811631    /** @name MMIO: Guest Virtual-APIC Log registers.
    15821632     * @{ */
     
    16051655    /** @name MMIO: MSI Capability Block registers.
    16061656     * @{ */
    1607     MSI_MISC_INFO_T             MsiMiscInfo0;       /**< MSI Misc. info registers / MSI Vector registers. */
     1657    MSI_MISC_INFO_T             MsiMiscInfo;        /**< MSI Misc. info registers / MSI Vector registers. */
    16081658    MSI_CAP_HDR_T               MsiCapHdr;          /**< MSI Capability header register. */
    16091659    MSI_ADDR_T                  MsiAddr;            /**< MSI Address register.*/
     
    16241674    /** @} */
    16251675
     1676    /** @todo MARC registers. */
     1677
    16261678    /** @name MMIO: Reserved register.
    16271679     *  @{ */
     
    16291681    /** @} */
    16301682
    1631     /** @name MMIO: Command and Event Log registers.
     1683    /** @name MMIO: Command and Event Log pointer registers.
    16321684     * @{ */
    16331685    CMD_BUF_HEAD_PTR_T          CmdBufHeadPtr;      /**< Command buffer head pointer register. */
     
    16371689    /** @} */
    16381690
    1639     /** @name MMIO: Command Event status register.
     1691    /** @name MMIO: Command and Event Status register.
    16401692     * @{ */
    16411693    IOMMU_STATUS_T              IommuStatus;        /**< IOMMU status register. */
    16421694    /** @} */
    16431695
    1644     /** @name MMIO: PPR Log Head and Tail Pointer registers.
     1696    /** @name MMIO: PPR Log Head and Tail pointer registers.
    16451697     * @{ */
    16461698    PPR_LOG_HEAD_PTR_T          PprLogHeadPtr;      /**< IOMMU PPR log head pointer register. */
     
    16481700    /** @} */
    16491701
    1650     /** @name MMIO: Guest Virtual-APIC Log Head and Tail Pointer registers.
     1702    /** @name MMIO: Guest Virtual-APIC Log Head and Tail pointer registers.
    16511703     * @{ */
    16521704    GALOG_HEAD_PTR_T            GALogHeadPtr;       /**< Guest Virtual-APIC log head pointer register. */
     
    16541706    /** @} */
    16551707
    1656     /** @name MMIO: PPR Log B Head and Tail Pointer registers.
     1708    /** @name MMIO: PPR Log B Head and Tail pointer registers.
    16571709     *  @{ */
    16581710    PPR_LOG_B_HEAD_PTR_T        PprLogBHeadPtr;     /**< PPR log B head pointer register. */
     
    16601712    /** @} */
    16611713
    1662     /** @name MMIO: Event Log B Head and Tail Pointer registers.
     1714    /** @name MMIO: Event Log B Head and Tail pointer registers.
    16631715     * @{ */
    16641716    EVT_LOG_B_HEAD_PTR_T        EvtLogBHeadPtr;     /**< Event log B head pointer register. */
     
    16661718    /** @} */
    16671719
     1720    /** @name MMIO: PPR Log Overflow protection registers.
     1721     * @{ */
     1722    PPR_LOG_AUTO_RESP_T         PprLogAutoResp;         /**< PPR Log Auto Response register. */
     1723    PPR_LOG_OVERFLOW_EARLY_T    PprLogOverflowEarly;    /**< PPR Log Overflow Early Indicator register. */
     1724    PPR_LOG_B_OVERFLOW_EARLY_T  PprLogBOverflowEarly;   /**< PPR Log B Overflow Early Indicator register. */
     1725    /** @} */
     1726
     1727    /** @todo IOMMU: IOMMU Event counter registers. */
    16681728} IOMMU;
    16691729/** Pointer to the IOMMU device state. */
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette