Dear Nico:

The libgfxinit solution works!
Thank you very much....

What to do next?

> If you get that working, we can try to design a reasonable API for pre-
> defined modes. For instance, the `gma-mainboard.ads` could provide a
> set of Pipe_Configs and we'd only scan for additional displays. That
> would also be useful to skip EDID reading to speed things up ;)

Jose Trujillo.


> Hi Jorge,
>
> On 03.12.19 15:13, Jose Trujillo wrote:
>
> > > > This is my first try in booting coreboot on a LVDS panel.
> > > > This is a Sandybridge-M system using video option ROM and VBT extracted 
> > > > from the original FW.
> > >
> > > if you ever want to get open-source gfx init running instead, let me 
> > > know. It would only need a few more lines to force a specific mode with 
> > > libgfxinit, maybe that is enough. And as you run the VBIOS ROM within 
> > > coreboot, you are probably not interested in a resident VBIOS, are you?
> > > [JT]->[Nico] I would prefer to do it with just libgfxinit but I don't 
> > > have a remote idea in how to initialize the LVDS panel.
> > > [JT]->[Nico] With a desktop monitor libgfxinit just work in this system 
> > > but not a sign of activity on the panel.
> > > [JT]->[Nico] I would like to know how to initialize the panel with just 
> > > coreboot, so, please show me how.
>
> first, you have to
>
> select GFX_GMA_INTERNAL_IS_LVDS
>
> in your mainboard's Kconfig.
>
> As you mentioned, your panel doesn't have an EDID EEPROM. Hence, you'll
> have to hard-code your panel's native mode. Below is a POC patch how
> that could look like (allows combinations with LVDS and additional auto-
> detected displays). You'll have to find your own panel's timings. Either
> from the datasheet, or you can try to fetch them from the VBT, e.g.
>
> $ intel_vbt_decode lenovo/t430s/variants/t431s/data.vbt | grep timings
> Underscan support for VGA timings: no
> timings: 1600 1648 1680 1940 900 903 908 926 107800.00 (good)
>
> Note: The clock is given in kHz in the VBT, but libgfxinit expects Hz.
> BPC (bits per color) is almost always 6 for LVDS panels, and I guess
> sync high/low doesn't matter for LVDS.
>
> If you get that working, we can try to design a reasonable API for pre-
> defined modes. For instance, the `gma-mainboard.ads` could provide a
> set of Pipe_Configs and we'd only scan for additional displays. That
> would also be useful to skip EDID reading to speed things up ;)
>
> Nico
>
> diff --git a/src/drivers/intel/gma/hires_fb/gma-gfx_init.adb
> b/src/drivers/intel/gma/hires_fb/gma-gfx_init.adb
> index 1393784d7b..b828e4ba28 100644
> --- a/src/drivers/intel/gma/hires_fb/gma-gfx_init.adb
> +++ b/src/drivers/intel/gma/hires_fb/gma-gfx_init.adb
> @@ -73,7 +73,32 @@ is
>
> if success then
> ports := Mainboard.ports;
>
> -           HW.GFX.GMA.Display_Probing.Scan_Ports (configs, ports);
>
>
>
> -           HW.GFX.GMA.Display_Probing.Scan_Ports
>
>
> -             (Configs  => configs,
>
>
> -              Ports    => ports,
>
>
> -              Max_Pipe => Secondary); -- limit to 2 auto-detected displays
>
>
> -
> -           -- move auto-detected displays
>
>
> -           configs (Tertiary)   := configs (Secondary);
>
>
> -           configs (Secondary)  := configs (Primary);
>
>
> -           -- and use primary pipe for LVDS
>
>
> -           configs (Primary) :=
>
>
> -             (Port        => Internal,
>
>
> -              Framebuffer => Default_FB, -- will be overridden below
>
>
> -              Cursor      => Default_Cursor,
>
>
> -              Mode        => -- this matters
>
>
> -                (H_Visible      => 1920,
>
>
> -                 H_Sync_Begin   => 2008,
>
>
> -                 H_Sync_End     => 2052,
>
>
> -                 H_Total        => 2185,
>
>
> -                 V_Visible      => 1080,
>
>
> -                 V_Sync_Begin   => 1084,
>
>
> -                 V_Sync_End     => 1089,
>
>
> -                 V_Total        => 1135,
>
>
> -                 Dotclock       => 60 * 2185 * 1135, -- 60Hz * H_Total *
>
>
>
> V_Total
>
> -                 BPC            => 6,
>
>
> -                 H_Sync_Active_High   => False,
>
>
> -                 V_Sync_Active_High   => False));
>
>
>
> if configs (Primary).Port /= Disabled then
> for i in Pipe_Index loop
>
> coreboot mailing list -- coreboot@coreboot.org
> To unsubscribe send an email to coreboot-le...@coreboot.org

_______________________________________________
coreboot mailing list -- coreboot@coreboot.org
To unsubscribe send an email to coreboot-le...@coreboot.org

Reply via email to