summaryrefslogtreecommitdiff
path: root/usr/src/lib/storage/liba5k/common/hdrs/rom.h
blob: 0372a142d1caeb5e070b35c191b52601b1a9c98d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
/*
 * CDDL HEADER START
 *
 * The contents of this file are subject to the terms of the
 * Common Development and Distribution License (the "License").
 * You may not use this file except in compliance with the License.
 *
 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
 * or http://www.opensolaris.org/os/licensing.
 * See the License for the specific language governing permissions
 * and limitations under the License.
 *
 * When distributing Covered Code, include this CDDL HEADER in each
 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
 * If applicable, add the following below this CDDL HEADER, with the
 * fields enclosed by brackets "[]" replaced with your own identifying
 * information: Portions Copyright [yyyy] [name of copyright owner]
 *
 * CDDL HEADER END
 */
/*
 * Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 * Use is subject to license terms.
 */

/*
 * PHOTON CONFIGURATION MANAGER
 * Downloadable code definitions
 */

#ifndef	_ROM_H
#define	_ROM_H


/*
 * Include any headers you depend on.
 */

/*
 * I18N message number ranges
 *  This file: 17500 - 17999
 *  Shared common messages: 1 - 1999
 */

#ifdef	__cplusplus
extern "C" {
#endif


/*
 * The PLUTO controller has 4 proms (0-3).  Prom 1-3 are writeable and are
 * soldered to the board while prom 0 is not writeable but socketed. The
 * following items are placed in the PLUTO prom set:
 *	- POST0		-Power On Self Test code.  This code goes in
 *			 pluto_prom0 and may not be modified in the field.
 *			 It contains serial port downloading code.
 *	- FUNC		-Pluto Functional code (SPARC)
 *	- SOC		-SOC microcode
 *	- ISP		-ISP microcode
 *	- OBP		-Open Boot Prom code
 *	- Date Code	-date/time of prom creation.
 *	- WWN		- World Wide Name
 *
 *
 * This utility creates the writeable prom images for PLUTO.  Three prom images
 * are created: pluto_prom1, pluto_prom2, pluto_prom3.
 *
 * The following defines the layout of the 4 proms on the PLUTO controller:
 *
 * prom		offset		image
 * -----------------------------------
 * prom_0:
 *		0		POST
 * prom_1:
 *		0		FUNC
 * prom_2:
 *		0		FUNC cont'd
 * prom_3:
 *		PROM_MAGIC_OFF  PROM_MAGIC
 *		DATE_OFF	DATE_CODE
 *		WWN_OFF		WWN
 *		SOC_OFF 	SOC
 *		ISP_OFF		ISP
 *		OBP_OFF		OBP
 */
#define	PROM_MAGIC	0x2468
#define	PROMSIZE	0x00040000	/* 256K bytes each prom */
#define	EEPROM_SECTSIZ	0x100


#define	IBEEPROM	1
#define	MBEEPROM	2

#define	FW_DL_INFO	0x2d0
#define	FPM_DL_INFO	0x31000

struct dl_info {
	ushort_t	unused;
	ushort_t	magic;
	ulong_t		cksum;
	time_t		datecode;
};

#define	WWN_SIZE	8
#define	TEXT_SZ		64*1024
#define	IDATA_SZ	32*1024
#define	FPM_SZ		60*1024

/* offsets in prom */
#define	TEXT_OFFSET	0
#define	IDATA_OFFSET	0x10000
#define	FPM_OFFSET	0x31000


#ifdef	__cplusplus
}
#endif

#endif	/* _ROM_H */