3 * Copyright (C) 2001 Mike Corrigan IBM Corporation
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.
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.
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
20 #ifndef _IOHRIMAINSTORE_H
21 #define _IOHRIMAINSTORE_H
23 /* Main Store Vpd for Condor,iStar,sStar */
24 struct IoHriMainStoreSegment4
{
32 u8 msArea0Functional
:1;
33 u8 msArea1Functional
:1;
34 u8 msArea2Functional
:1;
35 u8 msArea3Functional
:1;
46 u32 cardProductionLevel
;
50 u8 msArea0HasRiserVpd
:1;
51 u8 msArea1HasRiserVpd
:1;
52 u8 msArea2HasRiserVpd
:1;
53 u8 msArea3HasRiserVpd
:1;
60 u64 nonInterleavedBlocksStartAdr
;
61 u64 nonInterleavedBlocksEndAdr
;
64 /* Main Store VPD for Power4 */
65 struct IoHriMainStoreChipInfo1
{
66 u32 chipMfgID
__attribute((packed
));
67 char chipECLevel
[4] __attribute((packed
));
70 struct IoHriMainStoreVpdIdData
{
74 char serialNumber
[12];
77 struct IoHriMainStoreVpdFruData
{
78 char fruLabel
[8] __attribute((packed
));
79 u8 numberOfSlots
__attribute((packed
));
80 u8 pluggingType
__attribute((packed
));
81 u16 slotMapIndex
__attribute((packed
));
84 struct IoHriMainStoreAdrRangeBlock
{
85 void * blockStart
__attribute((packed
));
86 void * blockEnd
__attribute((packed
));
87 u32 blockProcChipId
__attribute((packed
));
90 #define MaxAreaAdrRangeBlocks 4
92 struct IoHriMainStoreArea4
{
93 u32 msVpdFormat
__attribute((packed
));
94 u8 containedVpdType
__attribute((packed
));
95 u8 reserved1
__attribute((packed
));
96 u16 reserved2
__attribute((packed
));
98 u64 msExists
__attribute((packed
));
99 u64 msFunctional
__attribute((packed
));
101 u32 memorySize
__attribute((packed
));
102 u32 procNodeId
__attribute((packed
));
104 u32 numAdrRangeBlocks
__attribute((packed
));
105 struct IoHriMainStoreAdrRangeBlock xAdrRangeBlock
[MaxAreaAdrRangeBlocks
] __attribute((packed
));
107 struct IoHriMainStoreChipInfo1 chipInfo0
__attribute((packed
));
108 struct IoHriMainStoreChipInfo1 chipInfo1
__attribute((packed
));
109 struct IoHriMainStoreChipInfo1 chipInfo2
__attribute((packed
));
110 struct IoHriMainStoreChipInfo1 chipInfo3
__attribute((packed
));
111 struct IoHriMainStoreChipInfo1 chipInfo4
__attribute((packed
));
112 struct IoHriMainStoreChipInfo1 chipInfo5
__attribute((packed
));
113 struct IoHriMainStoreChipInfo1 chipInfo6
__attribute((packed
));
114 struct IoHriMainStoreChipInfo1 chipInfo7
__attribute((packed
));
116 void * msRamAreaArray
__attribute((packed
));
117 u32 msRamAreaArrayNumEntries
__attribute((packed
));
118 u32 msRamAreaArrayEntrySize
__attribute((packed
));
120 u32 numaDimmExists
__attribute((packed
));
121 u32 numaDimmFunctional
__attribute((packed
));
122 void * numaDimmArray
__attribute((packed
));
123 u32 numaDimmArrayNumEntries
__attribute((packed
));
124 u32 numaDimmArrayEntrySize
__attribute((packed
));
126 struct IoHriMainStoreVpdIdData idData
__attribute((packed
));
128 u64 powerData
__attribute((packed
));
129 u64 cardAssemblyPartNum
__attribute((packed
));
130 u64 chipSerialNum
__attribute((packed
));
132 u64 reserved3
__attribute((packed
));
133 char reserved4
[16] __attribute((packed
));
135 struct IoHriMainStoreVpdFruData fruData
__attribute((packed
));
137 u8 vpdPortNum
__attribute((packed
));
138 u8 reserved5
__attribute((packed
));
139 u8 frameId
__attribute((packed
));
140 u8 rackUnit
__attribute((packed
));
141 char asciiKeywordVpd
[256] __attribute((packed
));
142 u32 reserved6
__attribute((packed
));
146 struct IoHriMainStoreSegment5
{
152 u64 maxConfiguredMsAdr
;
154 struct IoHriMainStoreArea4
* msAreaArray
;
155 u32 msAreaArrayNumEntries
;
156 u32 msAreaArrayEntrySize
;
159 u32 msAreaFunctional
;
166 #endif // _IOHRIMAINSTORE_H