Re: [PATCH v5 2/3] platform/chrome: cros_ec_lpc: Add support for Google Glimmer

From: Gwendal Grignou
Date: Wed Dec 06 2017 - 13:05:01 EST


On Tue, Dec 5, 2017 at 1:55 PM, Thierry Escande
<thierry.escande@xxxxxxxxxxxxx> wrote:
> Hi Gwendal,
>
> On 01/12/2017 20:54, Gwendal Grignou wrote:
>>
>> This is not required.
>> Looking with dmidecode, Glimmer reports:
>> ...
>> BIOS Information
>> Vendor: coreboot
>> Version: Google_Glimmer.5216.198.19
>> ...
>>
>> Therefore, the first entry of cros_ec_lpc_dmi_table will match.
>
>
> These DMI vendor/version strings are not exposed when booting in legacy mode
> using SeaBIOS on the Yoga 11e. Instead it matches with the pair
> GOOGLE/Glimmer. So this patch is needed for booting a vanilla kernel in
> legacy mode.
Good point. Given we will have the same issue with TianoCore, we have
to use a DMI product match. Newer ACPI based chromebooks registers
their EC dynamically , but looking at cros_ec_lpc.c, all registrations
are gated on a dmi table match. This is only required for older
devices.

In the meantime,
Reviewed-by: Gwendal Grignou <gwendal@xxxxxxxxxxxx>

> Regards,
> Thierry
>
>
>>
>> Gwendal.
>>
>> On Fri, Dec 1, 2017 at 5:42 AM, Thierry Escande
>> <thierry.escande@xxxxxxxxxxxxx> wrote:
>>>
>>> This patch adds device information to the DMI table of the cros_ec_lpc
>>> driver for Google Glimmer devices. Since Google BIOS does not enumerate
>>> devices in the LPC bus, the cros_ec_lpc driver checks for system
>>> compatibility and registers the cros_ec device itself.
>>>
>>> Signed-off-by: Thierry Escande <thierry.escande@xxxxxxxxxxxxx>
>>> ---
>>> drivers/platform/chrome/cros_ec_lpc.c | 7 +++++++
>>> 1 file changed, 7 insertions(+)
>>>
>>> diff --git a/drivers/platform/chrome/cros_ec_lpc.c
>>> b/drivers/platform/chrome/cros_ec_lpc.c
>>> index 0b26a09..4a2fc55 100644
>>> --- a/drivers/platform/chrome/cros_ec_lpc.c
>>> +++ b/drivers/platform/chrome/cros_ec_lpc.c
>>> @@ -365,6 +365,13 @@ static const struct dmi_system_id
>>> cros_ec_lpc_dmi_table[] __initconst = {
>>> DMI_MATCH(DMI_PRODUCT_NAME, "Peppy"),
>>> },
>>> },
>>> + {
>>> + /* x86-glimmer, the Lenovo Thinkpad Yoga 11e. */
>>> + .matches = {
>>> + DMI_MATCH(DMI_SYS_VENDOR, "GOOGLE"),
>>> + DMI_MATCH(DMI_PRODUCT_NAME, "Glimmer"),
>>> + },
>>> + },
>>> { /* sentinel */ }
>>> };
>>> MODULE_DEVICE_TABLE(dmi, cros_ec_lpc_dmi_table);
>>> --
>>> 2.7.4
>>>
>