2005-04-16 15:20:36 -07:00
/*
* Copyright ( C ) 2001 Mike Corrigan IBM Corporation
2005-06-21 17:15:34 -07:00
*
2005-04-16 15:20:36 -07:00
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 2 of the License , or
* ( at your option ) any later version .
2005-06-21 17:15:34 -07:00
*
2005-04-16 15:20:36 -07:00
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
2005-06-21 17:15:34 -07:00
*
2005-04-16 15:20:36 -07:00
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
*/
2005-09-28 23:37:01 +10:00
# ifndef _ISERIES_MAIN_STORE_H
# define _ISERIES_MAIN_STORE_H
2005-04-16 15:20:36 -07:00
/* Main Store Vpd for Condor,iStar,sStar */
2005-06-21 17:15:34 -07:00
struct IoHriMainStoreSegment4 {
2005-04-16 15:20:36 -07:00
u8 msArea0Exists : 1 ;
u8 msArea1Exists : 1 ;
u8 msArea2Exists : 1 ;
u8 msArea3Exists : 1 ;
u8 reserved1 : 4 ;
u8 reserved2 ;
u8 msArea0Functional : 1 ;
u8 msArea1Functional : 1 ;
u8 msArea2Functional : 1 ;
u8 msArea3Functional : 1 ;
u8 reserved3 : 4 ;
u8 reserved4 ;
u32 totalMainStore ;
u64 msArea0Ptr ;
u64 msArea1Ptr ;
u64 msArea2Ptr ;
u64 msArea3Ptr ;
u32 cardProductionLevel ;
u32 msAdrHole ;
u8 msArea0HasRiserVpd : 1 ;
u8 msArea1HasRiserVpd : 1 ;
u8 msArea2HasRiserVpd : 1 ;
u8 msArea3HasRiserVpd : 1 ;
2005-06-21 17:15:34 -07:00
u8 reserved5 : 4 ;
2005-04-16 15:20:36 -07:00
u8 reserved6 ;
u16 reserved7 ;
u8 reserved8 [ 28 ] ;
u64 nonInterleavedBlocksStartAdr ;
u64 nonInterleavedBlocksEndAdr ;
} ;
/* Main Store VPD for Power4 */
2006-08-17 16:28:28 +10:00
struct __attribute ( ( packed ) ) IoHriMainStoreChipInfo1 {
u32 chipMfgID ;
char chipECLevel [ 4 ] ;
2005-04-16 15:20:36 -07:00
} ;
struct IoHriMainStoreVpdIdData {
char typeNumber [ 4 ] ;
char modelNumber [ 4 ] ;
char partNumber [ 12 ] ;
char serialNumber [ 12 ] ;
} ;
2006-08-17 16:28:28 +10:00
struct __attribute ( ( packed ) ) IoHriMainStoreVpdFruData {
char fruLabel [ 8 ] ;
u8 numberOfSlots ;
u8 pluggingType ;
u16 slotMapIndex ;
2005-04-16 15:20:36 -07:00
} ;
2006-08-17 16:28:28 +10:00
struct __attribute ( ( packed ) ) IoHriMainStoreAdrRangeBlock {
void * blockStart ;
void * blockEnd ;
u32 blockProcChipId ;
2005-04-16 15:20:36 -07:00
} ;
# define MaxAreaAdrRangeBlocks 4
2006-08-17 16:28:28 +10:00
struct __attribute ( ( packed ) ) IoHriMainStoreArea4 {
u32 msVpdFormat ;
u8 containedVpdType ;
u8 reserved1 ;
u16 reserved2 ;
u64 msExists ;
u64 msFunctional ;
u32 memorySize ;
u32 procNodeId ;
u32 numAdrRangeBlocks ;
struct IoHriMainStoreAdrRangeBlock xAdrRangeBlock [ MaxAreaAdrRangeBlocks ] ;
struct IoHriMainStoreChipInfo1 chipInfo0 ;
struct IoHriMainStoreChipInfo1 chipInfo1 ;
struct IoHriMainStoreChipInfo1 chipInfo2 ;
struct IoHriMainStoreChipInfo1 chipInfo3 ;
struct IoHriMainStoreChipInfo1 chipInfo4 ;
struct IoHriMainStoreChipInfo1 chipInfo5 ;
struct IoHriMainStoreChipInfo1 chipInfo6 ;
struct IoHriMainStoreChipInfo1 chipInfo7 ;
void * msRamAreaArray ;
u32 msRamAreaArrayNumEntries ;
u32 msRamAreaArrayEntrySize ;
u32 numaDimmExists ;
u32 numaDimmFunctional ;
void * numaDimmArray ;
u32 numaDimmArrayNumEntries ;
u32 numaDimmArrayEntrySize ;
struct IoHriMainStoreVpdIdData idData ;
u64 powerData ;
u64 cardAssemblyPartNum ;
u64 chipSerialNum ;
u64 reserved3 ;
char reserved4 [ 16 ] ;
struct IoHriMainStoreVpdFruData fruData ;
u8 vpdPortNum ;
u8 reserved5 ;
u8 frameId ;
u8 rackUnit ;
char asciiKeywordVpd [ 256 ] ;
u32 reserved6 ;
2005-04-16 15:20:36 -07:00
} ;
2005-06-21 17:15:34 -07:00
struct IoHriMainStoreSegment5 {
2005-04-16 15:20:36 -07:00
u16 reserved1 ;
u8 reserved2 ;
u8 msVpdFormat ;
u32 totalMainStore ;
u64 maxConfiguredMsAdr ;
2005-06-21 17:15:34 -07:00
struct IoHriMainStoreArea4 * msAreaArray ;
2005-04-16 15:20:36 -07:00
u32 msAreaArrayNumEntries ;
u32 msAreaArrayEntrySize ;
2005-06-21 17:15:34 -07:00
u32 msAreaExists ;
2005-04-16 15:20:36 -07:00
u32 msAreaFunctional ;
u64 reserved3 ;
} ;
2005-06-21 17:15:36 -07:00
extern u64 xMsVpd [ ] ;
2005-09-28 23:37:01 +10:00
# endif /* _ISERIES_MAIN_STORE_H */