Changeset 108833 in vbox for trunk/src/VBox/VMM/VMMAll
- Timestamp:
- Apr 3, 2025 8:16:02 AM (5 weeks ago)
- svn:sync-xref-src-repo-rev:
- 168281
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMAll/GITSAll.cpp
r108830 r108833 110 110 { 111 111 Assert(cb == 4 || cb == 8); 112 Assert(!(offReg & 3)); 112 113 RT_NOREF(cb); 113 114 … … 200 201 } 201 202 202 Log4Func(("offReg=%#RX16 (%s) uReg=%#RX64 \n", offReg, gitsGetCtrlRegDescription(offReg), uReg));203 Log4Func(("offReg=%#RX16 (%s) uReg=%#RX64 [%u-bit]\n", offReg, gitsGetCtrlRegDescription(offReg), uReg, cb << 3)); 203 204 return uReg; 204 205 } … … 208 209 { 209 210 Assert(cb == 8 || cb == 4); 211 Assert(!(offReg & 3)); 210 212 RT_NOREF(pGitsDev, cb); 211 213 212 214 uint64_t uReg = 0; 213 AssertReleaseMsgFailed(("offReg=%#x (%s) uReg=%#RX64 \n", offReg, gitsGetTranslationRegDescription(offReg), uReg));215 AssertReleaseMsgFailed(("offReg=%#x (%s) uReg=%#RX64 [%u-bit]\n", offReg, gitsGetTranslationRegDescription(offReg), uReg, cb << 3)); 214 216 return uReg; 215 217 } … … 218 220 DECL_HIDDEN_CALLBACK(void) gitsMmioWriteCtrl(PGITSDEV pGitsDev, uint16_t offReg, uint64_t uValue, unsigned cb) 219 221 { 222 Assert(cb == 8 || cb == 4); 223 Assert(!(offReg & 3)); 224 220 225 /* 221 226 * GITS_BASER<n>. … … 274 279 } 275 280 276 Log4Func(("offReg=%#RX16 (%s) uValue=%#RX32 \n", offReg, gitsGetCtrlRegDescription(offReg), uValue));281 Log4Func(("offReg=%#RX16 (%s) uValue=%#RX32 [%u-bit]\n", offReg, gitsGetCtrlRegDescription(offReg), uValue, cb << 3)); 277 282 } 278 283 … … 281 286 { 282 287 RT_NOREF(pGitsDev); 283 AssertReleaseMsgFailed(("offReg=%#x uValue=%#RX64 [%-bit]\n", offReg, uValue, cb == 8 ? "64" : "32")); 288 Assert(cb == 8 || cb == 4); 289 Assert(!(offReg & 3)); 290 AssertReleaseMsgFailed(("offReg=%#x uValue=%#RX64 [%u-bit]\n", offReg, uValue, cb << 3)); 284 291 } 285 292 … … 288 295 { 289 296 Log4Func(("\n")); 290 pGitsDev->fEnabled 291 pGitsDev->fUnmappedMsiReport ing= false;292 pGitsDev->fQuiescent 297 pGitsDev->fEnabled = false; 298 pGitsDev->fUnmappedMsiReport = false; 299 pGitsDev->fQuiescent = true; 293 300 RT_ZERO(pGitsDev->aItsTableRegs); 294 pGitsDev->uCmdBaseReg.u 295 pGitsDev->uCmdReadReg 296 pGitsDev->uCmdWriteReg 301 pGitsDev->uCmdBaseReg.u = 0; 302 pGitsDev->uCmdReadReg = 0; 303 pGitsDev->uCmdWriteReg = 0; 297 304 } 298 305 … … 304 311 305 312 pHlp->pfnPrintf(pHlp, "GIC ITS:\n"); 306 pHlp->pfnPrintf(pHlp, " uArchRev 307 pHlp->pfnPrintf(pHlp, " fEnabled 308 pHlp->pfnPrintf(pHlp, " fUnmappedMsiReport ing = %RTbool\n", pGitsDev->fUnmappedMsiReporting);309 pHlp->pfnPrintf(pHlp, " fQuiescent 313 pHlp->pfnPrintf(pHlp, " uArchRev = %u\n", pGitsDev->uArchRev); 314 pHlp->pfnPrintf(pHlp, " fEnabled = %RTbool\n", pGitsDev->fEnabled); 315 pHlp->pfnPrintf(pHlp, " fUnmappedMsiReport = %RTbool\n", pGitsDev->fUnmappedMsiReport); 316 pHlp->pfnPrintf(pHlp, " fQuiescent = %RTbool\n", pGitsDev->fQuiescent); 310 317 311 318 /* GITS_BASER<n>. */ … … 323 330 uint8_t const idxType = RT_BF_GET(uReg, GITS_BF_CTRL_REG_BASER_TYPE); 324 331 const char *pszType = s_apszType[idxType]; 325 pHlp->pfnPrintf(pHlp, " aItsTableReg[%u] 326 pHlp->pfnPrintf(pHlp, " Size 327 pHlp->pfnPrintf(pHlp, " Page size 328 pHlp->pfnPrintf(pHlp, " Shareability 329 pHlp->pfnPrintf(pHlp, " Phys addr 330 pHlp->pfnPrintf(pHlp, " Entry size 331 pHlp->pfnPrintf(pHlp, " Outer cache 332 pHlp->pfnPrintf(pHlp, " Type = %#x %s\n", idxType, pszType);333 pHlp->pfnPrintf(pHlp, " Inner cache 334 pHlp->pfnPrintf(pHlp, " Indirect 335 pHlp->pfnPrintf(pHlp, " Valid 332 pHlp->pfnPrintf(pHlp, " aItsTableReg[%u] = %#RX64\n", i, uReg); 333 pHlp->pfnPrintf(pHlp, " Size = %#x (pages=%u total=%.Rhcb)\n", uSize, cPages, cbItsTable); 334 pHlp->pfnPrintf(pHlp, " Page size = %#x (%.Rhcb)\n", idxPageSize, s_acbPageSize[idxPageSize]); 335 pHlp->pfnPrintf(pHlp, " Shareability = %#x\n", RT_BF_GET(uReg, GITS_BF_CTRL_REG_BASER_SHAREABILITY)); 336 pHlp->pfnPrintf(pHlp, " Phys addr = %#RX64\n", uReg & GITS_BF_CTRL_REG_BASER_PHYS_ADDR_MASK); 337 pHlp->pfnPrintf(pHlp, " Entry size = %#x (%u bytes)\n", uEntrySize, uEntrySize > 0 ? uEntrySize + 1 : 0); 338 pHlp->pfnPrintf(pHlp, " Outer cache = %#x\n", RT_BF_GET(uReg, GITS_BF_CTRL_REG_BASER_OUTER_CACHE)); 339 pHlp->pfnPrintf(pHlp, " Type = %#x (%s)\n", idxType, pszType); 340 pHlp->pfnPrintf(pHlp, " Inner cache = %#x\n", RT_BF_GET(uReg, GITS_BF_CTRL_REG_BASER_INNER_CACHE)); 341 pHlp->pfnPrintf(pHlp, " Indirect = %RTbool\n", RT_BOOL(RT_BF_GET(uReg, GITS_BF_CTRL_REG_BASER_INDIRECT))); 342 pHlp->pfnPrintf(pHlp, " Valid = %RTbool\n", RT_BOOL(RT_BF_GET(uReg, GITS_BF_CTRL_REG_BASER_VALID))); 336 343 } 337 344 … … 341 348 uint8_t const uSize = RT_BF_GET(uReg, GITS_BF_CTRL_REG_CBASER_SIZE); 342 349 uint16_t const cPages = uSize > 0 ? uSize + 1 : 0; 343 pHlp->pfnPrintf(pHlp, " uCmdBaseReg 344 pHlp->pfnPrintf(pHlp, " Size 345 pHlp->pfnPrintf(pHlp, " Shareability 346 pHlp->pfnPrintf(pHlp, " Phys addr 347 pHlp->pfnPrintf(pHlp, " Outer cache 348 pHlp->pfnPrintf(pHlp, " Inner cache 349 pHlp->pfnPrintf(pHlp, " Valid 350 pHlp->pfnPrintf(pHlp, " uCmdBaseReg = %#RX64\n", uReg); 351 pHlp->pfnPrintf(pHlp, " Size = %#x (pages=%u total=%.Rhcb)\n", uSize, cPages, _4K * cPages); 352 pHlp->pfnPrintf(pHlp, " Shareability = %#x\n", RT_BF_GET(uReg, GITS_BF_CTRL_REG_CBASER_SHAREABILITY)); 353 pHlp->pfnPrintf(pHlp, " Phys addr = %#RX64\n", uReg & GITS_BF_CTRL_REG_CBASER_PHYS_ADDR_MASK); 354 pHlp->pfnPrintf(pHlp, " Outer cache = %#x\n", RT_BF_GET(uReg, GITS_BF_CTRL_REG_CBASER_OUTER_CACHE)); 355 pHlp->pfnPrintf(pHlp, " Inner cache = %#x\n", RT_BF_GET(uReg, GITS_BF_CTRL_REG_CBASER_INNER_CACHE)); 356 pHlp->pfnPrintf(pHlp, " Valid = %RTbool\n", RT_BF_GET(uReg, GITS_BF_CTRL_REG_CBASER_VALID)); 350 357 } 351 358 … … 353 360 { 354 361 uint32_t const uReg = pGitsDev->uCmdReadReg; 355 pHlp->pfnPrintf(pHlp, " uCmdReadReg 362 pHlp->pfnPrintf(pHlp, " uCmdReadReg = 0x%05RX32 (stalled=%RTbool offset=%RU32)\n", uReg, 356 363 RT_BF_GET(uReg, GITS_BF_CTRL_REG_CREADR_STALLED), uReg & GITS_BF_CTRL_REG_CREADR_OFFSET_MASK); 357 364 } … … 360 367 { 361 368 uint32_t const uReg = pGitsDev->uCmdWriteReg; 362 pHlp->pfnPrintf(pHlp, " uCmdWriteReg 369 pHlp->pfnPrintf(pHlp, " uCmdWriteReg = 0x%05RX32 ( retry=%RTbool offset=%RU32)\n", uReg, 363 370 RT_BF_GET(uReg, GITS_BF_CTRL_REG_CWRITER_RETRY), uReg & GITS_BF_CTRL_REG_CWRITER_OFFSET_MASK); 364 371 }
Note:
See TracChangeset
for help on using the changeset viewer.