Commit fcee3895 authored by Stephen Rothwell's avatar Stephen Rothwell Committed by Linus Torvalds

[PATCH] ppc64 iSeries: more header file white space cleanups

This patch just contains white space and comment cleanups in the iSeries
headers files.  There are no semantic changes.
Signed-off-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 45dc76aa
/* /*
* IoHriMainStore.h * IoHriMainStore.h
* Copyright (C) 2001 Mike Corrigan IBM Corporation * Copyright (C) 2001 Mike Corrigan IBM Corporation
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
#define _IOHRIMAINSTORE_H #define _IOHRIMAINSTORE_H
/* Main Store Vpd for Condor,iStar,sStar */ /* Main Store Vpd for Condor,iStar,sStar */
struct IoHriMainStoreSegment4 { struct IoHriMainStoreSegment4 {
u8 msArea0Exists:1; u8 msArea0Exists:1;
u8 msArea1Exists:1; u8 msArea1Exists:1;
u8 msArea2Exists:1; u8 msArea2Exists:1;
...@@ -51,7 +51,7 @@ struct IoHriMainStoreSegment4 { ...@@ -51,7 +51,7 @@ struct IoHriMainStoreSegment4 {
u8 msArea1HasRiserVpd:1; u8 msArea1HasRiserVpd:1;
u8 msArea2HasRiserVpd:1; u8 msArea2HasRiserVpd:1;
u8 msArea3HasRiserVpd:1; u8 msArea3HasRiserVpd:1;
u8 reserved5:4; u8 reserved5:4;
u8 reserved6; u8 reserved6;
u16 reserved7; u16 reserved7;
...@@ -82,8 +82,8 @@ struct IoHriMainStoreVpdFruData { ...@@ -82,8 +82,8 @@ struct IoHriMainStoreVpdFruData {
}; };
struct IoHriMainStoreAdrRangeBlock { struct IoHriMainStoreAdrRangeBlock {
void * blockStart __attribute((packed)); void *blockStart __attribute((packed));
void * blockEnd __attribute((packed)); void *blockEnd __attribute((packed));
u32 blockProcChipId __attribute((packed)); u32 blockProcChipId __attribute((packed));
}; };
...@@ -102,7 +102,7 @@ struct IoHriMainStoreArea4 { ...@@ -102,7 +102,7 @@ struct IoHriMainStoreArea4 {
u32 procNodeId __attribute((packed)); u32 procNodeId __attribute((packed));
u32 numAdrRangeBlocks __attribute((packed)); u32 numAdrRangeBlocks __attribute((packed));
struct IoHriMainStoreAdrRangeBlock xAdrRangeBlock[MaxAreaAdrRangeBlocks] __attribute((packed)); struct IoHriMainStoreAdrRangeBlock xAdrRangeBlock[MaxAreaAdrRangeBlocks] __attribute((packed));
struct IoHriMainStoreChipInfo1 chipInfo0 __attribute((packed)); struct IoHriMainStoreChipInfo1 chipInfo0 __attribute((packed));
struct IoHriMainStoreChipInfo1 chipInfo1 __attribute((packed)); struct IoHriMainStoreChipInfo1 chipInfo1 __attribute((packed));
...@@ -113,17 +113,17 @@ struct IoHriMainStoreArea4 { ...@@ -113,17 +113,17 @@ struct IoHriMainStoreArea4 {
struct IoHriMainStoreChipInfo1 chipInfo6 __attribute((packed)); struct IoHriMainStoreChipInfo1 chipInfo6 __attribute((packed));
struct IoHriMainStoreChipInfo1 chipInfo7 __attribute((packed)); struct IoHriMainStoreChipInfo1 chipInfo7 __attribute((packed));
void * msRamAreaArray __attribute((packed)); void *msRamAreaArray __attribute((packed));
u32 msRamAreaArrayNumEntries __attribute((packed)); u32 msRamAreaArrayNumEntries __attribute((packed));
u32 msRamAreaArrayEntrySize __attribute((packed)); u32 msRamAreaArrayEntrySize __attribute((packed));
u32 numaDimmExists __attribute((packed)); u32 numaDimmExists __attribute((packed));
u32 numaDimmFunctional __attribute((packed)); u32 numaDimmFunctional __attribute((packed));
void * numaDimmArray __attribute((packed)); void *numaDimmArray __attribute((packed));
u32 numaDimmArrayNumEntries __attribute((packed)); u32 numaDimmArrayNumEntries __attribute((packed));
u32 numaDimmArrayEntrySize __attribute((packed)); u32 numaDimmArrayEntrySize __attribute((packed));
struct IoHriMainStoreVpdIdData idData __attribute((packed)); struct IoHriMainStoreVpdIdData idData __attribute((packed));
u64 powerData __attribute((packed)); u64 powerData __attribute((packed));
u64 cardAssemblyPartNum __attribute((packed)); u64 cardAssemblyPartNum __attribute((packed));
...@@ -143,7 +143,7 @@ struct IoHriMainStoreArea4 { ...@@ -143,7 +143,7 @@ struct IoHriMainStoreArea4 {
}; };
struct IoHriMainStoreSegment5 { struct IoHriMainStoreSegment5 {
u16 reserved1; u16 reserved1;
u8 reserved2; u8 reserved2;
u8 msVpdFormat; u8 msVpdFormat;
...@@ -151,17 +151,14 @@ struct IoHriMainStoreSegment5 { ...@@ -151,17 +151,14 @@ struct IoHriMainStoreSegment5 {
u32 totalMainStore; u32 totalMainStore;
u64 maxConfiguredMsAdr; u64 maxConfiguredMsAdr;
struct IoHriMainStoreArea4* msAreaArray; struct IoHriMainStoreArea4 *msAreaArray;
u32 msAreaArrayNumEntries; u32 msAreaArrayNumEntries;
u32 msAreaArrayEntrySize; u32 msAreaArrayEntrySize;
u32 msAreaExists; u32 msAreaExists;
u32 msAreaFunctional; u32 msAreaFunctional;
u64 reserved3; u64 reserved3;
}; };
#endif /* _IOHRIMAINSTORE_H */
#endif // _IOHRIMAINSTORE_H
/* /*
* IoHriProcessorVpd.h * IoHriProcessorVpd.h
* Copyright (C) 2001 Mike Corrigan IBM Corporation * Copyright (C) 2001 Mike Corrigan IBM Corporation
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
...@@ -19,16 +19,12 @@ ...@@ -19,16 +19,12 @@
#ifndef _IOHRIPROCESSORVPD_H #ifndef _IOHRIPROCESSORVPD_H
#define _IOHRIPROCESSORVPD_H #define _IOHRIPROCESSORVPD_H
//===================================================================
//
// This struct maps Processor Vpd that is DMAd to SLIC by CSP
//
#include <asm/types.h> #include <asm/types.h>
struct IoHriProcessorVpd /*
{ * This struct maps Processor Vpd that is DMAd to SLIC by CSP
*/
struct IoHriProcessorVpd {
u8 xFormat; // VPD format indicator x00-x00 u8 xFormat; // VPD format indicator x00-x00
u8 xProcStatus:8; // Processor State x01-x01 u8 xProcStatus:8; // Processor State x01-x01
u8 xSecondaryThreadCount; // Secondary thread cnt x02-x02 u8 xSecondaryThreadCount; // Secondary thread cnt x02-x02
...@@ -40,12 +36,12 @@ struct IoHriProcessorVpd ...@@ -40,12 +36,12 @@ struct IoHriProcessorVpd
u16 xRsvd2; // Reserved x06-x07 u16 xRsvd2; // Reserved x06-x07
u32 xHwNodeId; // Hardware node id x08-x0B u32 xHwNodeId; // Hardware node id x08-x0B
u32 xHwProcId; // Hardware processor id x0C-x0F u32 xHwProcId; // Hardware processor id x0C-x0F
u32 xTypeNum; // Card Type/CCIN number x10-x13 u32 xTypeNum; // Card Type/CCIN number x10-x13
u32 xModelNum; // Model/Feature number x14-x17 u32 xModelNum; // Model/Feature number x14-x17
u64 xSerialNum; // Serial number x18-x1F u64 xSerialNum; // Serial number x18-x1F
char xPartNum[12]; // Book Part or FPU number x20-x2B char xPartNum[12]; // Book Part or FPU number x20-x2B
char xMfgID[4]; // Manufacturing ID x2C-x2F char xMfgID[4]; // Manufacturing ID x2C-x2F
u32 xProcFreq; // Processor Frequency x30-x33 u32 xProcFreq; // Processor Frequency x30-x33
u32 xTimeBaseFreq; // Time Base Frequency x34-x37 u32 xTimeBaseFreq; // Time Base Frequency x34-x37
...@@ -71,7 +67,7 @@ struct IoHriProcessorVpd ...@@ -71,7 +67,7 @@ struct IoHriProcessorVpd
u32 xDataL3CacheSizeKB; // L3 data cache size in KB x80-x83 u32 xDataL3CacheSizeKB; // L3 data cache size in KB x80-x83
u32 xDataL3CacheLineSize; // L3 data cache block size x84-x87 u32 xDataL3CacheLineSize; // L3 data cache block size x84-x87
u64 xRsvd6; // Reserved x88-x8F u64 xRsvd6; // Reserved x88-x8F
u64 xFruLabel; // Card Location Label x90-x97 u64 xFruLabel; // Card Location Label x90-x97
u8 xSlotsOnCard; // Slots on card (0=no slots) x98-x98 u8 xSlotsOnCard; // Slots on card (0=no slots) x98-x98
u8 xPartLocFlag; // Location flag (0-pluggable 1-imbedded) x99-x99 u8 xPartLocFlag; // Location flag (0-pluggable 1-imbedded) x99-x99
...@@ -79,10 +75,10 @@ struct IoHriProcessorVpd ...@@ -79,10 +75,10 @@ struct IoHriProcessorVpd
u8 xSmartCardPortNo; // Smart card port number x9C-x9C u8 xSmartCardPortNo; // Smart card port number x9C-x9C
u8 xRsvd7; // Reserved x9D-x9D u8 xRsvd7; // Reserved x9D-x9D
u16 xFrameIdAndRackUnit; // Frame ID and rack unit adr x9E-x9F u16 xFrameIdAndRackUnit; // Frame ID and rack unit adr x9E-x9F
u8 xRsvd8[24]; // Reserved xA0-xB7 u8 xRsvd8[24]; // Reserved xA0-xB7
char xProcSrc[72]; // CSP format SRC xB8-xFF char xProcSrc[72]; // CSP format SRC xB8-xFF
}; };
#endif /* _IOHRIPROCESSORVPD_H */ #endif /* _IOHRIPROCESSORVPD_H */
/* /*
* ItExtVpdPanel.h * ItExtVpdPanel.h
* Copyright (C) 2002 Dave Boutcher IBM Corporation * Copyright (C) 2002 Dave Boutcher IBM Corporation
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
...@@ -20,39 +20,31 @@ ...@@ -20,39 +20,31 @@
#define _ITEXTVPDPANEL_H #define _ITEXTVPDPANEL_H
/* /*
* * This struct maps the panel information
* This struct maps the panel information
* *
* Warning: * Warning:
* This data must match the architecture for the panel information * This data must match the architecture for the panel information
*
*/ */
/*-------------------------------------------------------------------
* Standard Includes
*-------------------------------------------------------------------
*/
#include <asm/types.h> #include <asm/types.h>
struct ItExtVpdPanel struct ItExtVpdPanel {
{ /* Definition of the Extended Vpd On Panel Data Area */
// Definition of the Extended Vpd On Panel Data Area char systemSerial[8];
char systemSerial[8]; char mfgID[4];
char mfgID[4]; char reserved1[24];
char reserved1[24]; char machineType[4];
char machineType[4]; char systemID[6];
char systemID[6]; char somUniqueCnt[4];
char somUniqueCnt[4]; char serialNumberCount;
char serialNumberCount; char reserved2[7];
char reserved2[7]; u16 bbu3;
u16 bbu3; u16 bbu2;
u16 bbu2; u16 bbu1;
u16 bbu1; char xLocationLabel[8];
char xLocationLabel[8]; u8 xRsvd1[6];
u8 xRsvd1[6]; u16 xFrameId;
u16 xFrameId; u8 xRsvd2[48];
u8 xRsvd2[48];
}; };
#endif /* _ITEXTVPDPANEL_H */ #endif /* _ITEXTVPDPANEL_H */
/* /*
* ItIplParmsReal.h * ItIplParmsReal.h
* Copyright (C) 2001 Mike Corrigan IBM Corporation * Copyright (C) 2001 Mike Corrigan IBM Corporation
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
...@@ -19,58 +19,51 @@ ...@@ -19,58 +19,51 @@
#ifndef _ITIPLPARMSREAL_H #ifndef _ITIPLPARMSREAL_H
#define _ITIPLPARMSREAL_H #define _ITIPLPARMSREAL_H
//============================================================================== /*
// * This struct maps the IPL Parameters DMA'd from the SP.
// This struct maps the IPL Parameters DMA'd from the SP. *
// * Warning:
// Warning: * This data must map in exactly 64 bytes and match the architecture for
// This data must map in exactly 64 bytes and match the architecture for * the IPL parms
// the IPL parms */
//
//=============================================================================
//-------------------------------------------------------------------
// Standard Includes
//-------------------------------------------------------------------
#include <asm/types.h> #include <asm/types.h>
struct ItIplParmsReal struct ItIplParmsReal {
{ u8 xFormat; // Defines format of IplParms x00-x00
u8 xFormat; // Defines format of IplParms x00-x00 u8 xRsvd01:6; // Reserved x01-x01
u8 xRsvd01:6; // Reserved x01-x01 u8 xAlternateSearch:1; // Alternate search indicator ...
u8 xAlternateSearch:1; // Alternate search indicator ... u8 xUaSupplied:1; // UA Supplied on programmed IPL...
u8 xUaSupplied:1; // UA Supplied on programmed IPL ... u8 xLsUaFormat; // Format byte for UA x02-x02
u8 xLsUaFormat; // Format byte for UA x02-x02 u8 xRsvd02; // Reserved x03-x03
u8 xRsvd02; // Reserved x03-x03 u32 xLsUa; // LS UA x04-x07
u32 xLsUa; // LS UA x04-x07 u32 xUnusedLsLid; // First OS LID to load x08-x0B
u32 xUnusedLsLid; // First OS LID to load x08-x0B u16 xLsBusNumber; // LS Bus Number x0C-x0D
u16 xLsBusNumber; // LS Bus Number x0C-x0D u8 xLsCardAdr; // LS Card Address x0E-x0E
u8 xLsCardAdr; // LS Card Address x0E-x0E u8 xLsBoardAdr; // LS Board Address x0F-x0F
u8 xLsBoardAdr; // LS Board Address x0F-x0F u32 xRsvd03; // Reserved x10-x13
u32 xRsvd03; // Reserved x10-x13 u8 xSpcnPresent:1; // SPCN present x14-x14
u8 xSpcnPresent:1; // SPCN present x14-x14 u8 xCpmPresent:1; // CPM present ...
u8 xCpmPresent:1; // CPM present ... u8 xRsvd04:6; // Reserved ...
u8 xRsvd04:6; // Reserved ... u8 xRsvd05:4; // Reserved x15-x15
u8 xRsvd05:4; // Reserved x15-x15 u8 xKeyLock:4; // Keylock setting ...
u8 xKeyLock:4; // Keylock setting ... u8 xRsvd06:6; // Reserved x16-x16
u8 xRsvd06:6; // Reserved x16-x16 u8 xIplMode:2; // Ipl mode (A|B|C|D) ...
u8 xIplMode:2; // Ipl mode (A|B|C|D) ... u8 xHwIplType; // Fast v slow v slow EC HW IPL x17-x17
u8 xHwIplType; // Fast v slow v slow EC HW IPL x17-x17 u16 xCpmEnabledIpl:1; // CPM in effect when IPL initiatedx18-x19
u16 xCpmEnabledIpl:1; // CPM in effect when IPL initiated x18-x19 u16 xPowerOnResetIpl:1; // Indicate POR condition ...
u16 xPowerOnResetIpl:1; // Indicate POR condition ... u16 xMainStorePreserved:1; // Main Storage is preserved ...
u16 xMainStorePreserved:1; // Main Storage is preserved ... u16 xRsvd07:13; // Reserved ...
u16 xRsvd07:13; // Reserved ... u16 xIplSource:16; // Ipl source x1A-x1B
u16 xIplSource:16; // Ipl source x1A-x1B u8 xIplReason:8; // Reason for this IPL x1C-x1C
u8 xIplReason:8; // Reason for this IPL x1C-x1C u8 xRsvd08; // Reserved x1D-x1D
u8 xRsvd08; // Reserved x1D-x1D u16 xRsvd09; // Reserved x1E-x1F
u16 xRsvd09; // Reserved x1E-x1F u16 xSysBoxType; // System Box Type x20-x21
u16 xSysBoxType; // System Box Type x20-x21 u16 xSysProcType; // System Processor Type x22-x23
u16 xSysProcType; // System Processor Type x22-x23 u32 xRsvd10; // Reserved x24-x27
u32 xRsvd10; // Reserved x24-x27 u64 xRsvd11; // Reserved x28-x2F
u64 xRsvd11; // Reserved x28-x2F u64 xRsvd12; // Reserved x30-x37
u64 xRsvd12; // Reserved x30-x37 u64 xRsvd13; // Reserved x38-x3F
u64 xRsvd13; // Reserved x38-x3F
}; };
#endif /* _ITIPLPARMSREAL_H */ #endif /* _ITIPLPARMSREAL_H */
/* /*
* ItLpNaca.h * ItLpNaca.h
* Copyright (C) 2001 Mike Corrigan IBM Corporation * Copyright (C) 2001 Mike Corrigan IBM Corporation
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
...@@ -19,18 +19,13 @@ ...@@ -19,18 +19,13 @@
#ifndef _ITLPNACA_H #ifndef _ITLPNACA_H
#define _ITLPNACA_H #define _ITLPNACA_H
//============================================================================= /*
// * This control block contains the data that is shared between the
// This control block contains the data that is shared between the * hypervisor (PLIC) and the OS.
// hypervisor (PLIC) and the OS. */
//
//=============================================================================
struct ItLpNaca struct ItLpNaca {
{
//=============================================================================
// CACHE_LINE_1 0x0000 - 0x007F Contains read-only data // CACHE_LINE_1 0x0000 - 0x007F Contains read-only data
//=============================================================================
u32 xDesc; // Eye catcher x00-x03 u32 xDesc; // Eye catcher x00-x03
u16 xSize; // Size of this class x04-x05 u16 xSize; // Size of this class x04-x05
u16 xIntHdlrOffset; // Offset to IntHdlr array x06-x07 u16 xIntHdlrOffset; // Offset to IntHdlr array x06-x07
...@@ -59,30 +54,23 @@ struct ItLpNaca ...@@ -59,30 +54,23 @@ struct ItLpNaca
u64 xLoadAreaAddr; // ER address of load area x28-x2F u64 xLoadAreaAddr; // ER address of load area x28-x2F
u32 xLoadAreaChunks; // Chunks for the load area x30-x33 u32 xLoadAreaChunks; // Chunks for the load area x30-x33
u32 xPaseSysCallCRMask; // Mask used to test CR before x34-x37 u32 xPaseSysCallCRMask; // Mask used to test CR before x34-x37
// doing an ASR switch on PASE // doing an ASR switch on PASE
// system call. // system call.
u64 xSlicSegmentTablePtr; // Pointer to Slic seg table. x38-x3f u64 xSlicSegmentTablePtr; // Pointer to Slic seg table. x38-x3f
u8 xRsvd1_4[64]; // x40-x7F u8 xRsvd1_4[64]; // x40-x7F
//=============================================================================
// CACHE_LINE_2 0x0080 - 0x00FF Contains local read-write data // CACHE_LINE_2 0x0080 - 0x00FF Contains local read-write data
//=============================================================================
u8 xRsvd2_0[128]; // Reserved x00-x7F u8 xRsvd2_0[128]; // Reserved x00-x7F
//=============================================================================
// CACHE_LINE_3-6 0x0100 - 0x02FF Contains LP Queue indicators // CACHE_LINE_3-6 0x0100 - 0x02FF Contains LP Queue indicators
// NB: Padding required to keep xInterrruptHdlr at x300 which is required // NB: Padding required to keep xInterrruptHdlr at x300 which is required
// for v4r4 PLIC. // for v4r4 PLIC.
//=============================================================================
u8 xOldLpQueue[128]; // LP Queue needed for v4r4 100-17F u8 xOldLpQueue[128]; // LP Queue needed for v4r4 100-17F
u8 xRsvd3_0[384]; // Reserved 180-2FF u8 xRsvd3_0[384]; // Reserved 180-2FF
//=============================================================================
// CACHE_LINE_7-8 0x0300 - 0x03FF Contains the address of the OS interrupt // CACHE_LINE_7-8 0x0300 - 0x03FF Contains the address of the OS interrupt
// handlers // handlers
//=============================================================================
u64 xInterruptHdlr[32]; // Interrupt handlers 300-x3FF u64 xInterruptHdlr[32]; // Interrupt handlers 300-x3FF
}; };
//=============================================================================
#endif /* _ITLPNACA_H */ #endif /* _ITLPNACA_H */
/* /*
* ItLpQueue.h * ItLpQueue.h
* Copyright (C) 2001 Mike Corrigan IBM Corporation * Copyright (C) 2001 Mike Corrigan IBM Corporation
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
...@@ -19,47 +19,47 @@ ...@@ -19,47 +19,47 @@
#ifndef _ITLPQUEUE_H #ifndef _ITLPQUEUE_H
#define _ITLPQUEUE_H #define _ITLPQUEUE_H
//============================================================================= /*
// * This control block defines the simple LP queue structure that is
// This control block defines the simple LP queue structure that is * shared between the hypervisor (PLIC) and the OS in order to send
// shared between the hypervisor (PLIC) and the OS in order to send * events to an LP.
// events to an LP. */
//
#include <asm/types.h> #include <asm/types.h>
#include <asm/ptrace.h> #include <asm/ptrace.h>
struct HvLpEvent; struct HvLpEvent;
#define ITMaxLpQueues 8 #define ITMaxLpQueues 8
#define NotUsed 0 // Queue will not be used by PLIC #define NotUsed 0 // Queue will not be used by PLIC
#define DedicatedIo 1 // Queue dedicated to IO processor specified #define DedicatedIo 1 // Queue dedicated to IO processor specified
#define DedicatedLp 2 // Queue dedicated to LP specified #define DedicatedLp 2 // Queue dedicated to LP specified
#define Shared 3 // Queue shared for both IO and LP #define Shared 3 // Queue shared for both IO and LP
#define LpEventStackSize 4096 #define LpEventStackSize 4096
#define LpEventMaxSize 256 #define LpEventMaxSize 256
#define LpEventAlign 64 #define LpEventAlign 64
struct ItLpQueue struct ItLpQueue {
{ /*
// * The xSlicCurEventPtr is the pointer to the next event stack entry
// The xSlicCurEventPtr is the pointer to the next event stack entry that will * that will become valid. The OS must peek at this entry to determine
// become valid. The OS must peek at this entry to determine if it is valid. * if it is valid. PLIC will set the valid indicator as the very last
// PLIC will set the valid indicator as the very last store into that entry. * store into that entry.
// *
// When the OS has completed processing of the event then it will mark the event * When the OS has completed processing of the event then it will mark
// as invalid so that PLIC knows it can store into that event location again. * the event as invalid so that PLIC knows it can store into that event
// * location again.
// If the event stack fills and there are overflow events, then PLIC will set *
// the xPlicOverflowIntPending flag in which case the OS will have to fetch the * If the event stack fills and there are overflow events, then PLIC
// additional LP events once they have drained the event stack. * will set the xPlicOverflowIntPending flag in which case the OS will
// * have to fetch the additional LP events once they have drained the
// The first 16-bytes are known by both the OS and PLIC. The remainder of the * event stack.
// cache line is for use by the OS. *
// * The first 16-bytes are known by both the OS and PLIC. The remainder
//============================================================================= * of the cache line is for use by the OS.
*/
u8 xPlicOverflowIntPending;// 0x00 Overflow events are pending u8 xPlicOverflowIntPending;// 0x00 Overflow events are pending
u8 xPlicStatus; // 0x01 DedicatedIo or DedicatedLp or NotUsed u8 xPlicStatus; // 0x01 DedicatedIo or DedicatedLp or NotUsed
u16 xSlicLogicalProcIndex; // 0x02 Logical Proc Index for correlation u16 xSlicLogicalProcIndex; // 0x02 Logical Proc Index for correlation
...@@ -76,17 +76,17 @@ struct ItLpQueue ...@@ -76,17 +76,17 @@ struct ItLpQueue
extern struct ItLpQueue xItLpQueue; extern struct ItLpQueue xItLpQueue;
extern struct HvLpEvent * ItLpQueue_getNextLpEvent( struct ItLpQueue * ); extern struct HvLpEvent * ItLpQueue_getNextLpEvent(struct ItLpQueue *);
extern int ItLpQueue_isLpIntPending( struct ItLpQueue * ); extern int ItLpQueue_isLpIntPending(struct ItLpQueue *);
extern unsigned ItLpQueue_process( struct ItLpQueue *, struct pt_regs * ); extern unsigned ItLpQueue_process(struct ItLpQueue *, struct pt_regs *);
extern void ItLpQueue_clearValid( struct HvLpEvent * ); extern void ItLpQueue_clearValid(struct HvLpEvent *);
static __inline__ void process_iSeries_events( void ) static __inline__ void process_iSeries_events(void)
{ {
__asm__ __volatile__ ( __asm__ __volatile__ (
" li 0,0x5555 \n\ " li 0,0x5555 \n\
sc" sc"
: : : "r0", "r3" ); : : : "r0", "r3");
} }
#endif /* _ITLPQUEUE_H */ #endif /* _ITLPQUEUE_H */
/* /*
* ItLpRegSave.h * ItLpRegSave.h
* Copyright (C) 2001 Mike Corrigan IBM Corporation * Copyright (C) 2001 Mike Corrigan IBM Corporation
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
...@@ -19,33 +19,30 @@ ...@@ -19,33 +19,30 @@
#ifndef _ITLPREGSAVE_H #ifndef _ITLPREGSAVE_H
#define _ITLPREGSAVE_H #define _ITLPREGSAVE_H
//===================================================================================== /*
// * This control block contains the data that is shared between PLIC
// This control block contains the data that is shared between PLIC * and the OS
// and the OS */
//
//
struct ItLpRegSave struct ItLpRegSave {
{
u32 xDesc; // Eye catcher "LpRS" ebcdic 000-003 u32 xDesc; // Eye catcher "LpRS" ebcdic 000-003
u16 xSize; // Size of this class 004-005 u16 xSize; // Size of this class 004-005
u8 xInUse; // Area is live 006-007 u8 xInUse; // Area is live 006-007
u8 xRsvd1[9]; // Reserved 007-00F u8 xRsvd1[9]; // Reserved 007-00F
u8 xFixedRegSave[352]; // Fixed Register Save Area 010-16F u8 xFixedRegSave[352]; // Fixed Register Save Area 010-16F
u32 xCTRL; // Control Register 170-173 u32 xCTRL; // Control Register 170-173
u32 xDEC; // Decrementer 174-177 u32 xDEC; // Decrementer 174-177
u32 xFPSCR; // FP Status and Control Reg 178-17B u32 xFPSCR; // FP Status and Control Reg 178-17B
u32 xPVR; // Processor Version Number 17C-17F u32 xPVR; // Processor Version Number 17C-17F
u64 xMMCR0; // Monitor Mode Control Reg 0 180-187 u64 xMMCR0; // Monitor Mode Control Reg 0 180-187
u32 xPMC1; // Perf Monitor Counter 1 188-18B u32 xPMC1; // Perf Monitor Counter 1 188-18B
u32 xPMC2; // Perf Monitor Counter 2 18C-18F u32 xPMC2; // Perf Monitor Counter 2 18C-18F
u32 xPMC3; // Perf Monitor Counter 3 190-193 u32 xPMC3; // Perf Monitor Counter 3 190-193
u32 xPMC4; // Perf Monitor Counter 4 194-197 u32 xPMC4; // Perf Monitor Counter 4 194-197
u32 xPIR; // Processor ID Reg 198-19B u32 xPIR; // Processor ID Reg 198-19B
u32 xMMCR1; // Monitor Mode Control Reg 1 19C-19F u32 xMMCR1; // Monitor Mode Control Reg 1 19C-19F
u32 xMMCRA; // Monitor Mode Control Reg A 1A0-1A3 u32 xMMCRA; // Monitor Mode Control Reg A 1A0-1A3
u32 xPMC5; // Perf Monitor Counter 5 1A4-1A7 u32 xPMC5; // Perf Monitor Counter 5 1A4-1A7
...@@ -57,17 +54,17 @@ struct ItLpRegSave ...@@ -57,17 +54,17 @@ struct ItLpRegSave
u32 xRsvd; // Reserved 1BC-1BF u32 xRsvd; // Reserved 1BC-1BF
u64 xACCR; // Address Compare Control Reg 1C0-1C7 u64 xACCR; // Address Compare Control Reg 1C0-1C7
u64 xIMR; // Instruction Match Register 1C8-1CF u64 xIMR; // Instruction Match Register 1C8-1CF
u64 xSDR1; // Storage Description Reg 1 1D0-1D7 u64 xSDR1; // Storage Description Reg 1 1D0-1D7
u64 xSPRG0; // Special Purpose Reg General0 1D8-1DF u64 xSPRG0; // Special Purpose Reg General0 1D8-1DF
u64 xSPRG1; // Special Purpose Reg General1 1E0-1E7 u64 xSPRG1; // Special Purpose Reg General1 1E0-1E7
u64 xSPRG2; // Special Purpose Reg General2 1E8-1EF u64 xSPRG2; // Special Purpose Reg General2 1E8-1EF
u64 xSPRG3; // Special Purpose Reg General3 1F0-1F7 u64 xSPRG3; // Special Purpose Reg General3 1F0-1F7
u64 xTB; // Time Base Register 1F8-1FF u64 xTB; // Time Base Register 1F8-1FF
u64 xFPR[32]; // Floating Point Registers 200-2FF u64 xFPR[32]; // Floating Point Registers 200-2FF
u64 xMSR; // Machine State Register 300-307 u64 xMSR; // Machine State Register 300-307
u64 xNIA; // Next Instruction Address 308-30F u64 xNIA; // Next Instruction Address 308-30F
u64 xDABR; // Data Address Breakpoint Reg 310-317 u64 xDABR; // Data Address Breakpoint Reg 310-317
...@@ -76,8 +73,8 @@ struct ItLpRegSave ...@@ -76,8 +73,8 @@ struct ItLpRegSave
u64 xHID0; // HW Implementation Dependent0 320-327 u64 xHID0; // HW Implementation Dependent0 320-327
u64 xHID4; // HW Implementation Dependent4 328-32F u64 xHID4; // HW Implementation Dependent4 328-32F
u64 xSCOMd; // SCON Data Reg (SPRG4) 330-337 u64 xSCOMd; // SCON Data Reg (SPRG4) 330-337
u64 xSCOMc; // SCON Command Reg (SPRG5) 338-33F u64 xSCOMc; // SCON Command Reg (SPRG5) 338-33F
u64 xSDAR; // Sample Data Address Register 340-347 u64 xSDAR; // Sample Data Address Register 340-347
u64 xSIAR; // Sample Inst Address Register 348-34F u64 xSIAR; // Sample Inst Address Register 348-34F
......
/* /*
* ItSpCommArea.h * ItSpCommArea.h
* Copyright (C) 2001 Mike Corrigan IBM Corporation * Copyright (C) 2001 Mike Corrigan IBM Corporation
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#ifndef _ITSPCOMMAREA_H #ifndef _ITSPCOMMAREA_H
#define _ITSPCOMMAREA_H #define _ITSPCOMMAREA_H
struct SpCommArea struct SpCommArea {
{
u32 xDesc; // Descriptor (only in new formats) 000-003 u32 xDesc; // Descriptor (only in new formats) 000-003
u8 xFormat; // Format (only in new formats) 004-004 u8 xFormat; // Format (only in new formats) 004-004
u8 xRsvd1[11]; // Reserved 005-00F u8 xRsvd1[11]; // Reserved 005-00F
......
/* /*
* ItVpdAreas.h * ItVpdAreas.h
* Copyright (C) 2001 Mike Corrigan IBM Corporation * Copyright (C) 2001 Mike Corrigan IBM Corporation
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
...@@ -19,78 +19,75 @@ ...@@ -19,78 +19,75 @@
#ifndef _ITVPDAREAS_H #ifndef _ITVPDAREAS_H
#define _ITVPDAREAS_H #define _ITVPDAREAS_H
//===================================================================================== /*
// * This file defines the address and length of all of the VPD area passed to
// This file defines the address and length of all of the VPD area passed to * the OS from PLIC (most of which start from the SP).
// the OS from PLIC (most of which start from the SP). */
//
#include <asm/types.h> #include <asm/types.h>
// VPD Entry index is carved in stone - cannot be changed (easily). /* VPD Entry index is carved in stone - cannot be changed (easily). */
#define ItVpdCecVpd 0 #define ItVpdCecVpd 0
#define ItVpdDynamicSpace 1 #define ItVpdDynamicSpace 1
#define ItVpdExtVpd 2 #define ItVpdExtVpd 2
#define ItVpdExtVpdOnPanel 3 #define ItVpdExtVpdOnPanel 3
#define ItVpdFirstPaca 4 #define ItVpdFirstPaca 4
#define ItVpdIoVpd 5 #define ItVpdIoVpd 5
#define ItVpdIplParms 6 #define ItVpdIplParms 6
#define ItVpdMsVpd 7 #define ItVpdMsVpd 7
#define ItVpdPanelVpd 8 #define ItVpdPanelVpd 8
#define ItVpdLpNaca 9 #define ItVpdLpNaca 9
#define ItVpdBackplaneAndMaybeClockCardVpd 10 #define ItVpdBackplaneAndMaybeClockCardVpd 10
#define ItVpdRecoveryLogBuffer 11 #define ItVpdRecoveryLogBuffer 11
#define ItVpdSpCommArea 12 #define ItVpdSpCommArea 12
#define ItVpdSpLogBuffer 13 #define ItVpdSpLogBuffer 13
#define ItVpdSpLogBufferSave 14 #define ItVpdSpLogBufferSave 14
#define ItVpdSpCardVpd 15 #define ItVpdSpCardVpd 15
#define ItVpdFirstProcVpd 16 #define ItVpdFirstProcVpd 16
#define ItVpdApModelVpd 17 #define ItVpdApModelVpd 17
#define ItVpdClockCardVpd 18 #define ItVpdClockCardVpd 18
#define ItVpdBusExtCardVpd 19 #define ItVpdBusExtCardVpd 19
#define ItVpdProcCapacityVpd 20 #define ItVpdProcCapacityVpd 20
#define ItVpdInteractiveCapacityVpd 21 #define ItVpdInteractiveCapacityVpd 21
#define ItVpdFirstSlotLabel 22 #define ItVpdFirstSlotLabel 22
#define ItVpdFirstLpQueue 23 #define ItVpdFirstLpQueue 23
#define ItVpdFirstL3CacheVpd 24 #define ItVpdFirstL3CacheVpd 24
#define ItVpdFirstProcFruVpd 25 #define ItVpdFirstProcFruVpd 25
#define ItVpdMaxEntries 26
#define ItVpdMaxEntries 26
#define ItDmaMaxEntries 10 #define ItDmaMaxEntries 10
#define ItVpdAreasMaxSlotLabels 192 #define ItVpdAreasMaxSlotLabels 192
struct SlicVpdAdrs { struct SlicVpdAdrs {
u32 pad1; u32 pad1;
void * vpdAddr; void *vpdAddr;
}; };
struct ItVpdAreas struct ItVpdAreas {
{ u32 xSlicDesc; // Descriptor 000-003
u32 xSlicDesc; // Descriptor 000-003 u16 xSlicSize; // Size of this control block 004-005
u16 xSlicSize; // Size of this control block 004-005 u16 xPlicAdjustVpdLens:1; // Flag to indicate new interface006-007
u16 xPlicAdjustVpdLens:1; // Flag to indicate new interface 006-007 u16 xRsvd1:15; // Reserved bits ...
u16 xRsvd1:15; // Reserved bits ... u16 xSlicVpdEntries; // Number of VPD entries 008-009
u16 xSlicVpdEntries; // Number of VPD entries 008-009 u16 xSlicDmaEntries; // Number of DMA entries 00A-00B
u16 xSlicDmaEntries; // Number of DMA entries 00A-00B u16 xSlicMaxLogicalProcs; // Maximum logical processors 00C-00D
u16 xSlicMaxLogicalProcs; // Maximum logical processors 00C-00D u16 xSlicMaxPhysicalProcs; // Maximum physical processors 00E-00F
u16 xSlicMaxPhysicalProcs; // Maximum physical processors 00E-00F u16 xSlicDmaToksOffset; // Offset into this of array 010-011
u16 xSlicDmaToksOffset; // Offset into this of array 010-011 u16 xSlicVpdAdrsOffset; // Offset into this of array 012-013
u16 xSlicVpdAdrsOffset; // Offset into this of array 012-013 u16 xSlicDmaLensOffset; // Offset into this of array 014-015
u16 xSlicDmaLensOffset; // Offset into this of array 014-015 u16 xSlicVpdLensOffset; // Offset into this of array 016-017
u16 xSlicVpdLensOffset; // Offset into this of array 016-017 u16 xSlicMaxSlotLabels; // Maximum number of slot labels018-019
u16 xSlicMaxSlotLabels; // Maximum number of slot labels 018-019 u16 xSlicMaxLpQueues; // Maximum number of LP Queues 01A-01B
u16 xSlicMaxLpQueues; // Maximum number of LP Queues 01A-01B u8 xRsvd2[4]; // Reserved 01C-01F
u8 xRsvd2[4]; // Reserved 01C-01F u64 xRsvd3[12]; // Reserved 020-07F
u64 xRsvd3[12]; // Reserved 020-07F u32 xPlicDmaLens[ItDmaMaxEntries];// Array of DMA lengths 080-0A7
u32 xPlicDmaLens[ItDmaMaxEntries];// Array of DMA lengths 080-0A7 u32 xPlicDmaToks[ItDmaMaxEntries];// Array of DMA tokens 0A8-0CF
u32 xPlicDmaToks[ItDmaMaxEntries];// Array of DMA tokens 0A8-0CF u32 xSlicVpdLens[ItVpdMaxEntries];// Array of VPD lengths 0D0-12F
u32 xSlicVpdLens[ItVpdMaxEntries];// Array of VPD lengths 0D0-12F void *xSlicVpdAdrs[ItVpdMaxEntries];// Array of VPD buffers 130-1EF
void * xSlicVpdAdrs[ItVpdMaxEntries];// Array of VPD buffers 130-1EF
}; };
#endif /* _ITVPDAREAS_H */ #endif /* _ITVPDAREAS_H */
/* /*
* LparData.h * LparData.h
* Copyright (C) 2001 Mike Corrigan IBM Corporation * Copyright (C) 2001 Mike Corrigan IBM Corporation
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
...@@ -34,16 +34,15 @@ ...@@ -34,16 +34,15 @@
#include <asm/iSeries/ItLpQueue.h> #include <asm/iSeries/ItLpQueue.h>
#include <asm/iSeries/IoHriProcessorVpd.h> #include <asm/iSeries/IoHriProcessorVpd.h>
extern struct LparMap xLparMap; extern struct LparMap xLparMap;
extern struct HvReleaseData hvReleaseData; extern struct HvReleaseData hvReleaseData;
extern struct ItLpNaca itLpNaca; extern struct ItLpNaca itLpNaca;
extern struct ItIplParmsReal xItIplParmsReal; extern struct ItIplParmsReal xItIplParmsReal;
extern struct ItExtVpdPanel xItExtVpdPanel; extern struct ItExtVpdPanel xItExtVpdPanel;
extern struct IoHriProcessorVpd xIoHriProcessorVpd[]; extern struct IoHriProcessorVpd xIoHriProcessorVpd[];
extern struct ItLpQueue xItLpQueue; extern struct ItLpQueue xItLpQueue;
extern struct ItVpdAreas itVpdAreas; extern struct ItVpdAreas itVpdAreas;
extern u64 xMsVpd[]; extern u64 xMsVpd[];
extern struct msChunks msChunks; extern struct msChunks msChunks;
#endif /* _LPARDATA_H */ #endif /* _LPARDATA_H */
/* /*
* LparMap.h * LparMap.h
* Copyright (C) 2001 Mike Corrigan IBM Corporation * Copyright (C) 2001 Mike Corrigan IBM Corporation
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
...@@ -21,13 +21,14 @@ ...@@ -21,13 +21,14 @@
#include <asm/types.h> #include <asm/types.h>
/* The iSeries hypervisor will set up mapping for one or more /*
* The iSeries hypervisor will set up mapping for one or more
* ESID/VSID pairs (in SLB/segment registers) and will set up * ESID/VSID pairs (in SLB/segment registers) and will set up
* mappings of one or more ranges of pages to VAs. * mappings of one or more ranges of pages to VAs.
* We will have the hypervisor set up the ESID->VSID mapping * We will have the hypervisor set up the ESID->VSID mapping
* for the four kernel segments (C-F). With shared processors, * for the four kernel segments (C-F). With shared processors,
* the hypervisor will clear all segment registers and reload * the hypervisor will clear all segment registers and reload
* these four whenever the processor is switched from one * these four whenever the processor is switched from one
* partition to another. * partition to another.
*/ */
...@@ -38,30 +39,29 @@ ...@@ -38,30 +39,29 @@
* need to be located within the load area (if the total partition size * need to be located within the load area (if the total partition size
* is 64 MB), but cannot be mapped. Typically, this should specify * is 64 MB), but cannot be mapped. Typically, this should specify
* to map half (32 MB) of the load area. * to map half (32 MB) of the load area.
* *
* The hypervisor will set up page table entries for the number of * The hypervisor will set up page table entries for the number of
* pages specified. * pages specified.
* *
* In 32-bit mode, the hypervisor will load all four of the * In 32-bit mode, the hypervisor will load all four of the
* segment registers (identified by the low-order four bits of the * segment registers (identified by the low-order four bits of the
* Esid field. In 64-bit mode, the hypervisor will load one SLB * Esid field. In 64-bit mode, the hypervisor will load one SLB
* entry to map the Esid to the Vsid. * entry to map the Esid to the Vsid.
*/ */
// Hypervisor initially maps 32MB of the load area /* Hypervisor initially maps 32MB of the load area */
#define HvPagesToMap 8192 #define HvPagesToMap 8192
struct LparMap struct LparMap {
{ u64 xNumberEsids; // Number of ESID/VSID pairs (1)
u64 xNumberEsids; // Number of ESID/VSID pairs (1) u64 xNumberRanges; // Number of VA ranges to map (1)
u64 xNumberRanges; // Number of VA ranges to map (1) u64 xSegmentTableOffs; // Page number within load area of seg table (0)
u64 xSegmentTableOffs; // Page number within load area of seg table (0) u64 xRsvd[5];
u64 xRsvd[5]; // Reserved (0) u64 xKernelEsid; // Esid used to map kernel load (0x0C00000000)
u64 xKernelEsid; // Esid used to map kernel load (0x0C00000000) u64 xKernelVsid; // Vsid used to map kernel load (0x0C00000000)
u64 xKernelVsid; // Vsid used to map kernel load (0x0C00000000) u64 xPages; // Number of pages to be mapped (8192)
u64 xPages; // Number of pages to be mapped (8192) u64 xOffset; // Offset from start of load area (0)
u64 xOffset; // Offset from start of load area (0) u64 xVPN; // Virtual Page Number (0x000C000000000000)
u64 xVPN; // Virtual Page Number (0x000C000000000000)
}; };
#endif /* _LPARMAP_H */ #endif /* _LPARMAP_H */
#ifndef __XMPCILPEVENT_H__ #ifndef __XMPCILPEVENT_H__
#define __XMPCILPEVENT_H__ #define __XMPCILPEVENT_H__
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
...@@ -10,7 +8,6 @@ extern "C" { ...@@ -10,7 +8,6 @@ extern "C" {
int XmPciLpEvent_init(void); int XmPciLpEvent_init(void);
void ppc_irq_dispatch_handler(struct pt_regs *regs, int irq); void ppc_irq_dispatch_handler(struct pt_regs *regs, int irq);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
......
...@@ -5,32 +5,33 @@ ...@@ -5,32 +5,33 @@
#ifdef CONFIG_PPC_ISERIES #ifdef CONFIG_PPC_ISERIES
#include <linux/types.h> #include <linux/types.h>
/************************************************************************/ /*
/* File iSeries_io.h created by Allan Trautman on Thu Dec 28 2000. */ * File iSeries_io.h created by Allan Trautman on Thu Dec 28 2000.
/************************************************************************/ *
/* Remaps the io.h for the iSeries Io */ * Remaps the io.h for the iSeries Io
/* Copyright (C) 20yy Allan H Trautman, IBM Corporation */ * Copyright (C) 2000 Allan H Trautman, IBM Corporation
/* */ *
/* This program is free software; you can redistribute it and/or modify */ * 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 */ * it under the terms of the GNU General Public License as published by
/* the Free Software Foundation; either version 2 of the License, or */ * the Free Software Foundation; either version 2 of the License, or
/* (at your option) any later version. */ * (at your option) any later version.
/* */ *
/* This program is distributed in the hope that it will be useful, */ * This program is distributed in the hope that it will be useful,
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ * but WITHOUT ANY WARRANTY; without even the implied warranty of
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
/* GNU General Public License for more details. */ * GNU General Public License for more details.
/* */ *
/* You should have received a copy of the GNU General Public License */ * You should have received a copy of the GNU General Public License
/* along with this program; if not, write to the: */ * along with this program; if not, write to the:
/* Free Software Foundation, Inc., */ * Free Software Foundation, Inc.,
/* 59 Temple Place, Suite 330, */ * 59 Temple Place, Suite 330,
/* Boston, MA 02111-1307 USA */ * Boston, MA 02111-1307 USA
/************************************************************************/ *
/* Change Activity: */ * Change Activity:
/* Created December 28, 2000 */ * Created December 28, 2000
/* End Change Activity */ * End Change Activity
/************************************************************************/ */
extern u8 iSeries_Read_Byte(const volatile void __iomem * IoAddress); extern u8 iSeries_Read_Byte(const volatile void __iomem * IoAddress);
extern u16 iSeries_Read_Word(const volatile void __iomem * IoAddress); extern u16 iSeries_Read_Word(const volatile void __iomem * IoAddress);
extern u32 iSeries_Read_Long(const volatile void __iomem * IoAddress); extern u32 iSeries_Read_Long(const volatile void __iomem * IoAddress);
...@@ -39,8 +40,10 @@ extern void iSeries_Write_Word(u16 IoData, volatile void __iomem * IoAddress); ...@@ -39,8 +40,10 @@ extern void iSeries_Write_Word(u16 IoData, volatile void __iomem * IoAddress);
extern void iSeries_Write_Long(u32 IoData, volatile void __iomem * IoAddress); extern void iSeries_Write_Long(u32 IoData, volatile void __iomem * IoAddress);
extern void iSeries_memset_io(volatile void __iomem *dest, char x, size_t n); extern void iSeries_memset_io(volatile void __iomem *dest, char x, size_t n);
extern void iSeries_memcpy_toio(volatile void __iomem *dest, void *source, size_t n); extern void iSeries_memcpy_toio(volatile void __iomem *dest, void *source,
extern void iSeries_memcpy_fromio(void *dest, const volatile void __iomem *source, size_t n); size_t n);
extern void iSeries_memcpy_fromio(void *dest,
const volatile void __iomem *source, size_t n);
#endif /* CONFIG_PPC_ISERIES */ #endif /* CONFIG_PPC_ISERIES */
#endif /* _ISERIES_IO_H */ #endif /* _ISERIES_IO_H */
#ifndef _ISERIES_64_PCI_H #ifndef _ISERIES_64_PCI_H
#define _ISERIES_64_PCI_H #define _ISERIES_64_PCI_H
/************************************************************************/ /*
/* File iSeries_pci.h created by Allan Trautman on Tue Feb 20, 2001. */ * File iSeries_pci.h created by Allan Trautman on Tue Feb 20, 2001.
/************************************************************************/ *
/* Define some useful macros for the iSeries pci routines. */ * Define some useful macros for the iSeries pci routines.
/* Copyright (C) 2001 Allan H Trautman, IBM Corporation */ * Copyright (C) 2001 Allan H Trautman, IBM Corporation
/* */ *
/* This program is free software; you can redistribute it and/or modify */ * 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 */ * it under the terms of the GNU General Public License as published by
/* the Free Software Foundation; either version 2 of the License, or */ * the Free Software Foundation; either version 2 of the License, or
/* (at your option) any later version. */ * (at your option) any later version.
/* */ *
/* This program is distributed in the hope that it will be useful, */ * This program is distributed in the hope that it will be useful,
/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ * but WITHOUT ANY WARRANTY; without even the implied warranty of
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
/* GNU General Public License for more details. */ * GNU General Public License for more details.
/* */ *
/* You should have received a copy of the GNU General Public License */ * You should have received a copy of the GNU General Public License
/* along with this program; if not, write to the: */ * along with this program; if not, write to the:
/* Free Software Foundation, Inc., */ * Free Software Foundation, Inc.,
/* 59 Temple Place, Suite 330, */ * 59 Temple Place, Suite 330,
/* Boston, MA 02111-1307 USA */ * Boston, MA 02111-1307 USA
/************************************************************************/ *
/* Change Activity: */ * Change Activity:
/* Created Feb 20, 2001 */ * Created Feb 20, 2001
/* Added device reset, March 22, 2001 */ * Added device reset, March 22, 2001
/* Ported to ppc64, May 25, 2001 */ * Ported to ppc64, May 25, 2001
/* End Change Activity */ * End Change Activity
/************************************************************************/ */
#include <asm/iSeries/HvCallPci.h> #include <asm/iSeries/HvCallPci.h>
#include <asm/abs_addr.h> #include <asm/abs_addr.h>
struct pci_dev; /* For Forward Reference */ struct pci_dev; /* For Forward Reference */
struct iSeries_Device_Node; struct iSeries_Device_Node;
/************************************************************************/ /*
/* Gets iSeries Bus, SubBus, DevFn using iSeries_Device_Node structure */ * Gets iSeries Bus, SubBus, DevFn using iSeries_Device_Node structure
/************************************************************************/ */
#define ISERIES_BUS(DevPtr) DevPtr->DsaAddr.Dsa.busNumber #define ISERIES_BUS(DevPtr) DevPtr->DsaAddr.Dsa.busNumber
#define ISERIES_SUBBUS(DevPtr) DevPtr->DsaAddr.Dsa.subBusNumber #define ISERIES_SUBBUS(DevPtr) DevPtr->DsaAddr.Dsa.subBusNumber
#define ISERIES_DEVICE(DevPtr) DevPtr->DsaAddr.Dsa.deviceId #define ISERIES_DEVICE(DevPtr) DevPtr->DsaAddr.Dsa.deviceId
#define ISERIES_DSA(DevPtr) DevPtr->DsaAddr.DsaAddr #define ISERIES_DSA(DevPtr) DevPtr->DsaAddr.DsaAddr
#define ISERIES_DEVFUN(DevPtr) DevPtr->DevFn #define ISERIES_DEVFUN(DevPtr) DevPtr->DevFn
#define ISERIES_DEVNODE(PciDev) ((struct iSeries_Device_Node*)PciDev->sysdata) #define ISERIES_DEVNODE(PciDev) ((struct iSeries_Device_Node*)PciDev->sysdata)
#define EADsMaxAgents 7 #define EADsMaxAgents 7
/************************************************************************/ /*
/* Decodes Linux DevFn to iSeries DevFn, bridge device, or function. */ * Decodes Linux DevFn to iSeries DevFn, bridge device, or function.
/* For Linux, see PCI_SLOT and PCI_FUNC in include/linux/pci.h */ * For Linux, see PCI_SLOT and PCI_FUNC in include/linux/pci.h
/************************************************************************/ */
#define ISERIES_PCI_AGENTID(idsel,func) ((idsel & 0x0F) << 4) | (func & 0x07) #define ISERIES_PCI_AGENTID(idsel, func) \
#define ISERIES_ENCODE_DEVICE(agentid) ((0x10) | ((agentid&0x20)>>2) | (agentid&07)) ((idsel & 0x0F) << 4) | (func & 0x07)
#define ISERIES_ENCODE_DEVICE(agentid) \
((0x10) | ((agentid & 0x20) >> 2) | (agentid & 0x07))
#define ISERIES_GET_DEVICE_FROM_SUBBUS(subbus) ((subbus >> 5) & 0x7) #define ISERIES_GET_DEVICE_FROM_SUBBUS(subbus) ((subbus >> 5) & 0x7)
#define ISERIES_GET_FUNCTION_FROM_SUBBUS(subbus) ((subbus >> 2) & 0x7) #define ISERIES_GET_FUNCTION_FROM_SUBBUS(subbus) ((subbus >> 2) & 0x7)
/* /*
* N.B. the ISERIES_DECODE_* macros are not used anywhere, and I think * N.B. the ISERIES_DECODE_* macros are not used anywhere, and I think
* the 0x71 (at least) must be wrong - 0x78 maybe? -- paulus. * the 0x71 (at least) must be wrong - 0x78 maybe? -- paulus.
*/ */
#define ISERIES_DECODE_DEVFN(linuxdevfn) (((linuxdevfn & 0x71) << 1) | (linuxdevfn & 0x07)) #define ISERIES_DECODE_DEVFN(linuxdevfn) \
#define ISERIES_DECODE_DEVICE(linuxdevfn) (((linuxdevfn & 0x38) >> 3) |(((linuxdevfn & 0x40) >> 2) + 0x10)) (((linuxdevfn & 0x71) << 1) | (linuxdevfn & 0x07))
#define ISERIES_DECODE_FUNCTION(linuxdevfn) (linuxdevfn & 0x07) #define ISERIES_DECODE_DEVICE(linuxdevfn) \
(((linuxdevfn & 0x38) >> 3) | (((linuxdevfn & 0x40) >> 2) + 0x10))
/************************************************************************/ #define ISERIES_DECODE_FUNCTION(linuxdevfn) \
/* Converts Virtual Address to Real Address for Hypervisor calls */ (linuxdevfn & 0x07)
/************************************************************************/
#define ISERIES_HV_ADDR(virtaddr) (0x8000000000000000 | virt_to_abs(virtaddr)) /*
* Converts Virtual Address to Real Address for Hypervisor calls
/************************************************************************/ */
/* iSeries Device Information */ #define ISERIES_HV_ADDR(virtaddr) \
/************************************************************************/ (0x8000000000000000 | virt_to_abs(virtaddr))
/*
* iSeries Device Information
*/
struct iSeries_Device_Node { struct iSeries_Device_Node {
struct list_head Device_List; struct list_head Device_List;
struct pci_dev* PciDev; /* Pointer to pci_dev structure*/ struct pci_dev *PciDev;
union HvDsaMap DsaAddr; /* Direct Select Address */ union HvDsaMap DsaAddr; /* Direct Select Address */
/* busNumber,subBusNumber, */ /* busNumber, subBusNumber, */
/* deviceId, barNumber */ /* deviceId, barNumber */
HvAgentId AgentId; /* Hypervisor DevFn */ HvAgentId AgentId; /* Hypervisor DevFn */
int DevFn; /* Linux devfn */ int DevFn; /* Linux devfn */
int BarOffset; int BarOffset;
int Irq; /* Assigned IRQ */ int Irq; /* Assigned IRQ */
int ReturnCode; /* Return Code Holder */ int ReturnCode; /* Return Code Holder */
int IoRetry; /* Current Retry Count */ int IoRetry; /* Current Retry Count */
int Flags; /* Possible flags(disable/bist)*/ int Flags; /* Possible flags(disable/bist)*/
u16 Vendor; /* Vendor ID */ u16 Vendor; /* Vendor ID */
u8 LogicalSlot; /* Hv Slot Index for Tces */ u8 LogicalSlot; /* Hv Slot Index for Tces */
struct iommu_table* iommu_table;/* Device TCE Table */ struct iommu_table *iommu_table;/* Device TCE Table */
u8 PhbId; /* Phb Card is on. */ u8 PhbId; /* Phb Card is on. */
u16 Board; /* Board Number */ u16 Board; /* Board Number */
u8 FrameId; /* iSeries spcn Frame Id */ u8 FrameId; /* iSeries spcn Frame Id */
char CardLocation[4];/* Char format of planar vpd */ char CardLocation[4];/* Char format of planar vpd */
char Location[20]; /* Frame 1, Card C10 */ char Location[20]; /* Frame 1, Card C10 */
}; };
/************************************************************************/ extern int iSeries_Device_Information(struct pci_dev*, char*, int);
/* Functions */ extern void iSeries_Get_Location_Code(struct iSeries_Device_Node*);
/************************************************************************/ extern int iSeries_Device_ToggleReset(struct pci_dev* PciDev,
int AssertTime, int DelayTime);
extern int iSeries_Device_Information(struct pci_dev*,char*, int);
extern void iSeries_Get_Location_Code(struct iSeries_Device_Node*);
extern int iSeries_Device_ToggleReset(struct pci_dev* PciDev, int AssertTime, int DelayTime);
#endif /* _ISERIES_64_PCI_H */ #endif /* _ISERIES_64_PCI_H */
...@@ -9,17 +9,16 @@ ...@@ -9,17 +9,16 @@
* all partitions in the iSeries. It also provides miscellaneous low-level * all partitions in the iSeries. It also provides miscellaneous low-level
* machine facility type operations. * machine facility type operations.
* *
*
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
......
...@@ -8,32 +8,32 @@ ...@@ -8,32 +8,32 @@
* Colin Devilbiss <devilbis@us.ibm.com> * Colin Devilbiss <devilbis@us.ibm.com>
* *
* (C) Copyright 2000 IBM Corporation * (C) Copyright 2000 IBM Corporation
* *
* This header file is used by the iSeries virtual I/O device * This header file is used by the iSeries virtual I/O device
* drivers. It defines the interfaces to the common functions * drivers. It defines the interfaces to the common functions
* (implemented in drivers/char/viopath.h) as well as defining * (implemented in drivers/char/viopath.h) as well as defining
* common functions and structures. Currently (at the time I * common functions and structures. Currently (at the time I
* wrote this comment) the iSeries virtual I/O device drivers * wrote this comment) the iSeries virtual I/O device drivers
* that use this are * that use this are
* drivers/block/viodasd.c * drivers/block/viodasd.c
* drivers/char/viocons.c * drivers/char/viocons.c
* drivers/char/viotape.c * drivers/char/viotape.c
* drivers/cdrom/viocd.c * drivers/cdrom/viocd.c
* *
* The iSeries virtual ethernet support (veth.c) uses a whole * The iSeries virtual ethernet support (veth.c) uses a whole
* different set of functions. * different set of functions.
* *
* This program is free software; you can redistribute it and/or * This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as * modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the * published by the Free Software Foundation; either version 2 of the
* License, or (at your option) anyu later version. * License, or (at your option) anyu later version.
* *
* This program is distributed in the hope that it will be useful, but * This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of * WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details. * General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation, * along with this program; if not, write to the Free Software Foundation,
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* *
...@@ -44,14 +44,16 @@ ...@@ -44,14 +44,16 @@
#include <asm/iSeries/HvTypes.h> #include <asm/iSeries/HvTypes.h>
#include <asm/iSeries/HvLpEvent.h> #include <asm/iSeries/HvLpEvent.h>
/* iSeries virtual I/O events use the subtype field in /*
* iSeries virtual I/O events use the subtype field in
* HvLpEvent to figure out what kind of vio event is coming * HvLpEvent to figure out what kind of vio event is coming
* in. We use a table to route these, and this defines * in. We use a table to route these, and this defines
* the maximum number of distinct subtypes * the maximum number of distinct subtypes
*/ */
#define VIO_MAX_SUBTYPES 8 #define VIO_MAX_SUBTYPES 8
/* Each subtype can register a handler to process their events. /*
* Each subtype can register a handler to process their events.
* The handler must have this interface. * The handler must have this interface.
*/ */
typedef void (vio_event_handler_t) (struct HvLpEvent * event); typedef void (vio_event_handler_t) (struct HvLpEvent * event);
...@@ -70,13 +72,13 @@ void vio_free_event_buffer(int subtype, void *buffer); ...@@ -70,13 +72,13 @@ void vio_free_event_buffer(int subtype, void *buffer);
extern HvLpIndex viopath_hostLp; extern HvLpIndex viopath_hostLp;
extern HvLpIndex viopath_ourLp; extern HvLpIndex viopath_ourLp;
#define VIOCHAR_MAX_DATA 200 #define VIOCHAR_MAX_DATA 200
#define VIOMAJOR_SUBTYPE_MASK 0xff00 #define VIOMAJOR_SUBTYPE_MASK 0xff00
#define VIOMINOR_SUBTYPE_MASK 0x00ff #define VIOMINOR_SUBTYPE_MASK 0x00ff
#define VIOMAJOR_SUBTYPE_SHIFT 8 #define VIOMAJOR_SUBTYPE_SHIFT 8
#define VIOVERSION 0x0101 #define VIOVERSION 0x0101
/* /*
* This is the general structure for VIO errors; each module should have * This is the general structure for VIO errors; each module should have
...@@ -89,8 +91,8 @@ struct vio_error_entry { ...@@ -89,8 +91,8 @@ struct vio_error_entry {
int errno; int errno;
const char *msg; const char *msg;
}; };
const struct vio_error_entry *vio_lookup_rc(const struct vio_error_entry extern const struct vio_error_entry *vio_lookup_rc(
*local_table, u16 rc); const struct vio_error_entry *local_table, u16 rc);
enum viosubtypes { enum viosubtypes {
viomajorsubtype_monitor = 0x0100, viomajorsubtype_monitor = 0x0100,
...@@ -102,7 +104,6 @@ enum viosubtypes { ...@@ -102,7 +104,6 @@ enum viosubtypes {
viomajorsubtype_scsi = 0x0700 viomajorsubtype_scsi = 0x0700
}; };
enum vioconfigsubtype { enum vioconfigsubtype {
vioconfigget = 0x0001, vioconfigget = 0x0001,
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment