coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
mp.h File Reference
#include <cpu/x86/smm.h>
#include <types.h>
Include dependency graph for mp.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  mp_ops
 

Macros

#define CACHELINE_SIZE   64
 

Enumerations

enum  { MP_RUN_ON_ALL_CPUS }
 

Functions

static void mfence (void)
 
enum cb_err mp_init_with_smm (struct bus *cpu_bus, const struct mp_ops *mp_ops)
 
enum cb_err mp_run_on_aps (void(*func)(void *), void *arg, int logical_cpu_num, long expire_us)
 
enum cb_err mp_run_on_all_aps (void(*func)(void *), void *arg, long expire_us, bool run_parallel)
 
enum cb_err mp_run_on_all_cpus (void(*func)(void *), void *arg)
 
enum cb_err mp_park_aps (void)
 
void smm_initiate_relocation_parallel (void)
 
void smm_initiate_relocation (void)
 

Macro Definition Documentation

◆ CACHELINE_SIZE

#define CACHELINE_SIZE   64

Definition at line 9 of file mp.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
MP_RUN_ON_ALL_CPUS 

Definition at line 92 of file mp.h.

Function Documentation

◆ mfence()

static void mfence ( void  )
inlinestatic

Definition at line 14 of file mp.h.

Referenced by ap_wait_for_instruction(), barrier_wait(), and release_barrier().

Here is the caller graph for this function:

◆ mp_init_with_smm()

enum cb_err mp_init_with_smm ( struct bus cpu_bus,
const struct mp_ops mp_ops 
)

Definition at line 1082 of file mp_init.c.

Referenced by cpx_init_cpus(), get_adl_cpu_type(), mp_init_cpus(), soc_init_cpus(), and xeon_sp_init_cpus().

Here is the caller graph for this function:

◆ mp_park_aps()

enum cb_err mp_park_aps ( void  )

Definition at line 933 of file mp_init.c.

Referenced by arch_bootstate_coreboot_exit(), and intel_txt_prepare_txt_env().

Here is the caller graph for this function:

◆ mp_run_on_all_aps()

enum cb_err mp_run_on_all_aps ( void(*)(void *)  func,
void arg,
long  expire_us,
bool  run_parallel 
)

Definition at line 933 of file mp_init.c.

Referenced by mp_startup_all_aps(), and mp_startup_all_cpus().

Here is the caller graph for this function:

◆ mp_run_on_all_cpus()

enum cb_err mp_run_on_all_cpus ( void(*)(void *)  func,
void arg 
)

Definition at line 933 of file mp_init.c.

Referenced by drop_privilege_all(), finalize_cores(), post_cpus_init(), post_mp_init(), and run_set_cpu_type().

Here is the caller graph for this function:

◆ mp_run_on_aps()

enum cb_err mp_run_on_aps ( void(*)(void *)  func,
void arg,
int  logical_cpu_num,
long  expire_us 
)

Definition at line 933 of file mp_init.c.

Referenced by agesa_RunFcnOnAllAps(), agesa_RunFuncOnAp(), mp_startup_this_ap(), and ocp_oem_smbios_strings().

Here is the caller graph for this function:

◆ smm_initiate_relocation()

void smm_initiate_relocation ( void  )

Definition at line 664 of file mp_init.c.

References smm_initiate_relocation_parallel(), spin_lock, and spin_unlock.

Referenced by fill_mp_state_smm(), per_cpu_smm_trigger(), smm_initialize(), and smm_relocate().

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

◆ smm_initiate_relocation_parallel()

void smm_initiate_relocation_parallel ( void  )

Definition at line 639 of file mp_init.c.

References apic_wait_timeout(), BIOS_DEBUG, CB_SUCCESS, lapic_busy(), LAPIC_DM_SMI, LAPIC_INT_ASSERT, lapic_send_ipi_self(), and printk.

Referenced by smm_initiate_relocation(), and smm_relocate().

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