more changes on original files
[linux-2.4.git] / include / asm-ppc64 / iSeries / ItVpdAreas.h
1 /*
2  * ItVpdAreas.h
3  * Copyright (C) 2001  Mike Corrigan IBM Corporation
4  * 
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  * 
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  * 
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
18  */
19
20 //=====================================================================================
21 //
22 //      This file defines the address and length of all of the VPD area passed to
23 //      the OS from PLIC (most of which start from the SP).
24 //
25
26 #ifndef _PPC_TYPES_H
27 #include        <asm/types.h>
28 #endif
29
30
31 #ifndef _ITVPDAREAS_H
32 #define _ITVPDAREAS_H
33
34 // VPD Entry index is carved in stone - cannot be changed (easily).
35 #define ItVpdCecVpd                                0
36 #define ItVpdDynamicSpace                          1
37 #define ItVpdExtVpd                                2
38 #define ItVpdExtVpdOnPanel                         3
39 #define ItVpdFirstPaca                             4
40 #define ItVpdIoVpd                                 5
41 #define ItVpdIplParms                              6
42 #define ItVpdMsVpd                                 7
43 #define ItVpdPanelVpd                              8
44 #define ItVpdLpNaca                                9
45 #define ItVpdBackplaneAndMaybeClockCardVpd        10 
46 #define ItVpdRecoveryLogBuffer                    11
47 #define ItVpdSpCommArea                           12
48 #define ItVpdSpLogBuffer                          13
49 #define ItVpdSpLogBufferSave                      14
50 #define ItVpdSpCardVpd                            15
51 #define ItVpdFirstProcVpd                         16    
52 #define ItVpdApModelVpd                           17
53 #define ItVpdClockCardVpd                         18
54 #define ItVpdBusExtCardVpd                        19
55 #define ItVpdProcCapacityVpd                      20
56 #define ItVpdInteractiveCapacityVpd               21
57 #define ItVpdFirstSlotLabel                       22
58 #define ItVpdFirstLpQueue                         23
59 #define ItVpdFirstL3CacheVpd                      24    
60 #define ItVpdFirstProcFruVpd                      25
61
62 #define ItVpdMaxEntries                           26
63
64
65 #define ItDmaMaxEntries                           10
66
67 #define ItVpdAreasMaxSlotLabels          192 
68
69
70 struct SlicVpdAdrs {
71         u32     pad1;
72         void *  vpdAddr;
73 };
74
75
76 struct  ItVpdAreas
77 {
78         u32     xSlicDesc;              // Descriptor                           000-003
79         u16     xSlicSize;              // Size of this control block           004-005
80         u16     xPlicAdjustVpdLens:1;   // Flag to indicate new interface       006-007
81         u16     xRsvd1:15;              // Reserved bits                        ...
82         u16     xSlicVpdEntries;        // Number of VPD entries                008-009
83         u16     xSlicDmaEntries;        // Number of DMA entries                00A-00B
84         u16     xSlicMaxLogicalProcs;   // Maximum logical processors           00C-00D
85         u16     xSlicMaxPhysicalProcs;  // Maximum physical processors          00E-00F
86         u16     xSlicDmaToksOffset;     // Offset into this of array            010-011
87         u16     xSlicVpdAdrsOffset;     // Offset into this of array            012-013
88         u16     xSlicDmaLensOffset;     // Offset into this of array            014-015
89         u16     xSlicVpdLensOffset;     // Offset into this of array            016-017
90         u16     xSlicMaxSlotLabels;     // Maximum number of slot labels        018-019
91         u16     xSlicMaxLpQueues;       // Maximum number of LP Queues          01A-01B
92         u8      xRsvd2[4];              // Reserved                             01C-01F
93         u64     xRsvd3[12];             // Reserved                             020-07F
94         u32     xPlicDmaLens[ItDmaMaxEntries];// Array of DMA lengths           080-0A7
95         u32     xPlicDmaToks[ItDmaMaxEntries];// Array of DMA tokens            0A8-0CF
96         u32     xSlicVpdLens[ItVpdMaxEntries];// Array of VPD lengths           0D0-12F
97         void * xSlicVpdAdrs[ItVpdMaxEntries];// Array of VPD buffers    130-1EF
98 };
99
100 #endif // _ITVPDAREAS_H