coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
silicon_init.c File Reference
#include <bootsplash.h>
#include <cbfs.h>
#include <cbmem.h>
#include <commonlib/fsp.h>
#include <commonlib/stdlib.h>
#include <console/console.h>
#include <fsp/api.h>
#include <fsp/util.h>
#include <program_loading.h>
#include <soc/intel/common/vbt.h>
#include <stage_cache.h>
#include <string.h>
#include <timestamp.h>
#include <types.h>
#include <mode_switch.h>
Include dependency graph for silicon_init.c:

Go to the source code of this file.

Data Structures

struct  fsp_multi_phase_get_number_of_phases_params
 

Enumerations

enum  fsp_silicon_init_phases { FSP_SILICON_INIT_API , FSP_MULTI_PHASE_SI_INIT_GET_NUMBER_OF_PHASES_API , FSP_MULTI_PHASE_SI_INIT_EXECUTE_PHASE_API }
 

Functions

void __weak platform_fsp_multi_phase_init_cb (uint32_t phase_index)
 
static void fsps_return_value_handler (enum fsp_silicon_init_phases phases, uint32_t status)
 
bool fsp_is_multi_phase_init_enabled (void)
 
static void fsp_fill_common_arch_params (FSPS_UPD *supd)
 
static void do_silicon_init (struct fsp_header *hdr)
 
static voidfsps_allocator (void *arg_unused, size_t size, const union cbfs_mdata *mdata_unused)
 
void fsps_load (void)
 
void preload_fsps (void)
 
void fsp_silicon_init (void)
 
__weak void soc_load_logo (FSPS_UPD *supd)
 

Variables

struct fsp_header fsps_hdr
 

Enumeration Type Documentation

◆ fsp_silicon_init_phases

Enumerator
FSP_SILICON_INIT_API 
FSP_MULTI_PHASE_SI_INIT_GET_NUMBER_OF_PHASES_API 
FSP_MULTI_PHASE_SI_INIT_EXECUTE_PHASE_API 

Definition at line 35 of file silicon_init.c.

Function Documentation

◆ do_silicon_init()

◆ fsp_fill_common_arch_params()

static void fsp_fill_common_arch_params ( FSPS_UPD *  supd)
static

Definition at line 81 of file silicon_init.c.

References FSPS_ARCH_UPD::EnableMultiPhaseSiliconInit, and fsp_is_multi_phase_init_enabled().

Referenced by do_silicon_init().

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

◆ fsp_is_multi_phase_init_enabled()

bool fsp_is_multi_phase_init_enabled ( void  )

Definition at line 75 of file silicon_init.c.

References CONFIG, and fsps_hdr.

Referenced by do_silicon_init(), fsp_fill_common_arch_params(), and platform_fsp_silicon_init_params_cb().

Here is the caller graph for this function:

◆ fsp_silicon_init()

void fsp_silicon_init ( void  )

Definition at line 242 of file silicon_init.c.

References CONFIG, do_silicon_init(), fsp_display_timestamp(), fsps_hdr, fsps_load(), timestamp_add_now(), and TS_FSP_SILICON_INIT_LOAD.

Referenced by chip_init(), fsp_run_silicon_init(), soc_init(), and soc_init_pre_device().

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

◆ fsps_allocator()

static void* fsps_allocator ( void arg_unused,
size_t  size,
const union cbfs_mdata mdata_unused 
)
static

Definition at line 199 of file silicon_init.c.

References cbmem_add(), and CBMEM_ID_REFCODE.

Referenced by fsps_load().

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

◆ fsps_load()

◆ fsps_return_value_handler()

static void fsps_return_value_handler ( enum fsp_silicon_init_phases  phases,
uint32_t  status 
)
static

Definition at line 41 of file silicon_init.c.

References BIOS_SPEW, CONFIG, die_with_post_code, fsp_handle_reset(), FSP_MULTI_PHASE_SI_INIT_EXECUTE_PHASE_API, FSP_MULTI_PHASE_SI_INIT_GET_NUMBER_OF_PHASES_API, FSP_SILICON_INIT_API, FSP_SUCCESS, POST_HW_INIT_FAILURE, POST_VIDEO_FAILURE, printk, and vbt_get().

Referenced by do_silicon_init().

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

◆ platform_fsp_multi_phase_init_cb()

void __weak platform_fsp_multi_phase_init_cb ( uint32_t  phase_index)

Definition at line 27 of file silicon_init.c.

Referenced by do_silicon_init().

Here is the caller graph for this function:

◆ preload_fsps()

void preload_fsps ( void  )

Definition at line 233 of file silicon_init.c.

References BIOS_DEBUG, cbfs_preload(), CONFIG, and printk.

Referenced by start_fsps_preload().

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

◆ soc_load_logo()

__weak void soc_load_logo ( FSPS_UPD *  supd)

Definition at line 252 of file silicon_init.c.

Referenced by do_silicon_init().

Here is the caller graph for this function:

Variable Documentation

◆ fsps_hdr

struct fsp_header fsps_hdr