VirtualBox

Changeset 86204 in vbox for trunk/include/VBox


Ignore:
Timestamp:
Sep 21, 2020 5:31:18 PM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
140464
Message:

AMD IOMMU: bugref:9654 Reworked register accesses (write done) to support sub-qword accesses for qword registers.
In theory, we should also support 1 and 2 byte transfers. Currently using IOMMMIO_FLAGS_WRITE_DWORD_QWORD_READ_MISSING.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/iommu-amd.h

    r86133 r86204  
    5656 * @{
    5757 */
     58#define IOMMU_MMIO_OFF_QWORD_TABLE_0_START          IOMMU_MMIO_OFF_DEV_TAB_BAR
    5859#define IOMMU_MMIO_OFF_DEV_TAB_BAR                  0x00
    5960#define IOMMU_MMIO_OFF_CMD_BUF_BAR                  0x08
     
    105106#define IOMMU_MMIO_OFF_XT_PPR_INTR_CTRL             0x178
    106107#define IOMMU_MMIO_OFF_XT_GALOG_INT_CTRL            0x180
    107 
     108#define IOMMU_MMIO_OFF_QWORD_TABLE_0_END            (IOMMU_MMIO_OFF_XT_GALOG_INT_CTRL + 8)
     109
     110#define IOMMU_MMIO_OFF_QWORD_TABLE_1_START          IOMMU_MMIO_OFF_MARC_APER_BAR_0
    108111#define IOMMU_MMIO_OFF_MARC_APER_BAR_0              0x200
    109112#define IOMMU_MMIO_OFF_MARC_APER_RELOC_0            0x208
     
    118121#define IOMMU_MMIO_OFF_MARC_APER_RELOC_3            0x250
    119122#define IOMMU_MMIO_OFF_MARC_APER_LEN_3              0x258
    120 
     123#define IOMMU_MMIO_OFF_QWORD_TABLE_1_END            (IOMMU_MMIO_OFF_MARC_APER_LEN_3 + 8)
     124
     125#define IOMMU_MMIO_OFF_QWORD_TABLE_2_START          IOMMU_MMIO_OFF_RSVD_REG
    121126#define IOMMU_MMIO_OFF_RSVD_REG                     0x1ff8
    122127
    123 #define IOMMU_MMIO_CMD_BUF_HEAD_PTR                 0x2000
    124 #define IOMMU_MMIO_CMD_BUF_TAIL_PTR                 0x2008
    125 #define IOMMU_MMIO_EVT_LOG_HEAD_PTR                 0x2010
    126 #define IOMMU_MMIO_EVT_LOG_TAIL_PTR                 0x2018
     128#define IOMMU_MMIO_OFF_CMD_BUF_HEAD_PTR             0x2000
     129#define IOMMU_MMIO_OFF_CMD_BUF_TAIL_PTR             0x2008
     130#define IOMMU_MMIO_OFF_EVT_LOG_HEAD_PTR             0x2010
     131#define IOMMU_MMIO_OFF_EVT_LOG_TAIL_PTR             0x2018
    127132
    128133#define IOMMU_MMIO_OFF_STATUS                       0x2020
     
    143148#define IOMMU_MMIO_OFF_PPR_LOG_OVERFLOW_EARLY       0x2088
    144149#define IOMMU_MMIO_OFF_PPR_LOG_B_OVERFLOW_EARLY     0x2090
     150#define IOMMU_MMIO_OFF_QWORD_TABLE_2_END            (IOMMU_MMIO_OFF_PPR_LOG_B_OVERFLOW_EARLY + 8)
    145151/** @} */
    146152
     
    698704    {
    699705        uint32_t    u32Operand1Lo;          /**< Bits 31:0   - Operand 1 (Lo). */
    700         uint32_t    u32Operand1Hi : 28;     /**< Bits 59:32  - Operand 1 (Hi). */
     706        uint32_t    u28Operand1Hi : 28;     /**< Bits 59:32  - Operand 1 (Hi). */
    701707        uint32_t    u4Opcode : 4;           /**< Bits 63:60  - Op Code. */
    702708        uint64_t    u64Operand2;            /**< Bits 127:64 - Operand 2. */
     
    884890    {
    885891        uint32_t    u32Operand1Lo;          /**< Bits 31:0   - Operand 1 (Lo). */
    886         uint32_t    u32Operand1Hi : 28;     /**< Bits 59:32  - Operand 1 (Hi). */
     892        uint32_t    u28Operand1Hi : 28;     /**< Bits 59:32  - Operand 1 (Hi). */
    887893        uint32_t    u4EvtCode : 4;          /**< Bits 63:60  - Event code. */
    888894        uint32_t    u32Operand2Lo;          /**< Bits 95:64  - Operand 2 (Lo). */
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