PICMG Specification

PICMG Specification PICMG Specification

24.05.2014 Views

PICMG 2.0R3.0: ECN 2.0-3.0-002 PICMG Specification Engineering Change Notice 2.0-3.0-002 Topic: Self-Describing Slot Geography Affected Specification: PICMG 2.0 R3.0 Sponsor(s): Software Interoperability Subcommittee Participants in Final Ballot Group: Aculab, Artela Systems, Asis, Force Computers, Hybricon, Intel, LynuxWorks, Matrox, MontaVista Software, National Instruments, Pentair Electronic Packaging, Pigeon Point Systems, PLX Technology, Rittal/Kaparel, SANMINA, Spectel, Sun Microsystems, Wind River Systems Description The focus of this ECN is to enable hardware-independent software to map between: o the geographic addresses (or physical slot numbers) that are defined for each CompactPCI slot and o the logical PCI addresses (based on the bus, device and function numbers) by which operating systems and device drivers access the boards in those slots. The emphasis is on systems containing CompactPCI buses on the backplane. Switch fabric-based architectures, such as those established by PICMG 2.16 and PICMG 2.17 need to address these issues separately for boards that don’t interface to the CompactPCI bus on the backplane. Both architectures provide for systems with and without CompactPCI buses on the backplane. Justification Achieving the above mapping is crucial to achieving two higher level goals: o Enabling application and system software to communicate with an operator about specific boards in the system by designating them in a simple and precise manner that is consistent across systems and vendors. The consequences of operator action on the wrong slot can be severe. CompactPCI physical slot numbers start at 1 at the top left-most slot and increase sequentially. CompactPCI backplanes already provide a binary encoded physical slot number to each slot. Logical PCI addresses are the likeliest alternative board designators, but can be confusing and error prone for operators. PCI bus numbers can be different over time in the same system, depending on board population. Bus numbers in the system are directly affected by the presence of boards that interface to the CompactPCI bus through transparent PCI- ADOPTED January 23, 2002 1

<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

<strong>PICMG</strong> <strong>Specification</strong><br />

Engineering Change Notice 2.0-3.0-002<br />

Topic: Self-Describing Slot Geography<br />

Affected <strong>Specification</strong>: <strong>PICMG</strong> 2.0 R3.0<br />

Sponsor(s): Software Interoperability Subcommittee<br />

Participants in Final Ballot Group:<br />

Aculab, Artela Systems, Asis, Force Computers, Hybricon, Intel, LynuxWorks,<br />

Matrox, MontaVista Software, National Instruments, Pentair Electronic<br />

Packaging, Pigeon Point Systems, PLX Technology, Rittal/Kaparel, SANMINA,<br />

Spectel, Sun Microsystems, Wind River Systems<br />

Description<br />

The focus of this ECN is to enable hardware-independent software to map between:<br />

o the geographic addresses (or physical slot numbers) that are defined for each<br />

CompactPCI slot and<br />

o the logical PCI addresses (based on the bus, device and function numbers) by<br />

which operating systems and device drivers access the boards in those slots.<br />

The emphasis is on systems containing CompactPCI buses on the backplane. Switch<br />

fabric-based architectures, such as those established by <strong>PICMG</strong> 2.16 and <strong>PICMG</strong> 2.17<br />

need to address these issues separately for boards that don’t interface to the CompactPCI<br />

bus on the backplane. Both architectures provide for systems with and without<br />

CompactPCI buses on the backplane.<br />

Justification<br />

Achieving the above mapping is crucial to achieving two higher level goals:<br />

o Enabling application and system software to communicate with an operator about<br />

specific boards in the system by designating them in a simple and precise manner<br />

that is consistent across systems and vendors. The consequences of operator<br />

action on the wrong slot can be severe.<br />

CompactPCI physical slot numbers start at 1 at the top left-most slot and increase<br />

sequentially. CompactPCI backplanes already provide a binary encoded physical<br />

slot number to each slot. Logical PCI addresses are the likeliest alternative board<br />

designators, but can be confusing and error prone for operators.<br />

PCI bus numbers can be different over time in the same system, depending on<br />

board population. Bus numbers in the system are directly affected by the<br />

presence of boards that interface to the CompactPCI bus through transparent PCI-<br />

ADOPTED January 23, 2002 1


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

to-PCI bridges. PCI bus and device numbers are not intuitive. Two systems can<br />

look very similar and have quite different bus number structures. Device numbers<br />

of CompactPCI boards are typically in the range 9 to 15, but the ordering of<br />

device numbers within the physical slots of a given segment can be arbitrary.<br />

o For systems based on <strong>PICMG</strong> 2.9, the CompactPCI System Management<br />

specification, enabling integration of information from two critical domains. The<br />

system management domain is based on the Intelligent Platform Management<br />

Interface (IPMI) and inherently uses physical slot numbers to identify boards.<br />

Meanwhile, the operating system domain typically uses PCI logical addresses to<br />

refer to boards on a CompactPCI bus. <strong>PICMG</strong> 2.9R1.0 does not provide a<br />

mechanism for hardware-independent software to correlate information between<br />

these domains, each of which may contain unique information critical to the<br />

overall management of a system.<br />

In summary: the overall situation regarding geographic addressing in CompactPCI<br />

systems is that backplanes supply a binary encoded geographic address (GA) to each slot,<br />

but there is:<br />

o No requirement that boards do anything with it, except in <strong>PICMG</strong> 2.9 systems,<br />

where GA is used in the IPMI subsystem but not generically accessible to the PCI<br />

subsystem.<br />

o No hardware-independent means to get the GA of the slot containing a specific<br />

board.<br />

Style<br />

Specific proposed changes are provided in the next section, in the style<br />

described below.<br />

ECN text describing changes in the affected document uses this font.<br />

Text intended for inclusion in the body of the specification uses this font.<br />

Section headers for text intended for inclusion in the body of the specification are<br />

preceded with the notation:<br />

y.z Title<br />

where: x indicates the level of header to be used, and y.z indicates the<br />

anticipated number that would be automatically generated by Microsoft Word by<br />

the inclusion of this new section named Title.<br />

Newly inserted Figure and Table items are assigned numbers in a special series<br />

for this ECN. Figures are numbered E02-Fn, with Tables numbered E02-Tn.<br />

ADOPTED January 23, 2002 2


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

Concurrent with development of this ECR02 for <strong>PICMG</strong> 2.0R3.0, ECR01 was<br />

also in progress to add CompactPCI support for PCI-X. Wherever possible, item<br />

numbering in this ECN is chosen to be compatible with the changes proposed in<br />

ECR01. The goal is to minimize the challenges of:<br />

• merging the two ECNs (once both are adopted) into the main<br />

specification and<br />

• concurrently using the two ECNs for development guidance in the<br />

interim before the merge occurs.<br />

Form for Compliance Claims and Requirement References<br />

Consistent with the <strong>PICMG</strong> Policies and Procedures for <strong>Specification</strong><br />

Development, the following form for claims of compliance or requirement<br />

references from other <strong>PICMG</strong> specifications is recommended:<br />

“[This product complies with…] or [component x shall meet the requirements<br />

of…] <strong>PICMG</strong> 2.0 R3.0 as amended by ECN 2.0-3.0-002.”<br />

Specific Proposed Changes<br />

Section 1.5 Applicable Documents<br />

Add references to <strong>PICMG</strong> 2.5, 2.6, 2.7, 2.16, 2.17 and the PCI-to-PCI Bridge<br />

spec.<br />

• PCI-to-PCI Bridge Architecture <strong>Specification</strong>. PCI Special Interest Group, 5200<br />

N.E. Elam Young Parkway, Hillsboro OR 97124-6497, Phone: (503) 696-2000<br />

http://www.pcisig.com/<br />

• <strong>PICMG</strong> 2.5, CompactPCI Computer Telephony <strong>Specification</strong>.<br />

• <strong>PICMG</strong> 2.6 1 , Bridging Beyond Eight Slots: Common Practices.<br />

• <strong>PICMG</strong> 2.7, CompactPCI Dual System System Slot <strong>Specification</strong>.<br />

• <strong>PICMG</strong> 2.16, CompactPCI Packet Switching Backplane <strong>Specification</strong>.<br />

• <strong>PICMG</strong> 2.17 2 , CompactPCI StarFabric <strong>Specification</strong>.<br />

Minor Update to Section 2.1 Form Factor<br />

Edit the 2 nd paragraph on page 14 (just below Figure 2) to clarify the<br />

requirements on physical slot numbering.<br />

CompactPCI defines slot numbering based on the concept of physical and logical slots.<br />

Physical slot numbers shall start at 1 in the top-left corner of the card cage. All<br />

CompactPCI systems should label all physical slots with their physical slot numbers<br />

1 At this writing, <strong>PICMG</strong> 2.6 is in development.<br />

2 At this writing, <strong>PICMG</strong> 2.17 is in development.<br />

ADOPTED January 23, 2002 3


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

within the compatibility glyphs. Figure 2 illustrates physical slot numbering within the<br />

compatibility glyphs (e.g., 1 ) on a backplane. Similar slot labeling should be applied on<br />

the subrack if necessary to ensure operator visibility. See Section 4.1.9 for further details<br />

on slot labeling and compatibility glyphs.<br />

New Section 2.6 Self-Describing Slot Geography<br />

Add a new section introducing the self-describing slot geography features of<br />

CompactPCI, including the new features introduced by this ECN.<br />

2.6 Self-Describing Slot Geography<br />

The strong modularity of CompactPCI components allows: 1) a wide range of boards to<br />

be installed in a given backplane and 2) the same board (say, a system slot board) to be<br />

installed in a wide range of backplanes. These combinations can produce very different<br />

slot geographies. The slot geography of a segment of CompactPCI slots is the mapping,<br />

for each slot, between:<br />

• the physical slot number of the slot, and<br />

• for peripheral slots, the PCI logical device number by which a board in that slot is<br />

addressed on the CompactPCI bus.<br />

Accurate information about the slot geography of a system is crucial to ensuring that<br />

application and system software can communicate with an operator about specific boards<br />

in the system by designating them with simple and precise physical slot numbers.<br />

Physical slot numbers are far preferable to the likely alternative slot designator: the PCI<br />

logical address by which a slot is referenced on the CompactPCI bus. PCI logical<br />

addresses are typically easy for operating systems and device drivers, but can be cryptic<br />

and confusing to an operator. The consequences of operator action on the wrong slot can<br />

be severe.<br />

This specification’s approach to these challenges has three aspects:<br />

1. Embedded information in backplanes that can electrically self-describe their slot<br />

geographies and a strong recommendation that slot geography data be made<br />

available to software.<br />

Each CompactPCI slot can include dedicated geographic address pins that<br />

electrically identify the physical slot number to a board installed in that slot.<br />

Additional pins in a system slot can describe the PCI geography of the backplane<br />

bus segment created by that slot.<br />

2. A particular mechanism that allows CompactPCI boards (such as system slot<br />

boards) to make this geographic information available to software in a hardware<br />

independent way.<br />

ADOPTED January 23, 2002 4


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

Leveraging the Vital Product Data feature defined by Revision 2.2 of the PCI<br />

Local Bus <strong>Specification</strong>, CompactPCI boards can provide access to this<br />

geographic information for hardware-independent software.<br />

3. A strong recommendation that CompactPCI subracks include operator-visible<br />

physical slot number labeling.<br />

Together, these facilities can enable simple and precise communication with an operator<br />

regarding the location of boards in a system.<br />

New Section 3.1.10 Mapping PCI Device Numbers to ADxx Lines on<br />

System Slot Boards<br />

Add a constraint on this mapping to facilitate a simple description of slot<br />

geography for backplane segments. Although this is a new constraint that is not<br />

present in <strong>PICMG</strong> 2.1R3.0, essentially all existing system slot boards are very<br />

likely to already meet it.<br />

3.1.10 Mapping PCI Device Numbers to ADxx Lines on System Slot<br />

Boards<br />

System Slot boards that create a backplane segment implement a specific mapping from<br />

PCI device numbers to ADxx lines for Type 0 configuration cycles targeting that<br />

segment. For backplane segments that are created by PCI-to-PCI bridges, that mapping<br />

is mandated by the PCI-to-PCI Bridge Architecture specification. For other segments<br />

that are created by PCI host bridges:<br />

•The PCI-to-PCI bridge mapping should be used.<br />

•Otherwise, the mapping shall be of the form “xx = ADxx Constant plus or minus<br />

Device Number” where ADxx Constant is fixed for a particular backplane<br />

segment. For instance, some host bridges use plus and ADxx Constant = 11; for<br />

backplane segments created by such bridges, xx = 11 + Device Number. The<br />

mandated mapping for PCI-to-PCI bridges uses plus and ADxx Constant = 16.<br />

For a sequential mapping like AD31 = Device 0, AD30 = Device 1, …, ADxx<br />

Constant would be 31 and the operator would be minus.<br />

Update to Section 3.2.7.6 Geographic Addressing (GA[4..0])<br />

Insert additional text at the end of this section on page 26 to note the possibility<br />

of providing access to GA data via VPD.<br />

Boards that support Vital Product Data may provide access to this geographic addressing<br />

data via special keywords defined in Chapter 6, Vital Product Data (VPD) Requirements.<br />

For peripheral boards that support a VPD interface in the CompactPCI bus interface<br />

ADOPTED January 23, 2002 5


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

device, the LC keyword may be implemented to provide a hardware-independent means<br />

for software to identify the physical slot in which the board is installed.<br />

New Section 3.2.7.8 Segment Type (ST[1..0])<br />

Define a new field in system slots that helps to identify the PCI geography of the<br />

backplane segments created by those system slots.<br />

3.2.7.8 Segment Type (ST[1..0])<br />

The ST[1..0] signals should be implemented in each system slot to help identify the PCI<br />

geography of peripheral slots created by those system slots. Boards that use the ST<br />

signals shall pull them up with 10.0 Kohm ±10% resistors.<br />

In a backplane system slot implementing the ST[1..0] signals, the Segment Type created<br />

by that system slot shall be encoded on the backplane by grounding and leaving<br />

unconnected different combinations of pins. Table E02-T1 defines the Segment Types<br />

corresponding to each such combination, with names for specifically assigned types.<br />

Segment Type Unknown indicates that a system slot does not support Segment Type<br />

identification. Subsequent subsections define the Segment Types.<br />

Table E02-T1. Segment Types Identified by ST[1..0]<br />

Segment Type<br />

Name<br />

ST[1] (J2-D21) ST[0] (J2-E21)<br />

Reserved GND GND<br />

Nominal Left GND Open<br />

Nominal Right Open GND<br />

Unknown Open Open<br />

3.2.7.8.1 Definition and Use of Nominal Left and Nominal Right<br />

Segments<br />

In Nominal backplane segments, sequential logical slots (and the associated ADxx<br />

mappings defined in Table 7) occupy sequentially numbered physical slots moving away<br />

from the system slot, either to the right or to the left.<br />

The following properties apply to Nominal Left segments:<br />

• The GA[4..0] field defines the physical slot number of the system slot.<br />

• The closest distinct (not co-located) peripheral slot is immediately to the left of<br />

the system slot that creates it and has a physical slot number one smaller.<br />

ADOPTED January 23, 2002 6


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

• The IDSEL pin of that closest peripheral slot is connected to the AD31 signal in<br />

accordance with the logical slot #2 definition in Table 7.<br />

• Additional peripheral slots are sequentially further to the left and have physical<br />

slot numbers sequentially smaller.<br />

• The IDSEL pin of each additional peripheral slot is connected to the sequentially<br />

decreasing ADxx signal (AD30, AD29 … AD25) in accordance with sequentially<br />

increasing logical slot #s defined in Table 7.<br />

The following properties apply to Nominal Right segments:<br />

• The GA[4..0] field defines the physical slot number of the system slot.<br />

• The closest distinct (not co-located) peripheral slot is immediately to the right of<br />

the system slot that creates it and has a physical slot number one larger.<br />

• The IDSEL pin of that closest peripheral slot is connected to the AD31 signal in<br />

accordance with the logical slot #2 definition in Table 7.<br />

• Additional peripheral slots are sequentially further to the right and have physical<br />

slot numbers sequentially larger.<br />

• The IDSEL pin of each additional peripheral slot is connected to the sequentially<br />

decreasing ADxx signal (AD30, AD29 … AD25) in accordance with sequentially<br />

increasing logical slot #s defined in Table 7.<br />

<strong>PICMG</strong> 2.6, Bridging Beyond Eight Slots: Common Practices, introduces a unique type<br />

of system slot board, a pallet bridge. A pallet bridge installs on the back of and parallel<br />

to the backplane. With a pallet bridge on the back of a slot creating the backplane<br />

segment, a peripheral board can be installed in the front position of the same slot. Pallet<br />

bridges are especially valuable for chassis configurations where the number of available<br />

normal peripheral slots needs to be maximized. See <strong>PICMG</strong> 2.6 for further background<br />

and examples.<br />

When a backplane segment is configured for use with a pallet bridge, long pins are<br />

installed in the P1/P2 zone in the system slot so that a pallet bridge module can be<br />

connected to those pins. These are the same physical pins to which a peripheral board in<br />

that same slot would connect. A peripheral slot that shares the same physical pins on the<br />

backplane with a system slot (where the system slot is typically designed for a rear pallet<br />

bridge) is defined as co-located.<br />

This dual use of the same physical pins constrains the ADxx signal that can be connected<br />

to IDSEL for that co-located peripheral slot. The xx value must be chosen so that the<br />

corresponding assignment of the INTA#-INTD# signals matches the assignment on<br />

system slots, as defined in Table 8. By consistent extension of Table 8, AD24 meets this<br />

requirement. <strong>PICMG</strong> 2.6 (tentatively) will specify AD24 as the IDSEL signal for such<br />

co-located peripheral slots created by pallet bridges.<br />

The geography of the conventional peripheral-only slots created by a pallet bridge<br />

configuration can be described by any of the defined Segment Types. Those Segment<br />

Types do not cover the PCI geography of the co-located peripheral slot (specifically the<br />

ADOPTED January 23, 2002 7


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

ADxx signal associated with that peripheral slot). Section 6.3 provides one way to<br />

address the missing data item.<br />

<strong>PICMG</strong> 2.7, the CompactPCI Dual System Slot <strong>Specification</strong>, defines 6U system slots<br />

and system slot boards that create two backplane segments. J1/P1 and J2/P2 create one<br />

of the segments. J4/P4 and J5/P5 create the other segment. Consistent with <strong>PICMG</strong> 2.7,<br />

the ST[1..0] signals in the additional “system slot” on J4/P4 + J5/P5 are assigned to J5,<br />

row 21. Except for that difference in the connector location, other aspects of ST[1..0]<br />

implementation are equivalent for the J4/P4 + J5/P5 system slot, unless stated otherwise.<br />

A dual system slot shall implement GA[4..0] equivalently in both connectors except<br />

when it creates dual Stacked 3U segments, as detailed further in Section 3.2.7.8.2.<br />

A dual system slot may use Nominal Left or Nominal Right segments to implement 6U<br />

backplane segments on either side of the system slot, with backplane segments on either<br />

side created by either P1/P2 or P4/P5.<br />

See Appendix C for examples of backplane configurations with Nominal Left and Right<br />

segments, including dual system slot configurations.<br />

3.2.7.8.2 Stacked 3U Segments<br />

Stacked 3U backplane segments are Nominal segments on the same side of a 6U dual<br />

system slot, with the segment created by P1/P2 below the segment created by P4/P5. The<br />

segments are either: 1) both Nominal Left or 2) both Nominal Right segments.<br />

Two distinct physical slot numbers are provided to the board, one from P5 and the other<br />

from P2. This situation requires special care in the use of these two distinct GA fields:<br />

one is the actual physical slot number of the dual system slot board (denoted GA[4..0], as<br />

usual) and the other is an auxiliary slot number (denoted GA[4..0] A ) used only to derive<br />

the slot numbers of one of the Stacked segments.<br />

For Stacked 3U segments to the left of a 6U dual system slot board:<br />

•The segment type for the top 3U segment created by P4/P5 will be Nominal Left.<br />

GA[4..0] A will be defined in P5.<br />

•Since the dual system slot auxiliary slot number is GA[4..0] A , the adjacent top<br />

rightmost 3U peripheral slot will have the physical slot number GA[4..0] A - 1.<br />

•The segment type for the lower 3U segment created by P1/P2 will be Nominal<br />

Left. The actual physical slot number of the system slot board, GA[4..0] will be<br />

defined in P2.<br />

•Since the physical slot number of the dual system slot is GA[4..0], the adjacent<br />

lower rightmost 3U peripheral slot will have the physical slot number GA[4..0] -<br />

1.<br />

For Stacked 3U segments to the right of a 6U dual system slot board:<br />

ADOPTED January 23, 2002 8


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

•The segment type for the top 3U segment created by P4/P5 will be Nominal<br />

Right. The actual physical slot number of the system slot board, GA[4..0], will be<br />

defined in P5.<br />

•Since the physical slot number of the dual system slot is GA[4..0], the adjacent<br />

top leftmost 3U peripheral slot will have the physical slot number GA[4..0] + 1.<br />

•The segment type for the lower 3U segment created by P1/P2 will be Nominal<br />

Right. GA[4..0] A will be defined in P2.<br />

•Since the dual system slot auxiliary slot number is GA[4..0] A , the adjacent lower<br />

leftmost 3U peripheral slot will have the physical slot number GA[4..0] A + 1.<br />

See Appendix C for examples of backplane configurations with Stacked 3U segments.<br />

Slot numbering and mechanical requirements defined elsewhere in this specification<br />

effectively prohibit installing a pair of independent 3U system slot boards in a dual<br />

system slot designed for Stacked 3U segments.<br />

3.2.7.8.3 Summary of Backplane Requirements for Segment Type<br />

Implementation<br />

Table E02-T2 summarizes the PCI geography associated with each of the defined<br />

Segment Types. Backplane system slots shall identify their Segment Type and<br />

implement the geography of their associated peripheral slots in accordance with Table<br />

E02-T2. Each segment of a pair of Stacked 3U segments shall individually comply with<br />

the table. Legacy backplane segments and backplane segments that do not implement<br />

one of the other defined Segment Types shall identify themselves as Segment Type<br />

Unknown.<br />

As shown in Table E02-T2, the physical slot number of the system slot (denoted N in the<br />

table) is defined by GA[4..0] for Nominal segments. The physical slot number of the<br />

closest distinct peripheral slot (denoted P in the table) is a function of N. Table E02-T2<br />

also shows the ADxx line that is connected to each peripheral slot’s IDSEL pin.<br />

Table E02-T2. PCI Geography Associated with Nominal Segments<br />

Segment<br />

Type<br />

System/Auxiliary<br />

Slot # (N)<br />

Nominal<br />

Right<br />

N=GA[4..0]<br />

Nominal<br />

Left<br />

ADxx Line Connected to<br />

Each Peripheral Slot’s<br />

IDSEL Pin<br />

Peripheral Slot # as a Function of N,<br />

Starting at the Closest Peripheral Slot #<br />

(P), with Corresponding ADxx line<br />

P=N+1 P+1 P+2 P+3 P+4 P+5 P+6<br />

P=N-1 P-1 P-2 P-3 P-4 P-5 P-6<br />

AD<br />

31<br />

AD<br />

30<br />

AD<br />

29<br />

AD<br />

28<br />

AD<br />

27<br />

AD<br />

26<br />

AD<br />

25<br />

ADOPTED January 23, 2002 9


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

See Appendix C for examples of backplane configurations illustrating the use of the<br />

Segment Types defined in Table E02-T2.<br />

3.2.7.8.4 Software Access to Slot Geography Information<br />

Slot geography data for backplane segments of a system (such as the GA[4..0] and<br />

ST[1..0] data provided by backplane system slots, including both instances of that data<br />

for dual system slots) should be accessible to software. Furthermore, this information<br />

should be accessible via some hardware-independent mechanism to facilitate its use by<br />

software, including platform-independent software.<br />

One such hardware-independent mechanism makes use of the Vital Product Data (VPD)<br />

feature defined in Revision 2.2 of the PCI Local Bus <strong>Specification</strong>. Chapter 6 provides<br />

details of this approach. The slot geography of an entire backplane bus segment (if it<br />

implements a defined Segment Type) may be described in VPD on the system slot board<br />

for the segment. This description:<br />

•would use a combination of the Location (LC) and PCI Geography (PG) VPD<br />

keywords that are defined in Chapter 6.<br />

•enables the use of physical slot numbers for peripheral slots and boards in the<br />

segment without dependence on any support on the peripheral boards themselves<br />

for access to geographic data.<br />

The Chassis and Slot Number facilities defined in Chapter 13 of the PCI-to-PCI Bridge<br />

Architecture <strong>Specification</strong> are motivated by similar goals for hardware-independent<br />

access to PCI slot geography data. These facilities are not applicable to CompactPCI<br />

backplane segments because they require that the first peripheral slot in a backplane<br />

segment be selected by AD17, with sequentially greater slot numbers selected by<br />

sequentially greater ADxx lines. These requirements conflict with the CompactPCI<br />

conventions established by Table 7.<br />

Minor Update to Section 4.1.9 Front Panels<br />

Edit the 4 th paragraph on page 48 to clarify the requirements on physical slot<br />

numbering.<br />

Physical Slot locations within the subrack should be labeled with their physical slot<br />

numbers, such that the labels are visible from the front (and rear if rear panel I/O is<br />

utilized) of the subrack. Physical slot numbers should be placed within the compatibility<br />

glyphs.<br />

Section 5.8 Pin Assignments<br />

In Tables 15 and 16, reallocate pins D21 and E21 in P2/J2 to ST1 and ST0,<br />

respectively (both with note 20). Add Note 20.<br />

Note 20. ST[1..0] in P2 shall identify the Segment Type of the backplane segment<br />

created by this system slot. See Section 3.2.7.8 for details.<br />

ADOPTED January 23, 2002 10


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

New Chapter 6 Vital Product Data (VPD) Requirements<br />

Add a new chapter for requirements regarding the content and updating of VPD.<br />

6 Vital Product Data (VPD) Requirements<br />

6.1 Overview of VPD<br />

Vital Product Data (VPD) is defined in the PCI Local Bus <strong>Specification</strong>, Revision 2.2,<br />

Appendix I. VPD provides an optional repository for read-only and/or read-write<br />

information regarding PCI devices, supplementing the information in the Configuration<br />

Space Header. For instance, board serial number and engineering change level can be<br />

recorded.<br />

VPD data (like all PCI data) uses a least significant byte first ordering. When four bytes<br />

of VPD data have been transferred from a particular address in storage to a 32-bit<br />

register, the least significant byte of that register contains the first byte at the designated<br />

address.<br />

VPD data is partitioned between read-only and read-write data. Writes to a read-only<br />

area are implemented as no-ops by the hardware. The read-only area is protected by a<br />

one-byte checksum after all the information fields. The checksum is correct if the sum of<br />

all the bytes in the VPD from VPD address 0 up to and including the checksum byte is<br />

zero.<br />

Information fields in VPD consist of a three-byte header followed by some amount of<br />

data (see Figure E02-F1). The three-byte header contains a two-byte keyword and a onebyte<br />

length.<br />

A keyword is a two-character (ASCII) mnemonic that uniquely identifies the information<br />

in the field. The last byte of the header is binary and represents the length value (in<br />

bytes) of the data that follows.<br />

Keyword Length Data<br />

Byte 0 Byte 1 Byte 2 Bytes 3 through n<br />

Figure E02-F1. Layout of VPD Keywords<br />

Appendix I also defines a specific set of keywords, grouped by whether they cover readonly<br />

data or read-write data.<br />

Later sections of this chapter define additional keywords beyond those defined by the<br />

PCI-SIG, along with the data fields associated with each.<br />

6.2 Slot Geography VPD Keyword Definitions<br />

ADOPTED January 23, 2002 11


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

6.2.1 “LC”—Board Location Keyword<br />

This keyword identifies the location of a board in three dimensions:<br />

• The slot number (SlotID) within a particular chassis or shelf in which the board is<br />

installed.<br />

• The shelf number (ShelfID) designating that chassis or shelf.<br />

• The position (PosID) of the board within the slot (distinguishing for instance,<br />

whether the board is a front board or a rear transition board).<br />

CompactPCI boards may implement this keyword to make the above information<br />

available to software in a hardware-independent way. If implemented, this keyword shall<br />

be implemented in the read-only area of VPD and shall comply with the data field<br />

definitions in this section. If necessary to comply with those definitions, fields shall be<br />

updated by some board-specific means before the configuration space of a board is<br />

enumerated by the operating system. Section 6.3.1 provides supplementary guidance on<br />

the inputs and results of this update process.<br />

The LC keyword has a minimum data length of 4 bytes and the field layout shown in<br />

Table E02-T3.<br />

Table E02-T3. Data Fields of the LC Keyword<br />

Bits Name Definition<br />

7-0 SlotID This 8-bit field is the system assigned SlotID. This field,<br />

when used with the Shelf ID and Position ID, provides a<br />

unique ID for each board in the system. The value of zero is<br />

reserved for future use and the value of 255 indicates that no<br />

SlotID is available. If there is more than one SlotID available<br />

to this slot (presumably through distinct backplane<br />

connectors), additional fields are available to record them<br />

after the fixed part of this keyword data.<br />

15-8 ShelfID This 8-bit field is the system assigned ShelfID. This field,<br />

when used with the Slot ID and Position ID, provides a<br />

unique ID for each board in the system. A field value of 255<br />

indicates that no ShelfID is available.<br />

18-16 Reserved Return 0 when read.<br />

20-19 NumSlotIDs This 2-bit field indicates the number of supplementary SlotID<br />

fields that follow the fixed part of this keyword data.<br />

00 – indicates that no supplementary SlotID fields are present.<br />

01 – indicates that one supplementary SlotID field is present.<br />

10 – indicates that two supplementary SlotID fields are<br />

present.<br />

11 – Reserved.<br />

ADOPTED January 23, 2002 12


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

Bits Name Definition<br />

23-21 PosID This 3-bit field indicates which position the board occupies in<br />

the slot.<br />

000 – indicates no Position ID information provided.<br />

001 – indicates that the board is inserted in a front slot.<br />

010 – indicates that the board is inserted in a rear slot.<br />

011 – indicates that the board is inserted in a supplementary<br />

rear slot (e.g. as a pallet bridge).<br />

100 –> 111 – Reserved<br />

31-24 NullCHK This 8-bit field is the 2’s complement of the checksum<br />

difference resulting from any bytes of this keyword that are<br />

updated from the system. This value ensures that the<br />

checksum of the entire read-only portion of the VPD (which<br />

was written to the VPD when the board was manufactured,<br />

reflecting the VPD content at that time) remains valid.<br />

0-2<br />

additional<br />

bytes<br />

SuppSlotIDs<br />

NumSlotIDs bytes, with each byte containing a<br />

supplementary SlotID field, referenced as SuppSlotID1 and<br />

SuppSlotID2, respectively. The interpretation of each of<br />

these fields, if present, is identical to the interpretation of<br />

SlotID.<br />

Dual system slot boards implementing the LC keyword shall set NumSlotIDs = 1 and<br />

include a SuppSlotID1 field. Section 6.3.1 specifies how the GA[4..0] fields in J2 and J5<br />

are used to update the values of SlotID and SuppSlotID1 for the installation site of such<br />

boards. SlotID not equal to SuppSlotID1 after updating indicates that the dual system<br />

slot board is creating a pair of Stacked 3U backplane segments as detailed in section<br />

3.2.7.8.2; the two SlotID fields are interpreted accordingly.<br />

The LC keyword and its data would occur in VPD as the seven or more byte sequence in<br />

Table E02-T4.<br />

Table E02-T4. Byte Layout of LC Keyword and Data<br />

Byte Field<br />

Offset<br />

0 “L” (most significant character of keyword)<br />

1 “C” (least significant character of keyword)<br />

2 0x04 + NumSlotIDs (length of data)<br />

3 Bits 7-0 (SlotID)<br />

4 Bits 15-8 (ShelfID)<br />

5 Bits 23-16 (PosID, NumSlotIDs and Reserved<br />

fields)<br />

6 Bits 31-24 (NullCHK)<br />

7 0-2 supplementary SlotIDs<br />

ADOPTED January 23, 2002 13


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

See Appendix C for example system configurations with corresponding concrete<br />

instances of the LC keyword and its data.<br />

Single system slot boards shall implement the NumSlotIDs field in the LC keyword with<br />

a value of 0 and allocate no supplementary SlotID fields in the keyword data. Dual<br />

system slot boards shall implement the NumSlotIDs field with a value of 1 and allocate<br />

one supplementary SlotID field at the end of the keyword data.<br />

6.2.2 “PG”—PCI Geography Keyword<br />

This keyword defines the PCI geography of one or more segments of physical<br />

CompactPCI slots created by the board on which the VPD is implemented.<br />

Each segment of slots is bussed together and referenced by a single PCI logical bus<br />

number. The combination of the logical bus number and the logical device number<br />

uniquely identifies a specific CompactPCI board on a logical PCI bus (which may have<br />

multiple bus segments, some of them implementing physical slots).<br />

System slot boards may implement this keyword so that the slot geography of the<br />

backplane segment(s) they create is accessible to software in a hardware-independent<br />

way. If implemented, this keyword shall be implemented in the read-only area of VPD<br />

and shall comply with the data field definitions in this section. If necessary to comply<br />

with those definitions, fields shall be updated by some board-specific means before the<br />

configuration space of a board is enumerated by the operating system. Section 6.3.2<br />

provides supplementary guidance on the inputs and results of this update process.<br />

The data area of this keyword begins with a NullCHK field to allow checksum correction<br />

for any updates to other fields of the keyword to reflect the actual installation site of the<br />

board. One or more Segment Descriptors follow the NullCHK field, each providing<br />

geography data for one physical bus segment.<br />

Table E02-T5 shows the overall layout of the data area for the PG keyword, which may<br />

include multiple Segment Descriptors (each composed of an SD Header and an SD<br />

Body). Table E02-T6 defines the fields of the 1-byte SD Header. A field in the Header<br />

identifies the SD Type. One such SD Type is CompactPCI Backplane. Table E02-T7<br />

defines the data fields of the 3-byte CompactPCI Backplane SD Body.<br />

Table E02-T5. Overall Layout of Data Area for PG Keyword<br />

Byte Name Description<br />

Offset<br />

0 NullCHK This 8-bit field is the 2’s complement of the checksum<br />

difference resulting from any bytes of this keyword that are<br />

updated from the system. Updates to partial byte fields must<br />

be scaled according to their bit position for this calculation.<br />

This value ensures that the checksum of the entire read-only<br />

ADOPTED January 23, 2002 14


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

1 SD Header<br />

1<br />

2 thru SD Body 1<br />

4 + N<br />

5 + N SD Header<br />

2<br />

6 + N thru SD Body 2<br />

8 + N + M<br />

portion of the VPD (which was written to the VPD when the<br />

board was manufactured, reflecting the VPD content at that<br />

time) remains valid.<br />

The header byte for the first Segment Descriptor in this<br />

keyword. See Table E02-T6 for details on this byte.<br />

The body of the first Segment Descriptor in this keyword,<br />

including an N-byte Slot Path following the 3-byte fixed size<br />

area for a CompactPCI backplane SD Body. See Table E02-<br />

T7 for details.<br />

The header byte for the second Segment Descriptor in this<br />

keyword. See Table E02-T6 for details on this byte.<br />

The body of the second Segment Descriptor in this keyword,<br />

including an M-byte Slot Path following the 3-byte fixed<br />

size area for a CompactPCI backplane SD Body. See Table<br />

E02-T7 for details.<br />

9 + N + M … Additional Segment Descriptors if present.<br />

Table E02-T6. Data Fields of an SD Header in a PG Keyword<br />

Bits Name Description<br />

0 AS Actual Segment – This 1-bit field indicates whether the<br />

segment of physical slots associated with this Descriptor<br />

actually exists (AS=1) or not (AS=0).<br />

3-1 SDT Segment Descriptor Type – This 3-bit field indicates the<br />

type of this Segment Descriptor. Each Segment Descriptor<br />

Type has an associated SD Body definition with additional<br />

fields appropriate to that type.<br />

000 – CompactPCI Backplane segment. The corresponding<br />

SD Body definition is provided in Table E02-T7.<br />

001-111 – > Reserved.<br />

7-4 SDS Segment Descriptor Size – This 4-bit field indicates the total<br />

number of bytes in this Segment Descriptor, including this<br />

header byte.<br />

Table E02-T7. Data Fields of a CompactPCI Backplane SD Body<br />

Bits Name Description<br />

1-0 ST Segment Type – If AS=1, this 2-bit field indicates the type of a<br />

CompactPCI backplane segment, based on the ST[1..0] field in<br />

its system slot, as detailed in Section 3.2.7.8. The xxb values<br />

of the two-pin ST[1..0] backplane field are directly mapped<br />

into this 2-bit VPD field.<br />

00 –Reserved.<br />

01 – indicates a Nominal Left segment.<br />

10 – indicates a Nominal Right segment.<br />

11 – indicates an Unknown segment.<br />

ADOPTED January 23, 2002 15


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

Bits Name Description<br />

2 Reserved Read as zero.<br />

7-3 AC ADxx Constant – This 5-bit field provides the constant that is<br />

combined with the PCI device number to determine xx and<br />

thereby the ADxx line used to select a device on this segment.<br />

8 AO ADxx Operator – This 1-bit field indicates whether a PCI<br />

device number is added to (AO=1) or subtracted from (AO=0)<br />

the ADxx Constant to determine xx on this segment. That is,<br />

ADxx Operator determines “oper” in xx = ADxx Constant<br />

oper Device Number.<br />

10-9 SPS Slot Path Size – This 2-bit field indicates the number of levels<br />

of PCI to PCI bridging that must be traversed to find the bus<br />

that creates the physical slots and therefore the length of the<br />

Slot Path that identifies that bus. The Slot Path, if present,<br />

starts at offset 4 in this Segment Descriptor, immediately after<br />

the first 4 bytes. The origin of the Slot Path is indicated by the<br />

Host-Based (HB) field and is either the host of the on-board<br />

PCI tree or the bridge associated with this VPD keyword.<br />

00 – indicates that no bridging is required and no Slot Path is<br />

present.<br />

01 – indicates that one level of bridging occurs and a 1-byte<br />

Slot Path provides the device / function number (5 bits /<br />

3 bits respectively) for the bridge.<br />

10 – indicates that two levels of bridging occur and a 2-byte<br />

Slot Path provides the device / function number (5 bits /<br />

3 bits respectively) for each bridge.<br />

11 – indicates that three levels of bridging occur and a 3-byte<br />

Slot Path provides the device / function number (5 bits / 3 bits<br />

respectively) for each bridge.<br />

11 HB Host-Based – This 1-bit field indicates whether the Slot Path<br />

(if present) is relative to the local device (HR=0) or to the host<br />

of the on-board PCI tree (HR=1). A Host-Based Slot Path is<br />

typically used if VPD accessed from one bridge device<br />

includes PCI geography data for a set of slots created by a peer<br />

PCI bridge. A non-Host-Based Slot Path is typically used if the<br />

bridge associated with this VPD keyword is a PCI parent of the<br />

bridge that creates the physical slots.<br />

13-12 CS Corresponding SlotID – This 2-bit field indicates the SlotID in<br />

the LC keyword data to which this Segment Descriptor<br />

corresponds.<br />

00 – indicates the initial SlotID in the fixed LC keyword data.<br />

01 – indicates the first supplementary SlotID (following the<br />

fixed LC keyword data).<br />

10 – indicates the second supplementary SlotID (following the<br />

fixed LC keyword data).<br />

11 – Reserved.<br />

ADOPTED January 23, 2002 16


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

Bits Name Description<br />

15-14 Reserved Read as zero.<br />

20-16 CPD Co-located Peripheral Device – This 5-bit field provides a PCI<br />

logical device number for a peripheral device co-located with<br />

the system slot (that is, sharing the same physical slot), if this<br />

backplane segment includes such a device. A value of 31<br />

indicates that there is no such device on this segment. The<br />

corresponding ADxx line selecting the co-located peripheral<br />

slot is determined by the values of the AC and AO fields.<br />

23-21 Reserved Read as zero.<br />

Zero or<br />

more<br />

subsequent<br />

bytes<br />

SP<br />

Slot Path – These bytes are only present if the SPS field<br />

indicates a non-zero slot path size. Each byte identifies a PCI<br />

to PCI bridge device by encoding the device number and<br />

function number by which that bridge is accessed on its<br />

primary bus. The device number is in bits 7..3. The function<br />

number is in bits 2..0. Successive bytes identify bridges<br />

successively further from the root of the PCI tree and closer to<br />

a leaf bridge.<br />

The PG keyword and its data would occur in VPD as the multi-byte sequence in Table<br />

E02-T8.<br />

Table E02-T8. Byte Layout of the PG Keyword and Data with a Single<br />

CompactPCI Backplane Segment Descriptor<br />

Byte Field<br />

Offset<br />

0 “P” (most significant character of keyword)<br />

1 “G” (least significant character of keyword)<br />

2 0x0X (length of data; 5 + additional bytes, if any)<br />

3 NullCHK field for data in this keyword<br />

4 SD Header (Segment Descriptor Size, Segment<br />

Descriptor Type and Actual Segment fields)<br />

5 SD Body Bits 7-0 (Segment Type, ADxx Constant<br />

and Reserved fields)<br />

6 SD Body Bits 15-8 (ADxx Operator, Host-Based,<br />

Slot Path Size Corresponding SlotID and Reserved<br />

fields)<br />

7 SD Body Bits 23-16 (Co-located Peripheral<br />

Device and Reserved fields)<br />

8 & Slot Path if non-zero Slot Path Size.<br />

following<br />

ADOPTED January 23, 2002 17


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

See Appendix C for example system configurations with corresponding concrete<br />

instances of the PG keyword and its data.<br />

6.3 Updating VPD Data to Reflect Board Installation Site<br />

The PCI specification does not define the implementation of the VPD store, only the<br />

configuration space interface. The implementation details of updating data in slotgeography-related<br />

VPD keywords (based on the actual installation site of a board) are<br />

inherently device-dependent. Appendix D sketches some possible approaches.<br />

This section focuses on the content of VPD data updates, ignoring how those updates are<br />

physically realized. The VPD keyword field values that are written into the VPD store<br />

when a board is manufactured are considered static values, in contrast with the updated<br />

values reflecting the actual installation site of the board.<br />

Tables in this section provide the following types of guidance for each field of<br />

geographic keyword data:<br />

• Updated Field Value Based on Board Install Site − This item is a suggested<br />

arithmetic or logical expression providing an updated value for the field. If<br />

the result of the expression is “NO-UPDATE”, the assumed static value is not<br />

updated at all.<br />

The updated value of the NullCHK field for a keyword can be affected by any<br />

updates to static field values for that keyword. NullCHK is calculated to<br />

exactly offset the impacts of updates, if any, to the static content of the other<br />

data fields of that keyword. This is necessary to preserve the correctness of<br />

the checksum for the overall VPD read-only area that is calculated and written<br />

at the end of the read-only area based on the static field values.<br />

The update expressions for the NullCHK field have the form: “-(…)[7..0]”,<br />

which means “the least significant 8 bits of the two’s complement of the<br />

expression in the parentheses”.<br />

• Assumed Static Value − If the static value of a field is different from the<br />

assumed value, then other aspects of the update guidance may need to change<br />

accordingly. For simplicity in expressing NullCHK calculation guidance in<br />

the tables of this section, fields that are likely to be updated have an assumed<br />

static value of 0.<br />

• Notes − Supplementary comments, where appropriate.<br />

6.3.1 Updating LC Keyword Data<br />

ADOPTED January 23, 2002 18


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

Typically, the SlotID, SuppSlotID1 (for a dual system slot board) and possibly the<br />

ShelfID can be determined from the backplane slot in which the board is installed. These<br />

VPD fields have more bits than the corresponding currently defined backplane fields.<br />

The extra bits allow wider backplane fields to be defined in the future without impacting<br />

software that processes the VPD data.<br />

PosID can typically be determined statically, based on the intrinsic design of the board.<br />

In the table below, all numbers are decimal numbers.<br />

Table E02-T9. LC Keyword Data—Update Guidance<br />

Field Updated Field Value Based on<br />

Board Install Site<br />

Notes Assumed Static<br />

Value<br />

SlotID IF GA[4..0] J2 = 31 THEN 255 1 0<br />

ELSE GA[4..0] J2<br />

ShelfID For boards with SGA DEFINED:<br />

IF (SGA[4..0] ≠ 31) THEN<br />

SGA[4..0] ELSE 255<br />

For boards with SGA not<br />

DEFINED: NO-UPDATE<br />

2 For boards with<br />

SGA<br />

DEFINED: 0<br />

For boards with<br />

SGA not<br />

DEFINED: 255<br />

PosID No update necessary Set to final<br />

NullCHK For boards with SGA DEFINED:<br />

- (SlotID + ShelfID +<br />

SuppSlotID1)[7..0]<br />

For boards with SGA not<br />

DEFINED:<br />

- (SlotID + SuppSlotID1)[7..0]<br />

SuppSlotID1 IF GA[4..0] J5 = 31 THEN 255<br />

ELSE GA[4..0] J5<br />

value<br />

3 0<br />

1, 4 0<br />

Notes:<br />

1. The special value 31 defined by Section 3.2.7.6 for the 5-bit GA[4..0] field is<br />

translated to the 8-bit SlotID field as 255.<br />

2. It is assumed that a board is intrinsically designed for slots that define SGA[4..0] pins<br />

or not. Therefore, whether the ShelfID field should be updated from SGA[4..0] is<br />

DEFINED (or known at the time a board is designed). Among the types of slots that<br />

define SGA[4..0] pins are <strong>PICMG</strong> 2.5 Computer Telephony slots, <strong>PICMG</strong> 2.16<br />

Fabric Slots, and <strong>PICMG</strong> 2.17 Fabric & Node slots. If SGA[4..0] is not DEFINED or<br />

SGA[4..0]=31, the ShelfID field must have a value of 255, which indicates that no<br />

ShelfID is available. System integrators are responsible for addressing the potential<br />

confusion when ShelfID is not available to distinguish between two boards in the<br />

same physical slot number of distinct shelves or chassis.<br />

ADOPTED January 23, 2002 19


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

3. Assumes that the static values of SlotID and ShelfID are zero and that PosID is: 1)<br />

static and 2) not updated at board install time. If SGA is not DEFINED, ShelfID is<br />

omitted from the NullCHK calculation. On single system slot boards, SuppSlotID1 is<br />

not defined; therefore it must be excluded from the NullCHK calculation.<br />

4. The SuppSlotID1 field always exists on a dual system slot board. Its updated value is<br />

based on the GA field in J5, using effectively the same update expression as for the<br />

GA field in J2. When implemented, SuppSlotID1 is included in the NullCHK<br />

calculation; otherwise, it is excluded from that calculation.<br />

6.3.2 Updating PG Keyword Data<br />

The Actual Segment (AS) field probably needs to be updated to reflect the actual system<br />

slot. AS should only be set to 1 in a Segment Descriptor that corresponds to an actual<br />

physical segment. When a system slot capable board is installed in a peripheral slot or a<br />

slot that doesn’t implement the CompactPCI bus, AS should have a value of 0. <strong>PICMG</strong><br />

2.16, CompactPCI Packet Switching Backplane <strong>Specification</strong>, and <strong>PICMG</strong> 2.17<br />

CompactPCI StarFabric <strong>Specification</strong> provide for installing boards that implement a<br />

CompactPCI bus on J1 + J2 into backplanes that don’t implement that bus. A special<br />

signal, PCI_PRESENT#, indicates to the board that a CompactPCI bus is implemented on<br />

the slot in which it is installed. CompactPCI system slots assert the SYSEN# signal,<br />

while peripheral slots do not assert SYSEN#. The PCI_PRESENT# and SYSEN#<br />

signals should be used to update AS appropriately.<br />

Table E02-T10 provides specific guidance for updating the above fields. All numbers in<br />

the table are decimal numbers unless specifically indicated otherwise.<br />

There is only one NullCHK field for each PG keyword, even if that keyword contains<br />

more than one Segment Descriptor. That single NullCHK field must compensate for<br />

checksum impacts of all the Segment Descriptors in a keyword that are updated from<br />

their static values.<br />

Table E02-T10. PG Keyword Data—Update Guidance<br />

Field Update Based on Board Install Site Notes Assumed<br />

Static<br />

Value<br />

NullCHK - (AS + ST)[7..0] 1 0<br />

Actual PCI_PRESENT# AND SYSEN# 2 0<br />

Segment (AS)<br />

Segment Type IF SYSEN# THEN ST[1..0] ELSE 3 0<br />

(ST)<br />

11b<br />

ADxx<br />

Constant (AC)<br />

Fixed by the implementation of the<br />

system slot board and therefore static,<br />

16<br />

ADxx<br />

Operator (AO)<br />

usually 16; see Section 3.1.10<br />

Fixed by the implementation of the<br />

system slot board and therefore static,<br />

1<br />

ADOPTED January 23, 2002 20


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

Field Update Based on Board Install Site Notes Assumed<br />

Static<br />

Value<br />

usually 1; see Section 3.1.10<br />

Slot Path Size<br />

(SPS)<br />

No update necessary 4 Set to<br />

final value<br />

Host-Based<br />

(HB)<br />

No update necessary 4 Set to<br />

final value<br />

Corresponding No update necessary 5 Set to<br />

SlotID (CS)<br />

Co-located<br />

Peripheral<br />

Device (CPD)<br />

final value<br />

No update necessary 6 Set to<br />

final value<br />

Slot Path (SP) No update necessary 4 Set to<br />

final value<br />

Notes:<br />

1. Assumes static values of zero for AS and ST, with no other fields changed from their<br />

static values. Also assumes that this PG keyword has only a single Segment<br />

Descriptor. For PG keywords that have multiple Segment Descriptors, the update<br />

expression for NullCHK will likely need to include multiple instances of fields such<br />

as AS and ST.<br />

2. The pin assigned to PCI_PRESENT# is defined as GND in R3.0 and earlier revisions<br />

of this specification, so this signal defaults to an active value for backplanes that predate<br />

the definition of this signal.<br />

3. If the installation site is a system slot, the value of the ST[1..0] backplane field can go<br />

directly into the ST field of the SD Body. Otherwise, the ST field in the SD Body is<br />

set to 11b.<br />

4. Slot path properties associated with the bridge that creates the backplane segment are<br />

inherent properties of the system slot board’s design; no update at board install time is<br />

applicable.<br />

5. CS statically identifies the backplane segment created by the board that is specified<br />

by this Segment Descriptor. When CS=0, it is the segment created by J1/J2. When<br />

CS=1 (which only occurs on dual system slot boards), it is the segment created by<br />

J4/J5. References to backplane fields (ST[1..0], PCI_PRESENT#, or SYSEN#) in the<br />

update expressions of this table refer to J1/J2 if CS=0 and to J4/J5 if CS=1.<br />

6. The system slot board (say, a pallet bridge) that creates the co-located peripheral slot<br />

determines what ADxx signal is routed to IDSEL of the peripheral slot and the AC<br />

and AO fields determine how the CPD value in this field maps to ADxx. No update<br />

at board install time is applicable.<br />

Add New Appendix C. Self-Describing Geography Examples<br />

This appendix provides several examples of backplane configurations and how<br />

Segment Types in system slots and VPD Keywords implemented on system slot<br />

ADOPTED January 23, 2002 21


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

boards can be used to describe the geography of the backplane segments in<br />

these configurations.<br />

Appendix C. Self-Describing Geography Examples<br />

This section applies this specification to example backplane and system slot board<br />

definitions to clarify implementation issues.<br />

C.1 Backplane Examples<br />

The following examples graphically represent the slots in a CompactPCI backplane, with<br />

system slots indicating the geographic address and segment type reported by the GA[4..0]<br />

and ST[1..0] pins, respectively. The table under the slot designators provides the binary<br />

form of the geographic address and indicates the ADxx line that is connected to the<br />

IDSEL pin for each peripheral slot.<br />

The first six examples are applicable to either 3U or 6U slots/boards. The first two of<br />

those show 8-slot backplanes with the system slots on the right and left, respectively.<br />

1 2 3 4 5 6 7 8<br />

00001<br />

AD25<br />

00010<br />

AD26<br />

00011<br />

AD27<br />

00100<br />

AD28<br />

00101<br />

AD29<br />

Nominal Left Segment<br />

00110<br />

AD30<br />

00111<br />

AD31<br />

GA 01000 ST 01<br />

P2<br />

Figure E02-F2. 8-Slot Backplane with System Slot on Right<br />

1<br />

2 3 4 5 6 7<br />

8<br />

00010<br />

AD31<br />

00011<br />

AD30<br />

00100<br />

AD29<br />

00101<br />

AD28<br />

00110<br />

AD27<br />

00111<br />

AD26<br />

01000<br />

AD25<br />

P2<br />

ST 10<br />

GA 00001<br />

Nominal Right Segment<br />

Figure E02-F3. 8-Slot Backplane with System Slot on Left<br />

The next two examples show smaller slot count backplanes, again with the system slots<br />

on the right and left, respectively.<br />

ADOPTED January 23, 2002 22


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

1<br />

2 3 4<br />

5<br />

00001<br />

AD28<br />

00010<br />

AD29<br />

00011<br />

AD30<br />

00100<br />

AD31<br />

Nominal Left Segment<br />

GA 00101 ST 01<br />

P2<br />

Figure E02-F4. 5-Slot Backplane with System Slot on Right<br />

1<br />

P2<br />

ST 10<br />

2 3 4<br />

00010<br />

AD31<br />

00011<br />

AD30<br />

GA 00001<br />

00100<br />

AD29<br />

Nominal Right Segment<br />

Figure E02-F5. 4-Slot Backplane with System Slot on Left<br />

The next two examples cover configurations addressed in <strong>PICMG</strong> 2.6. The first example,<br />

Figure E02-F6, implements a 14-slot backplane with two segments. The second segment<br />

(with physical slot number 9 as the system slot) is intended to be created by a two-slot<br />

front bridge board set. One of the boards in the set occupies slot 8 as a peripheral slot<br />

board. The other board in the set occupies slot 9 as a system slot board. The two boards<br />

are connected by some proprietary means and one of them includes a PCI-to-PCI bridge.<br />

Figure E02-F7 shows how this set would install into the backplane. See <strong>PICMG</strong> 2.6 for<br />

additional background and details.<br />

1<br />

2 3 4 5<br />

6 7 8 9 10 11 12 13<br />

14<br />

00010<br />

AD31<br />

00011<br />

AD30<br />

00100<br />

AD29<br />

00101<br />

AD28<br />

00110<br />

AD27<br />

00111<br />

AD26<br />

01000<br />

AD25<br />

01001<br />

01010<br />

AD31<br />

01011<br />

AD30<br />

01100<br />

AD29<br />

01101<br />

AD28<br />

01110<br />

AD27<br />

P2<br />

ST 10<br />

Nominal Right Segment<br />

GA 00001<br />

P2<br />

P2<br />

Nominal Right Segment<br />

ST 10<br />

GA 01001<br />

Figure E02-F6. 14-Slot Backplane with System Slot on Left and Front-Bridged Extension<br />

ADOPTED January 23, 2002 23


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

Figure E02-F7. Top View of Two-Board Front Bridge Assembly (Left) and Backplane Slots (Right)<br />

The second example motivated by <strong>PICMG</strong> 2.6, Figure E02-F8, also implements a 2-<br />

segment, 14-slot backplane, but bridging between the segments is accomplished via a<br />

pallet bridge module that installs on the rear of the backplane. Slot 8 implements a colocated<br />

peripheral slot, with the system slot function provided by a pallet bridge module<br />

on the rear of the backplane. Figure E02-F9 shows the top and rear view of this<br />

installation. See <strong>PICMG</strong> 2.6 for additional background and detail.<br />

1<br />

2 3 4 5<br />

6 7 8 9 10 11 12 13<br />

14<br />

00010<br />

AD31<br />

00011<br />

AD30<br />

00100<br />

AD29<br />

00101<br />

AD28<br />

00110<br />

AD27<br />

00111<br />

AD26<br />

01000<br />

AD24<br />

01001<br />

AD31<br />

01010<br />

AD30<br />

01011<br />

AD29<br />

01100<br />

AD28<br />

01101<br />

AD27<br />

01110<br />

AD26<br />

Nominal Right Segment<br />

Nominal Right Segment<br />

P2<br />

ST 10<br />

GA 00001<br />

Connection for<br />

Rear Pallet Bridge<br />

P2<br />

ST 10<br />

GA 01000<br />

Figure E02-F8. 14-Slot Backplane with System Slot on Left and Pallet-Bridged Extension<br />

ADOPTED January 23, 2002 24


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

Figure E02-F9. Top View (Above) and Rear View (Below) of Installed Pallet Bridge<br />

The next example shows a 15-slot backplane in which a dual system slot creates<br />

backplane segments to its left and right.<br />

Nominal Left<br />

Segment<br />

GA 01000<br />

ST 01<br />

P5<br />

. . .<br />

GA 01000<br />

ST 10<br />

Nominal Right<br />

Segment<br />

00001<br />

AD25<br />

00010<br />

AD26<br />

00011<br />

AD27<br />

00100<br />

AD28<br />

00101<br />

AD29<br />

00110<br />

AD30<br />

00111<br />

AD31<br />

P2<br />

01001<br />

AD31<br />

01010<br />

AD30<br />

01011<br />

AD29<br />

01100<br />

AD28<br />

01101<br />

AD27<br />

01110<br />

AD26<br />

01111<br />

AD25<br />

1 2 3 4 5 6 7 8<br />

9 10 11 12 13 14<br />

15<br />

Figure E02-F10. Dual 6U Segment Backplane<br />

The next three examples show backplanes that implement two 3U segments one above<br />

the other. In the first two examples, the segments are Stacked 3U segments created by a<br />

dual system slot (on the right and the left, respectively). The third example has two<br />

independent 3U segments, where each segment has a separate 3U system slot.<br />

ADOPTED January 23, 2002 25


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

Nominal Left<br />

Segment<br />

Nominal Left<br />

Segment<br />

1<br />

00001<br />

AD25<br />

01000<br />

AD25<br />

8<br />

2 3 4 5 6 7<br />

00010<br />

AD26<br />

01001<br />

AD26<br />

00011<br />

AD27<br />

01010<br />

AD27<br />

00100<br />

AD28<br />

01011<br />

AD28<br />

00101<br />

AD29<br />

01100<br />

AD29<br />

00110<br />

AD30<br />

01101<br />

AD30<br />

00111<br />

AD31<br />

01110<br />

AD31<br />

9 10 11 12 13 14<br />

15<br />

P5<br />

. . .<br />

P2<br />

GA A 01000<br />

ST 01<br />

GA 01111<br />

ST 01<br />

Figure E02-F11. Dual Stacked 3U Segments with Single 6U System Slot on Right<br />

GA 00001<br />

ST 10<br />

GA A 01000<br />

ST 10<br />

P5<br />

. . .<br />

P2<br />

1<br />

2 3 4 5 6 7 8<br />

00010<br />

AD31<br />

01001<br />

AD31<br />

00011<br />

AD30<br />

01010<br />

AD30<br />

00100<br />

AD29<br />

01011<br />

AD29<br />

00101<br />

AD28<br />

01100<br />

AD28<br />

00110<br />

AD27<br />

01101<br />

AD27<br />

00111<br />

AD26<br />

01110<br />

AD26<br />

9 10 11 12 13 14<br />

01000<br />

AD25<br />

01111<br />

AD25<br />

15<br />

Nominal Right<br />

Segment<br />

Nominal Right<br />

Segment<br />

Figure E02-F12. Dual Stacked 3U Segments with Single 6U System Slot on Left<br />

GA 00001<br />

ST 10<br />

GA 01001<br />

ST 10<br />

P5<br />

. . .<br />

P2<br />

1<br />

9<br />

2 3 4 5 6 7 8<br />

00010<br />

AD31<br />

01010<br />

AD31<br />

00011<br />

AD30<br />

01011<br />

AD30<br />

00100<br />

AD29<br />

01100<br />

AD29<br />

00101<br />

AD28<br />

01101<br />

AD28<br />

00110<br />

AD27<br />

01110<br />

AD27<br />

00111<br />

AD26<br />

01111<br />

AD26<br />

10 11 12 13 14 15<br />

01000<br />

AD25<br />

10000<br />

AD25<br />

16<br />

Nominal Right<br />

Segment<br />

Nominal Right<br />

Segment<br />

Figure E02-F13. Independent 3U Segments with Two 3U System Slots on Left<br />

C.2 System Slot Board Examples<br />

The following figures sketch specific system slot boards and show the corresponding slot<br />

geography data that would be stored in LC and PG keywords in VPD when the board is<br />

manufactured (that is, the static VPD data). Each figure contains three areas. On the left<br />

are the fields for the Location and PCI Geography keywords with their decimal values.<br />

On the upper right is a diagram that represents the board layout and location of the VPD<br />

ADOPTED January 23, 2002 26


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

data store (denoted by “VPD+” because it includes both the VPD store and any necessary<br />

additional logic to update VPD for the board install site). PCI device numbers of PCI-to-<br />

PCI bridges are shown when needed, in decimal. The area on the bottom right is the<br />

static VPD data for the LC and PG keywords in hexadecimal. Dual system slot boards<br />

have a Segment Descriptor (SD) for each backplane segment, with the static fields for the<br />

J1/J2 SD and J4/J5 SD on the left and right, as indicated by the labels.<br />

The example boards include:<br />

• A typical system slot board that can create one backplane segment through J1/J2.<br />

This board could be implemented in either a 3U or 6U size.<br />

• Several dual system slot boards that can create a backplane segment through each<br />

of J1/J2 and J4/J5. The example boards vary in how the on-board bridging and<br />

associated VPD stores are implemented.<br />

A table follows each figure. Each row of the table indicates the updated slot geography<br />

data that results when the board in the figure above is installed in various slot positions in<br />

the example backplanes (with the backplane identified by figure number). The updated<br />

values of the individual fields are shown in unsigned decimal, along with a hexadecimal<br />

representation of the updated slot geography data as it would be read from an installed<br />

board.<br />

The example system slot boards are designed for chassis in which Shelf Geographic<br />

Address support is not available. As a result, all ShelfID fields have a static value of 255.<br />

ADOPTED January 23, 2002 27


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

LC<br />

PG<br />

SlotID 0<br />

ShelfID 255<br />

PosID 1<br />

NumSlotIDs 0<br />

NullCHK 0<br />

NullCHK 0<br />

AS 0<br />

SDT 0<br />

SDS 4<br />

ST 0<br />

AC 16<br />

AO 1<br />

ST 0<br />

SPS 0<br />

HB 0<br />

CS 0<br />

CPD 31<br />

SP<br />

CPU<br />

PCI Host Bridge<br />

P2P<br />

VPD+<br />

ST<br />

GA<br />

Board Boundary<br />

for 3U Boards<br />

Static VPD (Single)<br />

4C 43 04 00 FF 20 00 50 47 05 00 40 80 01 1F<br />

Figure E02-F14. Single System Slot Board (6U or 3U Size)<br />

Table E02-T11. Updated Single System Slot Board VPD<br />

Install Site<br />

Figure E02-F2,<br />

slot 8<br />

Figure E02-F3,<br />

slot 1<br />

Figure E02-F4,<br />

slot 5<br />

Figure E02-F5,<br />

slot 1<br />

Figure E02-F6,<br />

slot 1<br />

Figure E02-F6,<br />

slot 9<br />

Figure E02-F8,<br />

slot 1<br />

Figure E02-F13,<br />

slot 1<br />

Figure E02-F13,<br />

slot 9<br />

Updated LC<br />

Keyword<br />

Fields<br />

Slot<br />

ID<br />

Null<br />

CHK<br />

Updated PG Keyword<br />

Fields<br />

Null<br />

CHK<br />

Segment<br />

Descriptor<br />

AS ST<br />

8 248 254 1 1<br />

1 255 253 1 2<br />

5 251 254 1 1<br />

1 255 253 1 2<br />

1 255 253 1 2<br />

9 247 253 1 2<br />

1 255 253 1 2<br />

1 255 253 1 2<br />

9 247 253 1 2<br />

Updated VPD for LC and PG<br />

Keywords<br />

4C 43 04 08 FF 20 F8 50<br />

47 05 FE 41 81 01 1F<br />

4C 43 04 01 FF 20 FF 50<br />

47 05 FD 41 82 01 1F<br />

4C 43 04 05 FF 20 FB 50<br />

47 05 FE 41 81 01 1F<br />

4C 43 04 01 FF 20 FF 50<br />

47 05 FD 41 82 01 1F<br />

4C 43 04 01 FF 20 FF 50<br />

47 05 FD 41 82 01 1F<br />

4C 43 04 09 FF 20 F7 50<br />

47 05 FD 41 82 01 1F<br />

4C 43 04 01 FF 20 FF 50<br />

47 05 FD 41 82 01 1F<br />

4C 43 04 01 FF 20 FF 50<br />

47 05 FD 41 82 01 1F<br />

4C 43 04 09 FF 20 F7 50<br />

47 05 FD 41 82 01 1F<br />

ADOPTED January 23, 2002 28


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

LC<br />

PG<br />

SlotID 0<br />

ShelfID 255<br />

PosID 1<br />

NumSlotIDs 1<br />

NullCHK 0<br />

SuppSlotID1 0<br />

NullCHK 0<br />

AS 0 AS 0<br />

SDT 0 SDT 0<br />

SDS 4 SDS 5<br />

ST 0 ST 0<br />

AC 16 AC 16<br />

AO 1 AO 1<br />

SPS 0 SPS 1<br />

HB 0 HB 1<br />

CS 0 CS 1<br />

CPD 31 CPD 31<br />

SP SP 88<br />

J1/J2 SD<br />

J4/J5 SD<br />

CPU<br />

PCI Host Bridge<br />

Dev 8<br />

P2P<br />

ST J2<br />

VPD+<br />

GA J2 GA J5 ST J5<br />

Dev 11<br />

P2P<br />

Static VPD (Single)<br />

4C 43 05 00 FF 28 00 00 50 47 0A 00 40 80 01<br />

1F 50 80 1B 1F 58<br />

Figure E02-F15. Dual System Slot, Single VPD<br />

Table E02-T12. Updated Dual System Slot, Single VPD<br />

Install Site<br />

Figure E02-<br />

F10, slot 8<br />

Figure E02-<br />

F11, slot 15<br />

Figure E02-<br />

F12, slot 1<br />

Updated LC Keyword<br />

Fields<br />

Slot<br />

ID<br />

SuppSlot<br />

ID1<br />

Null<br />

CHK<br />

Null<br />

CHK<br />

Updated PG Keyword Fields<br />

J2 Segment<br />

Descriptor<br />

J5 Segment<br />

Descriptor<br />

AS ST AS ST<br />

8 8 240 251 1 1 1 2<br />

15 8 233 252 1 1 1 1<br />

8 1 247 250 1 2 1 2<br />

Updated VPD for LC and<br />

PG Keywords<br />

4C 43 05 08 FF 28 F0<br />

08 50 47 0A FB 41 81<br />

01 1F 51 82 1B 1F 58<br />

4C 43 05 0F FF 28 E9<br />

08 50 47 0A FC 41 81<br />

01 1F 51 81 1B 1F 58<br />

4C 43 05 08 FF 28 F7<br />

01 50 47 0A FA 41 82<br />

01 1F 51 82 1B 1F 58<br />

ADOPTED January 23, 2002 29


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

LC<br />

PG<br />

SlotID 0<br />

ShelfID 255<br />

PosID 1<br />

NumSlotIDs 1<br />

NullCHK 0<br />

SuppSlotID1 0<br />

NullCHK 0<br />

AS 0<br />

SDT 0<br />

SDS 4<br />

ST 0<br />

AC 16<br />

AO 1<br />

SPS 0<br />

HB 0<br />

CS 0<br />

CPD 31<br />

SP<br />

J1/J2 SD<br />

NullCHK 0<br />

AS 0<br />

SDT 0<br />

SDS 4<br />

ST 0<br />

AC 16<br />

AO 1<br />

SPS 0<br />

HB 0<br />

CS 1<br />

CPD 31<br />

SP<br />

J4/J5 SD<br />

CPU<br />

PCI Host Bridge<br />

Dev 8<br />

P2P<br />

VPD+<br />

VPD+<br />

ST J2 GA J2 GA J5 ST J5<br />

Dev 11<br />

P2P<br />

Static VPD (Dual; J5 PG Keyword Separate)<br />

4C 43 05 00 FF 28 00 00 50 47 05 00 40 80 01 1F<br />

50 47 05 00 40 80 11 1F<br />

Figure E02-F16. Dual System Slot Board, Dual VPD w/ Separate J5 PG Keyword<br />

Table E02-T13. Updated Dual System Slot Board, Dual VPD<br />

Install Site<br />

Figure E02-<br />

F10, slot 8<br />

Figure E02-<br />

F11, slot 15<br />

Figure E02-<br />

F12, slot 1<br />

Updated LC Keyword<br />

Fields<br />

Slot<br />

ID<br />

SuppSlot<br />

ID1<br />

Null<br />

CHK<br />

8 8 240<br />

15 8 233<br />

8 1 247<br />

Null<br />

CHK<br />

254<br />

253<br />

254<br />

254<br />

253<br />

253<br />

Updated PG Keyword Fields<br />

J2 Segment<br />

Descriptor<br />

J5 Segment<br />

Descriptor<br />

AS ST AS ST<br />

1 1 1 2<br />

1 1 1 1<br />

1 2 1 2<br />

Updated VPD for LC and PG<br />

Keywords (w/ PG Keyword<br />

for J5 Separate)<br />

4C 43 05 08 FF 28 F0<br />

08 50 47 05 FE 41 81<br />

01 1F<br />

50 47 05 FD 41 82 11<br />

1F<br />

4C 43 05 0F FF 28 E9<br />

08 50 47 05 FE 41 81<br />

01 1F<br />

50 47 05 FE 41 81 11<br />

1F<br />

4C 43 05 08 FF 28 F7<br />

01 50 47 05 FD 41 82<br />

01 1F<br />

50 47 05 FD 41 82 11<br />

1F<br />

ADOPTED January 23, 2002 30


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

LC<br />

PG<br />

SlotID 0<br />

ShelfID 255<br />

PosID 1<br />

NumSlotIDs 0<br />

NullCHK 0<br />

SuppSlotID1 1<br />

NullCHK 0<br />

AS 0 AS 0<br />

SDT 0 SDT 0<br />

SDS 5 SDS 5<br />

ST 0 ST 0<br />

AC 16 AC 16<br />

AO 1 AO 1<br />

SPS 2 SPS 2<br />

HB 1 HB 1<br />

CS 0 CS 1<br />

CPD 31 CPD 31<br />

SP 160 SP 160<br />

64<br />

J1/J2 SD<br />

88<br />

J4/J5 SD<br />

CPU<br />

Dev 8<br />

Dev 20<br />

P2P<br />

PCI Host Bridge<br />

P2P<br />

VPD+<br />

ST J2 GA J2 GA J5 ST J5<br />

P2P<br />

Static VPD (Single)<br />

Dev 11<br />

4C 43 05 00 FF 28 00 00 50 47 0D 00 20 80 0D<br />

1F A0 40 20 80 1D 1F A0 58<br />

Figure E02-F17. Dual System Slot, Single VPD on Parent Bridge<br />

Table E02-T14. Updated Dual System Slot, Single VPD on Parent Bridge<br />

Install Site<br />

Figure E02-<br />

F10, slot 8<br />

Figure E02-<br />

F11, slot 15<br />

Figure E02-<br />

F12, slot 1<br />

Updated LC Keyword<br />

Fields<br />

Slot<br />

ID<br />

SuppSlot<br />

ID1<br />

Null<br />

CHK<br />

Null<br />

CHK<br />

Updated PG Keyword Fields<br />

J2 Segment<br />

Descriptor<br />

J5 Segment<br />

Descriptor<br />

AS ST AS ST<br />

8 8 240 251 1 1 1 2<br />

15 8 232 252 1 1 1 1<br />

8 1 246 250 1 2 1 2<br />

Updated VPD for LC and PG<br />

Keywords<br />

4C 43 05 08 FF 28 F0<br />

08 50 47 0D FB 21 81<br />

0D 1F A0 40 21 82 1D<br />

1F A0 58<br />

4C 43 05 0F FF 28 E9<br />

08 50 47 0D FC 21 81<br />

0D 1F A0 40 21 81 1D<br />

1F A0 58<br />

4C 43 05 08 F0 28 F7<br />

01 50 47 0D FA 21 82<br />

0D 1F A0 40 21 82 1D<br />

1F A0 58<br />

ADOPTED January 23, 2002 31


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

LC<br />

PG<br />

SlotID 0<br />

ShelfID 255<br />

PosID 3<br />

NumSlotIDs 0<br />

NullCHK 0<br />

NullCHK 0<br />

AS 0<br />

SDT 0<br />

SDS 4<br />

ST 0<br />

AC 16<br />

AO 1<br />

SPS 0<br />

HB 0<br />

CS 0<br />

CPD 8<br />

SP<br />

Connections to rear of P1/P2<br />

Primary Bus<br />

P2P<br />

Static VPD (Single)<br />

VPD+<br />

Secondary<br />

Bus<br />

4C 43 04 00 FF 60 00 50 47 05 00 40 78 01 08<br />

GA<br />

ST<br />

Figure E02-F18. Pallet Bridge<br />

Table E02-T15. Updated Pallet Bridge VPD<br />

Install Site<br />

Figure E02-F8,<br />

slot 8<br />

Updated LC<br />

Keyword<br />

Fields<br />

Slot<br />

ID<br />

Null<br />

CHK<br />

Updated PG<br />

Keyword Fields<br />

Null<br />

CHK<br />

Segment<br />

Descriptor<br />

AS ST<br />

8 248 253 1 2<br />

Updated VPD for LC and PG<br />

Keywords<br />

4C 43 04 08 FF 60 F8 50<br />

47 05 FD 41 82 01 08<br />

Add New Appendix D. Example Implementations of Updating Onboard<br />

VPD Keyword Data Based on Backplane Information.<br />

This appendix provides example implementations of ways to update VPD<br />

keyword data, based on data detected by a board from the backplane after it is<br />

powered up.<br />

Appendix D. Example Implementations of Updating VPD Keyword<br />

Data<br />

The PCI specification leaves the implementation details of the VPD store up to the PCI<br />

device developer, defining only the registers in PCI configuration space through which<br />

VPD data is accessed. Typical VPD implementations use a serial EEPROM<br />

(SEEPROM) as the VPD store. Each PCI device that supports VPD in this way typically<br />

requires a specific SEEPROM interface.<br />

Some PCI bridges with VPD support, such as the Tundra Semiconductor Corp.’s Tsi320<br />

and Tsi85x (see www.tundra.com), for example, use an I 2 C-accessed SEEPROM. Other<br />

VPD-aware PCI bridges, such as HiNT Corporation’s HBx (see www.hintcorp.com),<br />

ADOPTED January 23, 2002 32


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

Intel Corporation’s 2155x (see www.intel.com) and StarGen, Inc.’s SG2010 (see<br />

www.stargen.com) devices, use the Serial Peripheral Interface (SPI). One company that<br />

produces SEEPROMs with either I 2 C- or SPI-based interfaces is Microchip Technology<br />

Inc. (see www.microchip.com).<br />

The details of how the geography-related keyword data VPD could be updated based on<br />

the installation site of a board are entirely implementation specific. This appendix<br />

sketches two implementation approaches, one for I 2 C-accessed SEEPROMs and the other<br />

for SPI-accessed SEEPROMs. For simplicity, the sketches cover only updates to the LC<br />

(Board Location) keyword fields. Updates to the PG (PCI Geography) keyword fields<br />

can be handled in a similar fashion.<br />

A.1 Implementation Sketch: Updating VPD Data in I 2 C-accessed<br />

SEEPROMs<br />

Consider a system slot board that:<br />

•Creates a backplane segment via a PCI bridge that accesses its VPD store via I 2 C.<br />

•Also includes an I 2 C-capable Management Controller (MC) as described in<br />

<strong>PICMG</strong> 2.9.<br />

In addition to its primary function of facilitating manageability of the board, the MC<br />

could also support updates of the VPD store to reflect backplane specifics with minimal<br />

incremental cost.<br />

Assume that the VPD SEEPROM is accessible via a private I 2 C bus from the MC and<br />

that the MC can temporarily hold off initialization of the PCI bridge. Further assume that<br />

the MC has access to the geography-related fields in the backplane: GA[4..0], ST[1..0]<br />

and SGA[4..0] if defined. (In <strong>PICMG</strong> 2.9, the MC already uses GA[4...0] to establish its<br />

slave address on the Intelligent Platform Management Bus (IPMB).)<br />

At board startup, while the PCI bridge is held off, the MC could retrieve geography data<br />

from the backplane, then access the SEEPROM via I 2 C to update the appropriate fields of<br />

the location information stored there. Any access to VPD via the PCI bridge after it<br />

comes out of reset would retrieve the updated information. In fact, a single MC could<br />

perform this service for multiple VPD SEEPROMs on the board if necessary.<br />

A.2 Implementation Sketch: Updating VPD Data in SPI-accessed<br />

SEEPROMs<br />

Another potential implementation could use a special CPLD interposed between the PCI<br />

bridge that creates the peripheral slots and an SPI-based SEEPROM that implements the<br />

bridge’s VPD store. The CPLD could substitute updated location information when the<br />

LC keyword data in the read-only VPD space is accessed from the bridge. Figure E02-<br />

F19 shows a simple schematic.<br />

ADOPTED January 23, 2002 33


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

Figure E02-F19. Potential Implementation for VPD Content Update with SPI<br />

SEEPROM<br />

This design could potentially be applied to any PCI bridge that uses the Serial Peripheral<br />

Interface (SPI) SEEPROM bus interface for its VPD store. The CPLD accesses the<br />

backplane pins that indicate the specific slot number and shelf number in which this<br />

system slot board is installed. For <strong>PICMG</strong> 2.0, <strong>PICMG</strong> 2.5, <strong>PICMG</strong> 2.16 and <strong>PICMG</strong><br />

2.17 backplanes, these are the 5-pin GA and SGA fields, shown as inputs to the CPLD<br />

from the right.<br />

The CPLD intercepts the serial bit stream of the SEEPROM and updates the location<br />

information in the VPD with the geographical data from the backplane in the bit stream<br />

provided to the PCI bridge. In this example, we assume that the PosID field in VPD is<br />

set statically because a particular board in CompactPCI works only in one of the defined<br />

positions. Therefore, only the SlotID, ShelfID and NullCHK bytes (the first, second and<br />

fourth bytes of the LC keyword data) need to be updated.<br />

The CPLD makes the following assumptions and implements the following<br />

functionality/features:<br />

Assumptions:<br />

o The 3 bytes of location information in the SEEPROM that will be updated have<br />

static values of zero.<br />

o The address in the SEEPROM of the location keyword is known.<br />

Features:<br />

o Interprets Serial Peripheral Interface (SPI) bus traffic.<br />

ADOPTED January 23, 2002 34


<strong>PICMG</strong> 2.0R3.0: ECN 2.0-3.0-002<br />

o Implements an 8-bit instruction register.<br />

o Implements a 16-bit address register/counter.<br />

o Keeps track of the current address.<br />

o Updates the LC keyword data with 10 bits of data based on the GA and SGA<br />

inputs (5 bits each, placed appropriately in two 8-bit fields).<br />

o Generates the 8-bit NullCHK value that is used to adjust the checksum that covers<br />

the read-only portion of VPD. The NullCHK value is the 2’s complement of the<br />

sum of the two updated bytes of location information.<br />

The CPLD only drives SDO when the SEEPROM is being read. Otherwise, the CPLD<br />

tri-states its SDO pin. The CPLD tracks all accesses to the SEEPROM (reads and<br />

writes).<br />

Here is a walk through of a read access:<br />

1. The PCI bridge accesses the SEEPROM, which is indicated by the assertion of<br />

chip select.<br />

2. The CPLD loads its 8-bit instruction register.<br />

3. The CPLD loads its 16-bit address register/counter.<br />

4. If the address does not match the address of the location information, the CPLD<br />

passes the serial data from the SEEPROM to the PCI bridge.<br />

If the address matches the address of the location information, the CPLD replaces the<br />

location information coming out of the SEEPROM with updated data based on the GA<br />

and SGA inputs, plus the appropriate NullCHK data.<br />

###<br />

ADOPTED January 23, 2002 35

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!