systemcfg.h File

Purpose

Defines the _system_configuration structure.

Description

The systemcfg.h file defines the _system_configuration structure. This is a global structure that identifies system characteristics. The system_configuration structure is provided in read-only system memory. New fields will be added to the structure in future releases. The attributes in the _system_configuration structure have the following values:

Item Description
architecture Identifies the processor architecture. Valid values for Version 4 are:
POWER_RS
Indicates a POWER® family machine.
POWER_PC
Indicates a POWER processor-based.
implementation Identifies the specific version of the processor. Each implementation is assigned a unique bit to allow for efficient checking of implementation sets. The following are examples of valid values (the header file contains more values):
POWER_RS1
POWER_RS2
POWER_RSC
POWER_601

Two special values are also defined: POWER_RS_ALL and POWER_PC_ALL. These labels are defined as the bit OR of all members of their architecture.

version Identifies the central processing unit (CPU) version number. The following are examples of valid values (the header file contains more values):
PV_RS1
Identifies a POWER family RS1 machine.
PV_RS2
Identifies a POWER family RS2 machine.
PV_RS2G
Identifies a POWER family RS2 machine with graphics assist.
PV_RSC
Identifies a POWER family RSC machine.
PV_601
Identifies a PowerPC® 601 RISC Microprocessor machine.
width Contains the processor data-word size. Valid values are 32 or 64. This value is the maximum data-word size and should not be confused with the current execution mode.
ncpus Identifies the number of CPUs active on a machine. Uniprocessor (UP) machines are identified by a 1. Values greater than 1 indicate multiprocessor (MP) machines.
cache_attr Specifies the cache attributes. Bit 31 determines if the cache is present. If this bit is 1, the cache is present. If bit 31 is 0, then no cache is present and all other cache characteristics are 0. Bit 30 indicates the type of cache. If bit 30 is 1, the cache is combined. Otherwise, if bit 30 is 0 the instruction and data caches are separate.
icache_size Contains the L1 instruction-cache size in bytes. For combined caches, this value is the total cache size.
dcache_size Contains the size of the L1 data-cache size in bytes. For combined caches this the total cache size.
icache_asc Contains the L1 instruction-cache associativity. For a combined cache, this is the combined caches' associativity.
dcache_asc Contains the L1 data-cache associativity. For a combined cache, this is the combined caches' associativity.
icache_line Contains the line size in bytes of the L1 instruction cache.
dcache_line Contains the line size in bytes of L1 data cache.
L2_cache_size Contains the size of the L2 cache in bytes. A value of 0 indicates no L2 cache is present.
L2_cache_asc Identifies the associativity of the L2 cache.
tlb_comb Identifies the type of Transaction Lookaside Buffer (TLB) attributes. If the TLB is present, bit 31 is 1. Otherwise, if bit 31 is less than 0, the TLB does not exist and all other TLB characteristics are 0. Bit 30 is 1 if the TLB is combined. If the TLB is separate for the instruction and data cache, bit 30 is 0.
itlb_size Specifies the number of entries in the instruction TLB. For combined TLBs, this is the size of the combined TLB.
dtlb_size Specifies the number of entries in the data TLB. For combined TLBs, this is the size of the combined TLB.
itlb_asc Contains the associativity of the instruction TLB. This attribute's value is equal to the itlb_size attribute if the system is fully associative.
dtlb_asc Contains the associativity of the instruction TLB. This attribute's value is equal to the value of the dtlb_size attribute if the system is fully associative.
resv_size Contains the POWER processor-based reservation granule size. This field is a 0 on POWER family machines.
priv_ick_cnt Contains the number of times lock services attempt to lock a spin lock before blocking AP process/thread in supervisor mode. This a 0 on UP machine. This parameter is used by system-locking services.
prob_lck_cnt Contains the number of times lock services attempt to lock a spin lock before blocking a process or thread in problem state. This a 0 on a UP machine. This parameter is used by system-locking services.
virt_alias Indicates virtual memory aliasing. If 1, the hardware is available for virtual memory aliasing and this ability is used by the system. Virtual memory aliasing is the mapping of one real address to more than one virtual address.
cach_cong Contains the number page index bits that can result in a cache synonym. For machines without cache synonyms, this field is 0.