aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKashyap D Desai <kadesai@FreeBSD.org>2018-12-26 10:41:14 +0000
committerKashyap D Desai <kadesai@FreeBSD.org>2018-12-26 10:41:14 +0000
commitf36649b71ccfd1d7ae23b6e54e6775098c40b160 (patch)
tree064d95ebae3d75bfdfa020843e862b78a4a3d642
parent89d1c21f458d83a882c92a8a2b2b5be92cbdf2ec (diff)
downloadsrc-f36649b71ccfd1d7ae23b6e54e6775098c40b160.tar.gz
src-f36649b71ccfd1d7ae23b6e54e6775098c40b160.zip
Add Sea,Aero adapter support
Added deviceID's for Sea,Aero to mpr Driver Aero: 0x00E0 Invalid 0x00E1 Configurable Secure 0x00E2 Hard Secure 0x00E3 Tampered Sea: 0x00E4 Invalid 0x00E5 Configurable Secure 0x00E6 Hard Secure 0x00E7 Tampered For Tampered & Invalid type cards, driver will claim the device & quit the probe function with below error message, "HBA is in Non Secure mode" for Configurable Secure type cards, driver will display below message in .probe() callback function, "HBA is in Configurable Secure mode" Submitted by: Sreekanth Reddy <sreekanth.reddy@broadcom.com> Reviewed by: Kashyap Desai <Kashyap.Desai@broadcom.com> Approved by: ken MFC after: 3 days Sponsored by: Broadcom Inc
Notes
Notes: svn path=/head/; revision=342531
-rw-r--r--sys/dev/mpr/mpr_pci.c39
-rw-r--r--sys/dev/mpr/mprvar.h1
2 files changed, 40 insertions, 0 deletions
diff --git a/sys/dev/mpr/mpr_pci.c b/sys/dev/mpr/mpr_pci.c
index e86bd9e102ba..c3a877f5a6e8 100644
--- a/sys/dev/mpr/mpr_pci.c
+++ b/sys/dev/mpr/mpr_pci.c
@@ -148,6 +148,30 @@ struct mpr_ident {
{ MPI2_MFGPAGE_VENDORID_LSI, MPI26_MFGPAGE_DEVID_SAS3716,
0xffff, 0xffff, MPR_FLAGS_GEN35_IOC,
"Avago Technologies (LSI) SAS3716" },
+ { MPI2_MFGPAGE_VENDORID_LSI, MPI26_MFGPAGE_DEVID_INVALID0_SAS3816,
+ 0xffff, 0xffff, (MPR_FLAGS_GEN35_IOC | MPR_FLAGS_SEA_IOC),
+ "Broadcom Inc. (LSI) INVALID0 SAS3816" },
+ { MPI2_MFGPAGE_VENDORID_LSI, MPI26_MFGPAGE_DEVID_CFG_SEC_SAS3816,
+ 0xffff, 0xffff, (MPR_FLAGS_GEN35_IOC | MPR_FLAGS_SEA_IOC),
+ "Broadcom Inc. (LSI) CFG SEC SAS3816" },
+ { MPI2_MFGPAGE_VENDORID_LSI, MPI26_MFGPAGE_DEVID_HARD_SEC_SAS3816,
+ 0xffff, 0xffff, (MPR_FLAGS_GEN35_IOC | MPR_FLAGS_SEA_IOC),
+ "Broadcom Inc. (LSI) HARD SEC SAS3816" },
+ { MPI2_MFGPAGE_VENDORID_LSI, MPI26_MFGPAGE_DEVID_INVALID1_SAS3816,
+ 0xffff, 0xffff, (MPR_FLAGS_GEN35_IOC | MPR_FLAGS_SEA_IOC),
+ "Broadcom Inc. (LSI) INVALID1 SAS3816" },
+ { MPI2_MFGPAGE_VENDORID_LSI, MPI26_MFGPAGE_DEVID_INVALID0_SAS3916,
+ 0xffff, 0xffff, (MPR_FLAGS_GEN35_IOC | MPR_FLAGS_SEA_IOC),
+ "Broadcom Inc. (LSI) INVALID0 SAS3916" },
+ { MPI2_MFGPAGE_VENDORID_LSI, MPI26_MFGPAGE_DEVID_CFG_SEC_SAS3916,
+ 0xffff, 0xffff, (MPR_FLAGS_GEN35_IOC | MPR_FLAGS_SEA_IOC),
+ "Broadcom Inc. (LSI) CFG SEC SAS3916" },
+ { MPI2_MFGPAGE_VENDORID_LSI, MPI26_MFGPAGE_DEVID_HARD_SEC_SAS3916,
+ 0xffff, 0xffff, (MPR_FLAGS_GEN35_IOC | MPR_FLAGS_SEA_IOC),
+ "Broadcom Inc. (LSI) HARD SEC SAS3916" },
+ { MPI2_MFGPAGE_VENDORID_LSI, MPI26_MFGPAGE_DEVID_INVALID1_SAS3916,
+ 0xffff, 0xffff, (MPR_FLAGS_GEN35_IOC | MPR_FLAGS_SEA_IOC),
+ "Broadcom Inc. (LSI) INVALID1 SAS3916" },
{ 0, 0, 0, 0, 0, NULL }
};
@@ -206,6 +230,21 @@ mpr_pci_attach(device_t dev)
m = mpr_find_ident(dev);
sc->mpr_flags = m->flags;
+ switch (m->device) {
+ case MPI26_MFGPAGE_DEVID_INVALID0_SAS3816:
+ case MPI26_MFGPAGE_DEVID_INVALID1_SAS3816:
+ case MPI26_MFGPAGE_DEVID_INVALID0_SAS3916:
+ case MPI26_MFGPAGE_DEVID_INVALID1_SAS3916:
+ mpr_printf(sc, "HBA is in Non Secure mode\n");
+ return (ENXIO);
+ case MPI26_MFGPAGE_DEVID_CFG_SEC_SAS3816:
+ case MPI26_MFGPAGE_DEVID_CFG_SEC_SAS3916:
+ mpr_printf(sc, "HBA is in Configurable Secure mode\n");
+ break;
+ default:
+ break;
+ }
+
mpr_get_tunables(sc);
/* Twiddle basic PCI config bits for a sanity check */
diff --git a/sys/dev/mpr/mprvar.h b/sys/dev/mpr/mprvar.h
index 9c8b4892accf..c678d9170215 100644
--- a/sys/dev/mpr/mprvar.h
+++ b/sys/dev/mpr/mprvar.h
@@ -341,6 +341,7 @@ struct mpr_softc {
#define MPR_FLAGS_ATTACH_DONE (1 << 5)
#define MPR_FLAGS_GEN35_IOC (1 << 6)
#define MPR_FLAGS_REALLOCATED (1 << 7)
+#define MPR_FLAGS_SEA_IOC (1 << 8)
u_int mpr_debug;
int msi_msgs;
u_int reqframesz;