Attention is currently required from: Evgeny Zinoviev.

Evgeny Zinoviev uploaded patch set #25 to this change.

View Change

drivers/apple: Add hybrid graphics driver

A hybrid graphics driver for Apple MacBook Pro.

The driver logic is based on lenovo/hybrid_graphics. It is splitted
into romstage and ramstage parts.

The mainboard code calls the driver from romstage to get the GPU
state. The driver reads the state from the `hybrid_grapihcs_mode`
nvram option, switches dGPU power on or off according to the state
and returns the state to the mainboard code. The mainboard code then
has to hide the disabled PCI device.

The ramstage part handles the graphics muxes. The muxes code is based
on the apple-gmux linux driver, originally written by:

* Canonical Ltd. <>
* Andreas Heider, 2010-2012 <>
* Lukas Wunner, 2015 <>

Tested on MacBook Pro Retina 15 Mid 2012 (MacBook Pro 10,1).

Change-Id: I22b66622cd2da0e9951ee726d650d204fbb8a5bc
Signed-off-by: Evgeny Zinoviev <>
A src/drivers/apple/hybrid_graphics/Kconfig
A src/drivers/apple/hybrid_graphics/
A src/drivers/apple/hybrid_graphics/acpi/gmux.asl
A src/drivers/apple/hybrid_graphics/chip.h
A src/drivers/apple/hybrid_graphics/gmux.c
A src/drivers/apple/hybrid_graphics/gmux.h
A src/drivers/apple/hybrid_graphics/hybrid_graphics.c
A src/drivers/apple/hybrid_graphics/hybrid_graphics.h
A src/drivers/apple/hybrid_graphics/romstage.c
9 files changed, 376 insertions(+), 0 deletions(-)

git pull ssh:// refs/changes/19/32719/25

To view, visit change 32719. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-Change-Id: I22b66622cd2da0e9951ee726d650d204fbb8a5bc
Gerrit-Change-Number: 32719
Gerrit-PatchSet: 25
Gerrit-Owner: Evgeny Zinoviev <>
Gerrit-Reviewer: Evgeny Zinoviev <>
Gerrit-Reviewer: Martin L Roth <>
Gerrit-Reviewer: Patrick Rudolph <>
Gerrit-Reviewer: build bot (Jenkins) <>
Gerrit-CC: Angel Pons <>
Gerrit-CC: Nicholas Chin <>
Gerrit-CC: Nico Huber <>
Gerrit-CC: Paul Menzel <>
Gerrit-Attention: Evgeny Zinoviev <>
Gerrit-MessageType: newpatchset