[Intel-gfx] Minnowboard i915 driver not getting initialized properly

Dave Gordon david.s.gordon at intel.com
Fri Jun 17 11:32:15 UTC 2016


On 15/06/16 09:42, vinoth eswaran wrote:
> Hello Mr.David Gordon,
>
> I working on an embedded project with Minnowboard Turbot. The goal is
> to have a camera application running as fast as possible (within 2
> sec).
>
> For this, I have replaced the UEFI bootloader with the U-boot (Latest
> git version - uboot-x86). In u-boot I am seeing that the VGA run on
> bios is taking too much time , around 2 sec.
>
> realmode_call(addr + 0x0003, num_dev, 0xffff, 0x0000, 0xffff, 0x0,
>> 0x0);  -- This function call takes more time around 2 seconds.
>
> So I had removed the VESA config from u-boot. Now the u-boot boots up
> fast, but I am facing some other issue in the i915 driver Linux
> kernel. It seems that the i915 driver is not getting initialized
> properly. When the Weston compositor tries to run it crashes. I have
> tried to dump the VBIOS  using the following commands
>
> echo 1 > /sys/devices/pci0000:00/0000:00:02.0/rom
> cat /sys/devices/pci0000:00/0000:00:02.0/rom
>
> and found that it is unable to access the VBIOS
>   i915 0000:00:02.0: Invalid ROM contents
>
> I think that it is due to the fact that VGA bios is not runned by the
> U-boot. Is it possible to run this in linux kernel or any config in
> i915 driver to support this?
>
> or due have any idea to optimize the vga run on bios in u-boot. The
> currrent time taken to run VGA bios in u-boot is unacceptable in my
> case.

I see you've already asked on the intel-gfx mailing list (which is the 
preferred channel for this sort of question) and got an answer from Daniel.

I really have very little idea about anything to do with the BIOS (I 
come from a background of working on non-BIOS-based machines), but I 
would suggest:

(a) if the VBIOS is just supposed to provide tables for i915, maybe you 
could run it with VBIOS enabled, then capture the tables and hardwire 
those captured versions in as a default for when the VBIOS is disabled; or
(b) if the VBIOS is actually supposed to program the hardware with 
default values, you'd need to duplicate that functionality.

Either way, you might then be able to build a driver which was specific 
to your hardware setup and therefore would work as long as you didn't 
also need to be able to reconfigure the hardware between boots.

Perhaps you might find something useful at the OpenBIOS site?

	http://www.openfirmware.info/Welcome_to_OpenBIOS

HTH,
.Dave.

> I have attached the dmesg logs for your reference
>
> Any help on this is much appreciated :)
>
> The logs with drm.debug=0x06 enabled:
> [    0.218171] calling  i915_init+0x0/0x99 @ 1
> [    0.220432] [drm:i915_dump_device_info] i915 device info: gen=7,
> pciid=0x0f31 rev=0x11
> flags=is_mobile,need_gfx_hws,is_valleyview,has_hotplug,
> [    0.220566] [drm:i915_gem_gtt_init] GMADR size = 256M
> [    0.220570] [drm:i915_gem_gtt_init] GTT stolen size = 64M
> [    0.220574] [drm:i915_gem_gtt_init] ppgtt mode: 1
> [    0.221964] i915 0000:00:02.0: Invalid ROM contents
> [    0.227568] [drm:i915_gem_init_stolen] Memory reserved for graphics
> device: 65536K, usable: 65536K
> [    0.358545] [drm:i915_gem_setup_global_gtt] clearing unused GTT
> space: [0, 7ffff000]
> [    0.364276] [drm:i915_gem_context_init] HW context support initialized
> [    0.364289] [drm:i915_gem_object_create_stolen] creating stolen
> object: size=20000
> [    0.364296] [drm:i915_pages_create_for_stolen] offset=0x0, size=131072
> [    0.364405] [drm:i915_gem_object_create_stolen] creating stolen
> object: size=20000
> [    0.364411] [drm:i915_pages_create_for_stolen] offset=0x20000, size=131072
> [    0.364463] [drm:i915_gem_object_create_stolen] creating stolen
> object: size=20000
> [    0.364470] [drm:i915_pages_create_for_stolen] offset=0x40000, size=131072
> [    0.366181] [drm:i915_gem_object_create_stolen_for_preallocated]
> creating preallocated stolen object: stolen_offset=3efa000,
> gtt_offset=ffffffff, size=6000
> [    0.366189] [drm:i915_pages_create_for_stolen] offset=0x3efa000, size=24576
> [    0.388566] [drm:i915_redisable_vga_power_on] Something enabled VGA
> plane, disabling it
> [    0.452154] [drm] GMBUS [i915 gmbus vga] timed out, falling back to
> bit banging on pin 2
> [    0.460168] [drm:drm_do_probe_ddc_edid] drm: skipping non-existent
> adapter i915 gmbus vga
> [    0.484566] [drm:i915_redisable_vga_power_on] Something enabled VGA
> plane, disabling it
> [    0.588705] [drm:i915_redisable_vga_power_on] Something enabled VGA
> plane, disabling it
> [    0.678697] i915 0000:00:02.0: No connectors reported connected with modes
> [    0.678750] [drm] Initialized i915 1.6.0 20151010 for 0000:00:02.0 on minor 0
> [    0.678853] initcall i915_init+0x0/0x99 returned 0 after 449419 usecs
> [    0.679607] [drm:i915_gem_object_create_stolen] creating stolen
> object: size=300000
> [    0.679615] [drm:i915_pages_create_for_stolen] offset=0x60000, size=3145728
> [    0.682422] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device
> [    2.945260] [drm:i915_gem_open]
> [    3.487206] [drm:i915_redisable_vga_power_on] Something enabled VGA
> plane, disabling it
> [    3.507204] [drm:drm_do_probe_ddc_edid] drm: skipping non-existent
> adapter i915 gmbus vga
> [    3.531477] [drm:i915_redisable_vga_power_on] Something enabled VGA
> plane, disabling it
> [    3.635502] [drm:i915_redisable_vga_power_on] Something enabled VGA
> plane, disabling it
> [    3.778482] [drm:i915_redisable_vga_power_on] Something enabled VGA
> plane, disabling it
> [    3.799069] [drm:drm_do_probe_ddc_edid] drm: skipping non-existent
> adapter i915 gmbus vga
> [    3.822530] [drm:i915_redisable_vga_power_on] Something enabled VGA
> plane, disabling it
> [    3.926638] [drm:i915_redisable_vga_power_on] Something enabled VGA
> plane, disabling it
>
> Mit Freundlichen Grüßen
> VinothKumar
> +49 1798909072
>



More information about the Intel-gfx mailing list