[coreboot] RFC: implementing a way to force external EDID use.

Stefan Reinauer stefan.reinauer at coreboot.org
Tue Jul 12 20:04:32 CEST 2016


Hi Arthur,

* Arthur Heymans <arthur at aheymans.xyz> [160622 23:34]:
> Hi
> 
> In Linux it is possible to load an EDID externally. Coreboot can
> currently not do this. Do you think it is worth implementing this
> feature?

So far we have not come across devices without an EDID or with a bad
EDID, but if that is the case for you, you should implement this.

What platform are you looking at?

> An EDID file is a bit to big (128 bytes) to fit in nvram so it would have to go in cbfs.

Since the information is not going to change (for a mobile device,
anyways), CBFS is the right place.

> Where in the code do you think this setting should be implemented:
> NB code, read_edid in drivers, decode_edid in lib, somewhere else?

The code should probably live in lib, as it is not chip specific, and be
called from the chip specific code, e.g.

        intel_gmbus_read_edid(pmmio + GMBUS0, 3, 0x50, edid_data, 128);
        decode_edid(edid_data, sizeof(edid_data), &edid);

would become something like

        if (IS_ENABLED(CONFIG_OVERRIDE_EDID)
                cbfs_read_edid(edid_data, sizeof(edid_data));
        else
                intel_gmbus_read_edid(pmmio + GMBUS0, 3, 0x50, edid_data, 128);
        decode_edid(edid_data, sizeof(edid_data), &edid);

> How do you think this feature should be turned on: nvram option or build
> option?
 
This depends on your use case. Since this is not something that should
be messed with in the field, I would suggest to make it a Kconfig
option.

Stefan




More information about the coreboot mailing list