VirtualBox

Changeset 108864 in vbox for trunk/include


Ignore:
Timestamp:
Apr 7, 2025 9:10:44 AM (2 weeks ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
168314
Message:

VMM/GIC: bugref:10877 GIC ITS command-queue, work-in-progress.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/gic-its.h

    r108835 r108864  
    4545/** Size of the ITS register frame. */
    4646#define GITS_REG_FRAME_SIZE                                     _64K
     47
     48/** The GITS command queue page size. */
     49#define GITS_CMD_QUEUE_PAGE_SIZE                                0x1000
     50/** The GITS command queue page offset mask. */
     51#define GITS_CMD_QUEUE_PAGE_OFFSET_MASK                         0xfff
     52/** The guest page shift (x86). */
     53#define GITS_CMD_QUEUE_PAGE_SHIFT                               12
    4754
    4855/** GITS_CTLR: Control register - RW. */
     
    228235                            (SIZE, RSVD_9_8, SHAREABILITY, PHYS_ADDR, RSVD_52, OUTER_CACHE, RSVD_58_56, INNER_CACHE, RSVD_62,
    229236                             VALID));
     237/** GITS_CBASER: Physical address bits [15:12] are reserved MBZ. */
     238#define GITS_CTRL_REG_CBASER_PHYS_ADDR_RSVD_15_12_MASK          UINT64_C(0x000000000000f000)
    230239/** GITS_CBASER: Mask of valid read-write bits. */
    231240#define GITS_CTRL_REG_CBASER_RW_MASK                            (UINT64_MAX & ~(GITS_BF_CTRL_REG_CBASER_RSVD_9_8_MASK   | \
    232241                                                                                GITS_BF_CTRL_REG_CBASER_RSVD_52_MASK    | \
    233242                                                                                GITS_BF_CTRL_REG_CBASER_RSVD_58_56_MASK | \
    234                                                                                 GITS_BF_CTRL_REG_CBASER_RSVD_62_MASK))
     243                                                                                GITS_BF_CTRL_REG_CBASER_RSVD_62_MASK    | \
     244                                                                                GITS_CTRL_REG_CBASER_PHYS_ADDR_RSVD_15_12_MASK))
    235245
    236246/** GITS_CWRITER: ITS command queue write register - RW. */
     
    370380} GITSMEMATTR;
    371381
    372 
    373382/**
    374  * The ITS entry type.
     383 * ITS entry type.
    375384 * In accordance to the ARM GIC spec.
    376385 */
     
    383392} GITSITSTYPE;
    384393
     394/** GITS command size in bytes.  */
     395#define GITS_CMD_SIZE                                           32
     396
     397/**
     398 * ITS command.
     399 * In accordance to the ARM GIC spec.
     400 */
     401typedef union GITSCMD
     402{
     403    RTUINT64U au64[4];
     404    struct
     405    {
     406        uint8_t         uCmdId;
     407        uint8_t         au8Rsvd[3];
     408        uint32_t        uDeviceId;
     409
     410        uint32_t        uEventId;
     411        uint32_t        u32Rsvd;
     412
     413        uint64_t        au64Rsvd[2];
     414    } clear;
     415} GITSCMD;
     416/** Pointer to an ITS command. */
     417typedef GITSCMD *PGITSCMD;
     418/** Pointer to a const ITS command. */
     419typedef GITSCMD const *PCGITSCMD;
     420
     421
    385422#endif /* !VBOX_INCLUDED_gic_its_h */
    386423
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