summaryrefslogtreecommitdiff
path: root/sys/dev/ic/slireg.h
blob: 1ee71ecdefa344bb574096eac48f8ff20d1bf37a (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
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/*	$OpenBSD: slireg.h,v 1.4 2007/05/19 10:24:18 dlg Exp $ */

/*
 * Copyright (c) 2007 David Gwynne <dlg@openbsd.org>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

/*
 * PCI BARs
 */
#define SLI_PCI_BAR_SLIM		0x10
#define SLI_PCI_BAR_REGISTER		0x18
#define SLI_PCI_BAR_BIU			0x20
#define SLI_PCI_BAR_REGISTER_IO		0x24

/*
 * Registers in the REGISTER BAR
 */
#define SLI_REG_HA		0x0 /* Host Attention */
#define  SLI_REG_HA_ERATT		(1<<31)
#define  SLI_REG_HA_MBATT		(1<<30)
#define  SLI_REG_HA_LATT		(1<<29)
#define  SLI_REG_HA_R3ATT		(1<<15)
#define  SLI_REG_HA_R3CE_RSP		(1<<13)
#define  SLI_REG_HA_R3RE_REQ		(1<<12)
#define  SLI_REG_HA_R2ATT		(1<<11)
#define  SLI_REG_HA_R2CE_RSP		(1<<9)
#define  SLI_REG_HA_R2RE_REQ		(1<<8)
#define  SLI_REG_HA_R1ATT		(1<<7)
#define  SLI_REG_HA_R1CE_RSP		(1<<5)
#define  SLI_REG_HA_R1RE_REQ		(1<<4)
#define  SLI_REG_HA_R0ATT		(1<<3)
#define  SLI_REG_HA_R0CE_RSP		(1<<1)
#define  SLI_REG_HA_R0RE_REQ		(1<<0)
#define SLI_FMT_HA		"\020" "\040ERATT" "\037MBATT" "\036LATT" \
				    "\020R3ATT" "\016R3CE_RSP" "\015R3RE_REQ" \
				    "\014R3ATT" "\012R3CE_RSP" "\011R3RE_REQ" \
				    "\010R3ATT" "\006R3CE_RSP" "\005R3RE_REQ" \
				    "\040R3ATT" "\002R3CE_RSP" "\001R3RE_REQ"
#define SLI_REG_CA		0x4 /* Chip Attention */
#define  SLI_REG_CA_MBATT		(1<<30)
#define  SLI_REG_CA_R3ATT		(1<<15)
#define  SLI_REG_CA_R3RE_RSP		(1<<13)
#define  SLI_REG_CA_R3CE_REQ		(1<<12)
#define  SLI_REG_CA_R2ATT		(1<<11)
#define  SLI_REG_CA_R2RE_RSP		(1<<9)
#define  SLI_REG_CA_R2CE_REQ		(1<<8)
#define  SLI_REG_CA_R1ATT		(1<<7)
#define  SLI_REG_CA_R1RE_RSP		(1<<5)
#define  SLI_REG_CA_R1CE_REQ		(1<<4)
#define  SLI_REG_CA_R0ATT		(1<<3)
#define  SLI_REG_CA_R0RE_RSP		(1<<1)
#define  SLI_REG_CA_R0CE_REQ		(1<<0)
#define SLI_FMT_CA		"\020" "\037MBATT" \
				    "\020R3ATT" "\016R3RE_RSP" "\015R3CE_REQ" \
				    "\014R3ATT" "\012R3RE_RSP" "\011R3CE_REQ" \
				    "\010R3ATT" "\006R3RE_RSP" "\005R3CE_REQ" \
				    "\040R3ATT" "\002R3RE_RSP" "\001R3CE_REQ"
#define SLI_REG_HS		0x8 /* Host Status */
#define  SLI_REG_HS_FFER_MASK		(0xff000000)
#define  SLI_REG_HS_FF1			(1<<31)
#define  SLI_REG_HS_FF2			(1<<30)
#define  SLI_REG_HS_FF3			(1<<29)
#define  SLI_REG_HS_FF4			(1<<28)
#define  SLI_REG_HS_FF5			(1<<27)
#define  SLI_REG_HS_FF6			(1<<26)
#define  SLI_REG_HS_FF7			(1<<25)
#define  SLI_REG_HS_FF8			(1<<24)
#define  SLI_REG_HS_FFRDY		(1<<23)
#define  SLI_REG_HS_MBRDY		(1<<22)
#define SLI_FMT_HS		"\020" "\040FF1" "\037FF2" "\036FF3" \
				    "\035FF4" "\034FF5" "\033FF6" "\032FF7" \
				    "\031FF8" "\030FFRDY" "\027MBRDY"
#define SLI_REG_HC		0xc /* Host Control */
#define  SLI_REG_HC_ERINT		(1<<31)
#define  SLI_REG_HC_LAINT		(1<<29)
#define  SLI_REG_HC_INITFF		(1<<27)
#define  SLI_REG_HC_INITMB		(1<<26)
#define  SLI_REG_HC_INITHBI		(1<<25)
#define  SLI_REG_HC_R3INT		(1<<4)
#define  SLI_REG_HC_R2INT		(1<<3)
#define  SLI_REG_HC_R1INT		(1<<2)
#define  SLI_REG_HC_R0INT		(1<<1)
#define  SLI_REG_HC_MBINT		(1<<0)
#define SLI_FMT_HC		"\020" "\040ERINT" "\036LAINT" "\035INITFF" \
				    "\034INITMB" "\033INITHBI" "\005R3INT" \
				    "\004R2INT" "\003R1INT" "\002R0INT" \
				    "\001MBINT"

/*
 * Mailbox commands
 */
#define SLI_CMD_SHUTDOWN	0x00
#define SLI_CMD_LOAD_SM		0x01
#define SLI_CMD_READ_NV		0x02
#define SLI_CMD_WRITE_NV	0x03
#define SLI_CMD_RUN_BIU_DIAG	0x04
#define SLI_CMD_INIT_LINK	0x05
#define SLI_CMD_DOWN_LINK	0x06
#define SLI_CMD_CONFIG_LINK	0x07
#define SLI_CMD_CONFIG_RING	0x09
#define SLI_CMD_RESET_RING	0x0a
#define SLI_CMD_READ_CONFIG	0x0b
#define SLI_CMD_READ_RCONFIG	0x0c
#define SLI_CMD_READ_SPARM	0x0d
#define SLI_CMD_READ_STATUS	0x0e
#define SLI_CMD_READ_RPI	0x0f
#define SLI_CMD_READ_XRI	0x10
#define SLI_CMD_READ_REV	0x11
#define SLI_CMD_READ_LNK_STAT	0x12
#define SLI_CMD_REG_LOGIN	0x13
#define SLI_CMD_UNREG_LOGIN	0x14
#define SLI_CMD_READ_LA		0x15
#define SLI_CMD_CLEAR_LA	0x16
#define SLI_CMD_DUMP_MEMORY	0x17
#define SLI_CMD_DUMP_CONTEXT	0x18
#define SLI_CMD_RUN_DIAGS	0x19
#define SLI_CMD_RESTART		0x1a
#define SLI_CMD_UPDATE_CFG	0x1b
#define SLI_CMD_DOWN_LOAD	0x1c
#define SLI_CMD_DEL_LD_ENTRY	0x1d
#define SLI_CMD_RUN_PROGRAM	0x1e
#define SLI_CMD_SET_MASK	0x20
#define SLI_CMD_SEL_SLIM	0x21
#define SLI_CMD_UNREG_D_ID	0x23
#define SLI_CMD_KILL_BOARD	0x24
#define SLI_CMD_CONFIG_FARP	0x25
#define SLI_CMD_LOAD_AREA	0x81
#define SLI_CMD_RUN_BIU_DIAG64	0x84
#define SLI_CMD_CONFIG_PORT	0x88
#define SLI_CMD_READ_SPARM64	0x8d
#define SLI_CMD_READ_RPI64	0x8f
#define SLI_CMD_REG_LOGIN64	0x93
#define SLI_CMD_READ_LA64	0x95
#define SLI_CMD_FLAGS_WR_ULA	0x98
#define SLI_CMD_FLSET_DEBUG	0x99
#define SLI_CMD_LOAD_EXP_ROM	0x9c
#define SLI_CMD_MAX_CMDS	0x9d