Revision tags: release/4.2.0 |
|
#
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
|
Revision tags: release/4.1.1_cvs |
|
#
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.
|
Revision tags: release/4.1.0, release/3.5.0_cvs |
|
#
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-aligne
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.
show more ...
|
#
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
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
show more ...
|
#
5d278f5c |
| 21-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 con
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.
show more ...
|
#
8177437d |
| 15-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 conve
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
show more ...
|
#
421f2f7d |
| 11-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
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.
show more ...
|
#
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 w
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.
show more ...
|
#
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 t
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.
show more ...
|
Revision tags: release/4.0.0_cvs |
|
#
da8bb3a3 |
| 18-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-s
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.
show more ...
|
#
b9256fe3 |
| 25-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 |
| 22-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
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.
show more ...
|
Revision tags: release/3.4.0_cvs |
|
#
72c10feb |
| 12-Dec-1999 |
Peter Wemm <peter@FreeBSD.org> |
time_t is an int on the Alpha, not long.
|
#
5792b7fe |
| 11-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 (unt
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.
show more ...
|
#
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
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
show more ...
|
#
97adfbaf |
| 02-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 outpu
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.
show more ...
|
#
4b006d7b |
| 27-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 aro
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.
show more ...
|
#
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@1
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>
show more ...
|
#
33c8cb18 |
| 16-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
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.
show more ...
|
#
466454bd |
| 16-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 |
| 16-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 |
| 14-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
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.
show more ...
|
#
1ac4b82b |
| 07-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.
|
#
cbd59a4f |
| 08-Sep-2009 |
Oleksandr Tymoshenko <gonzo@FreeBSD.org> |
- MFC from head@196987
|