- Timestamp:
- Apr 2, 2025 12:39:01 PM (13 days ago)
- svn:sync-xref-src-repo-rev:
- 168276
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/GITSAll.cpp
r108829 r108830 314 314 static uint32_t const s_acbPageSize[] = { _4K, _16K, _64K, _64K }; 315 315 static const char* const s_apszType[] = { "UnImpl", "Devices", "vPEs", "Intr Collections" }; 316 316 317 uint64_t const uReg = pGitsDev->aItsTableRegs[8].u; 317 uint16_t const cPages = RT_BF_GET(uReg, GITS_BF_CTRL_REG_BASER_SIZE) + 1; 318 uint16_t const uSize = RT_BF_GET(uReg, GITS_BF_CTRL_REG_BASER_SIZE); 319 uint16_t const cPages = uSize > 0 ? uSize + 1 : 0; 318 320 uint8_t const idxPageSize = RT_BF_GET(uReg, GITS_BF_CTRL_REG_BASER_PAGESIZE); 319 321 uint64_t const cbItsTable = cPages * s_acbPageSize[idxPageSize]; … … 322 324 const char *pszType = s_apszType[idxType]; 323 325 pHlp->pfnPrintf(pHlp, " aItsTableReg[%u] = %#RX64\n", i, uReg); 324 pHlp->pfnPrintf(pHlp, " Size = %#x ( %u page(s) of %.Rhcb each)\n", cPages - 1, cPages, cbItsTable);326 pHlp->pfnPrintf(pHlp, " Size = %#x (pages=%u total=%.Rhcb)\n", uSize, cPages, cbItsTable); 325 327 pHlp->pfnPrintf(pHlp, " Page size = %#x (%.Rhcb)\n", idxPageSize, s_acbPageSize[idxPageSize]); 326 328 pHlp->pfnPrintf(pHlp, " Shareability = %#x\n", RT_BF_GET(uReg, GITS_BF_CTRL_REG_BASER_SHAREABILITY)); … … 333 335 pHlp->pfnPrintf(pHlp, " Valid = %RTbool\n", RT_BOOL(RT_BF_GET(uReg, GITS_BF_CTRL_REG_BASER_VALID))); 334 336 } 335 pHlp->pfnPrintf(pHlp, "\n");336 337 337 338 /* GITS_CBASER. */ 338 339 { 339 uint64_t const uReg = pGitsDev->uCmdBaseReg.u; 340 uint8_t const uSize = RT_BF_GET(uReg, GITS_BF_CTRL_REG_CBASER_SIZE); 340 uint64_t const uReg = pGitsDev->uCmdBaseReg.u; 341 uint8_t const uSize = RT_BF_GET(uReg, GITS_BF_CTRL_REG_CBASER_SIZE); 342 uint16_t const cPages = uSize > 0 ? uSize + 1 : 0; 341 343 pHlp->pfnPrintf(pHlp, " uCmdBaseReg = %#RX64\n", uReg); 342 pHlp->pfnPrintf(pHlp, " Size = %#x ( %u %.Rhcb pages)\n", uSize, uSize + 1, _4K * (uSize + 1));344 pHlp->pfnPrintf(pHlp, " Size = %#x (pages=%u total=%.Rhcb)\n", uSize, cPages, _4K * cPages); 343 345 pHlp->pfnPrintf(pHlp, " Shareability = %#x\n", RT_BF_GET(uReg, GITS_BF_CTRL_REG_CBASER_SHAREABILITY)); 344 346 pHlp->pfnPrintf(pHlp, " Phys addr = %#RX64\n", uReg & GITS_BF_CTRL_REG_CBASER_PHYS_ADDR_MASK);
Note:
See TracChangeset
for help on using the changeset viewer.