coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
mainboard.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 
4 #include <baseboard/variants.h>
5 #include <boardid.h>
6 #include <cbfs.h>
7 #include <gpio.h>
8 #include <smbios.h>
9 #include <variant/gpio.h>
10 
12 {
13  static int sku = -1;
14 
15  if (sku == -1)
17 
18  return sku;
19 }
20 
22 {
23  return sku_id();
24 }
25 
27 {
28  /* Enable backlight - GPIO 133 active low */
29  gpio_set(GPIO_133, 0);
30 }
31 
33 {
34  static char oem_bin_data[11];
35  static const char *manuf;
36 
37  if (!CONFIG(USE_OEM_BIN))
38  return CONFIG_MAINBOARD_SMBIOS_MANUFACTURER;
39 
40  if (manuf)
41  return manuf;
42 
43  if (cbfs_load("oem.bin", oem_bin_data, sizeof(oem_bin_data) - 1))
44  manuf = &oem_bin_data[0];
45  else
46  manuf = CONFIG_MAINBOARD_SMBIOS_MANUFACTURER;
47 
48  return manuf;
49 }
static size_t cbfs_load(const char *name, void *buf, size_t size)
Definition: cbfs.h:282
@ CONFIG
Definition: dsi_common.h:201
uint32_t google_chromeec_get_sku_id(void)
Definition: ec.c:934
uint8_t __weak variant_board_sku(void)
Definition: mainboard.c:172
void __weak variant_mainboard_suspend_resume(void)
Definition: mainboard.c:177
const char * smbios_mainboard_manufacturer(void)
Definition: mainboard.c:32
uint32_t sku_id(void)
Definition: mainboard.c:11
enum project_sku sku
Definition: mainboard.c:51
static char oem_bin_data[200]
Definition: mainboard.c:141
void gpio_set(gpio_t gpio, int value)
Definition: gpio.c:174
#define GPIO_133
Definition: gpio.h:97
unsigned int uint32_t
Definition: stdint.h:14
unsigned char uint8_t
Definition: stdint.h:8