Hi,
On 09.05.19 12:03, madeeha@gmail.com wrote:
> I am using Libgfxinit built for Skylake platform to enable early
> graphics from within a baremetal application.
interesting. AFAIR, you are the first to ask about integrating it
somewhere else :)
> The platform connects to an LCD via HDMI.
Just to be sure is this a regular external display, or something
embedded? External HDMI displays usually just work. If there is a
signal coming, they pick it up and power on. At least that's my
experience.
> Enabling debug log in Libgfxinit, I get the following from which it
> seems that the initialization completed successfully but the LCD remains
> powered off (orange light). Is there anything outside of this mode set
> sequence that I need to do to enable the display?
There might be, I'm not sure.
First, what is not visible from the log is if you set up the frame-
buffer. The Intel GPU has an MMU called graphics translator table
(GTT). If nothing is mapped at address 0 (which is set in your frame-
buffer config), it might be that the pipe doesn't deliver any pixels
and therefore no signal is delivered. If you haven't done that yet,
have a look at HW.GFX.GMA.Setup_Default_FB(). It sets up a framebuffer
in the preallocated graphics memory (aka. stolen memory).
Second, there's a hardware option to tweak the HDMI signal. I have
never needed it so far, so it's still hard coded to the default, but
an override is prepared: DDI_HDMI_Buffer_Translation in common/hw-gfx-
gma-config.ads.template). The correct value for your device should be
visible in the VBT (Video BIOS Table for Intel).
What often helps to debug things is a log of a working program. If
you can boot Linux on your platform, that would be most easy, just
add `drm.debug=0xe` to your kernel command line. And there is
`gfx_test` in the libgfxinit source code (see README.md). It's best
to boot with `i915.modeset=0` to disable the Intel graphics driver,
and control the machine via network or a serial console.
Hope that helps,
Nico