ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.6.tar.bz2
[linux-2.6.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 #ifndef _ITVPDAREAS_H
20 #define _ITVPDAREAS_H
21
22 //=====================================================================================
23 //
24 //      This file defines the address and length of all of the VPD area passed to
25 //      the OS from PLIC (most of which start from the SP).
26 //
27
28 #include <asm/types.h>
29
30 // VPD Entry index is carved in stone - cannot be changed (easily).
31 #define ItVpdCecVpd                                0
32 #define ItVpdDynamicSpace                          1
33 #define ItVpdExtVpd                                2
34 #define ItVpdExtVpdOnPanel                         3
35 #define ItVpdFirstPaca                             4
36 #define ItVpdIoVpd                                 5
37 #define ItVpdIplParms                              6
38 #define ItVpdMsVpd                                 7
39 #define ItVpdPanelVpd                              8
40 #define ItVpdLpNaca                                9
41 #define ItVpdBackplaneAndMaybeClockCardVpd        10 
42 #define ItVpdRecoveryLogBuffer                    11
43 #define ItVpdSpCommArea                           12
44 #define ItVpdSpLogBuffer                          13
45 #define ItVpdSpLogBufferSave                      14
46 #define ItVpdSpCardVpd                            15
47 #define ItVpdFirstProcVpd                         16    
48 #define ItVpdApModelVpd                           17
49 #define ItVpdClockCardVpd                         18
50 #define ItVpdBusExtCardVpd                        19
51 #define ItVpdProcCapacityVpd                      20
52 #define ItVpdInteractiveCapacityVpd               21
53 #define ItVpdFirstSlotLabel                       22
54 #define ItVpdFirstLpQueue                         23
55 #define ItVpdFirstL3CacheVpd                      24    
56 #define ItVpdFirstProcFruVpd                      25
57
58 #define ItVpdMaxEntries                           26
59
60
61 #define ItDmaMaxEntries                           10
62
63 #define ItVpdAreasMaxSlotLabels          192 
64
65
66 struct SlicVpdAdrs {
67         u32     pad1;
68         void *  vpdAddr;
69 };
70
71
72 struct  ItVpdAreas
73 {
74         u32     xSlicDesc;              // Descriptor                           000-003
75         u16     xSlicSize;              // Size of this control block           004-005
76         u16     xPlicAdjustVpdLens:1;   // Flag to indicate new interface       006-007
77         u16     xRsvd1:15;              // Reserved bits                        ...
78         u16     xSlicVpdEntries;        // Number of VPD entries                008-009
79         u16     xSlicDmaEntries;        // Number of DMA entries                00A-00B
80         u16     xSlicMaxLogicalProcs;   // Maximum logical processors           00C-00D
81         u16     xSlicMaxPhysicalProcs;  // Maximum physical processors          00E-00F
82         u16     xSlicDmaToksOffset;     // Offset into this of array            010-011
83         u16     xSlicVpdAdrsOffset;     // Offset into this of array            012-013
84         u16     xSlicDmaLensOffset;     // Offset into this of array            014-015
85         u16     xSlicVpdLensOffset;     // Offset into this of array            016-017
86         u16     xSlicMaxSlotLabels;     // Maximum number of slot labels        018-019
87         u16     xSlicMaxLpQueues;       // Maximum number of LP Queues          01A-01B
88         u8      xRsvd2[4];              // Reserved                             01C-01F
89         u64     xRsvd3[12];             // Reserved                             020-07F
90         u32     xPlicDmaLens[ItDmaMaxEntries];// Array of DMA lengths           080-0A7
91         u32     xPlicDmaToks[ItDmaMaxEntries];// Array of DMA tokens            0A8-0CF
92         u32     xSlicVpdLens[ItVpdMaxEntries];// Array of VPD lengths           0D0-12F
93         void * xSlicVpdAdrs[ItVpdMaxEntries];// Array of VPD buffers    130-1EF
94 };
95
96 #endif /* _ITVPDAREAS_H */