linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Black screen with GMA500 driver on Atom E680 (invalid VBT signature)
@ 2013-11-13 18:34 Andreas Werner
  2013-11-14 13:52 ` One Thousand Gnomes
  0 siblings, 1 reply; 7+ messages in thread
From: Andreas Werner @ 2013-11-13 18:34 UTC (permalink / raw)
  To: linux-kernel

I´ve a question about the GMA 500 driver (gma500_gfx) with an Intel Atom E680.

Since the gma500 driver is in the Kernel, i get a black screen after loading
the driver.

The last message i can see are "Invalid VBT signature".
I have check the driver file "intel_bios.c" and there the driver map
the bios rom and search for the string "$VBT", but the driver cannot
find the string and return with "Invalid VBT signature".

Above the function with the relevant code.

int psb_intel_init_bios(struct drm_device *dev)
{
        struct drm_psb_private *dev_priv = dev->dev_private;
        struct pci_dev *pdev = dev->pdev;
        struct vbt_header *vbt = NULL;
        struct bdb_header *bdb = NULL;
        u8 __iomem *bios = NULL;
        size_t size;
        int i;


        dev_priv->panel_type = 0xff;

        /* XXX Should this validation be moved to intel_opregion.c? */
        if (dev_priv->opregion.vbt) {
                struct vbt_header *vbt = dev_priv->opregion.vbt;
                if (memcmp(vbt->signature, "$VBT", 4) == 0) {
                        DRM_DEBUG_KMS("Using VBT from OpRegion: %20s\n",
                                         vbt->signature);
                        bdb = (struct bdb_header *)((char *)vbt + vbt->bdb_offset);
                } else
                        dev_priv->opregion.vbt = NULL;
        }

        if (bdb == NULL) {
                bios = pci_map_rom(pdev, &size);
                if (!bios)
                        return -1;
             /* Scour memory looking for the VBT signature */
                for (i = 0; i + 4 < size; i++) {
                        if (!memcmp(bios + i, "$VBT", 4)) {
                                vbt = (struct vbt_header *)(bios + i);
                                break;
                        }
                }

                if (!vbt) {
                        dev_err(dev->dev, "VBT signature missing\n");
                        pci_unmap_rom(pdev, bios);
                        return -1;
                }
                bdb = (struct bdb_header *)(bios + i + vbt->bdb_offset);
        }

        /* Grab useful general dxefinitions */
        parse_general_features(dev_priv, bdb);
        parse_driver_features(dev_priv, bdb);
        parse_lfp_panel_data(dev_priv, bdb);
        parse_sdvo_panel_data(dev_priv, bdb);
        parse_sdvo_device_mapping(dev_priv, bdb);
        parse_device_mapping(dev_priv, bdb);
        parse_backlight_data(dev_priv, bdb);
        parse_edp(dev_priv, bdb);

        if (bios)
                pci_unmap_rom(pdev, bios);

        return 0;
}


My question now is, is it a bug in the driver or in the VGA Bios?

I´ve checked the VGA bios and did a hex dump but there is really no "$VBT" string.
On an Atom Gen1 CPU with intel GMA500 Graphic there is the string in the VGA BIOS.
But if i create the VGA BIOS for intel Atom E680 which has a GMA600 Graphic
there is no string.

Does anybody of you running the GMA500 driver with and Atom E680 without having this
problem? Or does anybody know how to get this string into the VGA BIOS?


Regards 
Andy



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Black screen with GMA500 driver on Atom E680 (invalid VBT signature)
  2013-11-13 18:34 Black screen with GMA500 driver on Atom E680 (invalid VBT signature) Andreas Werner
@ 2013-11-14 13:52 ` One Thousand Gnomes
  2013-11-14 15:32   ` Patrik Jakobsson
  2013-11-14 18:25   ` Andreas Werner
  0 siblings, 2 replies; 7+ messages in thread
From: One Thousand Gnomes @ 2013-11-14 13:52 UTC (permalink / raw)
  To: Andreas Werner; +Cc: linux-kernel

> My question now is, is it a bug in the driver or in the VGA Bios?
> 
> I´ve checked the VGA bios and did a hex dump but there is really no "$VBT" string.
> On an Atom Gen1 CPU with intel GMA500 Graphic there is the string in the VGA BIOS.
> But if i create the VGA BIOS for intel Atom E680 which has a GMA600 Graphic
> there is no string.
> 
> Does anybody of you running the GMA500 driver with and Atom E680 without having this
> problem? Or does anybody know how to get this string into the VGA BIOS?

E680 I believe will try and use the other style of parsing. I never got
my hands on one to confirm that but in general E6xx seems to use
Moorestown style tables instead and you'll only get support for some
outputs.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Black screen with GMA500 driver on Atom E680 (invalid VBT signature)
  2013-11-14 13:52 ` One Thousand Gnomes
@ 2013-11-14 15:32   ` Patrik Jakobsson
  2013-11-14 18:25   ` Andreas Werner
  1 sibling, 0 replies; 7+ messages in thread
From: Patrik Jakobsson @ 2013-11-14 15:32 UTC (permalink / raw)
  To: One Thousand Gnomes; +Cc: Andreas Werner, linux-kernel

On Thu, Nov 14, 2013 at 2:52 PM, One Thousand Gnomes
<gnomes@lxorguk.ukuu.org.uk> wrote:
>> My question now is, is it a bug in the driver or in the VGA Bios?
>>
>> I´ve checked the VGA bios and did a hex dump but there is really no "$VBT" string.
>> On an Atom Gen1 CPU with intel GMA500 Graphic there is the string in the VGA BIOS.
>> But if i create the VGA BIOS for intel Atom E680 which has a GMA600 Graphic
>> there is no string.
>>
>> Does anybody of you running the GMA500 driver with and Atom E680 without having this
>> problem? Or does anybody know how to get this string into the VGA BIOS?
>
> E680 I believe will try and use the other style of parsing. I never got
> my hands on one to confirm that but in general E6xx seems to use
> Moorestown style tables instead and you'll only get support for some
> outputs.

As Alan says, Moorestown should use GCT as in mid_bios.c and the signature
should be $GCT instead of $VBT. Though I don't know if you get any LVDS info
from from that or just MIPI stuff.

In my last set of patches I included 0x4108 in the IS_MRST macro which might
make gma500 find the LVDS modes via I2C. In the same patchset there is also
support for SDVO on Moorestown.

Patches are available in Dave Airlies drm-next and heading for 3.13-rc1

Thanks
Patrik

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Black screen with GMA500 driver on Atom E680 (invalid VBT signature)
  2013-11-14 13:52 ` One Thousand Gnomes
  2013-11-14 15:32   ` Patrik Jakobsson
@ 2013-11-14 18:25   ` Andreas Werner
  2013-11-14 20:57     ` One Thousand Gnomes
  1 sibling, 1 reply; 7+ messages in thread
From: Andreas Werner @ 2013-11-14 18:25 UTC (permalink / raw)
  To: One Thousand Gnomes; +Cc: linux-kernel

On Thu, Nov 14, 2013 at 01:52:09PM +0000, One Thousand Gnomes wrote:
> > My question now is, is it a bug in the driver or in the VGA Bios?
> > 
> > I´ve checked the VGA bios and did a hex dump but there is really no "$VBT" string.
> > On an Atom Gen1 CPU with intel GMA500 Graphic there is the string in the VGA BIOS.
> > But if i create the VGA BIOS for intel Atom E680 which has a GMA600 Graphic
> > there is no string.
> > 
> > Does anybody of you running the GMA500 driver with and Atom E680 without having this
> > problem? Or does anybody know how to get this string into the VGA BIOS?
> 
> E680 I believe will try and use the other style of parsing. I never got
> my hands on one to confirm that but in general E6xx seems to use
> Moorestown style tables instead and you'll only get support for some
> outputs.
> 
Hi,
but if you checkout the PCI table in the driver, there is the device
and vendor ID mentioned, that means for me that the driver supports
the Graphic core in E680.
And after loading the driver, it will parse for $VBT.
I just find a comment in the PCI table with "E620" but
the device and vendor id is the same for E680.

What do you mean with "Moorestown style" ?

Regards
Andy

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Black screen with GMA500 driver on Atom E680 (invalid VBT signature)
  2013-11-14 18:25   ` Andreas Werner
@ 2013-11-14 20:57     ` One Thousand Gnomes
  2013-11-16  9:28       ` Andreas Werner
  0 siblings, 1 reply; 7+ messages in thread
From: One Thousand Gnomes @ 2013-11-14 20:57 UTC (permalink / raw)
  To: Andreas Werner; +Cc: linux-kernel

> but if you checkout the PCI table in the driver, there is the device
> and vendor ID mentioned, that means for me that the driver supports
> the Graphic core in E680.
> And after loading the driver, it will parse for $VBT.
> I just find a comment in the PCI table with "E620" but
> the device and vendor id is the same for E680.
> 
> What do you mean with "Moorestown style" ?

There are essentially two styles of configuration table used with PVR
graphics. One is basically the same as that used on 'real' Intel graphics
the other first introduced with one of the SoC devices is a firmware
table in a completely different format.

The netbook and PC oriented devices use the VBT, the tablet SoC
devices and embedded ones seem to vary and have a VBT/GCT in different
form that is found via config 0xFC on the chipset - see mid_bios.c

Alan

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Black screen with GMA500 driver on Atom E680 (invalid VBT signature)
  2013-11-14 20:57     ` One Thousand Gnomes
@ 2013-11-16  9:28       ` Andreas Werner
  2013-11-18 13:59         ` One Thousand Gnomes
  0 siblings, 1 reply; 7+ messages in thread
From: Andreas Werner @ 2013-11-16  9:28 UTC (permalink / raw)
  To: One Thousand Gnomes; +Cc: linux-kernel

On Thu, Nov 14, 2013 at 08:57:58PM +0000, One Thousand Gnomes wrote:
> > but if you checkout the PCI table in the driver, there is the device
> > and vendor ID mentioned, that means for me that the driver supports
> > the Graphic core in E680.
> > And after loading the driver, it will parse for $VBT.
> > I just find a comment in the PCI table with "E620" but
> > the device and vendor id is the same for E680.
> > 
> > What do you mean with "Moorestown style" ?
> 
> There are essentially two styles of configuration table used with PVR
> graphics. One is basically the same as that used on 'real' Intel graphics
> the other first introduced with one of the SoC devices is a firmware
> table in a completely different format.
> 
> The netbook and PC oriented devices use the VBT, the tablet SoC
> devices and embedded ones seem to vary and have a VBT/GCT in different
> form that is found via config 0xFC on the chipset - see mid_bios.c
> 
> Alan
Hi,
if i dump the memory on 0xFC of the config space, there is just some from the
BIOS vendor with a BIOS Version, but nothing like $GCT.

In the Datasheet the 0xFC is described as "storage" does it mean there should
be the settings for the Graphic like VBT?
I did not find more information abaout GCT and how to implement it.


The board uses sdvo->vga for the output, the second board
uses sdvo->DVI and LVDS but there is always a  black screen on each
output interface. So i think there is wether a VBT not a GCT.

Regards 
andy

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Black screen with GMA500 driver on Atom E680 (invalid VBT signature)
  2013-11-16  9:28       ` Andreas Werner
@ 2013-11-18 13:59         ` One Thousand Gnomes
  0 siblings, 0 replies; 7+ messages in thread
From: One Thousand Gnomes @ 2013-11-18 13:59 UTC (permalink / raw)
  To: Andreas Werner; +Cc: linux-kernel

> if i dump the memory on 0xFC of the config space, there is just some from the
> BIOS vendor with a BIOS Version, but nothing like $GCT.

Ok

> In the Datasheet the 0xFC is described as "storage" does it mean there should
> be the settings for the Graphic like VBT?
> I did not find more information abaout GCT and how to implement it.

Its one place it can be. I don't believe there is any public
documentation.

> The board uses sdvo->vga for the output, the second board
> uses sdvo->DVI and LVDS but there is always a  black screen on each
> output interface. So i think there is wether a VBT not a GCT.

Fair enough. The current state is basically that some E600T devices happen
to work on certain ports (the logic is similar enough). If you've got one
that doesn't then you are basically on your own. 

The last "official" Intel out of tree driver is EMGD 1.18 which supports
Fedora 14 and a couple of other obsolete distros. It may be possible to
use the open bits of that as a basis of adding E680T support but it's
probably a couple of months work for someone sufficiently insa^Wmotivated.

Alan

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2013-11-18 13:59 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-11-13 18:34 Black screen with GMA500 driver on Atom E680 (invalid VBT signature) Andreas Werner
2013-11-14 13:52 ` One Thousand Gnomes
2013-11-14 15:32   ` Patrik Jakobsson
2013-11-14 18:25   ` Andreas Werner
2013-11-14 20:57     ` One Thousand Gnomes
2013-11-16  9:28       ` Andreas Werner
2013-11-18 13:59         ` One Thousand Gnomes

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).