Daniel Maslowski has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/33265
Change subject: Documentation: libgfxinit timing parameters ......................................................................
Documentation: libgfxinit timing parameters
Change-Id: If1a393578556d51499c700b68187034830d19215 Signed-off-by: Daniel Maslowski daniel.maslowski@img.ly --- A Documentation/gfx/intel-gma.md M Documentation/gfx/libgfxinit.md M Documentation/index.md 3 files changed, 43 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/65/33265/1
diff --git a/Documentation/gfx/intel-gma.md b/Documentation/gfx/intel-gma.md new file mode 100644 index 0000000..d6a3992 --- /dev/null +++ b/Documentation/gfx/intel-gma.md @@ -0,0 +1,39 @@ +Intel GMA (Graphics Media Accelerator) Specifics +================================================ + +Timing Parameters +----------------- + +From the binary file `edid` in the sys filesystem on Linux, the panel can be +identified. The exact path may differ slightly. Here is an example: + +```sh +$ strings /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/edid +@0 5 +LG Display +LP140WF3-SPD1 +``` + +To figure out the timing parameters, refer to the [Intel Programmer's Reference +Manuals](https://01.org/linuxgraphics/documentation/hardware-specification-prms) +and try to find the datasheet of the panel using the information from `edid`. +In the example above, you would search for `LP140WF3-SPD1`. Find a table listing +the power sequence timing parameters, which are usually named T[N] and also +referenced in Intel's respective registers listing. You need the values for +`PP_ON_DELAYS`, `PP_OFF_DELAYS` and `PP_DIVISOR` for your `devicetree.cb`: + +```eval_rst ++----------------------------+---------------------------------------+--------+ +|Intel docs | devicetree.cb | Haswell| ++----------------------------+---------------------------------------+--------+ +|Power up delay | `gpu_panel_power_up_delay` | T3 | ++----------------------------+---------------------------------------+--------+ +|Power on to backlight on | `gpu_panel_power_backlight_on_delay` | T7 | ++----------------------------+---------------------------------------+--------+ +|Power Down delay | `gpu_panel_power_down_delay` | T10 | ++----------------------------+---------------------------------------+--------+ +|Backlight off to power down | `gpu_panel_power_backlight_off_delay` | T7 | ++----------------------------+---------------------------------------+--------+ +|Power Cycle Delay | `gpu_panel_power_cycle_delay` | T12 | ++----------------------------+---------------------------------------+--------+ +``` diff --git a/Documentation/gfx/libgfxinit.md b/Documentation/gfx/libgfxinit.md index c50761a..a80291c 100644 --- a/Documentation/gfx/libgfxinit.md +++ b/Documentation/gfx/libgfxinit.md @@ -55,6 +55,9 @@ GMA: Per Board Configuration ----------------------------
+In order to set up the display panel, see the +[specifics for Intel GMA](gfx/intel-gma.md). + There are a few Kconfig symbols to consider. To indicate that a board can initialize graphics through *libgfxinit*:
diff --git a/Documentation/index.md b/Documentation/index.md index 6dbbf4d..8e18f4a 100644 --- a/Documentation/index.md +++ b/Documentation/index.md @@ -173,6 +173,7 @@ * [Dealing with Untrusted Input in SMM](technotes/2017-02-dealing-with-untrusted-input-in-smm.md) * [GPIO toggling in ACPI AML](acpi/gpio.md) * [Native Graphics Initialization with libgfxinit](gfx/libgfxinit.md) +* [Intel GMA specifics](gfx/intel-gma.md) * [Architecture-specific documentation](arch/index.md) * [Northbridge-specific documentation](northbridge/index.md) * [System on Chip-specific documentation](soc/index.md)
Nico Huber has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/33265 )
Change subject: Documentation: libgfxinit timing parameters ......................................................................
Patch Set 1: Code-Review+1
(2 comments)
Just two small comments...
Please make sure that the `Change-Id` is kept in the commit message. Last resort, copy it manually.
https://review.coreboot.org/#/c/33265/1//COMMIT_MSG Commit Message:
https://review.coreboot.org/#/c/33265/1//COMMIT_MSG@7 PS1, Line 7: libgfxinit timing parameters This should be an imperative statement, e.g. `Add Intel GMA timing parameters`
https://review.coreboot.org/#/c/33265/1/Documentation/gfx/intel-gma.md File Documentation/gfx/intel-gma.md:
https://review.coreboot.org/#/c/33265/1/Documentation/gfx/intel-gma.md@27 PS1, Line 27: Haswell AIUI, this numbering is `eDP` specific (not platform specific).
Hello build bot (Jenkins), Nico Huber,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/33265
to look at the new patch set (#2).
Change subject: Documentation: Add Intel GMA timing parameters ......................................................................
Documentation: Add Intel GMA timing parameters
Change-Id: If1a393578556d51499c700b68187034830d19215 Signed-off-by: Daniel Maslowski daniel.maslowski@img.ly --- A Documentation/gfx/intel-gma.md M Documentation/gfx/libgfxinit.md M Documentation/index.md 3 files changed, 43 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/65/33265/2
Daniel Maslowski has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/33265 )
Change subject: Documentation: Add Intel GMA timing parameters ......................................................................
Patch Set 2:
(1 comment)
https://review.coreboot.org/#/c/33265/1//COMMIT_MSG Commit Message:
https://review.coreboot.org/#/c/33265/1//COMMIT_MSG@7 PS1, Line 7: libgfxinit timing parameters
This should be an imperative statement, e.g. […]
Ack
Hello build bot (Jenkins), Nico Huber,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/33265
to look at the new patch set (#3).
Change subject: Documentation: Add Intel GMA timing parameters ......................................................................
Documentation: Add Intel GMA timing parameters
Change-Id: If1a393578556d51499c700b68187034830d19215 Signed-off-by: Daniel Maslowski daniel.maslowski@img.ly --- A Documentation/gfx/intel-gma.md M Documentation/gfx/libgfxinit.md M Documentation/index.md 3 files changed, 53 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/65/33265/3
Nico Huber has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/33265 )
Change subject: Documentation: Add Intel GMA timing parameters ......................................................................
Patch Set 3: Code-Review+2
Felix Held has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/33265 )
Change subject: Documentation: Add Intel GMA timing parameters ......................................................................
Patch Set 3:
the timing parameters are more about the panel than about the Intel GMA. the content itself looks good though
Hello build bot (Jenkins), Nico Huber,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/33265
to look at the new patch set (#4).
Change subject: Documentation: Add display panel specifics ......................................................................
Documentation: Add display panel specifics
Change-Id: If1a393578556d51499c700b68187034830d19215 Signed-off-by: Daniel Maslowski daniel.maslowski@img.ly --- A Documentation/gfx/display-panel.md M Documentation/gfx/libgfxinit.md M Documentation/index.md 3 files changed, 68 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/65/33265/4
Felix Held has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/33265 )
Change subject: Documentation: Add display panel specifics ......................................................................
Patch Set 4: Code-Review+1
Nico Huber has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/33265 )
Change subject: Documentation: Add display panel specifics ......................................................................
Patch Set 4: Code-Review+2
Nico Huber has submitted this change and it was merged. ( https://review.coreboot.org/c/coreboot/+/33265 )
Change subject: Documentation: Add display panel specifics ......................................................................
Documentation: Add display panel specifics
Change-Id: If1a393578556d51499c700b68187034830d19215 Signed-off-by: Daniel Maslowski daniel.maslowski@img.ly Reviewed-on: https://review.coreboot.org/c/coreboot/+/33265 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Felix Held felix-coreboot@felixheld.de Reviewed-by: Nico Huber nico.h@gmx.de --- A Documentation/gfx/display-panel.md M Documentation/gfx/libgfxinit.md M Documentation/index.md 3 files changed, 68 insertions(+), 0 deletions(-)
Approvals: build bot (Jenkins): Verified Nico Huber: Looks good to me, approved Felix Held: Looks good to me, but someone else must approve
diff --git a/Documentation/gfx/display-panel.md b/Documentation/gfx/display-panel.md new file mode 100644 index 0000000..3bab089 --- /dev/null +++ b/Documentation/gfx/display-panel.md @@ -0,0 +1,64 @@ +Display Panel Specifics +======================= + +Timing Parameters +----------------- + +From the binary file `edid` in the sys filesystem on Linux, the panel can be +identified. The exact path may differ slightly. Here is an example: + +```sh +$ strings /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-eDP-1/edid +@0 5 +LG Display +LP140WF3-SPD1 +``` + +To figure out the timing parameters, refer to the [Intel Programmer's Reference +Manuals](https://01.org/linuxgraphics/documentation/hardware-specification-prms) +and try to find the datasheet of the panel using the information from `edid`. +In the example above, you would search for `LP140WF3-SPD1`. Find a table listing +the power sequence timing parameters, which are usually named T[N] and also +referenced in Intel's respective registers listing. You need the values for +`PP_ON_DELAYS`, `PP_OFF_DELAYS` and `PP_DIVISOR` for your `devicetree.cb`: + +```eval_rst ++-----------------------------+---------------------------------------+-----+ +| Intel docs | devicetree.cb | eDP | ++-----------------------------+---------------------------------------+-----+ +| Power up delay | `gpu_panel_power_up_delay` | T3 | ++-----------------------------+---------------------------------------+-----+ +| Power on to backlight on | `gpu_panel_power_backlight_on_delay` | T7 | ++-----------------------------+---------------------------------------+-----+ +| Power Down delay | `gpu_panel_power_down_delay` | T10 | ++-----------------------------+---------------------------------------+-----+ +| Backlight off to power down | `gpu_panel_power_backlight_off_delay` | T9 | ++-----------------------------+---------------------------------------+-----+ +| Power Cycle Delay | `gpu_panel_power_cycle_delay` | T12 | ++-----------------------------+---------------------------------------+-----+ +``` + +Intel GPU Tools and VBT +----------------------- + +The Intel GPU tools are in a package called either `intel-gpu-tools` or +`igt-gpu-tools` in most distributions of Linux-based operating systems. +In the coreboot `util/` directory, you can find `intelvbttool`. + +From a running system, you can dump the register values directly: +```sh +$ intel_reg dump --all | grep PCH_PP + PCH_PP_STATUS (0x000c7200): 0x80000008 + PCH_PP_CONTROL (0x000c7204): 0x00000007 + PCH_PP_ON_DELAYS (0x000c7208): 0x07d00001 + PCH_PP_OFF_DELAYS (0x000c720c): 0x01f40001 + PCH_PP_DIVISOR (0x000c7210): 0x0004af06 +``` + +You can obtain the timing values from a VBT (Video BIOS Table), which you can +dump from a vendor UEFI image: +```sh +$ intel_vbt_decode data.vbt | grep T3 + Power Sequence: T3 2000 T7 10 T9 2000 T10 500 T12 5000 + T3 optimization: no +``` diff --git a/Documentation/gfx/libgfxinit.md b/Documentation/gfx/libgfxinit.md index c50761a..c000f27 100644 --- a/Documentation/gfx/libgfxinit.md +++ b/Documentation/gfx/libgfxinit.md @@ -55,6 +55,9 @@ GMA: Per Board Configuration ----------------------------
+In order to set up the display panel, see the +[display panel-specific documentation](/gfx/display-panel.md). + There are a few Kconfig symbols to consider. To indicate that a board can initialize graphics through *libgfxinit*:
diff --git a/Documentation/index.md b/Documentation/index.md index 6dbbf4d..76faffa 100644 --- a/Documentation/index.md +++ b/Documentation/index.md @@ -173,6 +173,7 @@ * [Dealing with Untrusted Input in SMM](technotes/2017-02-dealing-with-untrusted-input-in-smm.md) * [GPIO toggling in ACPI AML](acpi/gpio.md) * [Native Graphics Initialization with libgfxinit](gfx/libgfxinit.md) +* [Display panel-specific documentation](gfx/display-panel.md) * [Architecture-specific documentation](arch/index.md) * [Northbridge-specific documentation](northbridge/index.md) * [System on Chip-specific documentation](soc/index.md)