2 * This file and its contents are supplied under the terms of the
3 * Common Development and Distribution License ("CDDL"), version 1.0.
4 * You may only use this file in accordance with the terms of version
7 * A full copy of the text of the CDDL should have accompanied this
8 * source. A copy of the CDDL is also available via the Internet at
9 * http://www.illumos.org/license/CDDL.
13 * Copyright (C) 2013 Hewlett-Packard Development Company, L.P.
18 * In this file, we define the static array of board definitions.
19 * the individual entries are in cpqary3_bd_defs.h, which is
20 * auto-generated from the controllers file by sacdf using
21 * the cpqary3_bd_defs.h.sacdf template.
25 #include "cpqary3_bd.h"
27 static cpqary3_bd_t cpqary3_bds
[] = {
29 "Smart Array 5300 Controller",
33 OUTBOUND_LIST_5300_EXISTS
,
37 INTR_SIMPLE_LOCKUP_MASK
,
41 "Smart Array 5i Controller",
45 OUTBOUND_LIST_5I_EXISTS
,
49 INTR_SIMPLE_5I_LOCKUP_MASK
,
53 "Smart Array 532 Controller",
57 OUTBOUND_LIST_5I_EXISTS
,
61 INTR_SIMPLE_5I_LOCKUP_MASK
,
65 "Smart Array 5312 Controller",
69 OUTBOUND_LIST_5I_EXISTS
,
73 INTR_SIMPLE_5I_LOCKUP_MASK
,
77 "Smart Array 6i Controller",
81 OUTBOUND_LIST_5300_EXISTS
,
85 INTR_SIMPLE_LOCKUP_MASK
,
89 "Smart Array 641 Controller",
93 OUTBOUND_LIST_5300_EXISTS
,
97 INTR_SIMPLE_LOCKUP_MASK
,
101 "Smart Array 642 Controller",
105 OUTBOUND_LIST_5300_EXISTS
,
109 INTR_SIMPLE_LOCKUP_MASK
,
113 "Smart Array 6400 Controller",
117 OUTBOUND_LIST_5300_EXISTS
,
121 INTR_SIMPLE_LOCKUP_MASK
,
125 "Smart Array 6400 EM Controller",
129 OUTBOUND_LIST_5300_EXISTS
,
133 INTR_SIMPLE_LOCKUP_MASK
,
137 "Smart Array 6422 Controller",
141 OUTBOUND_LIST_5300_EXISTS
,
145 INTR_SIMPLE_LOCKUP_MASK
,
149 "Smart Array E200i Controller",
153 OUTBOUND_LIST_5300_EXISTS
,
161 "Smart Array E200 Controller",
165 OUTBOUND_LIST_5300_EXISTS
,
173 "Smart Array P800 Controller",
177 OUTBOUND_LIST_5300_EXISTS
,
181 INTR_PERF_LOCKUP_MASK
,
185 "Smart Array P600 Controller",
189 OUTBOUND_LIST_5300_EXISTS
,
193 INTR_PERF_LOCKUP_MASK
,
197 "Smart Array P400 Controller",
201 OUTBOUND_LIST_5300_EXISTS
,
205 INTR_PERF_LOCKUP_MASK
,
209 "Smart Array P400i Controller",
213 OUTBOUND_LIST_5300_EXISTS
,
217 INTR_PERF_LOCKUP_MASK
,
221 "Smart Array E500 Controller",
225 OUTBOUND_LIST_5300_EXISTS
,
229 INTR_PERF_LOCKUP_MASK
,
233 "Smart Array P700m Controller",
237 OUTBOUND_LIST_5300_EXISTS
,
241 INTR_PERF_LOCKUP_MASK
,
245 "Smart Array P212 Controller",
249 OUTBOUND_LIST_5300_EXISTS
,
257 "Smart Array P410 Controller",
261 OUTBOUND_LIST_5300_EXISTS
,
269 "Smart Array P410i Controller",
273 OUTBOUND_LIST_5300_EXISTS
,
281 "Smart Array P411 Controller",
285 OUTBOUND_LIST_5300_EXISTS
,
293 "Smart Array P812 Controller",
297 OUTBOUND_LIST_5300_EXISTS
,
305 "Smart Array P712m Controller",
309 OUTBOUND_LIST_5300_EXISTS
,
317 "Smart Array P711m Controller",
321 OUTBOUND_LIST_5300_EXISTS
,
329 "Smart Array P222 Controller",
333 OUTBOUND_LIST_5300_EXISTS
,
341 "Smart Array P420 Controller",
345 OUTBOUND_LIST_5300_EXISTS
,
353 "Smart Array P421 Controller",
357 OUTBOUND_LIST_5300_EXISTS
,
365 "Smart Array P822 Controller",
369 OUTBOUND_LIST_5300_EXISTS
,
377 "Smart Array P420i Controller",
381 OUTBOUND_LIST_5300_EXISTS
,
389 "Smart Array P220i Controller",
393 OUTBOUND_LIST_5300_EXISTS
,
401 "Smart Array P721m Controller",
405 OUTBOUND_LIST_5300_EXISTS
,
414 #define NBOARD_DEFS (sizeof (cpqary3_bds) / sizeof (cpqary3_bd_t))
417 cpqary3_bd_getbybid(uint32_t bid
)
419 uint16_t vid
= ((bid
>> 16) & 0xffff);
420 uint16_t sid
= (bid
& 0xffff);
423 /* search the array for a matching board */
424 for (i
= 0; i
< NBOARD_DEFS
; i
++) {
425 if ((vid
== cpqary3_bds
[i
].bd_pci_subvenid
) &&
426 (sid
== cpqary3_bds
[i
].bd_pci_subsysid
))
427 return (&(cpqary3_bds
[i
]));
430 /* board id not found */