linux/arch/powerpc/platforms/iseries/main_store.h
<<
>>
Prefs
   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 */
  23struct 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 */
  64struct __attribute((packed)) IoHriMainStoreChipInfo1 {
  65        u32     chipMfgID;
  66        char    chipECLevel[4];
  67};
  68
  69struct IoHriMainStoreVpdIdData {
  70        char    typeNumber[4];
  71        char    modelNumber[4];
  72        char    partNumber[12];
  73        char    serialNumber[12];
  74};
  75
  76struct  __attribute((packed)) IoHriMainStoreVpdFruData {
  77        char    fruLabel[8];
  78        u8      numberOfSlots;
  79        u8      pluggingType;
  80        u16     slotMapIndex;
  81};
  82
  83struct  __attribute((packed)) IoHriMainStoreAdrRangeBlock {
  84        void    *blockStart;
  85        void    *blockEnd;
  86        u32     blockProcChipId;
  87};
  88
  89#define MaxAreaAdrRangeBlocks 4
  90
  91struct __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
 145struct 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
 163extern u64      xMsVpd[];
 164
 165#endif  /* _ISERIES_MAIN_STORE_H */
 166