Changeset 108404 in vbox for trunk/src/VBox/VMM
- Timestamp:
- Feb 27, 2025 9:41:50 AM (2 months ago)
- svn:sync-xref-src-repo-rev:
- 167771
- Location:
- trunk/src/VBox/VMM/VMMR3
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/VMM/VMMR3/CPUMR3CpuId-armv8.cpp
r107650 r108404 168 168 /* Write ID_AA64ISAR0_EL1 register back. */ 169 169 pVM->cpum.s.GuestIdRegs.u64RegIdAa64Isar0El1 = u64IdReg; 170 171 172 u64IdReg = pVM->cpum.s.GuestIdRegs.u64RegIdAa64Dfr0El1; 173 PORTABLE_DISABLE_FEATURE_BIT_CFG(0, u64IdReg, ARMV8_ID_AA64DFR0_EL1_PMUVER, ARMV8_ID_AA64DFR0_EL1_PMUVER_SUPPORTED_V3, CPUMISAEXTCFG_DISABLED , ARMV8_ID_AA64DFR0_EL1_PMUVER_NOT_IMPL); 174 175 pVM->cpum.s.GuestIdRegs.u64RegIdAa64Dfr0El1 = u64IdReg; 170 176 171 177 /** @todo Other ID and feature registers. */ -
trunk/src/VBox/VMM/VMMR3/NEMR3Native-win-armv8.cpp
r108398 r108404 1763 1763 AssertReturn(VM_IS_NEM_ENABLED(pVM), VERR_NEM_IPE_9); 1764 1764 1765 /* Ensure time for the partition is suspended - it will be resumed as soon as a vCPU starts executing. */ 1766 HRESULT hrc = WHvSuspendPartitionTime(pVM->nem.s.hPartition); 1767 AssertLogRelMsgReturn(SUCCEEDED(hrc), 1768 ("WHvSuspendPartitionTime(%p) -> %Rhrc (Last=%#x/%u)\n", 1769 pVM->nem.s.hPartition, hrc, RTNtLastStatusValue(), RTNtLastErrorValue()) 1770 , VERR_NEM_GET_REGISTERS_FAILED); 1771 1765 1772 /* Call the offical API. */ 1766 1773 WHV_REGISTER_NAME enmName = WHvArm64RegisterCntvctEl0; 1767 1774 WHV_REGISTER_VALUE Value = { { {0, 0} } }; 1768 HRESULThrc = WHvGetVirtualProcessorRegisters(pVM->nem.s.hPartition, pVCpu->idCpu, &enmName, 1, &Value);1775 hrc = WHvGetVirtualProcessorRegisters(pVM->nem.s.hPartition, pVCpu->idCpu, &enmName, 1, &Value); 1769 1776 AssertLogRelMsgReturn(SUCCEEDED(hrc), 1770 1777 ("WHvGetVirtualProcessorRegisters(%p, %u,{CNTVCT_EL0},1,) -> %Rhrc (Last=%#x/%u)\n", … … 1772 1779 , VERR_NEM_GET_REGISTERS_FAILED); 1773 1780 *pcTicks = Value.Reg64; 1781 LogFlow(("NEMHCQueryCpuTick: %#RX64 (host: %#RX64)\n", *pcTicks, ASMReadTSC())); 1774 1782 if (puAux) 1775 1783 *puAux =0; … … 1797 1805 * Call the offical API to do the job. 1798 1806 */ 1799 /* Ensure time for the partition is suspended - it will be resumed as soon as a vCPU starts executing. */ 1800 HRESULT hrc = WHvSuspendPartitionTime(pVM->nem.s.hPartition); 1801 AssertLogRelMsgReturn(SUCCEEDED(hrc), 1802 ("WHvSuspendPartitionTime(%p) -> %Rhrc (Last=%#x/%u)\n", 1803 pVM->nem.s.hPartition, hrc, RTNtLastStatusValue(), RTNtLastErrorValue()) 1804 , VERR_NEM_SET_TSC); 1807 LogFlow(("NEMHCResumeCpuTickOnAll: %#RX64 (host: %#RX64)\n", uPausedTscValue, ASMReadTSC())); 1805 1808 1806 1809 /* … … 1815 1818 WHV_REGISTER_VALUE Value; 1816 1819 Value.Reg64 = uPausedTscValue; 1817 hrc = WHvSetVirtualProcessorRegisters(pVM->nem.s.hPartition, idCpu, &enmName, 1, &Value);1820 HRESULT hrc = WHvSetVirtualProcessorRegisters(pVM->nem.s.hPartition, idCpu, &enmName, 1, &Value); 1818 1821 AssertLogRelMsgReturn(SUCCEEDED(hrc), 1819 1822 ("WHvSetVirtualProcessorRegisters(%p, 0,{CNTVCT_EL0},1,%#RX64) -> %Rhrc (Last=%#x/%u)\n", … … 1825 1828 pVCpuDst->nem.s.fSyncCntvRegs = true; 1826 1829 } 1830 1831 HRESULT hrc = WHvResumePartitionTime(pVM->nem.s.hPartition); 1832 AssertLogRelMsgReturn(SUCCEEDED(hrc), 1833 ("WHvResumePartitionTime(%p) -> %Rhrc (Last=%#x/%u)\n", 1834 pVM->nem.s.hPartition, hrc, RTNtLastStatusValue(), RTNtLastErrorValue()) 1835 , VERR_NEM_SET_TSC); 1827 1836 1828 1837 return VINF_SUCCESS;
Note:
See TracChangeset
for help on using the changeset viewer.