2 * Copyright (C) 2001 Mike Corrigan IBM Corporation
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.
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.
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
19 #ifndef _ISERIES_MAIN_STORE_H
20 #define _ISERIES_MAIN_STORE_H
22 /* Main Store Vpd for Condor,iStar,sStar */
23 struct IoHriMainStoreSegment4
{
31 u8 msArea0Functional
:1;
32 u8 msArea1Functional
:1;
33 u8 msArea2Functional
:1;
34 u8 msArea3Functional
:1;
45 u32 cardProductionLevel
;
49 u8 msArea0HasRiserVpd
:1;
50 u8 msArea1HasRiserVpd
:1;
51 u8 msArea2HasRiserVpd
:1;
52 u8 msArea3HasRiserVpd
:1;
59 u64 nonInterleavedBlocksStartAdr
;
60 u64 nonInterleavedBlocksEndAdr
;
63 /* Main Store VPD for Power4 */
64 struct IoHriMainStoreChipInfo1
{
65 u32 chipMfgID
__attribute((packed
));
66 char chipECLevel
[4] __attribute((packed
));
69 struct IoHriMainStoreVpdIdData
{
73 char serialNumber
[12];
76 struct IoHriMainStoreVpdFruData
{
77 char fruLabel
[8] __attribute((packed
));
78 u8 numberOfSlots
__attribute((packed
));
79 u8 pluggingType
__attribute((packed
));
80 u16 slotMapIndex
__attribute((packed
));
83 struct IoHriMainStoreAdrRangeBlock
{
84 void *blockStart
__attribute((packed
));
85 void *blockEnd
__attribute((packed
));
86 u32 blockProcChipId
__attribute((packed
));
89 #define MaxAreaAdrRangeBlocks 4
91 struct IoHriMainStoreArea4
{
92 u32 msVpdFormat
__attribute((packed
));
93 u8 containedVpdType
__attribute((packed
));
94 u8 reserved1
__attribute((packed
));
95 u16 reserved2
__attribute((packed
));
97 u64 msExists
__attribute((packed
));
98 u64 msFunctional
__attribute((packed
));
100 u32 memorySize
__attribute((packed
));
101 u32 procNodeId
__attribute((packed
));
103 u32 numAdrRangeBlocks
__attribute((packed
));
104 struct IoHriMainStoreAdrRangeBlock xAdrRangeBlock
[MaxAreaAdrRangeBlocks
] __attribute((packed
));
106 struct IoHriMainStoreChipInfo1 chipInfo0
__attribute((packed
));
107 struct IoHriMainStoreChipInfo1 chipInfo1
__attribute((packed
));
108 struct IoHriMainStoreChipInfo1 chipInfo2
__attribute((packed
));
109 struct IoHriMainStoreChipInfo1 chipInfo3
__attribute((packed
));
110 struct IoHriMainStoreChipInfo1 chipInfo4
__attribute((packed
));
111 struct IoHriMainStoreChipInfo1 chipInfo5
__attribute((packed
));
112 struct IoHriMainStoreChipInfo1 chipInfo6
__attribute((packed
));
113 struct IoHriMainStoreChipInfo1 chipInfo7
__attribute((packed
));
115 void *msRamAreaArray
__attribute((packed
));
116 u32 msRamAreaArrayNumEntries
__attribute((packed
));
117 u32 msRamAreaArrayEntrySize
__attribute((packed
));
119 u32 numaDimmExists
__attribute((packed
));
120 u32 numaDimmFunctional
__attribute((packed
));
121 void *numaDimmArray
__attribute((packed
));
122 u32 numaDimmArrayNumEntries
__attribute((packed
));
123 u32 numaDimmArrayEntrySize
__attribute((packed
));
125 struct IoHriMainStoreVpdIdData idData
__attribute((packed
));
127 u64 powerData
__attribute((packed
));
128 u64 cardAssemblyPartNum
__attribute((packed
));
129 u64 chipSerialNum
__attribute((packed
));
131 u64 reserved3
__attribute((packed
));
132 char reserved4
[16] __attribute((packed
));
134 struct IoHriMainStoreVpdFruData fruData
__attribute((packed
));
136 u8 vpdPortNum
__attribute((packed
));
137 u8 reserved5
__attribute((packed
));
138 u8 frameId
__attribute((packed
));
139 u8 rackUnit
__attribute((packed
));
140 char asciiKeywordVpd
[256] __attribute((packed
));
141 u32 reserved6
__attribute((packed
));
145 struct IoHriMainStoreSegment5
{
151 u64 maxConfiguredMsAdr
;
153 struct IoHriMainStoreArea4
*msAreaArray
;
154 u32 msAreaArrayNumEntries
;
155 u32 msAreaArrayEntrySize
;
158 u32 msAreaFunctional
;
165 #endif /* _ISERIES_MAIN_STORE_H */