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
70struct SlicVpdAdrs {
71	u32	pad1;
72	void *  vpdAddr;
73};
74
75
76struct	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
101