[ARM] Fix SMP booting
[linux-2.6/verdex.git] / arch / powerpc / platforms / iseries / main_store.h
blob74f6889f834f1679f09ccd8bbc772fdafd6aade2
1 /*
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 {
24 u8 msArea0Exists:1;
25 u8 msArea1Exists:1;
26 u8 msArea2Exists:1;
27 u8 msArea3Exists:1;
28 u8 reserved1:4;
29 u8 reserved2;
31 u8 msArea0Functional:1;
32 u8 msArea1Functional:1;
33 u8 msArea2Functional:1;
34 u8 msArea3Functional:1;
35 u8 reserved3:4;
36 u8 reserved4;
38 u32 totalMainStore;
40 u64 msArea0Ptr;
41 u64 msArea1Ptr;
42 u64 msArea2Ptr;
43 u64 msArea3Ptr;
45 u32 cardProductionLevel;
47 u32 msAdrHole;
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;
57 u8 reserved8[28];
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 {
70 char typeNumber[4];
71 char modelNumber[4];
72 char partNumber[12];
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 {
146 u16 reserved1;
147 u8 reserved2;
148 u8 msVpdFormat;
150 u32 totalMainStore;
151 u64 maxConfiguredMsAdr;
153 struct IoHriMainStoreArea4 *msAreaArray;
154 u32 msAreaArrayNumEntries;
155 u32 msAreaArrayEntrySize;
157 u32 msAreaExists;
158 u32 msAreaFunctional;
160 u64 reserved3;
163 extern u64 xMsVpd[];
165 #endif /* _ISERIES_MAIN_STORE_H */