xref: /onnv-gate/usr/src/lib/storage/liba5k/common/hdrs/rom.h (revision 7836:4e95154b5b7a)
1*7836SJohn.Forte@Sun.COM /*
2*7836SJohn.Forte@Sun.COM  * CDDL HEADER START
3*7836SJohn.Forte@Sun.COM  *
4*7836SJohn.Forte@Sun.COM  * The contents of this file are subject to the terms of the
5*7836SJohn.Forte@Sun.COM  * Common Development and Distribution License (the "License").
6*7836SJohn.Forte@Sun.COM  * You may not use this file except in compliance with the License.
7*7836SJohn.Forte@Sun.COM  *
8*7836SJohn.Forte@Sun.COM  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*7836SJohn.Forte@Sun.COM  * or http://www.opensolaris.org/os/licensing.
10*7836SJohn.Forte@Sun.COM  * See the License for the specific language governing permissions
11*7836SJohn.Forte@Sun.COM  * and limitations under the License.
12*7836SJohn.Forte@Sun.COM  *
13*7836SJohn.Forte@Sun.COM  * When distributing Covered Code, include this CDDL HEADER in each
14*7836SJohn.Forte@Sun.COM  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*7836SJohn.Forte@Sun.COM  * If applicable, add the following below this CDDL HEADER, with the
16*7836SJohn.Forte@Sun.COM  * fields enclosed by brackets "[]" replaced with your own identifying
17*7836SJohn.Forte@Sun.COM  * information: Portions Copyright [yyyy] [name of copyright owner]
18*7836SJohn.Forte@Sun.COM  *
19*7836SJohn.Forte@Sun.COM  * CDDL HEADER END
20*7836SJohn.Forte@Sun.COM  */
21*7836SJohn.Forte@Sun.COM /*
22*7836SJohn.Forte@Sun.COM  * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
23*7836SJohn.Forte@Sun.COM  * Use is subject to license terms.
24*7836SJohn.Forte@Sun.COM  */
25*7836SJohn.Forte@Sun.COM 
26*7836SJohn.Forte@Sun.COM /*
27*7836SJohn.Forte@Sun.COM  * PHOTON CONFIGURATION MANAGER
28*7836SJohn.Forte@Sun.COM  * Downloadable code definitions
29*7836SJohn.Forte@Sun.COM  */
30*7836SJohn.Forte@Sun.COM 
31*7836SJohn.Forte@Sun.COM #ifndef	_ROM_H
32*7836SJohn.Forte@Sun.COM #define	_ROM_H
33*7836SJohn.Forte@Sun.COM 
34*7836SJohn.Forte@Sun.COM 
35*7836SJohn.Forte@Sun.COM /*
36*7836SJohn.Forte@Sun.COM  * Include any headers you depend on.
37*7836SJohn.Forte@Sun.COM  */
38*7836SJohn.Forte@Sun.COM 
39*7836SJohn.Forte@Sun.COM /*
40*7836SJohn.Forte@Sun.COM  * I18N message number ranges
41*7836SJohn.Forte@Sun.COM  *  This file: 17500 - 17999
42*7836SJohn.Forte@Sun.COM  *  Shared common messages: 1 - 1999
43*7836SJohn.Forte@Sun.COM  */
44*7836SJohn.Forte@Sun.COM 
45*7836SJohn.Forte@Sun.COM #ifdef	__cplusplus
46*7836SJohn.Forte@Sun.COM extern "C" {
47*7836SJohn.Forte@Sun.COM #endif
48*7836SJohn.Forte@Sun.COM 
49*7836SJohn.Forte@Sun.COM 
50*7836SJohn.Forte@Sun.COM /*
51*7836SJohn.Forte@Sun.COM  * The PLUTO controller has 4 proms (0-3).  Prom 1-3 are writeable and are
52*7836SJohn.Forte@Sun.COM  * soldered to the board while prom 0 is not writeable but socketed. The
53*7836SJohn.Forte@Sun.COM  * following items are placed in the PLUTO prom set:
54*7836SJohn.Forte@Sun.COM  *	- POST0		-Power On Self Test code.  This code goes in
55*7836SJohn.Forte@Sun.COM  *			 pluto_prom0 and may not be modified in the field.
56*7836SJohn.Forte@Sun.COM  *			 It contains serial port downloading code.
57*7836SJohn.Forte@Sun.COM  *	- FUNC		-Pluto Functional code (SPARC)
58*7836SJohn.Forte@Sun.COM  *	- SOC		-SOC microcode
59*7836SJohn.Forte@Sun.COM  *	- ISP		-ISP microcode
60*7836SJohn.Forte@Sun.COM  *	- OBP		-Open Boot Prom code
61*7836SJohn.Forte@Sun.COM  *	- Date Code	-date/time of prom creation.
62*7836SJohn.Forte@Sun.COM  *	- WWN		- World Wide Name
63*7836SJohn.Forte@Sun.COM  *
64*7836SJohn.Forte@Sun.COM  *
65*7836SJohn.Forte@Sun.COM  * This utility creates the writeable prom images for PLUTO.  Three prom images
66*7836SJohn.Forte@Sun.COM  * are created: pluto_prom1, pluto_prom2, pluto_prom3.
67*7836SJohn.Forte@Sun.COM  *
68*7836SJohn.Forte@Sun.COM  * The following defines the layout of the 4 proms on the PLUTO controller:
69*7836SJohn.Forte@Sun.COM  *
70*7836SJohn.Forte@Sun.COM  * prom		offset		image
71*7836SJohn.Forte@Sun.COM  * -----------------------------------
72*7836SJohn.Forte@Sun.COM  * prom_0:
73*7836SJohn.Forte@Sun.COM  *		0		POST
74*7836SJohn.Forte@Sun.COM  * prom_1:
75*7836SJohn.Forte@Sun.COM  *		0		FUNC
76*7836SJohn.Forte@Sun.COM  * prom_2:
77*7836SJohn.Forte@Sun.COM  *		0		FUNC cont'd
78*7836SJohn.Forte@Sun.COM  * prom_3:
79*7836SJohn.Forte@Sun.COM  *		PROM_MAGIC_OFF  PROM_MAGIC
80*7836SJohn.Forte@Sun.COM  *		DATE_OFF	DATE_CODE
81*7836SJohn.Forte@Sun.COM  *		WWN_OFF		WWN
82*7836SJohn.Forte@Sun.COM  *		SOC_OFF 	SOC
83*7836SJohn.Forte@Sun.COM  *		ISP_OFF		ISP
84*7836SJohn.Forte@Sun.COM  *		OBP_OFF		OBP
85*7836SJohn.Forte@Sun.COM  */
86*7836SJohn.Forte@Sun.COM #define	PROM_MAGIC	0x2468
87*7836SJohn.Forte@Sun.COM #define	PROMSIZE	0x00040000	/* 256K bytes each prom */
88*7836SJohn.Forte@Sun.COM #define	EEPROM_SECTSIZ	0x100
89*7836SJohn.Forte@Sun.COM 
90*7836SJohn.Forte@Sun.COM 
91*7836SJohn.Forte@Sun.COM #define	IBEEPROM	1
92*7836SJohn.Forte@Sun.COM #define	MBEEPROM	2
93*7836SJohn.Forte@Sun.COM 
94*7836SJohn.Forte@Sun.COM #define	FW_DL_INFO	0x2d0
95*7836SJohn.Forte@Sun.COM #define	FPM_DL_INFO	0x31000
96*7836SJohn.Forte@Sun.COM 
97*7836SJohn.Forte@Sun.COM struct dl_info {
98*7836SJohn.Forte@Sun.COM 	ushort_t	unused;
99*7836SJohn.Forte@Sun.COM 	ushort_t	magic;
100*7836SJohn.Forte@Sun.COM 	ulong_t		cksum;
101*7836SJohn.Forte@Sun.COM 	time_t		datecode;
102*7836SJohn.Forte@Sun.COM };
103*7836SJohn.Forte@Sun.COM 
104*7836SJohn.Forte@Sun.COM #define	WWN_SIZE	8
105*7836SJohn.Forte@Sun.COM #define	TEXT_SZ		64*1024
106*7836SJohn.Forte@Sun.COM #define	IDATA_SZ	32*1024
107*7836SJohn.Forte@Sun.COM #define	FPM_SZ		60*1024
108*7836SJohn.Forte@Sun.COM 
109*7836SJohn.Forte@Sun.COM /* offsets in prom */
110*7836SJohn.Forte@Sun.COM #define	TEXT_OFFSET	0
111*7836SJohn.Forte@Sun.COM #define	IDATA_OFFSET	0x10000
112*7836SJohn.Forte@Sun.COM #define	FPM_OFFSET	0x31000
113*7836SJohn.Forte@Sun.COM 
114*7836SJohn.Forte@Sun.COM 
115*7836SJohn.Forte@Sun.COM #ifdef	__cplusplus
116*7836SJohn.Forte@Sun.COM }
117*7836SJohn.Forte@Sun.COM #endif
118*7836SJohn.Forte@Sun.COM 
119*7836SJohn.Forte@Sun.COM #endif	/* _ROM_H */
120