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 
3 #include <baseboard/variants.h>
5 #include <smbios.h>
6 #include <string.h>
7 #include <sar.h>
8 
9 #define SKU_UNKNOWN 0xFFFFFFFF
10 
12 {
13  static uint32_t sku_id = SKU_UNKNOWN;
14  uint32_t id;
15 
16  if (sku_id != SKU_UNKNOWN)
17  return sku_id;
19  return SKU_UNKNOWN;
20  sku_id = id;
21 
22  return sku_id;
23 }
24 
25 const char *smbios_system_sku(void)
26 {
27  static char sku_str[14]; /* sku{0..4294967295} */
28 
29  snprintf(sku_str, sizeof(sku_str), "sku%u", variant_board_sku());
30 
31  return sku_str;
32 }
33 
34 const char *get_wifi_sar_cbfs_filename(void)
35 {
37 
39  if (sku_id & 0x200)
40  return "wifi_sar-shyvana.hex";
41  else
42  return "wifi_sar-leona.hex";
43 
45 }
int google_chromeec_cbi_get_sku_id(uint32_t *id)
Definition: ec.c:839
const char * smbios_system_sku(void)
Definition: mainboard.c:174
uint8_t __weak variant_board_sku(void)
Definition: mainboard.c:172
uint32_t sku_id(void)
Definition: mainboard.c:11
const char * get_wifi_sar_cbfs_filename(void)
Definition: mainboard.c:7
#define SKU_UNKNOWN
Definition: mainboard.c:9
#define WIFI_SAR_CBFS_DEFAULT_FILENAME
Definition: sar.h:87
unsigned int uint32_t
Definition: stdint.h:14
int snprintf(char *buf, size_t size, const char *fmt,...)
Note: This file is only for POSIX compatibility, and is meant to be chain-included via string....
Definition: vsprintf.c:35