[coreboot] Broadwell-U hangs at VGA init

Nico Huber nico.huber at secunet.com
Mon Jul 31 12:52:51 CEST 2017


Hi Zheng,

On 30.07.2017 16:13, Zheng Bao wrote:
> I have got the mrc.bin and mem init has got passed.
> Now the  new problem is that it hangs at VGA init.
> 
> static void igd_setup_panel(struct device *dev)
> {
> config_t *conf = dev->chip_info;
> u32 reg32;
> 
> /* Setup Digital Port Hotplug */
> reg32 = gtt_read(PCH_PORT_HOTPLUG);  <------- It hangs here.
> if (!reg32) {
> reg32 = (conf->gpu_dp_b_hotplug & 0x7) << 2;
> reg32 |= (conf->gpu_dp_c_hotplug & 0x7) << 10;
> reg32 |= (conf->gpu_dp_d_hotplug & 0x7) << 18;
> gtt_write(PCH_PORT_HOTPLUG, reg32);
> }
> 
> It turns out as soon as i access VGA bar0+0xc4030, it hangs.
> while accessing bar0 + 0xa00a is ok.

sounds like the PCH part of the display engine isn't operational (pro-
bably not all, but most register offsets with bit 19 set reside in the
PCH). There are few steps to enable it [1], yet the Broadwell port seems
to rely on the blob to do it. The datasheet [2] suggests that the same
settings should be done for Broadwell too, but I can't find it in the
source. So that leads to the conclusion: You forgot to add the second
blob (HAVE_REFCODE_BLOB, it's BS, it's annoying, but you need it).

That publicly documented settings move from the open source code into
blobs is a very bad sign, IMO. Now, anybody tell me again, that things
with Intel are getting better and they might become more open (the sta-
tistics seem to say the opposite: the blobs get bigger, weirder, take
over more responsibilities _and_ do a lot of stuff we already had open
source for earlier platforms).

Nico

[1] src/southbridge/intel/lynxpoint/lpc.c:725
[2] Intel Document Number: 330837



More information about the coreboot mailing list