1 /*
2  * HvReleaseData.h
3  * Copyright (C) 2001  Mike Corrigan IBM Corporation
4  *
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.
9  *
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.
14  *
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
18  */
19 
20 //=============================================================================
21 //
22 //   This control block contains the critical information about the
23 //   release so that it can be changed in the future (ie, the virtual
24 //   address of the OS's NACA).
25 //
26 //-----------------------------------------------------------------------------
27 // Standard Includes
28 //-----------------------------------------------------------------------------
29 #ifndef	_PPC64_TYPES_H
30 #include	<asm/types.h>
31 #endif
32 
33 #ifndef _HVRELEASEDATA_H
34 #define _HVRELEASEDATA_H
35 
36 //=============================================================================
37 //
38 //	When we IPL a secondary partition, we will check if if the
39 //	secondary xMinPlicVrmIndex > the primary xVrmIndex.
40 //	If it is then this tells PLIC that this secondary is not
41 //	supported running on this "old" of a level of PLIC.
42 //
43 //	Likewise, we will compare the primary xMinSlicVrmIndex to
44 //	the secondary xVrmIndex.
45 //	If the primary xMinSlicVrmDelta > secondary xVrmDelta then we
46 //	know that this PLIC does not support running an OS "that old".
47 //
48 //=============================================================================
49 
50 struct	HvReleaseData
51 {
52 	u32	xDesc;			// Descriptor	"HvRD" ebcdic	x00-x03
53 	u16	xSize;			// Size of this control block	x04-x05
54 	u16	xVpdAreasPtrOffset;	// Offset in NACA of ItVpdAreas	x06-x07
55 	struct  naca_struct * xSlicNacaAddr; // Virt addr of SLIC NACA  x08-x0F
56 	u32	xMsNucDataOffset;	// Offset of Linux Mapping Data x10-x13
57 	u32	xRsvd1;			// Reserved			x14-x17
58 	u16	xTagsMode:1;		// 0 == tags active, 1 == tags inactive
59 	u16	xAddressSize:1;		// 0 == 64-bit, 1 == 32-bit
60 	u16	xNoSharedProcs:1;	// 0 == shared procs, 1 == no shared
61 	u16	xNoHMT:1;		// 0 == allow HMT, 1 == no HMT
62 	u16	xRsvd2:12;		// Reserved			x18-x19
63 	u16	xVrmIndex;		// VRM Index of OS image	x1A-x1B
64 	u16	xMinSupportedPlicVrmIndex;// Min PLIC level  (soft)	x1C-x1D
65 	u16	xMinCompatablePlicVrmIndex;// Min PLIC levelP (hard)	x1E-x1F
66 	char	xVrmName[12];		// Displayable name  		x20-x2B
67 	char	xRsvd3[20];		// Reserved			x2C-x3F
68 };
69 
70 #endif // _HVRELEASEDATA_H
71