Home | History | Annotate | Download | only in ic
History log of /src/sys/dev/ic/mfivar.h
RevisionDateAuthorComments
 1.20  19-Sep-2012  bouyer Add a pass-through ioctl for mfi(4), allowing userland to send raw commands
to the controller. This is compatible with the linux and FreeBSD
implementations.
Add the needed conversion for mfi ioctls in COMPAT_LINUX
Allocate a character major number, and create /dev/mfi0 by default
on amd64 and i386.
This allows (along with a hand-created /emul/linux/proc/devices file)
to run the MegaCLI linux binary provided by LSI.
 1.19  26-Aug-2012  bouyer branches: 1.19.2;
After discussion on tech-kern@, fix performance issue related to
cache flush commands from WAPBL, by skipping the cache flush if the
BBU is present and considered good. Users which still want the write back
cache with a non-working BBU can set vfs.wapbl.flush_disk_cache to 0.
- add commands to monitor the BBU state. Add a boolean BBU sensor
to monitor the BBU state via sysmon_envsys(9).
- if the BBU is considered good, turn SCSI_SYNCHRONIZE_CACHE_10 and
SCSI_SYNCHRONIZE_CACHE_16 commands from upper layer into NOOPs.
While there, handle SCSI_SYNCHRONIZE_CACHE_16 in addition to
SCSI_SYNCHRONIZE_CACHE_10.
- Add a shutdown pmf(9) handler, which flushes the cache and shutdown the
firmware
- on detach, also flush cache and shutdown firmware.
- on attach, print the firmware-provided name, and the BBU state
Tested on a LSI MegaRAID SAS 9265-8i and a PERC 5/i Integrated
 1.18  23-Aug-2012  bouyer Add support newer LSI RAID controllers based on the SAS2208 chip,
codenamed "ThunderBolt". Add tagged queuing support for all adapters
supported by mfi(4).
Tested with a MegaRAID SAS 9265-8i adapter, and an older Dell PERC 5/i.
 1.17  05-Aug-2012  bouyer MFI_IOP_SKINNY is an enum not a single bit value, so it can't be used as
a bit flag. As sc_flags is really used to hold an enum mfi_iop value,
change it to enum mfi_iop and rename to sc_ioptype. While there init it
in mfi_attach() instead of mfi_pci_attach().
 1.16  05-Aug-2012  bouyer Add some support for 64bit DMA but stick to 32bit DMA for now.
From OpenBSD mfi.c rev 1.119.
 1.15  21-Mar-2012  sborrill Add support for skinny variants (e.g. IBM ServeRAID M1015). Based on OpenBSD
changes with some improvements. Tested on IBM x3550M3 with RAID0 and RAID1
volumes including bioctl(8) operation.
 1.14  09-Feb-2010  msaitoh branches: 1.14.10; 1.14.14; 1.14.16;
Add newer cars supports. Tested on MegaRAID SAS 9260-8i.
- Add MFI gen2 support from OpenBSD.
- Add entry for MegaRAID SAS 9260-8i
 1.13  16-Jul-2009  dyoung branches: 1.13.2;
Let us detach & re-attach children of mfi0. Detach mfi0 at shutdown.

Detachment may fail after freeing some but not all resources, so
take care not to re-release any resource during detachment.

Tested on a Dell PowerEdge 1950.
 1.12  16-Jul-2009  dyoung device_t/softc split. Tested and shown to work on a Dell PowerEdge
1950.
 1.11  16-Jul-2009  dyoung Add a rudimentary detachment hook for mfi(4).
 1.10  24-Jun-2008  gmcgarry branches: 1.10.6; 1.10.10; 1.10.14;
Change gcc variadic macros to c99 variadic macros.
 1.9  08-Apr-2008  cegger branches: 1.9.4; 1.9.6; 1.9.8;
use aprint_*_dev and device_xname
 1.8  25-Feb-2008  xtraeme Apply some KNF to this driver and do some random changes as well:

- Change malloc + memset(blah, 0, ...) to malloc with M_ZERO.
- The adapt_ioctl assigned was returning ENOTTY, so there's no point
on having it.
- Static'ify.

I believe there are some paths on this driver where the splbio()s
are not needed, but can't test to verify...
 1.7  25-Feb-2008  xtraeme Added support for the mfi(4) controllers with powerpc IOPs such as
LSI SAS1078 or Dell PERC 6, from OpenBSD.

Tested by Akira Kato on current-users@.
 1.6  16-Nov-2007  xtraeme branches: 1.6.10; 1.6.14;
Extend the envsys2 API (one more time, sorry) as defined in:

http://mail-index.netbsd.org/tech-kern/2007/11/09/0001.html

sysmon_envsys_create() and sysmon_envsys_destroy() were added to
create/destroy sysmon_envsys objects (and its TAILQ/LIST for sensors/events).

sysmon_envsys_sensor_attach() and sysmon_envsys_sensor_detach() were
added to attach/detach sensors to a specified sysmon_envsys device.

The events framework is now per device and configurable via the
ENVSYS_SETDICTIONARY ioctl or /etc/envsys.conf and envstat(8).

Update all users and documentation to reflect these changes.
 1.5  01-Jul-2007  xtraeme branches: 1.5.6; 1.5.8; 1.5.12; 1.5.14;
Imported envsys 2, a brief description of the new features:
(Part 2: drivers)

* Support for detachable sensors.
* Cleaned up the API for simplicity and efficiency.
* Ability to send capacity/critical/warning events to powerd(8).
* Adapted all the code to the new locking order.
* Compatibility with the old envsys API: the ENVSYS_GTREINFO
and ENVSYS_GTREDATA ioctl(2)s are supported.
* Added support for a 'dictionary based communication channel' between
sysmon_power(9) and powerd(8), that means there is no 32 bytes event
size restriction anymore.
* Binary compatibility with old envstat(8) and powerd(8) via COMPAT_40.
* All drivers with the n^2 gtredata bug were fixed, PR kern/36226.

Tested by:

blymn: smsc(4).
bouyer: ipmi(4), mfi(4).
kefren: ug(4).
njoly: viaenv(4), adt7463.c.
riz: owtemp(4).
xtraeme: acpiacad(4), acpibat(4), acpitz(4), aiboost(4), it(4), lm(4).
 1.4  01-May-2007  bouyer Add bio(4) and associated bioctl(8) from OpenBSD, a driver control block
device controllers, and more specifically raid controllers.
Add a new sensor type, ENVSYS_DRIVE, to report drive status. From OpenBSD.
Add bio and sysmon support to mfi(4). This allow userland to query
status for drives and logical volumes attached to a mfi(4) controller. While
there fix some debug printfs in mfi so they compile.
Add bio(4) to amd64 and i386 GENERIC.
 1.3  04-Mar-2007  christos branches: 1.3.2; 1.3.4;
Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.2  20-Dec-2006  bouyer branches: 1.2.2; 1.2.4; 1.2.6; 1.2.8; 1.2.10;
Add missing $NetBSD: $
 1.1  17-Dec-2006  bouyer branches: 1.1.2;
Add mfi(4), a driver for LSI Logic & Dell MegaRAID SAS RAID controller.
Ported from OpenBSD, tested on i386 and amd64.
 1.1.2.3  21-Dec-2006  yamt sync with head.
 1.1.2.2  18-Dec-2006  yamt sync with head.
 1.1.2.1  17-Dec-2006  yamt file mfivar.h was added on branch yamt-splraiseipl on 2006-12-18 11:42:13 +0000
 1.2.10.2  07-May-2007  yamt sync with head.
 1.2.10.1  12-Mar-2007  rmind Sync with HEAD.
 1.2.8.2  12-Jan-2007  ad Sync with head.
 1.2.8.1  20-Dec-2006  ad file mfivar.h was added on branch newlock2 on 2007-01-12 00:57:36 +0000
 1.2.6.5  27-Feb-2008  yamt sync with head.
 1.2.6.4  07-Dec-2007  yamt sync with head
 1.2.6.3  03-Sep-2007  yamt sync with head.
 1.2.6.2  30-Dec-2006  yamt sync with head.
 1.2.6.1  20-Dec-2006  yamt file mfivar.h was added on branch yamt-lazymbuf on 2006-12-30 20:48:03 +0000
 1.2.4.3  15-Oct-2007  riz Pull up following revisions via patch (requested by bouyer in ticket #1838):
distrib/sets/lists/man/mi: revision 1.997
sbin/bioctl/strtonum.c: revision 1.1
sys/dev/Makefile: revision 1.25
sys/arch/amd64/conf/GENERIC: revision 1.139
sbin/bioctl/strtonum.h: revision 1.1
sys/dev/bio.c: revision 1.1
sbin/bioctl/bioctl.c: revision 1.1
share/man/man4/bio.4: revision 1.1
sbin/bioctl/bioctl.8: revision 1.1
sys/sys/envsys.h: revision 1.11
sbin/bioctl/bioctl.8: revision 1.3
sbin/bioctl/bioctl.8: revision 1.4
sys/arch/i386/conf/XEN2_DOM0: revision 1.25
distrib/sets/lists/base/mi: revision 1.704
sys/conf/majors: revision 1.34
share/man/man4/Makefile: revision 1.426
etc/MAKEDEV.tmpl: revision 1.86
sys/arch/i386/conf/GENERIC: revision 1.825
distrib/sets/lists/comp/mi: revision 1.1022
sys/conf/files: revision 1.839
usr.sbin/envstat/envstat.c: revision 1.24
sbin/Makefile: revision 1.105
sys/dev/ic/mfi.c: revision 1.4
sys/dev/biovar.h: revision 1.1
sys/dev/ic/mfivar.h: revision 1.4
sbin/bioctl/Makefile: revision 1.1
Fix typo.
Add bio(4) and associated bioctl(8) from OpenBSD, a driver control block
device controllers, and more specifically raid controllers.
Add a new sensor type, ENVSYS_DRIVE, to report drive status. From OpenBSD.
Add bio and sysmon support to mfi(4). This allow userland to query
status for drives and logical volumes attached to a mfi(4) controller. While
there fix some debug printfs in mfi so they compile.
Add bio(4) to amd64 and i386 GENERIC.
Add bio(4) and associated bioctl(8) from OpenBSD, a driver control block
device controllers, and more specifically raid controllers.
Add a new sensor type, ENVSYS_DRIVE, to report drive status. From OpenBSD.
Add bio and sysmon support to mfi(4). This allow userland to query
status for drives and logical volumes attached to a mfi(4) controller. While
there fix some debug printfs in mfi so they compile.
Add bio(4) to amd64 and i386 GENERIC.
Fix Dd argument (use full month names).
Use more markup.
Comment out references to safte(4) and softraid(4), which don't exist in
NetBSD.
Remove trailing whitespace.
Use macros instead of characters for HTML output (replace ">", "<"
with \*[Gt], \*[Lt]).
Sort sections.
Create /dev/bio
 1.2.4.2  23-Dec-2006  ghen Pull up following revision(s) (requested by bouyer in ticket #1609):
sys/arch/i386/conf/INSTALL: revision 1.298
sys/arch/i386/conf/GENERIC: revision 1.802
sys/dev/pci/files.pci: revision 1.274
sys/arch/amd64/conf/GENERIC: revision 1.122
sys/dev/pci/mfi_pci.c: revision 1.1 via patch
distrib/sets/lists/man/mi: revision 1.958
sys/arch/amd64/conf/INSTALL: revision 1.61
sys/dev/ic/mfireg.h: revision 1.1
share/man/man4/Makefile: revision 1.416 via patch
sys/dev/ic/mfi.c: revision 1.1
sys/arch/i386/conf/XEN2_DOM0: revision 1.19
sys/dev/ic/mfivar.h: revision 1.1
sys/conf/files: revision 1.821
share/man/man4/mfi.4: revision 1.1
share/man/man4/mfi.4: revision 1.2
sys/dev/pci/pcidevs via patch
Add mfi(4), a driver for LSI Logic & Dell MegaRAID SAS RAID controller.
Ported from OpenBSD, tested on i386 and amd64.
Punctuation issues.
 1.2.4.1  20-Dec-2006  ghen file mfivar.h was added on branch netbsd-3 on 2006-12-23 16:43:19 +0000
 1.2.2.4  08-May-2007  pavel Pull up following revision(s) (requested by bouyer in ticket #603):
distrib/sets/lists/base/mi: revision 1.704
distrib/sets/lists/comp/mi: revision 1.1022
distrib/sets/lists/man/mi: revision 1.997
doc/CHANGES: revision 1.839
sbin/Makefile: patch
sbin/bioctl/Makefile: revision 1.1
sbin/bioctl/bioctl.8: revision 1.1
sbin/bioctl/bioctl.c: revision 1.1
sbin/bioctl/strtonum.c: revision 1.1
sbin/bioctl/strtonum.h: revision 1.1
share/man/man4/Makefile: revision 1.426
share/man/man4/bio.4: revision 1.1
sys/arch/amd64/conf/GENERIC: revision 1.139
sys/arch/i386/conf/GENERIC: revision 1.825
sys/arch/i386/conf/XEN2_DOM0: revision 1.25
sys/conf/files: revision 1.839
sys/conf/majors: patch
sys/dev/Makefile: revision 1.25
sys/dev/bio.c: patch
sys/dev/biovar.h: patch
sys/dev/ic/mfi.c: revision 1.4-1.5
sys/dev/ic/mfivar.h: revision 1.4
sys/sys/envsys.h: revision 1.11
usr.sbin/envstat/envstat.c: revision 1.24
Add bio(4) and associated bioctl(8) from OpenBSD, a driver control block
device controllers, and more specifically raid controllers.
Add a new sensor type, ENVSYS_DRIVE, to report drive status. From OpenBSD.
Add bio and sysmon support to mfi(4). This allow userland to query
status for drives and logical volumes attached to a mfi(4) controller. While
there fix some debug printfs in mfi so they compile.
Add bio(4) to amd64 and i386 GENERIC.

note bio(4), envsys(4) DRIVE, and mfi(4) support for both.

tred->sensor is a u_int.
 1.2.2.3  21-Dec-2006  tron Pull up following revision(s) (requested by bouyer in ticket #286):
sys/dev/pci/mfi_pci.c: revision 1.2
sys/dev/ic/mfireg.h: revision 1.2
sys/dev/ic/mfi.c: revision 1.2
sys/dev/ic/mfivar.h: revision 1.2
Add missing $NetBSD: $
 1.2.2.2  21-Dec-2006  tron Pull up following revision(s) (requested by bouyer in ticket #286):
sys/arch/i386/conf/INSTALL: revision 1.298
sys/arch/i386/conf/GENERIC: revision 1.802
sys/dev/pci/files.pci: revision 1.274
sys/arch/amd64/conf/GENERIC: revision 1.122
sys/dev/pci/mfi_pci.c: revision 1.1
distrib/sets/lists/man/mi: revision 1.958
sys/arch/amd64/conf/INSTALL: revision 1.61
sys/arch/i386/conf/ALL: revision 1.75
sys/dev/ic/mfireg.h: revision 1.1
share/man/man4/Makefile: revision 1.416
sys/dev/ic/mfi.c: revision 1.1
sys/arch/i386/conf/XEN2_DOM0: revision 1.19
sys/dev/ic/mfivar.h: revision 1.1
sys/conf/files: revision 1.821
share/man/man4/mfi.4: revision 1.1
Add mfi(4), a driver for LSI Logic & Dell MegaRAID SAS RAID controller.
Ported from OpenBSD, tested on i386 and amd64.
 1.2.2.1  20-Dec-2006  tron file mfivar.h was added on branch netbsd-4 on 2006-12-21 12:46:21 +0000
 1.3.4.1  11-Jul-2007  mjf Sync with head.
 1.3.2.2  15-Jul-2007  ad Sync with head.
 1.3.2.1  27-May-2007  ad Sync with head.
 1.5.14.1  19-Nov-2007  mjf Sync with HEAD.
 1.5.12.1  18-Nov-2007  bouyer Sync with HEAD
 1.5.8.2  23-Mar-2008  matt sync with HEAD
 1.5.8.1  09-Jan-2008  matt sync with HEAD
 1.5.6.1  21-Nov-2007  joerg Sync with HEAD.
 1.6.14.3  29-Jun-2008  mjf Sync with HEAD.
 1.6.14.2  02-Jun-2008  mjf Sync with HEAD.
 1.6.14.1  03-Apr-2008  mjf Sync with HEAD.
 1.6.10.1  24-Mar-2008  keiichi sync with head.
 1.9.8.1  27-Jun-2008  simonb Sync with head.
 1.9.6.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.9.4.3  11-Mar-2010  yamt sync with head
 1.9.4.2  18-Jul-2009  yamt sync with head.
 1.9.4.1  04-May-2009  yamt sync with head.
 1.10.14.1  21-Apr-2010  matt sync to netbsd-5
 1.10.10.1  23-Jul-2009  jym Sync with HEAD.
 1.10.6.1  28-Mar-2010  snj Apply patch (requested by msaitoh in ticket #1326):
Add support for MFI gen2 devices. Mention newer devices, RAID 6 and
RAID60 in mfi.4.
 1.13.2.1  30-Apr-2010  uebayasi Sync with HEAD.
 1.14.16.3  24-Oct-2012  riz Pull up following revision(s) (requested by bouyer in ticket #629):
sys/compat/linux/common/linux_ioctl.c: revision 1.57
sys/dev/ic/mfi.c: revision 1.47
sys/conf/majors: revision 1.62
etc/etc.i386/MAKEDEV.conf: revision 1.24
sys/dev/ic/mfivar.h: revision 1.20
etc/MAKEDEV.tmpl: revision 1.159
sys/dev/ic/mfiio.h: revision 1.1
etc/etc.amd64/MAKEDEV.conf: revision 1.19
sys/dev/ic/mfireg.h: revision 1.8
Add a pass-through ioctl for mfi(4), allowing userland to send raw commands
to the controller. This is compatible with the linux and FreeBSD
implementations.
Add the needed conversion for mfi ioctls in COMPAT_LINUX
Allocate a character major number, and create /dev/mfi0 by default
on amd64 and i386.
This allows (along with a hand-created /emul/linux/proc/devices file)
to run the MegaCLI linux binary provided by LSI.
 1.14.16.2  24-Oct-2012  riz Pull up following revision(s) (requested by bouyer in ticket #628):
sys/dev/ic/mfi.c: revision 1.40
sys/dev/ic/mfi.c: revision 1.41
sys/dev/ic/mfi.c: revision 1.42
sys/dev/ic/mfi.c: revision 1.43
sys/dev/ic/mfi.c: revision 1.44
sys/dev/ic/mfi.c: revision 1.45
sys/dev/ic/mfi.c: revision 1.46
sys/dev/pci/pcidevs: revision 1.1128
sys/dev/pci/mfi_pci.c: revision 1.15
sys/dev/pci/mfi_pci.c: revision 1.16
sys/dev/ic/mfi.c: revision 1.39
sys/dev/ic/mfivar.h: revision 1.16
sys/dev/ic/mfireg.h: revision 1.6
sys/dev/ic/mfivar.h: revision 1.17
sys/dev/ic/mfireg.h: revision 1.7
sys/dev/ic/mfivar.h: revision 1.18
sys/dev/ic/mfivar.h: revision 1.19
Add some support for 64bit DMA but stick to 32bit DMA for now.
From OpenBSD mfi.c rev 1.119.
Add LSI MegaRAID SAS2208
MFI_IOP_SKINNY is an enum not a single bit value, so it can't be used as
a bit flag. As sc_flags is really used to hold an enum mfi_iop value,
change it to enum mfi_iop and rename to sc_ioptype. While there init it
in mfi_attach() instead of mfi_pci_attach().
sg64.len is 32bits, so use htole32()
Really init sc_ioptype in mfi_attach()
Add support newer LSI RAID controllers based on the SAS2208 chip,
codenamed "ThunderBolt". Add tagged queuing support for all adapters
supported by mfi(4).
Tested with a MegaRAID SAS 9265-8i adapter, and an older Dell PERC 5/i.
Avoid "unused variable" warning for non-DIAGNOSTIC kernels.
Pointed out by Havard Eidnes
After discussion on tech-kern@, fix performance issue related to
cache flush commands from WAPBL, by skipping the cache flush if the
BBU is present and considered good. Users which still want the write back
cache with a non-working BBU can set vfs.wapbl.flush_disk_cache to 0.
- add commands to monitor the BBU state. Add a boolean BBU sensor
to monitor the BBU state via sysmon_envsys(9).
- if the BBU is considered good, turn SCSI_SYNCHRONIZE_CACHE_10 and
SCSI_SYNCHRONIZE_CACHE_16 commands from upper layer into NOOPs.
While there, handle SCSI_SYNCHRONIZE_CACHE_16 in addition to
SCSI_SYNCHRONIZE_CACHE_10.
- Add a shutdown pmf(9) handler, which flushes the cache and shutdown the
firmware
- on detach, also flush cache and shutdown firmware.
- on attach, print the firmware-provided name, and the BBU state
Tested on a LSI MegaRAID SAS 9265-8i and a PERC 5/i Integrated
Make MFI_DEBUG build on i386.
Report BBU state changes with aprint_normal(), it seems that sysmon_envsys()
doens't report changes for ENVSYS_INDICATOR as it does for ENVSYS_DRIVE.
 1.14.16.1  22-Mar-2012  riz Pull up following revision(s) (requested by sborrill in ticket #138):
sys/dev/pci/mfi_pci.c: revision 1.13
sys/dev/ic/mfi.c: revision 1.38
sys/dev/ic/mfivar.h: revision 1.15
sys/dev/ic/mfireg.h: revision 1.5
Add support for skinny variants (e.g. IBM ServeRAID M1015). Based on OpenBSD
changes with some improvements. Tested on IBM x3550M3 with RAID0 and RAID1
volumes including bioctl(8) operation.
 1.14.14.1  05-Apr-2012  mrg sync to latest -current.
 1.14.10.2  30-Oct-2012  yamt sync with head
 1.14.10.1  17-Apr-2012  yamt sync with head
 1.19.2.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC

RSS XML Feed