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