Jump to content

DeviceProperties mismatch

4 posts in this topic

Recommended Posts

Hi I'm very new in hackintosh world.


as I'm trying to fix DRM and add bootchime, following guide from dortania https://dortania.github.io/OpenCore-Post-Install/universal/drm.html#fixing-drm

in the guide, it shows that there is a Root for DGPU and IGPU.


when i look at my config.plist, it only has PciRoot(0x0)/Pci(0x1b,0x0) i assume it refer to audio.

but then when i use GFXUTIL, PciRoot(0x0)/Pci(0x1b,0x0) does not refer to anything and its not in the gfxutil list.

and also i dont see root of dGPU and iGPU in my configplist.


currently  my Audio works fine through hdmi, io and front port.


the question is

why is the root state PciRoot(0x0)/Pci(0x1b,0x0) , should i change with the root listed in gfxutil?

and regarding igpu and dgpu root, should i add manually so that i can add shikigva as according to the dortania guide? or there is a step to add thoes root?

can someone maybe willing to explain or help me?


Screen Shot 2020-10-18 at 10.27.50.png

GPUs I/O locations have followed the same standard for years and years:

  • dGPU (GFX0) -> I/O address 0x00010000, i.e. PciRoot(0x0)/Pci(0x01,0x0)
  • iGPU (IGPU) -> I/O address 0x00020000, i.e. PciRoot(0x0)/Pci(0x02,0x0)


Other components that usually also adopt a standard location in IOReg include USB controllers, Ethernet cards, LPC or audio codec though these may vary as apparently is the case on your Hack (audio device @1f,3):

  • USB3 (XHC) -> I/O 0x00140000, i.e. PciRoot(0x0)/Pci(0x14,0x0)
  • Ethernet (GLAN) -> I/O 0x00190000, i.e. PciRoot(0x0)/Pci(0x19,0x0)
  • LPC (LPCB) -> I/O 0x001f0000, i.e. PciRoot(0x0)/Pci(0x1f,0x0)
  • audio (HDEF) -> I/O address 0x001b0000, i.e. PciRoot(0x0)/Pci(0x1b,0x0)


One thing for sure is that you will never find any GPU device, whether integrated or discrete, located @1b,0.


You should dump your BIOS ACPI tables and consult them to look things up, starting with DSDT. You may also use IORegistryExplorer app to browse your Hack's IOReg. Given that all the hardware components locations result from manufacturer's implementation choices that you cannot change, you have to ensure that your config reflects the hardware true IO locations; failing that, you'll screw things up by attempting to inject inappropriate properties to the wrong hardware components or wrong locations. You won't damage hardware of course but you'll most likely crash the OS.

Herve Thanks for your explanation,


i followed dortania guide and use SSDTTime by Corpnewt to dump DSDT.

its weird that the config does not reflect hardware location.


in this case since audio (HDEF) in Config is PciRoot(0x0)/Pci(0x1b,0x0) while GFXutil says PciRoot(0x0)/Pci(0x1f,0x3).

should i dump DSDT again and replace the aml file?

or i should just manualy change the config according to the actual hardware location which is PciRoot(0x0)/Pci(0x1f,0x3).

It should be obvious that an OpenCore config (or any bootloader config to that effect) needs to be adjusted as required. Never expect a default config file to match your own particular hardware platform arrangements, things may differ as is the case for you. Not everything is "universal" so, modify your OC config accordingly.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...