vendorcode/google/chromeos: Add API for Chromebook Plus check
This patch implements an API which relies on the chromeos_get_factory_config() function to retrieve the factory config value. This information is useful to determine whether a ChromeOS device is branded as a Chromebook Plus based on specific bit flags: - Bit 4 (0x10): Indicates whether the device chassis has the "chromebook-plus" branding. - Bits 3-0 (0x1): Must be 0x1 to signify compliance with Chromebook Plus hardware specifications. BUG=b:317880956 TEST=Able to verify that google/screebo is branded as Chromebook Plus. Change-Id: Iebaed1c60e34af4cc36316f1f87a89df778b0857 Signed-off-by: Subrata Banik <subratabanik@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/79763 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Kapil Porwal <kapilporwal@google.com>
This commit is contained in:
@ -32,6 +32,18 @@ void chromeos_set_ramoops(void *ram_oops, size_t size);
|
|||||||
* Return `-1` in case of error.
|
* Return `-1` in case of error.
|
||||||
*/
|
*/
|
||||||
int64_t chromeos_get_factory_config(void);
|
int64_t chromeos_get_factory_config(void);
|
||||||
|
/*
|
||||||
|
* Determines whether a ChromeOS device is branded as a Chromebook Plus
|
||||||
|
* based on specific bit flags:
|
||||||
|
*
|
||||||
|
* - Bit 4 (0x10): Indicates whether the device chassis has the
|
||||||
|
* "chromebook-plus" branding.
|
||||||
|
* - Bits 3-0 (0x1): Must be 0x1 to signify compliance with Chromebook Plus
|
||||||
|
* hardware specifications.
|
||||||
|
*
|
||||||
|
* To be considered a Chromebook Plus, either of these conditions needs to be met.
|
||||||
|
*/
|
||||||
|
bool chromeos_device_branded_plus(void);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Declaration for mainboards to use to generate ACPI-specific ChromeOS needs.
|
* Declaration for mainboards to use to generate ACPI-specific ChromeOS needs.
|
||||||
|
@ -2,8 +2,13 @@
|
|||||||
|
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
#include <security/tpm/tss.h>
|
#include <security/tpm/tss.h>
|
||||||
|
#include <types.h>
|
||||||
#include <vendorcode/google/chromeos/chromeos.h>
|
#include <vendorcode/google/chromeos/chromeos.h>
|
||||||
|
|
||||||
|
#define CHROMEBOOK_PLUS_HARD_BRANDED BIT(4)
|
||||||
|
#define CHROMEBOOK_PLUS_SOFT_BRANDED BIT(0)
|
||||||
|
#define CHROMEBOOK_PLUS_DEVICE (CHROMEBOOK_PLUS_HARD_BRANDED | CHROMEBOOK_PLUS_SOFT_BRANDED)
|
||||||
|
|
||||||
int64_t chromeos_get_factory_config(void)
|
int64_t chromeos_get_factory_config(void)
|
||||||
{
|
{
|
||||||
static int64_t factory_config = -1;
|
static int64_t factory_config = -1;
|
||||||
@ -29,3 +34,24 @@ int64_t chromeos_get_factory_config(void)
|
|||||||
|
|
||||||
return factory_config;
|
return factory_config;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Determines whether a ChromeOS device is branded as a Chromebook Plus
|
||||||
|
* based on specific bit flags:
|
||||||
|
*
|
||||||
|
* - Bit 4 (0x10): Indicates whether the device chassis has the
|
||||||
|
* "chromebook-plus" branding.
|
||||||
|
* - Bits 3-0 (0x1): Must be 0x1 to signify compliance with Chromebook Plus
|
||||||
|
* hardware specifications.
|
||||||
|
*
|
||||||
|
* To be considered a Chromebook Plus, either of these conditions needs to be met.
|
||||||
|
*/
|
||||||
|
bool chromeos_device_branded_plus(void)
|
||||||
|
{
|
||||||
|
int64_t factory_config = chromeos_get_factory_config();
|
||||||
|
|
||||||
|
if (factory_config < 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return factory_config & CHROMEBOOK_PLUS_DEVICE;
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user