diff --git a/Documentation/gfx/libgfxinit.md b/Documentation/gfx/libgfxinit.md index bb4528b958e1..40f194a4eb36 100644 --- a/Documentation/gfx/libgfxinit.md +++ b/Documentation/gfx/libgfxinit.md @@ -88,11 +88,28 @@ know through which interface the EDID can be queried: select GFX_GMA_ANALOG_I2C_HDMI_C # or select GFX_GMA_ANALOG_I2C_HDMI_D -Beside Kconfig options, *libgfxinit* needs to know which ports are -implemented on a board and should be probed for displays. The mapping -between the physical ports and these entries depends on the hardware -implementation and can be recovered by testing or studying the output -of `intelvbttool` or `intel_vbt_decode`. +*libgfxinit* needs to know which ports are implemented on a board +and should be probed for displays. There are two mechanisms to +constrain the list of ports to probe, 1. port presence straps on +the mainboard, and 2. a list of ports provided by *coreboot* (see +below). + +Presence straps are configured via the state of certains pins of +the chipset at reset time. They are documented in the chipset's +datasheets. By default, *libgfxinit* honors these straps for +safety. However, some boards don't implement the straps correctly. +If ports are not strapped as implemented by error, one can select +an option to ignore the straps: + + select GFX_GMA_IGNORE_PRESENCE_STRAPS + +In the opposite case, that ports are strapped as implemented, +but are actually unconnected, one has to make sure that the +list of ports in *coreboot* omits them. + +The mapping between the physical ports and these entries depends on +the hardware implementation and can be recovered by testing or +studying the output of `intelvbttool` or `intel_vbt_decode`. Each board has to implement the package `GMA.Mainboard` with a list: ports : HW.GFX.GMA.Display_Probing.Port_List; diff --git a/src/drivers/intel/gma/Kconfig b/src/drivers/intel/gma/Kconfig index ad44a2f48076..635de1c87a4d 100644 --- a/src/drivers/intel/gma/Kconfig +++ b/src/drivers/intel/gma/Kconfig @@ -127,4 +127,11 @@ config GFX_GMA_ANALOG_I2C_PORT digital displays. In that case, the EDID for a VGA display has to be read over the I2C interface of the coupled digital port. +config GFX_GMA_IGNORE_PRESENCE_STRAPS + def_bool n + help + libgfxinit uses the GPU presence straps to determine if a display port + is present/enabled. Select this option if a board doesn't correctly implement + these straps, causing libgfxinit to fail to detect an attached panel. + endif