mirror of
https://git.FreeBSD.org/src.git
synced 2025-01-14 14:55:41 +00:00
This should enable 10160 support. As best as I can tell, the same
f/w as 12160 is used, and otherwise, this is just a single channel variant of the 10160. MFC after: 0 days
This commit is contained in:
parent
306a209024
commit
f556e83b61
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=104916
@ -284,6 +284,8 @@ isp_reset(struct ispsoftc *isp)
|
||||
btype = "1280";
|
||||
else if (IS_1080(isp))
|
||||
btype = "1080";
|
||||
else if (IS_10160(isp))
|
||||
btype = "10160";
|
||||
else if (IS_12160(isp))
|
||||
btype = "12160";
|
||||
else
|
||||
@ -5895,7 +5897,8 @@ isp_read_nvram(struct ispsoftc *isp)
|
||||
|
||||
if (IS_ULTRA3(isp)) {
|
||||
isp_parse_nvram_12160(isp, 0, nvram_data);
|
||||
isp_parse_nvram_12160(isp, 1, nvram_data);
|
||||
if (IS_12160(isp))
|
||||
isp_parse_nvram_12160(isp, 1, nvram_data);
|
||||
} else if (IS_1080(isp)) {
|
||||
isp_parse_nvram_1080(isp, 0, nvram_data);
|
||||
} else if (IS_1280(isp) || IS_1240(isp)) {
|
||||
|
@ -181,6 +181,10 @@ static struct ispmdvec mdvec_2300 = {
|
||||
#define PCI_PRODUCT_QLOGIC_ISP1080 0x1080
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP10160
|
||||
#define PCI_PRODUCT_QLOGIC_ISP10160 0x1016
|
||||
#endif
|
||||
|
||||
#ifndef PCI_PRODUCT_QLOGIC_ISP12160
|
||||
#define PCI_PRODUCT_QLOGIC_ISP12160 0x1216
|
||||
#endif
|
||||
@ -215,6 +219,9 @@ static struct ispmdvec mdvec_2300 = {
|
||||
#define PCI_QLOGIC_ISP1080 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP1080 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP10160 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP10160 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
#define PCI_QLOGIC_ISP12160 \
|
||||
((PCI_PRODUCT_QLOGIC_ISP12160 << 16) | PCI_VENDOR_QLOGIC)
|
||||
|
||||
@ -294,6 +301,9 @@ isp_pci_probe(device_t dev)
|
||||
case PCI_QLOGIC_ISP1280:
|
||||
device_set_desc(dev, "Qlogic ISP 1280 PCI SCSI Adapter");
|
||||
break;
|
||||
case PCI_QLOGIC_ISP10160:
|
||||
device_set_desc(dev, "Qlogic ISP 10160 PCI SCSI Adapter");
|
||||
break;
|
||||
case PCI_QLOGIC_ISP12160:
|
||||
if (pci_get_subvendor(dev) == AMI_RAID_SUBVENDOR_ID) {
|
||||
return (ENXIO);
|
||||
@ -458,6 +468,13 @@ isp_pci_attach(device_t dev)
|
||||
pcs->pci_poff[DMA_BLOCK >> _BLK_REG_SHFT] =
|
||||
ISP1080_DMA_REGS_OFF;
|
||||
}
|
||||
if (pci_get_devid(dev) == PCI_QLOGIC_ISP10160) {
|
||||
mdvp = &mdvec_12160;
|
||||
basetype = ISP_HA_SCSI_10160;
|
||||
psize = sizeof (sdparam);
|
||||
pcs->pci_poff[DMA_BLOCK >> _BLK_REG_SHFT] =
|
||||
ISP1080_DMA_REGS_OFF;
|
||||
}
|
||||
if (pci_get_devid(dev) == PCI_QLOGIC_ISP12160) {
|
||||
mdvp = &mdvec_12160;
|
||||
basetype = ISP_HA_SCSI_12160;
|
||||
|
@ -540,7 +540,8 @@ typedef struct ispsoftc {
|
||||
#define ISP_HA_SCSI_1240 0x8
|
||||
#define ISP_HA_SCSI_1080 0x9
|
||||
#define ISP_HA_SCSI_1280 0xa
|
||||
#define ISP_HA_SCSI_12160 0xb
|
||||
#define ISP_HA_SCSI_10160 0xb
|
||||
#define ISP_HA_SCSI_12160 0xc
|
||||
#define ISP_HA_FC 0xf0
|
||||
#define ISP_HA_FC_2100 0x10
|
||||
#define ISP_HA_FC_2200 0x20
|
||||
@ -551,12 +552,14 @@ typedef struct ispsoftc {
|
||||
#define IS_1240(isp) (isp->isp_type == ISP_HA_SCSI_1240)
|
||||
#define IS_1080(isp) (isp->isp_type == ISP_HA_SCSI_1080)
|
||||
#define IS_1280(isp) (isp->isp_type == ISP_HA_SCSI_1280)
|
||||
#define IS_10160(isp) (isp->isp_type == ISP_HA_SCSI_10160)
|
||||
#define IS_12160(isp) (isp->isp_type == ISP_HA_SCSI_12160)
|
||||
|
||||
#define IS_12X0(isp) (IS_1240(isp) || IS_1280(isp))
|
||||
#define IS_1X160(isp) (IS_10160(isp) || IS_12160(isp))
|
||||
#define IS_DUALBUS(isp) (IS_12X0(isp) || IS_12160(isp))
|
||||
#define IS_ULTRA2(isp) (IS_1080(isp) || IS_1280(isp) || IS_12160(isp))
|
||||
#define IS_ULTRA3(isp) (IS_12160(isp))
|
||||
#define IS_ULTRA2(isp) (IS_1080(isp) || IS_1280(isp) || IS_1X160(isp))
|
||||
#define IS_ULTRA3(isp) (IS_1X160(isp))
|
||||
|
||||
#define IS_FC(isp) ((isp)->isp_type & ISP_HA_FC)
|
||||
#define IS_2100(isp) ((isp)->isp_type == ISP_HA_FC_2100)
|
||||
|
Loading…
Reference in New Issue
Block a user