528 Commits

Author SHA1 Message Date
sos
d3537063e7 Forgot this litte patch, scale the individual disk size from the
arrays total size depending on width of the array.
2002-03-03 16:36:19 +00:00
sos
8703cd1dab Major update of the ATA RAID code, part 3:
Add code to properly detach/attach disks that are part of a RAID.

Mark a disk that is attached on an ATA channel belonging to a
RAID as a spare disk that can be used for rebuilding failed RAID1's.

Add support for rebuilding failed RAID1's.

Several fixes to the detach/attach code.

For replacing a disk in a failed RAID1 do the following:

Find the controller channel# of the failed disk.

Exec 'atacontrol detach <channel#>' to free the disk from the system.

Replace the failed disk with a new one of at least the same size.
If your have your disks in drawers/enclosures this can be done with
the system still running.

Exec 'atacontrol attach <channel#>' to add the disk to the system and
mark it as a valid spare for rebuild.

Exec 'atacontrol rebuild <array#>'

The system will rebuild the array on the fly, the array can still
be used during this, although with slower performance.

Please let me know of any problems with this!

Sponsored by: Advanis Inc.

MFC after: 2 weeks
2002-03-03 15:36:21 +00:00
bde
6c8918fd14 Fixed a printf format error. 2002-03-02 10:54:33 +00:00
sos
9c1ffb6f35 Finish phk's previous removal of BIO_ORDERED, all code that
depended on ATA_FLUSHCACHE_ON is now useless.
2002-02-24 12:28:24 +00:00
phk
8b5a71f365 GC: BIO_ORDERED going away. 2002-02-22 09:18:46 +00:00
sos
67db33ea3e Add support for the Highpoint HPT372 based cards (rocketraid 133).
HW Sponsored by: Mike Tancsa
2002-02-18 11:57:56 +00:00
sos
c9b72549b1 Fix the problem that some (in my book broken) disks reports
to be able to use 48bit addressing mode, but says the 48bit
size of the disk is 0, which according to spec means it can
address zero sectors in 48bit mode, why then say it supports
48bit mode at all..
2002-02-18 11:52:51 +00:00
sos
c42e91773b Dont try to attach ATA RAID's if none found. 2002-02-16 08:10:24 +00:00
bde
cb8ddb654e Added undocumented options AAC_DEBUG, ACD_DEBUG, ACPI_MAX_THREADS,
ACPI_NO_SEMAPHORES, ASR_MEASURE_PERFORMANCE, AST_DEBUG, ATAPI_DEBUG,
ATA_DEBUG, BKTR_ALLOC_PAGES, BROOKTREE_ALLOC_PAGES, CAPABILITIES,
COMPAT_SUNOS, CV_DEBUG, MAXFILES, METEOR_TEST_VIDEO, NDEVFSINO,
NDEVFSOVERFLOW, NETGRAPH_BRIDGE, NETSMB, NETSMBCRYPTO, PFIL_HOOKS,
SIMOS, SMBFS, VESA_DEBUG, VGA_DEBUG.

Start using #! to comment out negative options and ## to comment out
broken options.

atapi-all.c:
Fixed rotted bits that were hiding under ATAPI_DEBUG.

atapi-cd.c:
#include "opt_ata.h" so that ACD_DEBUG is actually visible.

ata/atapi-tape.c
#include "opt_ata.h" so that AST_DEBUG is actually visible.
2002-02-15 07:08:44 +00:00
sos
79c2c9546e Add support for the Cenatek Rocket Drive. 2002-02-12 16:59:28 +00:00
sos
5eb6e34010 Fix buglets in the ATAPI resume code.
This also fixes an old bug where some ATAPI devices went into
funny mode on an 'atacontrol reinit' command.
2002-02-12 13:21:51 +00:00
sos
334f09ed2a Major update of the ATA RAID code, part 2:
More cleanups of the RAID1 failure mode code.

Add functionality that writes the changed RAID config setup
back to the disks (in controller BIOS specific format), so
that a reboot will make the BIOS pick up the changed config.
2002-02-12 11:35:15 +00:00
sos
030106f833 Add support for the HighPoint HPT374 4 channel ATA chip.
Sponsored by: Isilon Systems.
2002-02-11 15:48:04 +00:00
julian
021d8e63a1 Make LINT compile after fruitless attempts to get the authors
to fix their code.

ata stuff:
Change name of ar_attach to not colide with existing ar_attach in if_ar.c.
usb stuff:
Create a dummy function to satisfy a call to it when in DEBUG mode.
2002-02-06 19:35:37 +00:00
sos
f0704f5ca1 Major update of the ATA RAID code, part 1:
Overhaul of the attach/detach code and structures, there were some nasty
bugs in the old implementation. This made it possible to collapse the
ATA/ATAPI device control structures into one generic structure.

A note here, the kernel is NOT ready for detach of active devices,
it fails all over in random places, but for inactive devices it works.
However for ATA RAID this works, since the RAID abstration layer
insulates the buggy^H^H^H^H^H^Hfragile device subsystem from the
physical disks.

Proberly detect the RAID's from the BIOS, and mark critical RAID1
arrays as such, but continue if there is enough of the mirror left
to do so.

Properly fail arrays on a live system. For RAID0 that means return EIO,
and for RAID1 it means continue on the still working part of the mirror
if possible, else return EIO.
If the state changes, log this to the console.

Allow for Promise & Highpoint controllers/arrays to coexist on the
same machine. It is not possible to distribute arrays over different
makes of controllers though.

If Promise SuperSwap enclosures are used, signal disk state on the
status LED on the front.

Misc fixes that I had lying around for various minor bugs.

Sponsored by: Advanis Inc.
2002-02-04 19:23:40 +00:00
sos
6c8ad084e0 Add support for the Promise TX4.
Rearrange the support for the VIA chips, and add experimental
support for ATA133 on the newest chips.
2002-01-28 13:17:10 +00:00
sos
7b3bdcb03c Add support for pccard.
submitted by: imp
2002-01-28 13:12:16 +00:00
sos
ddf3084aff Update of the VIA 82c686b southbridge data corruption fix, also
include more possible chipset candidates.
2002-01-01 19:58:11 +00:00
sos
2dad4bac47 Add support for even more SiS chipsets.
Misc cosmetics.
2001-12-25 14:44:26 +00:00
sos
2c58902126 Fix yet another fake slave problem for PCCARD devices. 2001-12-25 14:43:08 +00:00
jhb
c9f4dc1859 Display the right message for the SiS 645 chipset.
Submitted by:	Kent Stewart <kstewart@owt.com>
2001-12-19 01:53:11 +00:00
jhb
bf71f604c6 Fix comment for the SiS 645 chipset to be 645 instead of 635. 2001-12-19 01:23:32 +00:00
sos
4688af0be0 Adjust the timings for the SiS chips a bit, also add the SiS 645.
Cosmetics on the Acer chips (print right modes)
2001-12-14 21:28:49 +00:00
sos
e87e06e62b Do be so anal on detach, properly free interrupt even if no devices. 2001-12-14 21:23:19 +00:00
sos
4052a320bb Allow setting the CD type on cue sheets 2001-12-04 21:39:34 +00:00
sos
9f63e0df31 ARG! committed the wrong patch!! I need more sleep :( 2001-12-02 12:19:16 +00:00
sos
481b68dc0f Oops, lost a line in the previous commit. 2001-12-02 12:17:51 +00:00
sos
13750ba11a Initial support for the newer SiS chipsets, based on docs we finally
got from SiS.

This should also close PR 32421 which has patches which seem
to set the timing registers wrongly according to SiS...
2001-12-02 10:48:52 +00:00
sos
f47ddc9968 Add yet another VIA ATA100 southbridge. 2001-11-13 11:37:23 +00:00
sos
4b0b281b00 Fix bogon, free() the right memory type. 2001-11-13 11:33:23 +00:00
ps
d745b728a2 Fix a signed bug in the crashdump code for systems with > 2GB of ram.
Reviewed by:	peter
2001-11-13 01:08:54 +00:00
phk
6d85b02e40 Don't call cdevsw_add(). 2001-11-04 09:09:41 +00:00
ache
980016100e Use devclass_find_free_unit() in ata_pci_add_child() because no more
implicit auto-scanning up present in device_add_child(). Functionally it is
fully equivalent to old code.
2001-11-01 05:21:49 +00:00
des
f95cdc1b96 Don't enable write cacheing on devices that don't support tagged queuing
unless hw.ata.wc is set.

Approved by:	sos
MFC after:	1 week
2001-10-24 18:24:09 +00:00
sos
123757f020 Add a bunch of new PCI ID's for Intel ATA chips. 2001-10-23 09:57:49 +00:00
sos
3024d1d261 Add experimental support for the HighPoint HPT372 ATA133 controller.
Based on docs kindly provided by HighPoint which we thank for
the close cooperation with the FreeBSD project!.
2001-10-23 09:25:57 +00:00
sos
65e00e1e1c Add experimental support for the Promise ATA133 controller.
This might need additional code for hotswapping use, but first
I need to get my hands on actual hw...

Based on docs kindly provided by Promise Inc which we thank for
the close cooperation with the FreeBSD project!.
2001-10-23 08:01:47 +00:00
sos
a96bb8dac0 Make an ATAPI CD device appear as /dev/acdN and the individual
tracks as /dev/acdNtY.

This solves the problems with having to deal with howmany and which
devices are open.

For hysterical reasons ONLY, make a link to both the acdNa & acdNc devices.
2001-10-19 13:34:48 +00:00
sos
f564c6a2da Fix bug introduced by the last commit, the caused some ATAPI
devices to fail to proberly initialize at boot..
2001-10-16 08:07:36 +00:00
mjacob
e338dc78bd Fix it so that it doesn't complain for compiles on alpha- that is, match
format string args to actual args.
2001-10-14 19:44:15 +00:00
sos
910868a68f Update with latest ATA/ATAPI ver 6 rev 2 items. 2001-10-06 11:07:04 +00:00
sos
f5ccb524fc Update the promise raid structure with some of the info I've gathered
before I'm accused of "lending" it from somebody else.
2001-10-04 18:02:26 +00:00
sos
174605ab56 Doh! committed from the wrong tree, this is the right "stuff"... 2001-10-03 11:36:25 +00:00
sos
f6777e1335 Proberly support the Promise TX2/4.
Programming info kindly provided by Daniela Engert <dani@ngrt.de>
2001-10-03 08:27:29 +00:00
sos
f181b807ce cosmetics in the bootverbose probe- 2001-10-03 08:25:37 +00:00
sos
8f9173fea7 Hopefully fix the identify failed on ATAPI slaves on some notebooks. 2001-10-03 08:25:11 +00:00
sos
c1ee14e95c Change the way DAO/TAO mode is init'ed.
Fix a bogon introduced in the previous commit, that broke CDIOREADSUBCHANNEL.
2001-10-01 14:59:52 +00:00
sos
10449f0f1a Add a fix for the VIA82C686B data corruption bug.
This fixed the problem on the 3 platforms I've been able to test on.

I'm still of the oppinion that the BIOS should take care of this,
however some board makers only apply this when they spot a
SBLive! soundcard, but the problem exists even without a SBLive!.

This fix should probably go somewhere else, but for now I'll
keep it here since we havn't got a central place to put
such things.
2001-09-25 17:10:39 +00:00
sos
f16cfad959 Overhaul to minimize stack usage, in some places >2K was used
on the stack *blush*...
2001-09-20 15:25:36 +00:00
julian
5596676e6c 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
2001-09-12 08:38:13 +00:00