When adding a GPU to a vSphere VM using PCI passthrough there are a couple of additional settings that need to be done or the VM will not boot.
StateFailed - Module 'DevicePowerOn' power on failed.
Errors
Module 'DevicePowerOn' power on failed.Failed to start the virtual machine.
YYYY-MM-DDTHH:MM:SS In(05) vmx - PCIPassthru: Device ####:##:##.# barIndex 0 type 2 realaddr #x###### size ###### flags 0YYYY-MM-DDTHH:MM:SS In(05) vmx - PCIPassthru: Device ####:##:##.# barIndex 1 type 3 realaddr #x###### size ###### flags 12YYYY-MM-DDTHH:MM:SS In(05) vmx - PCIPassthru: Device ####:##:##.# barIndex 3 type 3 realaddr #x###### size ###### flags 12YYYY-MM-DDTHH:MM:SS In(05) vmx - PCIPassthru: Device has PCI Express Cap Version 2(size 60)YYYY-MM-DDTHH:MM:SS In(05) vmx - PCIPassthru: Registered a PCI device for ####:##:##.# vIRQ 0x11, physical MSI = Enabled (vmmInt = Enabled),IntrPin = 1YYYY-MM-DDTHH:MM:SS In(05) vmx - PCIPassthru: total number of pages needed (######) exceeds limit (######), failing In(05) vmx - Module 'DevicePowerOn' power on failedYYYY-MM-DDTHH:MM:SS In(05) vmx - VMX_PowerOn: ModuleTable_PowerOn = 0YYYY-MM-DDTHH:MM:SS In(05) svga - SVGA thread is exiting the main loopYYYY-MM-DDTHH:MM:SS In(05) vmx - Destroying virtual dev for scsi0:0 vscsi=#######YYYY-MM-DDTHH:MM:SS
pciPassthru.use64bitMMIO = TRUEpciPassthru.64bitMMIOSizeGB = "MMIO_Space_In_GB"pciPassthru.use64bitMMIO = TRUEpciPassthru.64bitMMIOSizeGB = 128Below are the steps to determine the value of "MMIO_Space_In_GB" for the parameter "pciPassthru.64bitMMIOSizeGB":
Powers of 2 are 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024
Here are some other useful configurations:
Msg_post: Error
[msg.efi.pciMmioError] The Firmware could not allocate ###### KB of PCI MMIO Increase the size of PCI MMIO and try again