amuse.me 1 Posted October 18, 2020 Posted October 18, 2020 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? Quote Share this post Link to post Share on other sites
Hervé 2,040 Posted October 18, 2020 Posted October 18, 2020 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. Quote Share this post Link to post Share on other sites
amuse.me 1 Posted October 22, 2020 Posted October 22, 2020 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). Quote Share this post Link to post Share on other sites
Hervé 2,040 Posted October 22, 2020 Posted October 22, 2020 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. Quote Share this post Link to post Share on other sites