RTEMS  5.1
Data Structures | Macros | Typedefs | Variables
smp-imps.h File Reference

Intel MultiProcessor Specification (MPS) version 1.1 and 1.4 SMP hardware control. More...

Go to the source code of this file.

Data Structures

struct  imps_fps
 MP Floating Pointer Structure (fps) More...
 
struct  imps_cth
 MP Configuration Table Header (cth) More...
 
struct  imps_processor
 Base MP Configuration Table Types. They are sorted according to type (i.e. all of type 0 come first, etc.). Look on page 4-6 for the start of the descriptions. More...
 
struct  imps_bus
 
struct  imps_ioapic
 
struct  imps_interrupt
 

Macros

#define IMPS_READ(x)   (*((volatile unsigned *) (x)))
 
#define IMPS_WRITE(x, y)   (*((volatile unsigned *) (x)) = (y))
 
#define IMPS_DEBUG_PRINT(x)
 
#define IMPS_MAX_CPUS   APIC_BCAST_ID
 
#define IMPS_FPS_SIGNATURE   ('_' | ('M'<<8) | ('P'<<16) | ('_'<<24))
 This is the value that must be in the "sig" member of the MP Floating Pointer Structure.
 
#define IMPS_FPS_IMCRP_BIT   0x80
 
#define IMPS_FPS_DEFAULT_MAX   7
 
#define IMPS_CTH_SIGNATURE   ('P' | ('C'<<8) | ('M'<<16) | ('P'<<24))
 This is the value that must be in the "sig" member of the MP Configuration Table Header.
 
#define IMPS_FLAG_ENABLED   1
 These are the "type" values for Base MP Configuration Table entries.
 
#define IMPS_BCT_PROCESSOR   0
 
#define IMPS_CPUFLAG_BOOT   2
 
#define IMPS_BCT_BUS   1
 
#define IMPS_BCT_IOAPIC   2
 
#define IMPS_BCT_IO_INTERRUPT   3
 
#define IMPS_BCT_LOCAL_INTERRUPT   4
 
#define IMPS_INT_INT   0
 
#define IMPS_INT_NMI   1
 
#define IMPS_INT_SMI   2
 
#define IMPS_INT_EXTINT   3
 
#define IMPS_LAPIC_READ(x)   (*((volatile unsigned *) (imps_lapic_addr+(x))))
 
#define IMPS_LAPIC_WRITE(x, y)   (*((volatile unsigned *) (imps_lapic_addr+(x))) = (y))
 

Typedefs

typedef struct imps_fps imps_fps
 MP floating pointer structure.
 
typedef struct imps_cth imps_cth
 MP configuration table header.
 
typedef struct imps_processor imps_processor
 
typedef struct imps_bus imps_bus
 
typedef struct imps_ioapic imps_ioapic
 
typedef struct imps_interrupt imps_interrupt
 

Variables

unsigned char imps_cpu_apic_map [IMPS_MAX_CPUS]
 These map from virtual cpu numbers to APIC id's and back.
 
unsigned char imps_apic_cpu_map [IMPS_MAX_CPUS]
 
char _binary_appstart_bin_start []
 base address of application processor reset code at 0x70000
 
char _binary_appstart_bin_size []
 
unsigned imps_lapic_addr
 base address of the local apic. Usually 0xFEE00000
 

Detailed Description

Intel MultiProcessor Specification (MPS) version 1.1 and 1.4 SMP hardware control.