VirtualBox

Changeset 108912 in vbox


Ignore:
Timestamp:
Apr 9, 2025 10:00:06 AM (11 days ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
168380
Message:

VMM/GIC: bugref:10877 GIC ITS - The interrupt collection table internal to the ITS, its size is restricted to 256 entries.

Location:
trunk/src/VBox/VMM
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMAll/GITSAll.cpp

    r108909 r108912  
    385385    Log4Func(("\n"));
    386386
    387     pGitsDev->uCtrlReg   = RT_BF_MAKE(GITS_BF_CTRL_REG_CTLR_QUIESCENT, 1);
     387    pGitsDev->uCtrlReg   = RT_BF_MAKE(GITS_BF_CTRL_REG_CTLR_QUIESCENT,  1);
    388388    pGitsDev->uTypeReg.u = RT_BF_MAKE(GITS_BF_CTRL_REG_TYPER_PHYSICAL,  1)     /* Physical LPIs supported. */
    389389                       /*| RT_BF_MAKE(GITS_BF_CTRL_REG_TYPER_VIRTUAL,   0) */  /* Virtual LPIs not supported. */
     
    395395                       /*| RT_BF_MAKE(GITS_BF_CTRL_REG_TYPER_PTA,       0) */  /* Target is VCPU ID not address. */
    396396                         | RT_BF_MAKE(GITS_BF_CTRL_REG_TYPER_HCC,       255)   /* Collection count. */
    397                        /*| RT_BF_MAKE(GITS_BF_CTRL_REG_TYPER_CID_BITS,  0) */  /* CIL specifies collection ID size. */
    398                        /*| RT_BF_MAKE(GITS_BF_CTRL_REG_TYPER_CIL,       0) */  /* 16-bit collection IDs. */
     397                       /*| RT_BF_MAKE(GITS_BF_CTRL_REG_TYPER_CID_BITS,  0) */  /* 16-bit collection IDs. */
     398                         | RT_BF_MAKE(GITS_BF_CTRL_REG_TYPER_CIL,       1)     /* Collection ID limit enforced. */
    399399                       /*| RT_BF_MAKE(GITS_BF_CTRL_REG_TYPER_VMOVP,     0) */  /* VMOVP not supported. */
    400400                       /*| RT_BF_MAKE(GITS_BF_CTRL_REG_TYPER_MPAM,      0) */  /* MPAM no supported. */
     
    407407                         | RT_BF_MAKE(GITS_BF_CTRL_REG_TYPER_INV,       1);    /* ITS caches invalidated when clearing
    408408                                                                                  GITS_CTLR.Enabled and GITS_BASER<n>.Valid. */
     409    Assert(RT_ELEMENTS(pGitsDev->auCtes) >= RT_BF_GET(pGitsDev->uTypeReg.u, GITS_BF_CTRL_REG_TYPER_HCC));
    409410    RT_ZERO(pGitsDev->aItsTableRegs);
    410411    //pGitsDev->aItsTableRegs[0].u = RT_BF_MAKE(GITS_BF_CTRL_REG_BASER_ENTRY_SIZE, )
  • trunk/src/VBox/VMM/include/GITSInternal.h

    r108909 r108912  
    6666 * @{ */
    6767#define GITS_BF_ITE_ICID_SHIFT                      0
    68 #define GITS_BF_ITE_ICID_MASK                       UINT64_C(0x000000000000ffff)
    69 #define GITS_BF_ITE_INTID_SHIFT                     16
    70 #define GITS_BF_ITE_INTID_MASK                      UINT64_C(0x00000000ffff0000)
    71 #define GITS_BF_ITE_RSVD_62_32_SHIFT                32
    72 #define GITS_BF_ITE_RSVD_62_32_MASK                 UINT64_C(0x7fffffff00000000)
    73 #define GITS_BF_ITE_VALID_SHIFT                     63
    74 #define GITS_BF_ITE_VALID_MASK                      UINT64_C(0x8000000000000000)
    75 RT_BF_ASSERT_COMPILE_CHECKS(GITS_BF_ITE_, UINT64_C(0), UINT64_MAX,
    76                             (ICID, INTID, RSVD_62_32, VALID));
     68#define GITS_BF_ITE_ICID_MASK                       UINT32_C(0x000000ff)
     69#define GITS_BF_ITE_INTID_SHIFT                     8
     70#define GITS_BF_ITE_INTID_MASK                      UINT32_C(0x00ffff00)
     71#define GITS_BF_ITE_RSVD_30_24_SHIFT                24
     72#define GITS_BF_ITE_RSVD_30_24_MASK                 UINT32_C(0x7f000000)
     73#define GITS_BF_ITE_VALID_SHIFT                     31
     74#define GITS_BF_ITE_VALID_MASK                      UINT32_C(0x80000000)
     75RT_BF_ASSERT_COMPILE_CHECKS(GITS_BF_ITE_, UINT32_C(0), UINT32_MAX,
     76                            (ICID, INTID, RSVD_30_24, VALID));
    7777/** GITS ITE: Size of the ITE in bytes. */
    78 #define GITS_ITE_SIZE                               8
     78#define GITS_ITE_SIZE                               4
    7979/** @} */
    8080
     
    160160     */
    161161    /** The collection table. */
    162     uint32_t                auCtes[2048];
     162    uint32_t                auCtes[256];
    163163    /** @} */
    164164
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