Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/powerpc/platforms/iseries/main_store.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
19
#ifndef _ISERIES_MAIN_STORE_H
20
#define _ISERIES_MAIN_STORE_H
21
22
/* Main Store Vpd for Condor,iStar,sStar */
23
struct IoHriMainStoreSegment4 {
24
u8 msArea0Exists:1;
25
u8 msArea1Exists:1;
26
u8 msArea2Exists:1;
27
u8 msArea3Exists:1;
28
u8 reserved1:4;
29
u8 reserved2;
30
31
u8 msArea0Functional:1;
32
u8 msArea1Functional:1;
33
u8 msArea2Functional:1;
34
u8 msArea3Functional:1;
35
u8 reserved3:4;
36
u8 reserved4;
37
38
u32 totalMainStore;
39
40
u64 msArea0Ptr;
41
u64 msArea1Ptr;
42
u64 msArea2Ptr;
43
u64 msArea3Ptr;
44
45
u32 cardProductionLevel;
46
47
u32 msAdrHole;
48
49
u8 msArea0HasRiserVpd:1;
50
u8 msArea1HasRiserVpd:1;
51
u8 msArea2HasRiserVpd:1;
52
u8 msArea3HasRiserVpd:1;
53
u8 reserved5:4;
54
u8 reserved6;
55
u16 reserved7;
56
57
u8 reserved8[28];
58
59
u64 nonInterleavedBlocksStartAdr;
60
u64 nonInterleavedBlocksEndAdr;
61
};
62
63
/* Main Store VPD for Power4 */
64
struct __attribute((packed)) IoHriMainStoreChipInfo1 {
65
u32 chipMfgID;
66
char chipECLevel[4];
67
};
68
69
struct IoHriMainStoreVpdIdData {
70
char typeNumber[4];
71
char modelNumber[4];
72
char partNumber[12];
73
char serialNumber[12];
74
};
75
76
struct __attribute((packed)) IoHriMainStoreVpdFruData {
77
char fruLabel[8];
78
u8 numberOfSlots;
79
u8 pluggingType;
80
u16 slotMapIndex;
81
};
82
83
struct __attribute((packed)) IoHriMainStoreAdrRangeBlock {
84
void *blockStart;
85
void *blockEnd;
86
u32 blockProcChipId;
87
};
88
89
#define MaxAreaAdrRangeBlocks 4
90
91
struct __attribute((packed)) IoHriMainStoreArea4 {
92
u32 msVpdFormat;
93
u8 containedVpdType;
94
u8 reserved1;
95
u16 reserved2;
96
97
u64 msExists;
98
u64 msFunctional;
99
100
u32 memorySize;
101
u32 procNodeId;
102
103
u32 numAdrRangeBlocks;
104
struct IoHriMainStoreAdrRangeBlock xAdrRangeBlock[MaxAreaAdrRangeBlocks];
105
106
struct IoHriMainStoreChipInfo1 chipInfo0;
107
struct IoHriMainStoreChipInfo1 chipInfo1;
108
struct IoHriMainStoreChipInfo1 chipInfo2;
109
struct IoHriMainStoreChipInfo1 chipInfo3;
110
struct IoHriMainStoreChipInfo1 chipInfo4;
111
struct IoHriMainStoreChipInfo1 chipInfo5;
112
struct IoHriMainStoreChipInfo1 chipInfo6;
113
struct IoHriMainStoreChipInfo1 chipInfo7;
114
115
void *msRamAreaArray;
116
u32 msRamAreaArrayNumEntries;
117
u32 msRamAreaArrayEntrySize;
118
119
u32 numaDimmExists;
120
u32 numaDimmFunctional;
121
void *numaDimmArray;
122
u32 numaDimmArrayNumEntries;
123
u32 numaDimmArrayEntrySize;
124
125
struct IoHriMainStoreVpdIdData idData;
126
127
u64 powerData;
128
u64 cardAssemblyPartNum;
129
u64 chipSerialNum;
130
131
u64 reserved3;
132
char reserved4[16];
133
134
struct IoHriMainStoreVpdFruData fruData;
135
136
u8 vpdPortNum;
137
u8 reserved5;
138
u8 frameId;
139
u8 rackUnit;
140
char asciiKeywordVpd[256];
141
u32 reserved6;
142
};
143
144
145
struct IoHriMainStoreSegment5 {
146
u16 reserved1;
147
u8 reserved2;
148
u8 msVpdFormat;
149
150
u32 totalMainStore;
151
u64 maxConfiguredMsAdr;
152
153
struct IoHriMainStoreArea4 *msAreaArray;
154
u32 msAreaArrayNumEntries;
155
u32 msAreaArrayEntrySize;
156
157
u32 msAreaExists;
158
u32 msAreaFunctional;
159
160
u64 reserved3;
161
};
162
163
extern u64 xMsVpd[];
164
165
#endif /* _ISERIES_MAIN_STORE_H */
166
167