coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
mainboard.c File Reference
#include <arch/cpu.h>
#include <assert.h>
#include <baseboard/variants.h>
#include <cbfs.h>
#include <chip.h>
#include <console/console.h>
#include <cpu/intel/cpu_ids.h>
#include <device/device.h>
#include <drivers/intel/gma/opregion.h>
#include <ec/google/chromeec/ec.h>
#include <intelblocks/power_limit.h>
#include <smbios.h>
#include <soc/ramstage.h>
#include <string.h>
#include <variant/sku.h>
Include dependency graph for mainboard.c:

Go to the source code of this file.

Data Structures

struct  pl2_config
 
struct  oem_mapping
 

Macros

#define PL2_I7_SKU   44
 
#define PL2_DEFAULT   29
 
#define PL2_KBL_U   25
 
#define PL2_ID_DEFAULT   0
 
#define PL2_ID_SONA_SYNDRA   1
 
#define PL2_ID_BARD_EKKO   2
 
#define AKALI_SA_AC_LOADLINE   1100
 
#define AKALI_SA_DC_LOADLINE   1028
 
#define AKALI_IA_AC_LOADLINE   272
 
#define AKALI_IA_DC_LOADLINE   247
 
#define AKALI_GT_AC_LOADLINE   314
 
#define AKALI_GT_DC_LOADLINE   321
 
#define OEM_UNKNOWN   0xff
 

Enumerations

enum  project_sku { PRJ_AKALI = 1 }
 

Functions

static uint32_t get_pl2 (int pl2_id)
 
uint32_t variant_board_sku (void)
 
const char * smbios_system_sku (void)
 
static uint8_t read_oem_id (void)
 
const char * smbios_mainboard_manufacturer (void)
 
const char * mainboard_vbt_filename (void)
 
static int find_sku_mapping (const uint8_t oem_id)
 
void variant_devtree_update (void)
 

Variables

static const struct pl2_config pl2_config_table []
 
struct {
   enum project_sku   sku
 
   int   ac_loadline [NUM_VR_DOMAINS]
 
   int   dc_loadline [NUM_VR_DOMAINS]
 
sku_overwrite_mapping []
 
struct oem_mapping __packed
 
static char oem_bin_data [200]
 

Macro Definition Documentation

◆ AKALI_GT_AC_LOADLINE

#define AKALI_GT_AC_LOADLINE   314

Definition at line 42 of file mainboard.c.

◆ AKALI_GT_DC_LOADLINE

#define AKALI_GT_DC_LOADLINE   321

Definition at line 43 of file mainboard.c.

◆ AKALI_IA_AC_LOADLINE

#define AKALI_IA_AC_LOADLINE   272

Definition at line 40 of file mainboard.c.

◆ AKALI_IA_DC_LOADLINE

#define AKALI_IA_DC_LOADLINE   247

Definition at line 41 of file mainboard.c.

◆ AKALI_SA_AC_LOADLINE

#define AKALI_SA_AC_LOADLINE   1100

Definition at line 38 of file mainboard.c.

◆ AKALI_SA_DC_LOADLINE

#define AKALI_SA_DC_LOADLINE   1028

Definition at line 39 of file mainboard.c.

◆ OEM_UNKNOWN

#define OEM_UNKNOWN   0xff

Definition at line 104 of file mainboard.c.

◆ PL2_DEFAULT

#define PL2_DEFAULT   29

Definition at line 20 of file mainboard.c.

◆ PL2_I7_SKU

#define PL2_I7_SKU   44

Definition at line 19 of file mainboard.c.

◆ PL2_ID_BARD_EKKO

#define PL2_ID_BARD_EKKO   2

Definition at line 26 of file mainboard.c.

◆ PL2_ID_DEFAULT

#define PL2_ID_DEFAULT   0

Definition at line 24 of file mainboard.c.

◆ PL2_ID_SONA_SYNDRA

#define PL2_ID_SONA_SYNDRA   1

Definition at line 25 of file mainboard.c.

◆ PL2_KBL_U

#define PL2_KBL_U   25

Definition at line 21 of file mainboard.c.

Enumeration Type Documentation

◆ project_sku

Enumerator
PRJ_AKALI 

Definition at line 46 of file mainboard.c.

Function Documentation

◆ find_sku_mapping()

static int find_sku_mapping ( const uint8_t  oem_id)
static

Definition at line 211 of file mainboard.c.

References ARRAY_SIZE, oem_mapping::oem_id, sku, and sku_overwrite_mapping.

Referenced by variant_devtree_update().

Here is the caller graph for this function:

◆ get_pl2()

static uint32_t get_pl2 ( int  pl2_id)
static

Definition at line 72 of file mainboard.c.

References ARRAY_SIZE, assert, cpuid_eax(), CPUID_KABYLAKE_Y0, pl2_config::cpuid_non_y0_pl2, pl2_config::cpuid_y0_pl2, and pl2_config_table.

Referenced by variant_devtree_update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ mainboard_vbt_filename()

◆ read_oem_id()

static uint8_t read_oem_id ( void  )
static

Definition at line 112 of file mainboard.c.

References BIOS_DEBUG, BIOS_ERR, google_chromeec_cbi_get_oem_id(), OEM_UNKNOWN, and printk.

Referenced by smbios_mainboard_manufacturer(), and variant_devtree_update().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ smbios_mainboard_manufacturer()

const char* smbios_mainboard_manufacturer ( void  )

Definition at line 143 of file mainboard.c.

References cbfs_load(), NULL, oem_bin_data, oem_mapping::oem_id, oem_mapping::oem_name, OEM_UNKNOWN, and read_oem_id().

Here is the call graph for this function:

◆ smbios_system_sku()

const char* smbios_system_sku ( void  )

Definition at line 95 of file mainboard.c.

References snprintf(), and variant_board_sku().

Here is the call graph for this function:

◆ variant_board_sku()

uint32_t variant_board_sku ( void  )

Definition at line 81 of file mainboard.c.

References google_chromeec_cbi_get_sku_id(), sku_id(), and SKU_UNKNOWN.

Here is the call graph for this function:

◆ variant_devtree_update()

Variable Documentation

◆ __packed

◆ ac_loadline

int ac_loadline[NUM_VR_DOMAINS]

Definition at line 52 of file mainboard.c.

◆ dc_loadline

int dc_loadline[NUM_VR_DOMAINS]

Definition at line 53 of file mainboard.c.

◆ oem_bin_data

char oem_bin_data[200]
static

Definition at line 141 of file mainboard.c.

Referenced by smbios_mainboard_manufacturer().

◆ pl2_config_table

const struct pl2_config pl2_config_table[]
static
Initial value:
= {
}
#define PL2_ID_BARD_EKKO
Definition: mainboard.c:26
#define PL2_ID_DEFAULT
Definition: mainboard.c:24
#define PL2_DEFAULT
Definition: mainboard.c:20
#define PL2_I7_SKU
Definition: mainboard.c:19
#define PL2_KBL_U
Definition: mainboard.c:21
#define PL2_ID_SONA_SYNDRA
Definition: mainboard.c:25

Referenced by get_pl2().

◆ sku

◆ 

const { ... } sku_overwrite_mapping[]
Initial value:
= {
{
.sku = PRJ_AKALI,
.ac_loadline = {
},
.dc_loadline = {
}
},
}
#define AKALI_SA_DC_LOADLINE
Definition: mainboard.c:39
@ PRJ_AKALI
Definition: mainboard.c:47
#define AKALI_GT_AC_LOADLINE
Definition: mainboard.c:42
#define AKALI_IA_DC_LOADLINE
Definition: mainboard.c:41
#define AKALI_SA_AC_LOADLINE
Definition: mainboard.c:38
#define AKALI_IA_AC_LOADLINE
Definition: mainboard.c:40
#define AKALI_GT_DC_LOADLINE
Definition: mainboard.c:43

Referenced by find_sku_mapping(), and variant_devtree_update().