VirtualBox

Changeset 108871 in vbox for trunk/include


Ignore:
Timestamp:
Apr 7, 2025 1:38:57 PM (2 weeks ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
168321
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

    r108865 r108871  
    390390
    391391/**
    392  * ITS entry type.
     392 * GITS entry type.
    393393 * In accordance to the ARM GIC spec.
    394394 */
     
    411411    {
    412412        uint8_t         uCmdId;
    413         uint8_t         au8Rsvd[3];
    414         uint32_t        uDeviceId;
    415 
    416         uint32_t        uEventId;
    417         uint32_t        u32Rsvd;
    418 
    419         uint64_t        au64Rsvd[2];
    420     } clear;
     413        uint8_t         auData[31];
     414    } common;
    421415} GITSCMD;
    422416/** Pointer to an ITS command. */
     
    426420AssertCompileSize(GITSCMD, GITS_CMD_SIZE);
    427421
     422/** @name GITS command IDs.
     423 * @{ */
     424#define GITS_CMD_ID_CLEAR                                       0x04
     425#define GITS_CMD_ID_DISCARD                                     0x0f
     426#define GITS_CMD_ID_INT                                         0x03
     427#define GITS_CMD_ID_INV                                         0x0c
     428#define GITS_CMD_ID_INVALL                                      0x0d
     429#define GITS_CMD_ID_INVDB                                       0x2e
     430#define GITS_CMD_ID_MAPC                                        0x09
     431#define GITS_CMD_ID_MAPD                                        0x08
     432#define GITS_CMD_ID_MAPI                                        0x0b
     433#define GITS_CMD_ID_MAPTI                                       0x0a
     434#define GITS_CMD_ID_MOVALL                                      0x0e
     435#define GITS_CMD_ID_MOVI                                        0x01
     436#define GITS_CMD_ID_SYNC                                        0x05
     437#define GITS_CMD_ID_VINVALL                                     0x2d
     438#define GITS_CMD_ID_VMAPI                                       0x2b
     439#define GITS_CMD_ID_VMAPP                                       0x29
     440#define GITS_CMD_ID_VMAPTI                                      0x2a
     441#define GITS_CMD_ID_VMOVI                                       0x21
     442#define GITS_CMD_ID_VMOVP                                       0x22
     443#define GITS_CMD_ID_VSGI                                        0x23
     444#define GITS_CMD_ID_VSYNC                                       0x25
     445/** @} */
     446
     447/** @name GITS command: MAPC.
     448 * @{ */
     449/** MAPC DW0: Command Id. */
     450#define GITS_BF_CMD_MAPC_DW0_CMD_ID_SHIFT                       0
     451#define GITS_BF_CMD_MAPC_DW0_CMD_ID_MASK                        UINT64_C(0x00000000000000ff)
     452/** MAPC DW0: Reserved (bits 63:8). */
     453#define GITS_BF_CMD_MAPC_DW0_RSVD_63_8_SHIFT                    8
     454#define GITS_BF_CMD_MAPC_DW0_RSVD_63_8_MASK                     UINT64_C(0xffffffffffffff00)
     455RT_BF_ASSERT_COMPILE_CHECKS(GITS_BF_CMD_MAPC_DW0_, UINT64_C(0), UINT64_MAX,
     456                            (CMD_ID, RSVD_63_8));
     457
     458/** MAPC DW1: Reserved (bits 63:0). */
     459#define GITS_BF_CMD_MAPC_DW1_RSVD_63_0_MASK                     UINT64_MAX
     460
     461/** MAPC DW2: IC ID - The interrupt collection ID. */
     462#define GITS_BF_CMD_MAPC_DW2_IC_ID_SHIFT                        0
     463#define GITS_BF_CMD_MAPC_DW2_IC_ID_MASK                         UINT64_C(0x000000000000ffff)
     464/** MAPC DW2: RDBase - The target redistributor base address or PE number. */
     465#define GITS_BF_CMD_MAPC_DW2_RDBASE_SHIFT                       16
     466#define GITS_BF_CMD_MAPC_DW2_RDBASE_MASK                        UINT64_C(0x0007ffffffff0000)
     467/** MAPC DW2: Reserved (bits 62:51). */
     468#define GITS_BF_CMD_MAPC_DW2_RSVD_62_51_SHIFT                   51
     469#define GITS_BF_CMD_MAPC_DW2_RSVD_62_51_MASK                    UINT64_C(0x7ff8000000000000)
     470/** MAPC DW2: Valid bit. */
     471#define GITS_BF_CMD_MAPC_DW2_VALID_SHIFT                        63
     472#define GITS_BF_CMD_MAPC_DW2_VALID_MASK                         UINT64_C(0x8000000000000000)
     473RT_BF_ASSERT_COMPILE_CHECKS(GITS_BF_CMD_MAPC_DW2_, UINT64_C(0), UINT64_MAX,
     474                            (IC_ID, RDBASE, RSVD_62_51, VALID));
     475/** @} */
     476
    428477#endif /* !VBOX_INCLUDED_gic_its_h */
    429478
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