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