cpqary3_bd.c revision 80c94ecd7a524eb933a4bb221a9618b9dc490e76
/*
* This file and its contents are supplied under the terms of the
* Common Development and Distribution License ("CDDL"), version 1.0.
* You may only use this file in accordance with the terms of version
* 1.0 of the CDDL.
*
* A full copy of the text of the CDDL should have accompanied this
* source. A copy of the CDDL is also available via the Internet at
* http://www.illumos.org/license/CDDL.
*/
/*
* Copyright (C) 2013 Hewlett-Packard Development Company, L.P.
*/
/*
* Abstract:
* In this file, we define the static array of board definitions.
* the individual entries are in cpqary3_bd_defs.h, which is
* auto-generated from the controllers file by sacdf using
* the cpqary3_bd_defs.h.sacdf template.
*/
#include "cpqary3.h"
#include "cpqary3_bd.h"
static cpqary3_bd_t cpqary3_bds[] = {
{
"Smart Array 5300 Controller",
4,
0x0e11,
0x4070,
OUTBOUND_LIST_5300_EXISTS,
0,
0,
INTR_SIMPLE_MASK,
INTR_SIMPLE_LOCKUP_MASK,
0
},
{
"Smart Array 5i Controller",
8,
0x0e11,
0x4080,
OUTBOUND_LIST_5I_EXISTS,
0,
0,
INTR_SIMPLE_5I_MASK,
INTR_SIMPLE_5I_LOCKUP_MASK,
0
},
{
"Smart Array 532 Controller",
8,
0x0e11,
0x4082,
OUTBOUND_LIST_5I_EXISTS,
0,
0,
INTR_SIMPLE_5I_MASK,
INTR_SIMPLE_5I_LOCKUP_MASK,
0
},
{
"Smart Array 5312 Controller",
8,
0x0e11,
0x4083,
OUTBOUND_LIST_5I_EXISTS,
0,
0,
INTR_SIMPLE_5I_MASK,
INTR_SIMPLE_5I_LOCKUP_MASK,
0
},
{
"Smart Array 6i Controller",
8,
0x0e11,
0x4091,
OUTBOUND_LIST_5300_EXISTS,
0,
0,
INTR_SIMPLE_MASK,
INTR_SIMPLE_LOCKUP_MASK,
0
},
{
"Smart Array 641 Controller",
8,
0x0e11,
0x409a,
OUTBOUND_LIST_5300_EXISTS,
0,
0,
INTR_SIMPLE_MASK,
INTR_SIMPLE_LOCKUP_MASK,
0
},
{
"Smart Array 642 Controller",
8,
0x0e11,
0x409b,
OUTBOUND_LIST_5300_EXISTS,
0,
0,
INTR_SIMPLE_MASK,
INTR_SIMPLE_LOCKUP_MASK,
0
},
{
"Smart Array 6400 Controller",
8,
0x0e11,
0x409c,
OUTBOUND_LIST_5300_EXISTS,
0,
0,
INTR_SIMPLE_MASK,
INTR_SIMPLE_LOCKUP_MASK,
0
},
{
"Smart Array 6400 EM Controller",
8,
0x0e11,
0x409d,
OUTBOUND_LIST_5300_EXISTS,
0,
0,
INTR_SIMPLE_MASK,
INTR_SIMPLE_LOCKUP_MASK,
0
},
{
"Smart Array 6422 Controller",
8,
0x0e11,
0x409e,
OUTBOUND_LIST_5300_EXISTS,
0,
0,
INTR_SIMPLE_MASK,
INTR_SIMPLE_LOCKUP_MASK,
0
},
{
"Smart Array E200i Controller",
8,
0x103c,
0x3211,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
1,
INTR_E200_PERF_MASK,
0,
0
},
{
"Smart Array E200 Controller",
8,
0x103c,
0x3212,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
1,
INTR_E200_PERF_MASK,
0,
0
},
{
"Smart Array P800 Controller",
8,
0x103c,
0x3223,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
INTR_PERF_LOCKUP_MASK,
0
},
{
"Smart Array P600 Controller",
8,
0x103c,
0x3225,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
INTR_PERF_LOCKUP_MASK,
0
},
{
"Smart Array P400 Controller",
8,
0x103c,
0x3234,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
INTR_PERF_LOCKUP_MASK,
0
},
{
"Smart Array P400i Controller",
8,
0x103c,
0x3235,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
INTR_PERF_LOCKUP_MASK,
0
},
{
"Smart Array E500 Controller",
8,
0x103c,
0x3237,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
INTR_PERF_LOCKUP_MASK,
0
},
{
"Smart Array P700m Controller",
8,
0x103c,
0x323d,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
INTR_PERF_LOCKUP_MASK,
0
},
{
"Smart Array P212 Controller",
8,
0x103c,
0x3241,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
0,
1
},
{
"Smart Array P410 Controller",
8,
0x103c,
0x3243,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
0,
1
},
{
"Smart Array P410i Controller",
8,
0x103c,
0x3245,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
0,
1
},
{
"Smart Array P411 Controller",
8,
0x103c,
0x3247,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
0,
1
},
{
"Smart Array P812 Controller",
8,
0x103c,
0x3249,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
0,
1
},
{
"Smart Array P712m Controller",
8,
0x103c,
0x324a,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
0,
1
},
{
"Smart Array P711m Controller",
8,
0x103c,
0x324b,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
0,
1
},
{
"Smart Array P222 Controller",
8,
0x103c,
0x3350,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
0,
1
},
{
"Smart Array P420 Controller",
8,
0x103c,
0x3351,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
0,
1
},
{
"Smart Array P421 Controller",
8,
0x103c,
0x3352,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
0,
1
},
{
"Smart Array P822 Controller",
8,
0x103c,
0x3353,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
0,
1
},
{
"Smart Array P420i Controller",
8,
0x103c,
0x3354,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
0,
1
},
{
"Smart Array P220i Controller",
8,
0x103c,
0x3355,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
0,
1
},
{
"Smart Array P721m Controller",
8,
0x103c,
0x3356,
OUTBOUND_LIST_5300_EXISTS,
SA_BD_SAS,
0,
INTR_PERF_MASK,
0,
1
}
};
#define NBOARD_DEFS (sizeof (cpqary3_bds) / sizeof (cpqary3_bd_t))
cpqary3_bd_t *
cpqary3_bd_getbybid(uint32_t bid)
{
uint16_t vid = ((bid >> 16) & 0xffff);
uint16_t sid = (bid & 0xffff);
int i;
/* search the array for a matching board */
for (i = 0; i < NBOARD_DEFS; i++) {
if ((vid == cpqary3_bds[i].bd_pci_subvenid) &&
(sid == cpqary3_bds[i].bd_pci_subsysid))
return (&(cpqary3_bds[i]));
}
/* board id not found */
return (NULL);
}