Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/powerpc/platforms/iseries/vpd_areas.h
10820 views
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
const void *xSlicVpdAdrs[ItVpdMaxEntries];// Array of VPD buffers 130-1EF
84
};
85
86
extern const struct ItVpdAreas itVpdAreas;
87
88
#endif /* _ISERIES_VPD_AREAS_H */
89
90