mpspec.c File Reference

#include <console/console.h>
#include <device/device.h>
#include <device/path.h>
#include <device/pci_ids.h>
#include <cpu/cpu.h>
#include <arch/smp/mpspec.h>
#include <string.h>
#include <arch/cpu.h>
#include <cpu/x86/lapic.h>

Include dependency graph for mpspec.c:

Go to the source code of this file.

Functions

unsigned char smp_compute_checksum (void *v, int len)
void * smp_write_floating_table (unsigned long addr)
void * smp_write_floating_table_physaddr (unsigned long addr, unsigned long mpf_physptr)
void * smp_next_mpc_entry (struct mp_config_table *mc)
static void smp_add_mpc_entry (struct mp_config_table *mc, unsigned length)
void * smp_next_mpe_entry (struct mp_config_table *mc)
static void smp_add_mpe_entry (struct mp_config_table *mc, mpe_t mpe)
void smp_write_processor (struct mp_config_table *mc, unsigned char apicid, unsigned char apicver, unsigned char cpuflag, unsigned int cpufeature, unsigned int featureflag)
void smp_write_processors (struct mp_config_table *mc)
void smp_write_bus (struct mp_config_table *mc, unsigned char id, char *bustype)
void smp_write_ioapic (struct mp_config_table *mc, unsigned char id, unsigned char ver, unsigned long apicaddr)
void smp_write_intsrc (struct mp_config_table *mc, unsigned char irqtype, unsigned short irqflag, unsigned char srcbus, unsigned char srcbusirq, unsigned char dstapic, unsigned char dstirq)
void smp_write_intsrc_pci_bridge (struct mp_config_table *mc, unsigned char irqtype, unsigned short irqflag, struct device *dev, unsigned char dstapic, unsigned char *dstirq)
void smp_write_lintsrc (struct mp_config_table *mc, unsigned char irqtype, unsigned short irqflag, unsigned char srcbusid, unsigned char srcbusirq, unsigned char destapic, unsigned char destapiclint)
void smp_write_address_space (struct mp_config_table *mc, unsigned char busid, unsigned char address_type, unsigned int address_base_low, unsigned int address_base_high, unsigned int address_length_low, unsigned int address_length_high)
void smp_write_bus_hierarchy (struct mp_config_table *mc, unsigned char busid, unsigned char bus_info, unsigned char parent_busid)
void smp_write_compatibility_address_space (struct mp_config_table *mc, unsigned char busid, unsigned char address_modifier, unsigned int range_list)


Function Documentation

static void smp_add_mpc_entry ( struct mp_config_table *  mc,
unsigned  length 
) [static]

Definition at line 81 of file mpspec.c.

Referenced by smp_write_bus(), smp_write_intsrc(), smp_write_ioapic(), smp_write_lintsrc(), and smp_write_processor().

Here is the caller graph for this function:

static void smp_add_mpe_entry ( struct mp_config_table *  mc,
mpe_t  mpe 
) [static]

Definition at line 93 of file mpspec.c.

Referenced by smp_write_address_space(), smp_write_bus_hierarchy(), and smp_write_compatibility_address_space().

Here is the caller graph for this function:

unsigned char smp_compute_checksum ( void *  v,
int  len 
)

Definition at line 11 of file mpspec.c.

Referenced by smp_write_config_table(), smp_write_floating_table(), and smp_write_floating_table_physaddr().

Here is the caller graph for this function:

void* smp_next_mpc_entry ( struct mp_config_table *  mc  ) 

Definition at line 75 of file mpspec.c.

Referenced by smp_write_bus(), smp_write_config_table(), smp_write_intsrc(), smp_write_ioapic(), smp_write_lintsrc(), and smp_write_processor().

Here is the caller graph for this function:

void* smp_next_mpe_entry ( struct mp_config_table *  mc  ) 

Definition at line 87 of file mpspec.c.

Referenced by smp_write_address_space(), smp_write_bus_hierarchy(), smp_write_compatibility_address_space(), and smp_write_config_table().

Here is the caller graph for this function:

void smp_write_address_space ( struct mp_config_table *  mc,
unsigned char  busid,
unsigned char  address_type,
unsigned int  address_base_low,
unsigned int  address_base_high,
unsigned int  address_length_low,
unsigned int  address_length_high 
)

Definition at line 278 of file mpspec.c.

References memset(), smp_add_mpe_entry(), and smp_next_mpe_entry().

Here is the call graph for this function:

void smp_write_bus ( struct mp_config_table *  mc,
unsigned char  id,
char *  bustype 
)

Definition at line 157 of file mpspec.c.

References memcpy(), memset(), smp_add_mpc_entry(), and smp_next_mpc_entry().

Referenced by smp_write_config_table(), and xe7501devkit_register_buses().

Here is the call graph for this function:

Here is the caller graph for this function:

void smp_write_bus_hierarchy ( struct mp_config_table *  mc,
unsigned char  busid,
unsigned char  bus_info,
unsigned char  parent_busid 
)

Definition at line 298 of file mpspec.c.

References memset(), smp_add_mpe_entry(), and smp_next_mpe_entry().

Here is the call graph for this function:

void smp_write_compatibility_address_space ( struct mp_config_table *  mc,
unsigned char  busid,
unsigned char  address_modifier,
unsigned int  range_list 
)

Definition at line 313 of file mpspec.c.

References memset(), smp_add_mpe_entry(), and smp_next_mpe_entry().

Here is the call graph for this function:

void* smp_write_floating_table ( unsigned long  addr  ) 

Definition at line 24 of file mpspec.c.

References smp_compute_checksum().

Referenced by write_smp_table().

Here is the call graph for this function:

Here is the caller graph for this function:

void* smp_write_floating_table_physaddr ( unsigned long  addr,
unsigned long  mpf_physptr 
)

Definition at line 51 of file mpspec.c.

References smp_compute_checksum().

Referenced by write_tables().

Here is the call graph for this function:

Here is the caller graph for this function:

void smp_write_intsrc ( struct mp_config_table *  mc,
unsigned char  irqtype,
unsigned short  irqflag,
unsigned char  srcbus,
unsigned char  srcbusirq,
unsigned char  dstapic,
unsigned char  dstirq 
)

Definition at line 184 of file mpspec.c.

References hexdump(), memset(), printk_info, smp_add_mpc_entry(), and smp_next_mpc_entry().

Referenced by smp_write_config_table(), smp_write_intsrc_pci_bridge(), and xe7501devkit_register_interrupts().

Here is the call graph for this function:

Here is the caller graph for this function:

void smp_write_intsrc_pci_bridge ( struct mp_config_table *  mc,
unsigned char  irqtype,
unsigned short  irqflag,
struct device dev,
unsigned char  dstapic,
unsigned char *  dstirq 
)

void smp_write_ioapic ( struct mp_config_table *  mc,
unsigned char  id,
unsigned char  ver,
unsigned long  apicaddr 
)

Definition at line 169 of file mpspec.c.

References memset(), smp_add_mpc_entry(), and smp_next_mpc_entry().

Referenced by smp_write_config_table(), and xe7501devkit_register_ioapics().

Here is the call graph for this function:

Here is the caller graph for this function:

void smp_write_lintsrc ( struct mp_config_table *  mc,
unsigned char  irqtype,
unsigned short  irqflag,
unsigned char  srcbusid,
unsigned char  srcbusirq,
unsigned char  destapic,
unsigned char  destapiclint 
)

Definition at line 260 of file mpspec.c.

References memset(), smp_add_mpc_entry(), and smp_next_mpc_entry().

Referenced by smp_write_config_table().

Here is the call graph for this function:

Here is the caller graph for this function:

void smp_write_processor ( struct mp_config_table *  mc,
unsigned char  apicid,
unsigned char  apicver,
unsigned char  cpuflag,
unsigned int  cpufeature,
unsigned int  featureflag 
)

Definition at line 98 of file mpspec.c.

References memset(), smp_add_mpc_entry(), and smp_next_mpc_entry().

Referenced by smp_write_processors(), and smp_write_processors_inorder().

Here is the call graph for this function:

Here is the caller graph for this function:

void smp_write_processors ( struct mp_config_table *  mc  ) 

Definition at line 122 of file mpspec.c.

References all_devices, cpuid(), DEVICE_PATH_APIC, DEVICE_PATH_APIC_CLUSTER, cpuid_result::eax, cpuid_result::edx, LAPIC_LVR, device::next, and smp_write_processor().

Referenced by smp_write_config_table().

Here is the call graph for this function:

Here is the caller graph for this function:


Generated on Wed Jan 7 14:16:27 2009 for coreboot by  doxygen 1.5.5