[coreboot] T400 screen issue / EDID handling

Paul Menzel paulepanter at users.sourceforge.net
Mon Jul 13 07:57:00 CEST 2015


Dear Kroms,


Am Sonntag, den 12.07.2015, 22:17 +0200 schrieb kroms at posteo.be:

> > Thank you! Unfortunately, it also does not contain the Git 
> > revision.
> > 
> >     #define COREBOOT_ORIGIN_GIT_REVISION "Unknown"
> > 
> 
> I dont´t know if you noticed that Francis wrote in this thread on Sun 
> 
> Jul 5 16:57:30 CEST 2015:
> 
> "Libreboot builds coreboot without the .git directory, so it's not
> possible to get the coreboot revision. You can find out what version
> of coreboot it is by looking at
> resources/scripts/helpers/download/coreboot
> 
> He is using libreboot 20150518, so the coreboot revision that he's
> using is e19c8b0091022ae3f490601aed0c290cd5171b79"

Thank you for looking this up!

    commit e19c8b0091022ae3f490601aed0c290cd5171b79
    Author:     Alexander Couzens <    lynxis at fe80.eu    >
    AuthorDate: Thu Apr 2 23:20:45 2015 +0200
    Commit:     Peter Stuge <    peter at stuge.se    >
    CommitDate: Sun Apr 5 04:07:25 2015 +0200

        acpi: protect acpi generators from PRE_RAM & SMM

> > 1. Try to use a newer Linux kernel.
> 
> I updated the Kernel to 4.1.2 from Debian experimental.
> 
> > 2. Turn on debugging of the Linux i915 module [1].
> 
> > 3. Please also post a log with debugging enabled when using the 
> > vendor firmware.
> 
> Please find attached the two outputs (libreboot and lenovo_bios) from 
> 
> dmesg with debugging enabled.

Awesome! Thank you very much.

    $ grep 'drm:' dmesg_debug_libreboot.txt
    [   11.647383] [drm:i915_dump_device_info] i915 device info: gen=4, pciid=0x2a42 rev=0x07 flags=is_mobile,need_gfx_hws,is_g4x,has_fbc,has_pipe_cxsr,has_hotplug,supports_tv,
    [   11.647410] [drm:intel_detect_pch] No PCH found.
    [   11.647416] [drm:i915_gem_gtt_init] GMADR size = 256M
    [   11.647418] [drm:i915_gem_gtt_init] GTT stolen size = 32M
    [   11.647419] [drm:i915_gem_gtt_init] ppgtt mode: 0
    [   11.648615] [drm:intel_opregion_setup] graphic opregion physical addr: 0x0
    [   11.648618] [drm:intel_opregion_setup] ACPI OpRegion not supported!
    [   11.648665] [drm:intel_device_info_runtime_init] slice total: 0
    [   11.648666] [drm:intel_device_info_runtime_init] subslice total: 0
    [   11.648668] [drm:intel_device_info_runtime_init] subslice per slice: 0
    [   11.648670] [drm:intel_device_info_runtime_init] EU total: 0
    [   11.648671] [drm:intel_device_info_runtime_init] EU per subslice: 0
    [   11.648672] [drm:intel_device_info_runtime_init] has slice power gating: n
    [   11.648674] [drm:intel_device_info_runtime_init] has subslice power gating: n
    [   11.648676] [drm:intel_device_info_runtime_init] has EU power gating: n
    [   11.648680] [drm:init_vbt_defaults] Set default to SSC at 100000 kHz
    [   11.648684] [drm:validate_vbt] Using VBT from PCI ROM: $VBT IRONLAKE-MOBILEd
    [   11.648687] [drm:parse_general_features] BDB_GENERAL_FEATURES int_tv_support 0 int_crt_support 1 lvds_use_ssc 1 lvds_ssc_freq 96000 display_clock_mode 0 fdi_rx_polarity_inverted 0
    [   11.648689] [drm:parse_sdvo_device_mapping] No general definition block is found, unable to construct sdvo mapping.
    [   11.648691] [drm:parse_device_mapping] No general definition block is found, no devices defined.
    [   11.648693] [drm:parse_psr] No PSR BDB found.
    [   11.648700] [drm:intel_dsm_pci_probe] no _DSM method for intel device
    [   11.648707] [drm:i915_gem_init_stolen] found 33554432 bytes of stolen memory at be000000
    [   11.648710] [drm:intel_display_power_get] enabling always-on
    [   11.648744] [drm:intel_modeset_init] 2 display pipes available.
    [   11.648753] [drm:intel_modeset_init] pipe A sprite A init failed: -19
    [   11.648760] [drm:intel_modeset_init] pipe B sprite B init failed: -19
    [   11.718062] [drm:intel_lvds_init] using preferred mode from EDID: 
    [   11.718069] [drm:drm_mode_debug_printmodeline] Modeline 27:"1440x900" 60 101600 1440 1488 1520 1792 900 903 909 945 0x48 0xa
    [   11.718075] [drm:intel_lvds_init] detected single-link lvds configuration
    [   11.718147] [drm:intel_panel_setup_backlight] Connector LVDS-1 backlight initialized, enabled, brightness 98/98
    [   11.718205] [drm:intel_setup_outputs] probing SDVOB
    [   11.718209] [drm:intel_gmbus_force_bit] enabling bit-banging on i915 gmbus dpb. force bit now 1
    [   11.727609] [drm:intel_sdvo_read_byte] i2c transfer returned -6
    [   11.727611] [drm:intel_sdvo_init] No SDVO device found on SDVOB
    [   11.727642] [drm:intel_gmbus_force_bit] disabling bit-banging on i915 gmbus dpb. force bit now 0
    [   11.727644] [drm:intel_setup_outputs] probing HDMI on SDVOB
    [   11.727701] [drm:intel_dp_init_connector] Adding DP connector on port B
    [   11.727743] [drm:intel_dp_aux_init] registering DPDDC-B bus for card0-DP-1
    [   11.727781] [drm:intel_setup_outputs] probing SDVOC
    [   11.727783] [drm:intel_gmbus_force_bit] enabling bit-banging on i915 gmbus dpb. force bit now 1
    [   11.737209] [drm:intel_sdvo_read_byte] i2c transfer returned -6
    [   11.737212] [drm:intel_sdvo_init] No SDVO device found on SDVOC
    [   11.740675] [drm:intel_gmbus_force_bit] disabling bit-banging on i915 gmbus dpb. force bit now 0
    [   11.740681] [drm:intel_setup_outputs] probing HDMI on SDVOC
    [   11.740749] [drm:intel_dp_init_connector] Adding DP connector on port C
    [   11.740788] [drm:intel_dp_aux_init] registering DPDDC-C bus for card0-DP-2
    [   11.740838] [drm:intel_dp_init_connector] Adding DP connector on port D
    [   11.740879] [drm:intel_dp_aux_init] registering DPDDC-D bus for card0-DP-3
    [   11.740927] [drm:intel_modeset_readout_hw_state] [CRTC:20] hw state readout: enabled
    [   11.740930] [drm:intel_modeset_readout_hw_state] [CRTC:23] hw state readout: disabled
    [   11.740933] [drm:intel_modeset_readout_hw_state] [ENCODER:25:LVDS-25] hw state readout: enabled, pipe A
    [   11.740935] [drm:intel_modeset_readout_hw_state] [ENCODER:32:DAC-32] hw state readout: disabled, pipe A
    [   11.740938] [drm:intel_modeset_readout_hw_state] [ENCODER:33:TMDS-33] hw state readout: disabled, pipe A
    [   11.740941] [drm:intel_modeset_readout_hw_state] [ENCODER:38:TMDS-38] hw state readout: disabled, pipe A
    [   11.740943] [drm:intel_modeset_readout_hw_state] [ENCODER:40:TMDS-40] hw state readout: disabled, pipe A
    [   11.740945] [drm:intel_modeset_readout_hw_state] [ENCODER:42:TMDS-42] hw state readout: disabled, pipe A
    [   11.740948] [drm:intel_modeset_readout_hw_state] [ENCODER:44:TMDS-44] hw state readout: disabled, pipe A
    [   11.740950] [drm:intel_modeset_readout_hw_state] [CONNECTOR:24:LVDS-1] hw state readout: enabled
    [   11.740952] [drm:intel_modeset_readout_hw_state] [CONNECTOR:31:VGA-1] hw state readout: disabled
    [   11.740955] [drm:intel_modeset_readout_hw_state] [CONNECTOR:34:HDMI-A-1] hw state readout: disabled
    [   11.740957] [drm:intel_modeset_readout_hw_state] [CONNECTOR:39:DP-1] hw state readout: disabled
    [   11.740959] [drm:intel_modeset_readout_hw_state] [CONNECTOR:41:HDMI-A-2] hw state readout: disabled
    [   11.740961] [drm:intel_modeset_readout_hw_state] [CONNECTOR:43:DP-2] hw state readout: disabled
    [   11.740963] [drm:intel_modeset_readout_hw_state] [CONNECTOR:45:DP-3] hw state readout: disabled
    […]

With the vendor firmware the messages look like below.

    $ grep 'drm:' dmesg_debug_lenovo_bios.txt
    [   13.567790] [drm:i915_dump_device_info] i915 device info: gen=4, pciid=0x2a42 rev=0x07 flags=is_mobile,need_gfx_hws,is_g4x,has_fbc,has_pipe_cxsr,has_hotplug,supports_tv,
    [   13.567817] [drm:intel_detect_pch] No PCH found.
    [   13.567822] [drm:i915_gem_gtt_init] GMADR size = 256M
    [   13.567824] [drm:i915_gem_gtt_init] GTT stolen size = 32M
    [   13.567825] [drm:i915_gem_gtt_init] ppgtt mode: 0
    [   13.569564] [drm:intel_opregion_setup] graphic opregion physical addr: 0xbdb6b0fa
    [   13.569573] [drm:intel_opregion_setup] Public ACPI methods supported
    [   13.569574] [drm:intel_opregion_setup] SWSCI supported
    [   13.575637] [drm:swsci_setup] SWSCI BIOS requested (00010673) SBCB callbacks that are not supported (00080673)
    [   13.575640] [drm:swsci_setup] SWSCI GBDA callbacks 00000cf3, SBCB callbacks 00010673
    [   13.575641] [drm:intel_opregion_setup] ASLE supported
    [   13.575697] [drm:intel_device_info_runtime_init] slice total: 0
    [   13.575698] [drm:intel_device_info_runtime_init] subslice total: 0
    [   13.575700] [drm:intel_device_info_runtime_init] subslice per slice: 0
    [   13.575701] [drm:intel_device_info_runtime_init] EU total: 0
    [   13.575702] [drm:intel_device_info_runtime_init] EU per subslice: 0
    [   13.575703] [drm:intel_device_info_runtime_init] has slice power gating: n
    [   13.575705] [drm:intel_device_info_runtime_init] has subslice power gating: n
    [   13.575706] [drm:intel_device_info_runtime_init] has EU power gating: n
    [   13.575711] [drm:init_vbt_defaults] Set default to SSC at 100000 kHz
    [   13.575714] [drm:validate_vbt] Using VBT from OpRegion: $VBT CANTIGA        d
    [   13.575716] [drm:parse_general_features] BDB_GENERAL_FEATURES int_tv_support 0 int_crt_support 1 lvds_use_ssc 1 lvds_ssc_freq 100000 display_clock_mode 0 fdi_rx_polarity_inverted 0
    [   13.575718] [drm:parse_general_definitions] crt_ddc_bus_pin: 2
    [   13.575720] [drm:parse_lfp_panel_data] DRRS supported mode is static
    [   13.575723] [drm:parse_lfp_panel_data] Found panel mode in BIOS VBT tables:
    [   13.575726] [drm:drm_mode_debug_printmodeline] Modeline 0:"1440x900" 0 101600 1440 1488 1520 1792 900 903 909 945 0x8 0xa
    [   13.575728] [drm:parse_lfp_panel_data] VBT initial LVDS value 4230033c
    [   13.575730] [drm:parse_lfp_backlight] VBT backlight PWM modulation frequency 220 Hz, active high, min brightness 0, level 0
    [   13.575732] [drm:parse_sdvo_panel_data] Found SDVO panel mode in BIOS VBT tables:
    [   13.575735] [drm:drm_mode_debug_printmodeline] Modeline 0:"1600x1200" 0 162000 1600 1664 1856 2160 1200 1201 1204 1250 0x8 0xa
    [   13.575737] [drm:parse_sdvo_device_mapping] No SDVO device info is found in VBT
    [   13.575739] [drm:parse_driver_features] DRRS State Enabled:0
    [   13.575740] [drm:parse_psr] No PSR BDB found.
    [   13.575750] [drm:intel_dsm_pci_probe] no _DSM method for intel device
    [   13.575760] [drm:i915_gem_init_stolen] found 33554432 bytes of stolen memory at be000000
    [   13.575763] [drm:intel_display_power_get] enabling always-on
    [   13.575801] [drm:intel_modeset_init] 2 display pipes available.
    [   13.575813] [drm:intel_modeset_init] pipe A sprite A init failed: -19
    [   13.575819] [drm:intel_modeset_init] pipe B sprite B init failed: -19
    [   13.646058] [drm:intel_lvds_init] using preferred mode from EDID: 
    [   13.646063] [drm:drm_mode_debug_printmodeline] Modeline 27:"1440x900" 60 101600 1440 1488 1520 1792 900 903 909 945 0x48 0xa
    [   13.646068] [drm:intel_lvds_init] detected dual-link lvds configuration
    [   13.646215] [drm:intel_panel_setup_backlight] Connector LVDS-1 backlight initialized, enabled, brightness 481695/2408475
    [   13.646327] [drm:intel_setup_outputs] probing SDVOB
    [   13.646331] [drm:intel_gmbus_force_bit] enabling bit-banging on i915 gmbus dpb. force bit now 1
    [   13.655959] [drm:intel_sdvo_read_byte] i2c transfer returned -6
    [   13.655961] [drm:intel_sdvo_init] No SDVO device found on SDVOB
    [   13.655990] [drm:intel_gmbus_force_bit] disabling bit-banging on i915 gmbus dpb. force bit now 0
    [   13.655992] [drm:intel_setup_outputs] probing HDMI on SDVOB
    [   13.656064] [drm:intel_dp_init_connector] Adding DP connector on port B
    [   13.656108] [drm:intel_dp_aux_init] registering DPDDC-B bus for card0-DP-1
    [   13.656144] [drm:intel_setup_outputs] probing SDVOC
    [   13.656148] [drm:intel_gmbus_force_bit] enabling bit-banging on i915 gmbus dpb. force bit now 1
    [   13.665729] [drm:intel_sdvo_read_byte] i2c transfer returned -6
    [   13.665731] [drm:intel_sdvo_init] No SDVO device found on SDVOC
    [   13.665758] [drm:intel_gmbus_force_bit] disabling bit-banging on i915 gmbus dpb. force bit now 0
    [   13.665760] [drm:intel_setup_outputs] probing HDMI on SDVOC
    [   13.665808] [drm:intel_dp_init_connector] Adding DP connector on port C
    [   13.665845] [drm:intel_dp_aux_init] registering DPDDC-C bus for card0-DP-2
    [   13.665888] [drm:intel_dp_init_connector] Adding DP connector on port D
    [   13.665927] [drm:intel_dp_aux_init] registering DPDDC-D bus for card0-DP-3
    [   13.665964] [drm:intel_tv_init] Integrated TV is not present.
    [   13.665970] [drm:intel_modeset_readout_hw_state] [CRTC:20] hw state readout: disabled
    [   13.665977] [drm:intel_modeset_readout_hw_state] [CRTC:23] hw state readout: enabled
    [   13.665980] [drm:intel_modeset_readout_hw_state] [ENCODER:25:LVDS-25] hw state readout: enabled, pipe B
    [   13.665982] [drm:intel_modeset_readout_hw_state] [ENCODER:32:DAC-32] hw state readout: disabled, pipe A
    [   13.665984] [drm:intel_modeset_readout_hw_state] [ENCODER:33:TMDS-33] hw state readout: disabled, pipe A
    [   13.665986] [drm:intel_modeset_readout_hw_state] [ENCODER:38:TMDS-38] hw state readout: disabled, pipe A
    [   13.665988] [drm:intel_modeset_readout_hw_state] [ENCODER:40:TMDS-40] hw state readout: disabled, pipe A
    [   13.665990] [drm:intel_modeset_readout_hw_state] [ENCODER:42:TMDS-42] hw state readout: disabled, pipe A
    [   13.665992] [drm:intel_modeset_readout_hw_state] [ENCODER:44:TMDS-44] hw state readout: disabled, pipe A
    [   13.665994] [drm:intel_modeset_readout_hw_state] [CONNECTOR:24:LVDS-1] hw state readout: enabled
    [   13.665995] [drm:intel_modeset_readout_hw_state] [CONNECTOR:31:VGA-1] hw state readout: disabled
    [   13.665997] [drm:intel_modeset_readout_hw_state] [CONNECTOR:34:HDMI-A-1] hw state readout: disabled
    [   13.665999] [drm:intel_modeset_readout_hw_state] [CONNECTOR:39:DP-1] hw state readout: disabled
    [   13.666001] [drm:intel_modeset_readout_hw_state] [CONNECTOR:41:HDMI-A-2] hw state readout: disabled
    [   13.666002] [drm:intel_modeset_readout_hw_state] [CONNECTOR:43:DP-2] hw state readout: disabled
    [   13.666004] [drm:intel_modeset_readout_hw_state] [CONNECTOR:45:DP-3] hw state readout: disabled
    […]

As you can see, the vendor firmware detects a dual-link LVDS
configuration.

    [drm:intel_lvds_init] detected dual-link lvds configuration

With coreboot a single-link LVDS configuration is detected.

    [drm:intel_lvds_init] detected single-link lvds configuration

Francis Rowe wrote to the list, that this is configured during compile
time in coreboot [1][2]. You’d need to rebuild your image. Then you
should have at least graphics when Linux started.

There are two more things two do.

1. Contact the Linux i915 folks and ask them, if the module is able to
detect the configuration itself and does not rely on the firmware or if
there is a way to override that setting from the Linux command line.

2. Improve coreboot so that the LVDS link configuration is detected
during runtime as the vendor firmware (VGA Option ROM/Video BIOS(?))
does.


Thanks,

Paul


[1] http://coreboot.org/pipermail/coreboot/2015-July/080109.html
[2] http://libreboot.org/docs/hcl/gm45_lcd.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part
URL: <http://www.coreboot.org/pipermail/coreboot/attachments/20150713/cdb5139c/attachment.asc>


More information about the coreboot mailing list