Thanks a lot for your pointers! I am going to try all of them especially DDI_HDMI_Buffer_Translation override.

> interesting. AFAIR, you are the first to ask about integrating it somewhere else :)
I am sorry I just I assumed that I can use the library for internal development.
The pre-OS graphics driver that I wrote in C based on information from Skylake PRM is not working so I turned to Libgfx to see what i am missing. I hope thats ok?
We can not use libgfxinit in the product that we deliver.

On Fri, May 10, 2019 at 2:14 AM Nico Huber <nico.h@gmx.de> wrote:
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