#
95ee2897 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
#
4d846d26 |
|
10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause. Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
|
#
9cd54db5 |
|
20-Apr-2022 |
John Baldwin <jhb@FreeBSD.org> |
mlx: Remove unused devclass arguments to DRIVER_MODULE.
|
#
967949e7 |
|
21-Apr-2022 |
John Baldwin <jhb@FreeBSD.org> |
mlx: Use devclass_find to lookup the devclass for mlxd. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D34994
|
#
c6df6f53 |
|
09-Dec-2021 |
Warner Losh <imp@FreeBSD.org> |
Create wrapper for Giant taken for newbus Create a wrapper for newbus to take giant and for busses to take it too. bus_topo_lock() should be called before interacting with newbus routines and unlocked with bus_topo_unlock(). If you need the topology lock for some reason, bus_topo_mtx() will provide that. Sponsored by: Netflix Reviewed by: mav Differential Revision: https://reviews.freebsd.org/D31831
|
#
072d5b98 |
|
03-Nov-2021 |
Warner Losh <imp@FreeBSD.org> |
sysbeep: Adjust interface to take a duration as a sbt Change the 'period' argument to 'duration' and change its type to sbintime_t so we can more easily express different durations. Reviewed by: tsoome, glebius Differential Revision: https://reviews.freebsd.org/D32619
|
#
718cf2cc |
|
27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/dev: further adoption of SPDX licensing ID tags. Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
|
#
572f2440 |
|
16-Feb-2017 |
Warner Losh <imp@FreeBSD.org> |
Remove references to EISA support in mlx. The driver never supported the EISA cards and EISA bus support is being removed.
|
#
057b4402 |
|
26-Apr-2016 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/dev: extend use of the howmany() macro when available. We have a howmany() macro in the <sys/param.h> header that is convenient to re-use as it makes things easier to read.
|
#
73a1170a |
|
19-Apr-2016 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/dev: use our nitems() macro when it is avaliable through param.h. No functional change, only trivial cases are done in this sweep, Drivers that can get further enhancements will be done independently. Discussed in: freebsd-current
|
#
6f954fb3 |
|
22-Mar-2015 |
Alexander Motin <mav@FreeBSD.org> |
Remove MAXBSIZE use from drivers where it has nothing to do. In some cases limits are just not needed, in others -- DFLTPHYS is the right constant to use instead. MFC after: 1 month
|
#
aced5239 |
|
13-Jun-2014 |
John Baldwin <jhb@FreeBSD.org> |
Add missing calls to bus_dmamap_unload() when freeing static DMA allocations. Reviewed by: scottl
|
#
b04e4c12 |
|
26-Sep-2012 |
John Baldwin <jhb@FreeBSD.org> |
Remove FreeBSD 4.x compat shims. Verified by md5.
|
#
0fca6f8b |
|
17-Sep-2012 |
John Baldwin <jhb@FreeBSD.org> |
Add locking to mlx(4) to make it MPSAFE along with some other fixes: - Use callout(9) rather than timeout(9). - Add a mutex as an I/O lock that protects the adapter and is used for the I/O path. - Add an sx lock as a configuration lock that protects the relationship of configured volumes. - Freeze the request queue when a DMA load is deferred with EINPROGRESS and unfreeze the queue when the DMA callback is invoked. - Explicitly poll the hardware while waiting to submit a command to allow completed commands to free up slots in the command ring. - Remove driver-wide 'initted' variable from mlx_*_fw_handshake() routines. That state should be per-controller instead. Add it as an argument since the first caller knows when it is the first caller. - Remove explicit bus_space tag/handle and use bus_*() rather than bus_space_*(). - Move duplicated PCI device ID probing into a mlx_pci_match() routine. - Don't check for PCIM_CMD_MEMEN (the PCI bus will enable that when allocating the resource) and use pci_enable_busmaster() rather than manipulating the register directly. Tested by: no one despite multiple requests (hope it works)
|
#
5a1fac10 |
|
27-Feb-2012 |
Kevin Lo <kevlo@FreeBSD.org> |
Remove unused variable count. This variable is initialized but not used.
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
247db074 |
|
20-Aug-2009 |
John Baldwin <jhb@FreeBSD.org> |
MFC 196403: Temporarily revert the new-bus locking for 8.0 release. Approved by: re (kib)
|
#
a56fe095 |
|
20-Aug-2009 |
John Baldwin <jhb@FreeBSD.org> |
Temporarily revert the new-bus locking for 8.0 release. It will be reintroduced after HEAD is reopened for commits by re@. Approved by: re (kib), attilio
|
#
444b9186 |
|
02-Aug-2009 |
Attilio Rao <attilio@FreeBSD.org> |
Make the newbus subsystem Giant free by adding the new newbus sxlock. The newbus lock is responsible for protecting newbus internIal structures, device states and devclass flags. It is necessary to hold it when all such datas are accessed. For the other operations, softc locking should ensure enough protection to avoid races. Newbus lock is automatically held when virtual operations on the device and bus are invoked when loading the driver or when the suspend/resume take place. For other 'spourious' operations trying to access/modify the newbus topology, newbus lock needs to be automatically acquired and dropped. For the moment Giant is also acquired in some key point (modules subsystem) in order to avoid problems before the 8.0 release as module handlers could make assumptions about it. This Giant locking should go just after the release happens. Please keep in mind that the public interface can be expanded in order to provide more support, if there are really necessities at some point and also some bugs could arise as long as the patch needs a bit of further testing. Bump __FreeBSD_version in order to reflect the newbus lock introduction. Reviewed by: ed, hps, jhb, imp, mav, scottl No answer by: ariff, thompsa, yongari Tested by: pho, G. Trematerra <giovanni dot trematerra at gmail dot com>, Brandon Gooch <jamesbrandongooch at gmail dot com> Sponsored by: Yahoo! Incorporated Approved by: re (ksmith)
|
#
52c9ce25 |
|
10-Jul-2009 |
Scott Long <scottl@FreeBSD.org> |
Separate the parallel scsi knowledge out of the core of the XPT, and modularize it so that new transports can be created. Add a transport for SATA Add a periph+protocol layer for ATA Add a driver for AHCI-compliant hardware. Add a maxio field to CAM so that drivers can advertise their max I/O capability. Modify various drivers so that they are insulated from the value of MAXPHYS. The new ATA/SATA code supports AHCI-compliant hardware, and will override the classic ATA driver if it is loaded as a module at boot time or compiled into the kernel. The stack now support NCQ (tagged queueing) for increased performance on modern SATA drives. It also supports port multipliers. ATA drives are accessed via 'ada' device nodes. ATAPI drives are accessed via 'cd' device nodes. They can all be enumerated and manipulated via camcontrol, just like SCSI drives. SCSI commands are not translated to their ATA equivalents; ATA native commands are used throughout the entire stack, including camcontrol. See the camcontrol manpage for further details. Testing this code may require that you update your fstab, and possibly modify your BIOS to enable AHCI functionality, if available. This code is very experimental at the moment. The userland ABI/API has changed, so applications will need to be recompiled. It may change further in the near future. The 'ada' device name may also change as more infrastructure is completed in this project. The goal is to eventually put all CAM busses and devices until newbus, allowing for interesting topology and management options. Few functional changes will be seen with existing SCSI/SAS/FC drivers, though the userland ABI has still changed. In the future, transports specific modules for SAS and FC may appear in order to better support the topologies and capabilities of these technologies. The modularization of CAM and the addition of the ATA/SATA modules is meant to break CAM out of the mold of being specific to SCSI, letting it grow to be a framework for arbitrary transports and protocols. It also allows drivers to be written to support discrete hardware without jeopardizing the stability of non-related hardware. While only an AHCI driver is provided now, a Silicon Image driver is also in the works. Drivers for ICH1-4, ICH5-6, PIIX, classic IDE, and any other hardware is possible and encouraged. Help with new transports is also encouraged. Submitted by: scottl, mav Approved by: re
|
#
e78a5a3f |
|
18-Apr-2009 |
Ed Schouten <ed@FreeBSD.org> |
Convert mlx(4) and mly(4) to si_drv1 instead of dev2unit().
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
6bfa9a2d |
|
27-Sep-2008 |
Ed Schouten <ed@FreeBSD.org> |
Replace all calls to minor() with dev2unit(). After I removed all the unit2minor()/minor2unit() calls from the kernel yesterday, I realised calling minor() everywhere is quite confusing. Character devices now only have the ability to store a unit number, not a minor number. Remove the confusion by using dev2unit() everywhere. This commit could also be considered as a bug fix. A lot of drivers call minor(), while they should actually be calling dev2unit(). In -CURRENT this isn't a problem, but it turns out we never had any problem reports related to that issue in the past. I suspect not many people connect more than 256 pieces of the same hardware. Reviewed by: kib
|
#
29e6fa3a |
|
12-Sep-2008 |
Stephane E. Potvin <sepotvin@FreeBSD.org> |
Make mlxcontrol work with more than one system drive: - When searching for the next system drive, return the next one instead of always returning the first one. - Plug fd lead and make sure that the MLX_NEXT_CHILD ioctl is called on the controller fd, not the disk's one. While there, fix a cut-n-pase error in a warning. Reviewed by: jhb Approved by: kan (mentor) MFC after: 1 month
|
#
ef544f63 |
|
22-Feb-2007 |
Paolo Pisati <piso@FreeBSD.org> |
o break newbus api: add a new argument of type driver_filter_t to bus_setup_intr() o add an int return code to all fast handlers o retire INTR_FAST/IH_FAST For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current Reviewed by: many Approved by: re@
|
#
d4fcf3cb |
|
28-May-2005 |
Yoshihiro Takahashi <nyan@FreeBSD.org> |
Remove bus_{mem,p}io.h and related code for a micro-optimization on i386 and amd64. The optimization is a trivial on recent machines. Reviewed by: -arch (imp, marcel, dfr)
|
#
aa083c3d |
|
31-Mar-2005 |
Sam Leffler <sam@FreeBSD.org> |
plug resource leak Submitted by: mdodd Noticed by: Coverity Prevent analysis tool
|
#
23691262 |
|
31-Mar-2005 |
Sam Leffler <sam@FreeBSD.org> |
fix potential null ptr deref Noticed by: Coverity Prevent analysis tool
|
#
001ea8fb |
|
31-Mar-2005 |
Sam Leffler <sam@FreeBSD.org> |
avoid null ptr deref Noticed by: Coverity Prevent analysis tool
|
#
23db907c |
|
26-Mar-2005 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Don't call mlx_free() i mlx_attach() in case of failure. Doing so in mlx_attach_pci() is much cleaner. Inspired by: Coverity
|
#
89c9c53d |
|
16-Jun-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Do the dreaded s/dev_t/struct cdev */ Bump __FreeBSD_version accordingly.
|
#
5f96beb9 |
|
17-Mar-2004 |
Nate Lawson <njl@FreeBSD.org> |
Convert callers to the new bus_alloc_resource_any(9) API. Submitted by: Mark Santcroos <marks@ripe.net> Reviewed by: imp, dfr, bde
|
#
a7700303 |
|
01-Mar-2004 |
Scott Long <scottl@FreeBSD.org> |
Change another pointer name that was missed in the previous commit. Spotted by: njl
|
#
d4881905 |
|
01-Mar-2004 |
Scott Long <scottl@FreeBSD.org> |
Check and free the actual pointer the was used in a malloc instead of checking and freeing a different pointer that may or may not have been assigned the same value. This should fix panics under load that were recently reported.
|
#
caa32ef5 |
|
22-Feb-2004 |
Colin Percival <cperciva@FreeBSD.org> |
Don't free meo until we're finished using it. Reported by: "Ted Unangst" <tedu@coverity.com> Approved by: rwatson (mentor), scottl
|
#
dc08ffec |
|
21-Feb-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Device megapatch 4/6: Introduce d_version field in struct cdevsw, this must always be initialized to D_VERSION. Flip sense of D_NOGIANT flag to D_NEEDGIANT, this involves removing four D_NOGIANT flags and adding 145 D_NEEDGIANT flags.
|
#
c9c7976f |
|
21-Feb-2004 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Device megapatch 1/6: Free approx 86 major numbers with a mostly automatically generated patch. A number of strategic drivers have been left behind by caution, and a few because they still (ab)use their major number.
|
#
1b4404f9 |
|
02-Sep-2003 |
Scott Long <scottl@FreeBSD.org> |
Prepare for locking mlx(4) by cleaning up the use of busdma. No real functional changes should result from this.
|
#
fc3e87b3 |
|
09-Aug-2003 |
Scott Long <scottl@FreeBSD.org> |
Don't provide a mutex in the S/G list dma tag since it will never be defered. Fix some nearby style.
|
#
f6b1c44d |
|
01-Jul-2003 |
Scott Long <scottl@FreeBSD.org> |
Mega busdma API commit. Add two new arguments to bus_dma_tag_create(): lockfunc and lockfuncarg. Lockfunc allows a driver to provide a function for managing its locking semantics while using busdma. At the moment, this is used for the asynchronous busdma_swi and callback mechanism. Two lockfunc implementations are provided: busdma_lock_mutex() performs standard mutex operations on the mutex that is specified from lockfuncarg. dftl_lock() is a panic implementation and is defaulted to when NULL, NULL are passed to bus_dma_tag_create(). The only time that NULL, NULL should ever be used is when the driver ensures that bus_dmamap_load() will not be deferred. Drivers that do not provide their own locking can pass busdma_lock_mutex,&Giant args in order to preserve the former behaviour. sparc64 and powerpc do not provide real busdma_swi functions, so this is largely a noop on those platforms. The busdma_swi on is64 is not properly locked yet, so warnings will be emitted on this platform when busdma callback deferrals happen. If anyone gets panics or warnings from dflt_lock() being called, please let me know right away. Reviewed by: tmm, gibbs
|
#
891619a6 |
|
01-Apr-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Use bioq_flush() to drain a bio queue with a specific error code. Retain the mistake of not updating the devstat API for now. Spell bioq_disksort() consistently with the remaining bioq_*(). #include <geom/geom_disk.h> where this is more appropriate.
|
#
60794e04 |
|
08-Mar-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Centralize the devstat handling for all GEOM disk device drivers in geom_disk.c. As a side effect this makes a lot of #include <sys/devicestat.h> lines not needed and some biofinish() calls can be reduced to biodone() again.
|
#
7ac40f5f |
|
02-Mar-2003 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Gigacommit to improve device-driver source compatibility between branches: Initialize struct cdevsw using C99 sparse initializtion and remove all initializations to default values. This patch is automatically generated and has been tested by compiling LINT with all the fields in struct cdevsw in reverse order on alpha, sparc64 and i386. Approved by: re(scottl)
|
#
a163d034 |
|
18-Feb-2003 |
Warner Losh <imp@FreeBSD.org> |
Back out M_* changes, per decision of the TRB. Approved by: trb
|
#
44956c98 |
|
21-Jan-2003 |
Alfred Perlstein <alfred@FreeBSD.org> |
Remove M_TRYWAIT/M_WAITOK/M_WAIT. Callers should use 0. Merge M_NOWAIT/M_DONTWAIT into a single flag M_NOWAIT.
|
#
07e929da |
|
18-Mar-2002 |
Bruce Evans <bde@FreeBSD.org> |
Fixed printf format errors in previous commit. %llu is no more suitable than %u for printing signed 64-bit types. It fails on different machines, and has the wrong signdness. Fixed old printf format error on the same line. %u is not suitable for printing 32-bit types on all machines. "Fixed" format printf error in previous commit. This file is not formatted in KNF. Partially restore bug for bug compatibility: indent the printf args too much, but don't format them for 160-column terminals.
|
#
83218553 |
|
18-Mar-2002 |
Warner Losh <imp@FreeBSD.org> |
Formats that print the block number need to be changed from %u to %llu due to recent changes in bio_pblkno's type.
|
#
6e551fb6 |
|
10-Dec-2001 |
David E. O'Brien <obrien@FreeBSD.org> |
Update to C99, s/__FUNCTION__/__func__/, also don't use ANSI string concatenation.
|
#
b40ce416 |
|
12-Sep-2001 |
Julian Elischer <julian@FreeBSD.org> |
KSE Milestone 2 Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process. Sorry john! (your next MFC will be a doosie!) Reviewed by: peter@freebsd.org, dillon@freebsd.org X-MFC after: ha ha ha ha
|
#
bf61e266 |
|
10-Sep-2001 |
Kris Kennaway <kris@FreeBSD.org> |
Fix some signed/unsigned integer confusion, and add bounds checking of arguments to some functions. Obtained from: NetBSD Reviewed by: peter MFC after: 2 weeks
|
#
15fd5d22 |
|
24-Jun-2001 |
Mike Smith <msmith@FreeBSD.org> |
Driver modifications consistent with my other drivers to facilitate the use of a single set of sources across 4.x and 5.x branches. No significant code changes.
|
#
f8388051 |
|
25-Mar-2001 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Send the remains (such as I have located) of "block major numbers" to the bit-bucket.
|
#
ed34d0ad |
|
01-Mar-2001 |
Mark Murray <markm@FreeBSD.org> |
Turn on interrupt-entropy harvesting for all/any mass storage devices I could find. I have no doubt missed a couple. Interrupt entropy harvesting is still conditional on the kern.random.sys.harvest_interrupt sysctl.
|
#
9b11c7ba |
|
27-Nov-2000 |
Matthew N. Dodd <mdodd@FreeBSD.org> |
Avoid hardcoding the 'rid' and 'type' of the MEM/IOPORT resource. Store the 'rid' and 'type' in the softc and use them in mlx.c:mlx_free(). EISA and MCA front ends will require this. Approved by: msmith
|
#
ca89ee27 |
|
18-Nov-2000 |
David Malone <dwmalone@FreeBSD.org> |
Further use of M_ZERO. Submitted by: josh@zipperup.org Submitted by: Robert Drehmel <robd@gmx.net> Approved by: msmith
|
#
786cd128 |
|
04-Aug-2000 |
Mike Smith <msmith@FreeBSD.org> |
Add support for 2.x/3.x firmware adapters which are too old to have a memory-mapped register window. This closes the last known issue with 2.x vintage adapters.
|
#
baff09db |
|
06-May-2000 |
Mike Smith <msmith@FreeBSD.org> |
Change the way that scatter/gather list tables are allocated so that we can use all of the s/g entries available on smaller cards. This is necessary if we want to be able to handle a non-page-aligned 64k transfer on 2.x and 3.x firmware. Fix a missing splx() that may have left us at splbio() for longer than desired. Reduce shadowing of controller-supplied parameters a little.
|
#
9626b608 |
|
05-May-2000 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Separate the struct bio related stuff out of <sys/buf.h> into <sys/bio.h>. <sys/bio.h> is now a prerequisite for <sys/buf.h> but it shall not be made a nested include according to bdes teachings on the subject of nested includes. Diskdrivers and similar stuff below specfs::strategy() should no longer need to include <sys/buf.> unless they need caching of data. Still a few bogus uses of struct buf to track down. Repocopy by: peter
|
#
5d278f5c |
|
20-Apr-2000 |
Mike Smith <msmith@FreeBSD.org> |
One minor bugfix: - Free resources in all the possible attachment failure cases. One critical bugfix: - Fix a race where it was possible to get out of synch with the log messages from the controller, if the controller hung up for any period of time (eg. while resetting a SCSI bus). This would result in an endless string of console errors, bringing the machine to a halt.
|
#
8177437d |
|
14-Apr-2000 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Complete the bio/buf divorce for all code below devfs::strategy Exceptions: Vinum untouched. This means that it cannot be compiled. Greg Lehey is on the case. CCD not converted yet, casts to struct buf (still safe) atapi-cd casts to struct buf to examine B_PHYS
|
#
421f2f7d |
|
10-Apr-2000 |
Mike Smith <msmith@FreeBSD.org> |
Add features required for basic userland management utility: - implement user-initiated background drive rebuild - implement user-initiated background consistency check - log controller-initiated background rebuild/check operations Try to fix the elusive "invalid log operation" bug, and panic if we do hit this one in the hopes of getting better information. Tidy up diagnostic messages. Try to use disk_create/disk_destroy correctly. This isn't working properly yet, but it's not clear whose fault that is.
|
#
c244d2de |
|
02-Apr-2000 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Move B_ERROR flag to b_ioflags and call it BIO_ERROR. (Much of this done by script) Move B_ORDERED flag to b_ioflags and call it BIO_ORDERED. Move b_pblkno and b_iodone_chain to struct bio while we transition, they will be obsoleted once bio structs chain/stack. Add bio_queue field for struct bio aware disksort. Address a lot of stylistic issues brought up by bde.
|
#
21144e3b |
|
20-Mar-2000 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Remove B_READ, B_WRITE and B_FREEBUF and replace them with a new field in struct buf: b_iocmd. The b_iocmd is enforced to have exactly one bit set. B_WRITE was bogusly defined as zero giving rise to obvious coding mistakes. Also eliminate the redundant struct buf flag B_CALL, it can just as efficiently be done by comparing b_iodone to NULL. Should you get a panic or drop into the debugger, complaining about "b_iocmd", don't continue. It is likely to write on your disk where it should have been reading. This change is a step in the direction towards a stackable BIO capability. A lot of this patch were machine generated (Thanks to style(9) compliance!) Vinum users: Greg has not had time to test this yet, be careful.
|
#
da8bb3a3 |
|
17-Mar-2000 |
Mike Smith <msmith@FreeBSD.org> |
Update to the latest development version of the Mylex driver. Changes in this version include: - Support for version 2.x firmware (2.42 or later recommended). This means we are the only open-source driver supporting these adapters. This code has only been tested on a Digital KZPCA adapter in an Alpha system, but is believed to be correct. NOTE: EISA adapters are not yet supported. - Support the BIOS/Firmware initialisation handshake protocol. This allows the driver to bring the card up to operational state even if the BIOS can't be run (eg. if it's an x86 BIOS in an Alpha system). - A working command pasthrough interface. This allows a user-space configuration tool (under development) to issue arbitrary commands to the controller or to devices in the system.
|
#
b9256fe3 |
|
24-Dec-1999 |
Mike Smith <msmith@FreeBSD.org> |
Fix the firmware build number output (again).
|
#
1a5bb1b6 |
|
24-Dec-1999 |
Mike Smith <msmith@FreeBSD.org> |
Cosmetic fix; get the firmware build code and customisation tag the right way around. Submitted by: "Chris D. Faulhaber" <jedgar@fxp.org>
|
#
9eee27f1 |
|
21-Dec-1999 |
Mike Smith <msmith@FreeBSD.org> |
Updates resulting from new documentation from Mylex and some cleaning: - Don't keep private copies of some of the data fields from the ENQUIRY and ENQUIRY2 commands. Instead, standardise on the ENQUIRY2 command for initial adapter information, and keep a copy of the entire structure. Refer to it where appropriate. - Move all of the controller description functionality into a new function. Print lots more controller data if bootverbose is set. Add knowledge of the DAC960 PR, PT, PTL0 and PRL controllers, rename the 960PTL -> PTL0 and 1100P -> 1100PVX. - Correctly terminate an error message. The controller interface procedures have been reviewed against the Mylex-supplied documentation; no changes appear necessary at this time.
|
#
72c10feb |
|
12-Dec-1999 |
Peter Wemm <peter@FreeBSD.org> |
time_t is an int on the Alpha, not long.
|
#
5792b7fe |
|
10-Dec-1999 |
Mike Smith <msmith@FreeBSD.org> |
Major update to the Mylex DAC960 driver adding new hardware support and fixing some major bugs. - Add support for the v5 firmware interface, used by the DAC1164P (tested) and AcceleRAID 352 (untested but should work). We now cover all of the Mylex family's protocols except for v2 (used by EISA and Alpha-compatible cards). - Fix an accounting bug which resulted in endless 'poll still busy' messages. In situations of high controller load the count of poll commands could be incremented without actually successfully launching a command. This totally removes the accounting for status poll commnads; it was its own worst enemy. - Add some simple reentry prevention locks to processing of the waiting and completed command queues to prevent races which could result in I/O being done or completed twice (both are fatal). This highlights a need for simple locking primitives in both the UP and SMP kernels. - Streamline the handling of command completion to reduce the amount of redundant work being done. Remove the code which tests for commands that have gone missing in action; nobody has ever seen one of these and it wouldn't have worked properly anyhow. - Handle disconnection of drives from the controller in the detach, not shutdown method. This avoids problems flushing the cache in a panic when a drive is mounted. - Don't call bus_generic_detach when disconnecting drives; it doesn't actually do anything useful. - Increment the log message index regardless of whether we actually retrieved one or not. If we run into a message that we can't fetch, we don't want to spin endlessly complaining about the fact. - Don't assume that interrupts will work when we're flushing the controller. We may think they are enabled, but in eg. a panic situation the controller may not be able to deliver an interrupt.
|
#
fe0d4089 |
|
03-Dec-1999 |
Matthew N. Dodd <mdodd@FreeBSD.org> |
Remove the 'ivars' arguement to device_add_child() and device_add_child_ordered(). 'ivars' may now be set using the device_set_ivars() function. This makes it easier for us to change how arbitrary data structures are associated with a device_t. Eventually we won't be modifying device_t to add additional pointers for ivars, softc data etc. Despite my best efforts I've probably forgotten something so let me know if this breaks anything. I've been running with this change for months and its been quite involved actually isolating all the changes from the rest of the local changes in my tree. Reviewed by: peter, dfr
|
#
97adfbaf |
|
01-Nov-1999 |
Mike Smith <msmith@FreeBSD.org> |
Correctly compute the block count. In reality, it seems that the controller will never return the command if it's not exactly a multiple of a block in size. Cosmetic formatting for RAID level output.
|
#
4b006d7b |
|
26-Oct-1999 |
Mike Smith <msmith@FreeBSD.org> |
Move some hardware-related items to the hardware-related header. Shift to using the same queueing strategy that the amr driver uses. Some simple tests indicate that we use about 2% of the CPU at around 500tps with the controller completely saturated with I/O.
|
#
cd4ace0c |
|
22-Oct-1999 |
Mike Smith <msmith@FreeBSD.org> |
Use the physical block number, not the logical block number, for I/O operations. The latter only works where the partion begins at the bottom of the disk. Whoops. Submitted by: Chris Csanady <cc@137.org>
|
#
33c8cb18 |
|
15-Oct-1999 |
Mike Smith <msmith@FreeBSD.org> |
Use a much larger buffer for message log retrieval until we are sure that 32 bytes is safe. Handle successful completion of message log retrieval commands. With these changes, the driver correctly handles the consequences of drive death and replacement in a reliable array. Note that the massive backlog of I/O during handling of such an event can kill the system if softupdates is enabled.
|
#
466454bd |
|
15-Oct-1999 |
Mike Smith <msmith@FreeBSD.org> |
Fix mlx_diagnose_command so that it actually works. I can't believe this has been broken since implemented.
|
#
f01f2af6 |
|
15-Oct-1999 |
Mike Smith <msmith@FreeBSD.org> |
Save the drive device_t correctly so we can print it later. The drive number is 5 bits, not 4, in the read/write command.
|
#
f6b84b08 |
|
13-Oct-1999 |
Mike Smith <msmith@FreeBSD.org> |
Add support for the version 4 firmware interface and the DAC960 PG and PJ cards. This will probably also support the AcceleRAID and eXtremeRAID cards, but nobody has volunteered one for testing, so I haven't enabled their PCI device IDs. Slightly clean up communication between the disk devices and the controller device as per new practice, and move some more register- related items int mlxreg.h from mlxvar.h. Remove some unnecessary read-modify-write operations to the card control registers; they don't behave like that. Increase the status polling interval to 10 seconds. It's still possible to load the card up to the point where a status poll will find the previous poll still running, but this will reduce the incidence of complaints.
|
#
1ac4b82b |
|
06-Oct-1999 |
Mike Smith <msmith@FreeBSD.org> |
This is a driver for the Mylex DAC960 family of integrated RAID controllers. It currently supports the P, PL, PD and PU variants, with more to be supported shortly.
|