Does Apple load microcode for the IGPU?

Someone asked me if I knew if Apple loads Graphics micro code (Guc) for the IGPU and I can confirm that. Yes it does. Take a look at the following log data from my Apple MacBookPro13,3:

kernel: (AppleIntelSKLGraphics) [IGPU] Will fallback to host-side scheduling if graphics firmware fails to load
kernel: (AppleIntelSKLGraphics) [IGPU] Chose to use graphics firmware based on platform
kernel: (AppleIntelSKLGraphics) [IGPU] Graphics accelerator is using scheduler interface revision 3: Apple Firmware
kernel: (AppleIntelSKLGraphics) [IGPU] Scheduler: Multiple channel indexes per command streamer
kernel: (AppleIntelSKLGraphics) [IGPU] Scheduler: Process CSB using HWS.
kernel: (AppleIntelSKLGraphics) [IGPU] Scheduler: PM notify enabled
kernel: (AppleIntelSKLGraphics) [IGPU] Graphics Address: PPGTT, Separate Address Space
kernel: (AppleIntelSKLGraphics) [IGPU] MultiForceWake Enabled: Using 3D Driver
kernel: (AppleIntelSKLGraphics) [IGPU] Begin GuC load process
kernel: (AppleIntelSKLGraphics) [IGPU] Begin GuC load process
kernel: (AppleIntelSKLGraphics) [IGPU] ForceWake Multithread = 0x20002
kernel: (AppleIntelSKLGraphics) [IGPU] ForceWake Multithread = 0x20002
kernel: (AppleIntelSKLGraphics) [IGPU] CONFIG0 (0xD00) = 0x80000000
kernel: (AppleIntelSKLGraphics) [IGPU] CONFIG0 (0xD00) = 0x80000000
kernel: (AppleIntelSKLGraphics) [IGPU] GT_THREAD_STATUS = 0x400b0000
kernel: (AppleIntelSKLGraphics) [IGPU] GT_THREAD_STATUS = 0x400b0000
kernel: (AppleIntelSKLGraphics) [IGPU] Doing retry #0
kernel: (AppleIntelSKLGraphics) [IGPU] Doing retry #0

Advertisements

13 thoughts on “Does Apple load microcode for the IGPU?

  1. Where to get the firmware and how to load it in clover? My CPU contains Iris 540, the same as MBP13,1. Also in linux the GUC firmware is loading for better power efficiency. Can we expect same results using macOS?

    • The Graphics microcode can be found in the AppleIntelSKLGraphics.kext binary but Apple checks a hash for Apple hardware (IGGuC::kSpringboardHash = Apple firmware only on Apple HW!) so that is not going to work without modifications.

      Better power management? Sure. Of course. That is part of what Guc is used for. Some even say that the graphics benchmark scores will be better.

      • How can we make it load the firmware and ignore the hash? I am looking at __ZN5IGGuC15canLoadFirmwareEP22IOGraphicsAccelerator2 function in the kext but I cannot see a way to do that, can you help?

      • I am going to assume that you have a Skylake Intel HD Graphics 530 then you may try this:

        1.) Setup Clover to change the device-id from 0x19128086 to 0x191b8086
        2.) Inject AAPL,id-platform-id 0x191b8086
        3.) cp /S*/L*/E*/AppleIntelSKLGraphics.kext/C*/M*/ ~/AppleIntelSKLG
        4.) Swap framebuffer ID 0x19120000 with 0x191b0006 (the data for your Hardware).
        5.) sudo cp ~/AppleIntelSKLG /S*/L*/E*/AppleIntelSKLGraphics.kext/C*/M*/AppleIntelSKLGraphics
        6.) sudo touch /S*/L*/Extensions
        7.) sudo reboot now

        Now check the (debug) log and report back to me.

  2. Dear Pike,

    My broken laptop XPS 13 9350 has returned, they’ve replaced my NVMe from SK Hynix PC300(512GB) to Plextor(CX2-1024, 1TB) for free. But now, there’s no more NVMe device showed in both Disk Utility and System Report->NVMExpress.

    Can you give some lights on how to fix this issue?

    Thank you!
    syscl

  3. I tried to use the RehabMan’s patch-nvme, installed HackNVMeFamily.kext in /S*/L*/E* and inject properties for my NVME. But, even worse, there’s no even Apple SSD Controller in System Report. Your patches show my NVMe correctly in ioreg, and there’s Apple SSD Controller in System Report.

    OK, I will find beta version of IONVMeFamily.kext to try to print out the log.

    Thank you,
    syscl

    • This is not the right place for ask questions about the NVMeFamily.kext patches. Please move it to where it belongs. This will get lost in time. Nobody is going to look for it here, in the wrong place.

  4. Hi Pike,
    How are you?

    My laptop is XPS 13 9350 with Iris 540 graphics card. I saw your conversation with nos1609 and zeratul below. The ig-platform-id on XPS 13 is 0x19260004, but still the error:
    [IGPU] Failed to initialize graphics firmware. Falling back to host-side scheduling

    Could you give me some hints?

    Thank you!
    syscl

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s