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