- Timestamp:
- Mar 26, 2025 6:42:04 AM (3 weeks ago)
- svn:sync-xref-src-repo-rev:
- 168167
- Location:
- trunk/src/VBox/Main
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/include/SystemTableBuilder.h
r108558 r108742 61 61 virtual int addMmioDeviceNoIrq(const char *pszVBoxName, uint32_t uInstance, RTGCPHYS GCPhysMmio, RTGCPHYS cbMmio); 62 62 virtual int addMmioDevice(const char *pszVBoxName, uint32_t uInstance, RTGCPHYS GCPhysMmio, RTGCPHYS cbMmio, uint32_t u32Irq); 63 virtual int configureGic(uint32_t cCpus, RTGCPHYS GCPhysIntcDist, RTGCPHYS cbMmioIntcDist, RTGCPHYS GCPhysIntcReDist, RTGCPHYS cbMmioIntcReDist); 63 virtual int configureGic(uint32_t cCpus, RTGCPHYS GCPhysIntcDist, RTGCPHYS cbMmioIntcDist, RTGCPHYS GCPhysIntcReDist, 64 RTGCPHYS cbMmioIntcReDist, RTGCPHYS GCPhysIntcIts, RTGCPHYS cbMmioIntcIts); 64 65 virtual int configureClock(void); 65 66 virtual int configurePcieRootBus(const char *pszVBoxName, uint32_t aPinIrqs[4], RTGCPHYS GCPhysMmioPio, RTGCPHYS GCPhysMmioEcam, size_t cbPciMmioEcam, … … 86 87 int addMmioDeviceNoIrq(const char *pszVBoxName, uint32_t uInstance, RTGCPHYS GCPhysMmio, RTGCPHYS cbMmio); 87 88 int addMmioDevice(const char *pszVBoxName, uint32_t uInstance, RTGCPHYS GCPhysMmio, RTGCPHYS cbMmio, uint32_t u32Irq); 88 int configureGic(uint32_t cCpus, RTGCPHYS GCPhysIntcDist, RTGCPHYS cbMmioIntcDist, RTGCPHYS GCPhysIntcReDist, RTGCPHYS cbMmioIntcReDist); 89 int configureGic(uint32_t cCpus, RTGCPHYS GCPhysIntcDist, RTGCPHYS cbMmioIntcDist, RTGCPHYS GCPhysIntcReDist, 90 RTGCPHYS cbMmioIntcReDist, RTGCPHYS GCPhysIntcIts, RTGCPHYS cbMmioIntcIts); 89 91 int configureClock(void); 90 92 int configurePcieRootBus(const char *pszVBoxName, uint32_t aPinIrqs[4], RTGCPHYS GCPhysMmioPio, RTGCPHYS GCPhysMmioEcam, size_t cbPciMmioEcam, … … 111 113 RTGCPHYS m_GCPhysIntcReDist; 112 114 RTGCPHYS m_cbMmioIntcReDist; 115 RTGCPHYS m_GCPhysIntcIts; 116 RTGCPHYS m_cbMmioIntcIts; 113 117 114 118 RTGCPHYS m_GCPhysPciMmioEcam; -
trunk/src/VBox/Main/src-client/ConsoleImplConfigArmV8.cpp
r108558 r108742 507 507 RTGCPHYS cbMmioIntcReDist; 508 508 509 /** @todo Add API for configuring a GIC ITS for the VM and init this value from 510 * there. */ 511 BOOL fGicIts = FALSE; 512 509 513 /* Allow for up to 256 vCPUs in the future without changing the address space layout. */ 510 514 hrc = pResMgr->assignMmioRegion("gic", _64K + 256 * _128K, &GCPhysIntcDist, &cbMmioIntcDist); H(); … … 513 517 cbMmioIntcDist = _64K; 514 518 519 /* Reserve an MMIO region for the GIC ITS even if it might not be configured for the VM. */ 515 520 hrc = pResMgr->assignMmioRegion("gic-its", 2 * _64K, &GCPhysIntcIts, &cbMmioIntcIts); H(); 516 521 … … 526 531 InsertConfigInteger(pCfg, "DistributorMmioBase", GCPhysIntcDist); 527 532 InsertConfigInteger(pCfg, "RedistributorMmioBase", GCPhysIntcReDist); 528 InsertConfigInteger(pCfg, "ItsMmioBase", GCPhysIntcIts); 533 if (fGicIts == TRUE) 534 InsertConfigInteger(pCfg, "ItsMmioBase", GCPhysIntcIts); 529 535 530 536 vrc = RTFdtNodeAddF(hFdt, "intc@%RGp", GCPhysIntcDist); VRC(); … … 544 550 { 545 551 vrc = pSysTblsBldAcpi->configureGic(cCpus, GCPhysIntcDist, cbMmioIntcDist, 546 GCPhysIntcReDist, cbMmioIntcReDist );552 GCPhysIntcReDist, cbMmioIntcReDist, GCPhysIntcIts, cbMmioIntcIts); 547 553 VRC(); 548 554 } -
trunk/src/VBox/Main/src-client/SystemTableBuilder.cpp
r108560 r108742 345 345 346 346 int SystemTableBuilderAcpi::configureGic(uint32_t cCpus, RTGCPHYS GCPhysIntcDist, RTGCPHYS cbMmioIntcDist, RTGCPHYS GCPhysIntcReDist, 347 RTGCPHYS cbMmioIntcReDist )347 RTGCPHYS cbMmioIntcReDist, RTGCPHYS GCPhysIntcIts, RTGCPHYS cbMmioIntcIts) 348 348 { 349 349 m_cCpus = cCpus; … … 352 352 m_GCPhysIntcReDist = GCPhysIntcReDist; 353 353 m_cbMmioIntcReDist = cbMmioIntcReDist; 354 m_GCPhysIntcIts = GCPhysIntcIts; 355 m_cbMmioIntcIts = cbMmioIntcIts; 354 356 return VINF_SUCCESS; 355 357 } … … 522 524 523 525 cbMadt += sizeof(*pGicr); 526 527 /* Build the GITS. */ 528 PACPIMADTGICITS pGits = (PACPIMADTGICITS)(pGicr + 1); 529 pGits->bType = ACPI_MADT_INTR_CTRL_TYPE_GIC_ITS; 530 pGits->cbThis = sizeof(*pGits); 531 pGits->u64PhysAddrBase = m_GCPhysIntcIts; 532 pGits->u32GicItsId = 0; 533 534 cbMadt += sizeof(*pGits); 524 535 525 536 /* Finalize the MADT. */ … … 1442 1453 1443 1454 int SystemTableBuilder::configureGic(uint32_t cCpus, RTGCPHYS GCPhysIntcDist, RTGCPHYS cbMmioIntcDist, RTGCPHYS GCPhysIntcReDist, 1444 RTGCPHYS cbMmioIntcReDist )1445 { 1446 RT_NOREF(cCpus, GCPhysIntcDist, cbMmioIntcDist, GCPhysIntcReDist, cbMmioIntcReDist );1455 RTGCPHYS cbMmioIntcReDist, RTGCPHYS GCPhysIntcIts, RTGCPHYS cbMmioIntcIts) 1456 { 1457 RT_NOREF(cCpus, GCPhysIntcDist, cbMmioIntcDist, GCPhysIntcReDist, cbMmioIntcReDist, GCPhysIntcIts, cbMmioIntcIts); 1447 1458 return VERR_NOT_IMPLEMENTED; 1448 1459 }
Note:
See TracChangeset
for help on using the changeset viewer.