Commit Graph

528 Commits

Author SHA1 Message Date
sos
d6fede3824 Use %02d in track numbers, so that 1 is 01, much easier for scripts 2002-05-28 17:39:17 +00:00
bde
9b3a249b6b Fixed printf format errors which apparently crept in while -Wformat was
disabled for gcc-3.
2002-05-25 11:18:03 +00:00
sos
43293f1c75 Dont panic if only one disk on a channel can do tagged queueing.
MFC:	asap
2002-05-23 08:17:16 +00:00
mike
99e543a853 Move the new byte order function prototypes from <sys/param.h> to
<sys/endian.h>.  This puts us in line with NetBSD and OpenBSD.
2002-04-26 22:48:23 +00:00
sos
57865251c8 Fix the breakage of tagged queueing that the busdma integration
introduced. Since its now only possible to have one DMA control
block at a time, we move the setup to dmastart instead.
2002-04-18 19:11:45 +00:00
sos
b45627b32f Add support for the nVIDIA nForce ATA controller.
Collapse the VIA/AMD/nVIDIA support code into one, they are
created more or less equal anyway..
2002-04-16 08:30:51 +00:00
sos
1e8f208d95 Add a couble more Promise chip ID's. 2002-04-12 14:10:19 +00:00
sos
05bab27f80 Add yet another chip ID for a Promise TX2 chip. 2002-04-11 11:04:23 +00:00
sos
03183c74c3 Only calculate Promise magic if a device is there for info. 2002-04-11 08:52:32 +00:00
sos
8928105d97 Fix the FreeBSD native ATA RAID code a bit. 2002-04-10 11:18:07 +00:00
sos
5b5bb6df40 Add yet another ATA133 Promise chip. 2002-04-07 07:53:34 +00:00
sos
7c1178a001 Unlock the channel again if an ata_reinit() fails. 2002-04-05 18:37:04 +00:00
sos
0eb324033d Change option ATA_ENABLE_BUSMASTER into ifdef __sparc64__ 2002-04-05 18:05:17 +00:00
sos
dfb0853c77 Cleanups. 2002-04-05 18:04:05 +00:00
sos
4059babc8f Dont allow to detach twice. 2002-04-05 18:02:33 +00:00
sos
09d26f1006 Add forgotten ATA_UNLOCK_CH when getting status from non-existing
enclosure.
2002-04-05 15:58:45 +00:00
sos
0d2605253b Make the ATA driver compile & work on the sparc64 platform.
Initial work & code by tmm.

Lots of changes and rearrangements by yours truely to make busdma
be a little less a PITA (but I still dont like it).
2002-04-05 13:13:56 +00:00
sos
9bb1e67e7e Correct the Northbridge test on the new ATA133 VIA's
Misc cosmetics now I'm there.
2002-04-02 16:45:06 +00:00
sos
9b962a4e9b Add get-status to the ATA RAID subsystem. 2002-04-02 13:48:17 +00:00
phk
4d586060a3 Retire the bogus ioctl DIOCGPART in toto.
Once again we can notice that badly thought out hacks ferment and infect
far more code than initially expected.

Sponsored by:	DARPA and NAI Labs.
2002-04-02 11:52:13 +00:00
jhb
dc2e474f79 Change the suser() API to take advantage of td_ucred as well as do a
general cleanup of the API.  The entire API now consists of two functions
similar to the pre-KSE API.  The suser() function takes a thread pointer
as its only argument.  The td_ucred member of this thread must be valid
so the only valid thread pointers are curthread and a few kernel threads
such as thread0.  The suser_cred() function takes a pointer to a struct
ucred as its first argument and an integer flag as its second argument.
The flag is currently only used for the PRISON_ROOT flag.

Discussed on:	smp@
2002-04-01 21:31:13 +00:00
phk
ef82a51634 Here follows the new kernel dumping infrastructure.
Caveats:

The new savecore program is not complete in the sense that it emulates
enough of the old savecores features to do the job, but implements none
of the options yet.

I would appreciate if a userland hacker could help me out getting savecore
to do what we want it to do from a users point of view, compression,
email-notification, space reservation etc etc.  (send me email if
you are interested).

Currently, savecore will scan all devices marked as "swap" or "dump" in
/etc/fstab _or_ any devices specified on the command-line.

All architectures but i386 lack an implementation of dumpsys(), but
looking at the i386 version it should be trivial for anybody familiar
with the platform(s) to provide this function.

Documentation is quite sparse at this time, more to come.

Details:

ATA and SCSI drivers should work as the dump formatting code has been
removed.  The IDA, TWE and AAC have not yet been converted.

Dumpon now opens the device and uses ioctl(DIOCGKERNELDUMP) to set
the device as dumpdev.  To implement the "off" argument, /dev/null
is used as the device.

Savecore will fail if handed any options since they are not (yet)
implemented.  All devices marked "dump" or "swap" in /etc/fstab
will be scanned and dumps found will be saved to diskfiles
named from the MD5 hash of the header record.  The header record
is dumped in readable format in the .info file.  The kernel
is not saved.  Only complete dumps will be saved.

All maintainer rights for this code are disclaimed: feel free to
improve and extend.

Sponsored by:   DARPA, NAI Labs
2002-03-31 22:37:00 +00:00
sos
d5be9373bd ATA100 is allowed on the HPT chips rev >= 3 2002-03-31 13:33:55 +00:00
sos
23978f436e Remove debug output in last commit. 2002-03-30 16:51:47 +00:00
sos
65dd7ee2d6 Add support for getting status (fan, temp, 5V and 12V levels) from
Promise Superswap enclosures.

Sponsored by: Advanis
2002-03-30 16:36:41 +00:00
sos
0fb3c06959 Use the raid lun not the magic when writing Promise config. 2002-03-30 11:15:46 +00:00
sos
b9999a8c7c Fix a braino, only update LED's when a device is present. 2002-03-28 11:48:36 +00:00
sos
133e8d001c OK, the old HighPoint BIOS's are braindead, they have
a really warped way of things. Anyway deal with it,
and luckily the newer HighPoint BIOS's doesn't mind..

No brownies to HighPoint for that...
2002-03-27 22:05:38 +00:00
sos
dab6051552 Fix support for multi CD changers, it was as broken as my old NEC :)
MFC: ASAP

:
2002-03-27 19:47:52 +00:00
sos
3bb9163271 Add support for creating/deleting ATA RAID's.
This completes the ATA RAID support, since all functions to manipulate
the RAID are accessible from FreeBSD, the BIOS on the ATA RAID cards
are only nessesary for booting.

I decided to allow for creation of ATA RAID's on any ATA controller, but
please keep in mind the restrictions on that. Due to the BIOS not
knowing what to do you can only boot from a RAID1 or the first disk
in a SPAN, if its not located on a "real" ATA RAID controller like
the Promise or Highpoint controllers.

Sponsored by: Advanis
2002-03-27 10:58:59 +00:00
sos
cf912d2e7a Misc little cleanups. 2002-03-26 09:31:22 +00:00
sos
87ccc1e6f1 Add AMD 768 support. 2002-03-24 12:44:23 +00:00
peter
83e5f60722 Add some break's after default: in the end of switch statements to
keep gcc-3.1+ happy:
ata-all.c:410: warning: deprecated use of label at end of compound statement
ata-all.c:587: warning: deprecated use of label at end of compound statement
ata-raid.c:99: warning: deprecated use of label at end of compound statement
ata-raid.c:151: warning: deprecated use of label at end of compound statement
2002-03-19 12:14:14 +00:00
sos
7e8e9c2947 Cleanup the chipset setup a bit.
Add some (for all I know unneeded) setup code for the rosb4.
2002-03-18 13:56:44 +00:00
sos
7f79fcc8da Add support for the ServerWorks CSB5 chips 2002-03-18 12:13:13 +00:00
sos
515ba9517a Add more functionality to the CDIOCREADSUBCHANNEL ioctl.
PR: 26644
2002-03-16 15:56:54 +00:00
sos
2b25f973e2 Fix 64bit arch problems. 2002-03-16 15:55:20 +00:00
sos
7a533342ff Remove useless splXXX set. 2002-03-16 15:54:41 +00:00
sos
66c17217fb Update to the RAID1 rebuild code.
Run rebuild as a background process.

Sponsored by: Advanis
2002-03-15 15:39:54 +00:00
sos
33c882b814 Unbreak the probing of some CDROM drives. 2002-03-14 21:35:55 +00:00
sos
2bbd43c8f1 Add new support for locking an ATA channel and use that throughout
the ATA/ATAPI driver. This solves the concurrency problem with
the new GEOM code, and also cuts a good deal of the patch size
in the upcoming MFC.
2002-03-11 21:04:32 +00:00
sos
2420c1b451 Silence a warning when compile without atapi devices. 2002-03-10 21:03:04 +00:00
sos
259c8e6d53 Even more Highpoint RAID support.
Fix the 80pin cable detection system.
2002-03-08 21:36:49 +00:00
sos
0b0678b193 Support newer Highpoint BIOS's extended config. 2002-03-08 11:33:52 +00:00
sos
a4b9448d10 cosmetics 2002-03-08 11:31:37 +00:00
sos
15f98e2cbc Oops I mixed up the patch for -current & -stable, sorry .... 2002-03-07 19:20:23 +00:00
sos
fb90ee5e0b Minor cosmetic changes to minimise diffs for MFC. 2002-03-07 16:34:19 +00:00
sos
23058273ee Fix a couble of bugs in the rebuild code, return errors properly. 2002-03-07 16:32:21 +00:00
bde
f639b7649f Fixed a printf format error again. Rev.127 was clobbered in rev.1.128
by removing parentheses.  The main bug is in gcc: on machines with
64-bit longs and 64-bit long longs,

    (unsigned long long)rdp->total_sectors / ((1024L * 1024L) / DEV_BSIZE))

has type plain unsigned long instead of the correctly promoted type
unsigned long long, so it can not be printfed using %llu format.  Even
1ULL / 1L is mispromoted.  Anyway, casting the correct operand
automatically avoids the problem.  We do not want to to pessimize the
division; we just want to convert to a common maximal type for printing.
2002-03-06 06:33:33 +00:00
sos
9efc11065b Misc little cleanups:
Link if only ATAPI device in kernel config
Remove unused #includes
Rearrange a bit in ata-raid to make diff against -stable smaller
Enable wc as default again, dunne how this happend...
2002-03-05 09:24:19 +00:00
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
sos
88f682cd6b Add kernel side support for DAO burning. 2001-09-10 11:43:20 +00:00
sos
7ebc549651 Fix the size of medium code, the old one failed for DVD's.
This might introduce problems on normal CD's (again) sigh...
2001-09-06 17:44:04 +00:00
sos
d2f14e461c Fix verbose probe message.
PR: 29360
2001-09-06 09:50:25 +00:00
sos
a4f76035a1 Add support for set/getting the region code on DVD drives.
PR: 28604
2001-09-06 08:52:28 +00:00
sos
774f09de4f Make "atapi less" kernels link again.
Question is if we should allow the ioctl only interface to be
created if atapi devices are present, but no driver linked in....
2001-09-01 08:47:11 +00:00
sos
6446a5fe80 Add support for sending ATAPI commands via ioctl. 2001-08-30 09:47:17 +00:00
sos
f241788ed6 Update the Promise TX2 code to DTRT and not what I guessed earlier.
Allow tagged queing on the Promise TX2 as it seems to work.

Cudos to promise for making the most simple to program ATA chip.
2001-08-28 13:36:06 +00:00
sos
6858a135d8 Add support for yet another VIA '686 combination. 2001-08-28 08:59:17 +00:00
sos
a70c5b3073 Add support for the newer Promise chips here as well. 2001-08-21 12:23:31 +00:00
sos
20971d752c Finally commit some of the minor things I've collected over the last month(s):
Add tagged queueing support for new IBM drives.

Add support for Yet Another Promise ATA 100 chip.

Flush disk cache on close.

Dont flush the disk cache on BIO_ORDERED anymore.

Cleanup the tests for DMA on ATAPI devices.

Allow to share ALL irq's even the std irg 14 & 15.

Fix calculation bug in end of media code on CD's.

Add REZERO on opening a CDR/CDRW.

Cleanup ataioctl a bit.
2001-08-21 11:35:47 +00:00
jhb
2ff1c253cd - Remove asleep(), await(), and M_ASLEEP.
- Callers of asleep() and await() have been converted to calling tsleep().
  The only caller outside of M_ASLEEP was the ata driver, which called both
  asleep() and await() with spl-raised, so there was no need for the
  asleep() and await() pair.  M_ASLEEP was unused.

Reviewed by:	jasone, peter
2001-08-10 06:37:05 +00:00
tmm
15b6c360f7 Disallow ATAPI CD transfers that are not a multiple of the device block
size (previously, the transfer size would be rounded up to a multiple of
the block size, which would overflow the buffer).
This fixes panics when doing things like trying to mount audio CD's.

PR:		kern/21946
Review Timeout:	sos
2001-07-29 21:01:13 +00:00
kris
6fde30d182 s/adress/address/
Inspired by:    OpenBSD
MFC After:      1 week
2001-07-23 12:05:27 +00:00
sos
f957b8c1d7 Add support for yet another Promise ATA100 variant
Minor fix to the VIA setup code.
2001-06-08 09:51:33 +00:00
peter
4b91e2ecf0 "Fix" the previous initial attempt at fixing TUNABLE_INT(). This time
around, use a common function for looking up and extracting the tunables
from the kernel environment.  This saves duplicating the same function
over and over again.  This way typically has an overhead of 8 bytes + the
path string, versus about 26 bytes + the path string.
2001-06-08 05:24:21 +00:00
sos
21b6fc6657 Quiet the READ_TOC errors that can appear on empty CDR's.
Assure cur_write_speed can be no less than 177 to avoid divide by 0 error.
2001-06-07 07:21:20 +00:00
peter
c1df44ae51 Back out part of my previous commit. This was a last minute change
and I botched testing.  This is a perfect example of how NOT to do
this sort of thing. :-(
2001-06-07 03:17:26 +00:00
peter
0732738ec4 Make the TUNABLE_*() macros look and behave more consistantly like the
SYSCTL_*() macros.  TUNABLE_INT_DECL() was an odd name because it didn't
actually declare the int, which is what the name suggests it would do.
2001-06-06 22:17:08 +00:00
sos
38d10280a6 Dont try to play tracks outside whats on the media.
PR 26647
2001-05-30 08:06:57 +00:00
sos
9a9b22ddc1 Update to support the NEC NR-7500A burners. 2001-05-30 07:28:57 +00:00
sos
0769bdabee Fix bug in debug code 2001-05-29 17:27:36 +00:00
sos
f6e371bd1f Fix for the fixate problem on the Yamaha burners. 2001-05-29 17:19:42 +00:00
sos
892af87533 Update to use the changed ioctl interface. 2001-05-17 10:29:30 +00:00
sos
c03c679bb8 Add support for the AMD 766 southbridge incl ATA100 support
Fix ATA66 mode for the AMD756, the timing was way to slow
2001-05-14 18:38:22 +00:00
sos
1029023aa3 Remove the error var, it hides the real one.
PR 27213.

BTW the CDIOCREADAUDIO ioctl is deprecated, its not longer needed
and was an ugly hack from start on.
2001-05-09 13:01:10 +00:00
phk
d95099399d Make the disk mini-layer check for and handle zero-length transfers
instead of the underlying drivers.
2001-05-06 21:55:22 +00:00
phk
16caeec9b0 Actually biofinish(struct bio *, struct devstat *, int error) is more general
than the bioerror().

Most of this patch is generated by scripts.
2001-05-06 20:00:03 +00:00
sos
036e63f67b Move the disklabel construction to the attach function instead of
in open. This prevent panics when a the disklabel is accessed on
an ATA-RAID subdisk.
2001-04-27 19:47:33 +00:00
sos
ac8d33fb1c Add support the the Intel ICH2 mobile
Tidy chip name printing a bit.
2001-04-16 21:22:34 +00:00
sos
90bd76706c The VIA 586 chip does UDMA from rev 0x3 onwards.
MFC candidate!
2001-04-14 18:33:08 +00:00
sos
8c75c79c0f Add ATA66 and ATA100 mode support for Acer chipsets.
MFC candidate :)
2001-04-06 19:18:35 +00:00
sos
5c21464a92 More error handling cleanups. 2001-04-05 15:45:53 +00:00
sos
ca499f9265 On burners that return faulty ready on fixate, wait for the
expected fixate time before returning.

Dont print error messages to the console on READ_TOC on
a blank media.
2001-04-05 11:17:33 +00:00
sos
a49e25eb97 Add new flag ATPR_F_QUIET to atapi_request.
Cleanup error handling.
2001-04-05 11:15:24 +00:00
sos
e7caecea74 Correct the sysctl names to match the tuneables.
Proberly flush the tag queue on detach.
2001-04-05 11:13:07 +00:00
ps
2f970352f7 Last commit was broken.. It always prints '[CTRL-C to abort]'.
Move duplicate code for printing the status of the dump and checking
for abort into a separate function.

Pointy hat to:	me
2001-03-28 01:37:29 +00:00
sos
27b491435b Use PLAY_MSF instead of PLAY_BIG when doing audio play.
The fixes the problem of PLAY_BIG not being implemented on
some modern drives.

The problem now is that some old drives use BSD encoding
in the MSF case, which they dont tell, and which is also
not according to spec *sigh*. Hopefully there are not
too many of those still alive, or I hereby grant
license to kill the firmware writers that wrote the mess.
2001-03-27 10:22:50 +00:00
ps
8b18de63df Change the dump routines to only abort if control-c is pressed.
If any other key is pressed, print a message stating that control-c
is how to abort.

Reviewed by:	peter
2001-03-27 06:24:08 +00:00
phk
c47745e977 Send the remains (such as I have located) of "block major numbers" to
the bit-bucket.
2001-03-26 12:41:29 +00:00
sos
7f6652e832 Add bandaid to get ISA only systems to link. 2001-03-24 16:19:07 +00:00
sos
e6b6652c8f Fix the problem with some drives not reporting back when the
are busy blanking and erasing CD-RW media.
This fixes burncd's premature returns from blanking/erasing
that caused trouble.
2001-03-23 20:55:28 +00:00
sos
a159b331cb The size of the disk can't be gotten reliably with the read capacity
command, so use the info from the TOC instead.
2001-03-21 14:59:38 +00:00
sos
cbf67f9c44 Set the device names as early as possible. 2001-03-21 11:49:07 +00:00
sos
988827577e Handle the case where the last piece of a RAID0 (striped) disk is
not of interleave size.
2001-03-21 11:48:14 +00:00
sos
d4ebcec25e Cleanup the diskerr messages a bit. 2001-03-21 11:46:15 +00:00
sos
04511cf081 Do not change/get mode on a nonexisting device. 2001-03-21 11:44:58 +00:00
sos
d98c5293d7 Try not to engage to ATA channels that are disabled by the BIOS. 2001-03-19 13:31:58 +00:00
sos
6f24d923a7 On open create all the CD physical track devices according to the
TOC read from the CD, instead of cloning them when asked to.
2001-03-19 12:02:36 +00:00
sos
c17460afb5 Only allow root to attach/detach/etc ATA/ATAPI devices. 2001-03-19 11:55:13 +00:00
sos
892b1c2c27 Add sysctls for reading the tunables as suggested by des.
Minor cleanups plus checks of the ->active state.
Cosmetics.
2001-03-19 08:04:54 +00:00
sos
58cfc0f780 Cleanup the alloc/release code a bit.
Fix length error on the bmio resource.

Fix the irq release code, zero out free'd irq.
2001-03-19 08:02:42 +00:00
sos
8dfcbabba9 Cosmetic changes. 2001-03-19 07:48:19 +00:00
sos
23f582a09c Provide the interface to atacontrol and associated logic.
see atacontrol(8) for more.

Also the ATA_ENABLE_ATAPI_DMA, ATA_ENABLE_WC and ATA_ENABLE_TAGS
options are gone, use the tuneables listed in ata.4 instead from
the loader (this makes it possible to switch off DMA before the
driver has to touch the devices on broken hardware).
2001-03-15 15:36:25 +00:00
sos
f410564811 Minor cleanup to the previous commit:
Print what devices went away and which arrived.

Avoid timeout loop on missing status.
2001-03-14 14:00:09 +00:00
sos
86f8ee8055 Add support for the IOMEGA Clik!
IOMEGA deserves a medal for making the most nonstandard ATAPI
devices, if they are ignorant or just not smart enough I don't
know, but somebody should help them out of their misery...
2001-03-14 12:12:46 +00:00
sos
4659caa469 Refine the detach/attach code.
Proberly fail outstanding bio requests on devices that are detached.

This makes it possible to change between disk/cdrom/dvd/whathaveyou
in a notebook, just by suspending it, changing the device in the
bay (or what you model calls it), unsuspend and the ATA driver
will figure out what disappeared and properly fail those, and attach
any new devices found.
2001-03-14 12:05:44 +00:00
sos
295e425b3c Split out the ata probes in seperate files for each bus type. 2001-03-06 21:43:46 +00:00
sos
a0c9a8a692 Cosmetic change to the probe printf's 2001-03-06 09:42:46 +00:00
markm
899b5e1ead Set the interrupt-harvesting bit for those hardware items that I
can actually test.

Nothing will happen until the sysadmin turns on intr-harvesting
on her computer.
2001-02-18 18:02:15 +00:00
sos
a806d6f3e2 Oops, its no longer NISA its DEV_ISA, sigh.... 2001-02-12 14:29:13 +00:00
sos
2fbc9d3d24 Dont rely on isa includes to get at the std port adresses. 2001-02-12 10:18:59 +00:00
sos
0f5dd9a952 Print out sensekey specifik values if set on error 2001-02-12 08:34:07 +00:00
sos
797f0747f1 Properly report the VIA '586 type. 2001-02-12 08:33:28 +00:00
sos
3260df3778 Fix a memory leak.
Pointed out by: Asmodai
2001-02-08 21:59:27 +00:00
sos
4793d374a0 Introduce busspace instead of the good old in/out instructions.
Not pretty but it works (I hope)...
2001-02-06 16:44:25 +00:00
sos
29e0bb6e63 Damn! that was the wrong patch! get it right this time.... 2001-02-06 12:49:33 +00:00
sos
00a84250a0 Fix the clone functionality in atapi-cd, it didn't work for
devs other than the first, and allowed to clone a nonexistent
device..
2001-02-06 12:41:53 +00:00
sos
ab7cbc336e Add option ATA_ENABLE_WC for enabling write caching (now off by default). 2001-01-29 18:00:35 +00:00
peter
10126ce00c Convert ata and atapi #if NATA* > 0 to options instead. Stop config
trying to count the number of ata* devs since they were not used anyway.
2001-01-29 10:01:11 +00:00
peter
b7edc4f4e3 Send "#if NISA > 0" to the bit-bucket and replace it with an option.
These were compile-time "is the isa code present?" tests and not
'how many isa busses' tests.
2001-01-29 09:38:39 +00:00
sos
4df68a4783 Correct botchup in last commit that made older VIA chips fail... 2001-01-21 16:13:03 +00:00
peter
f733c06260 Zap #include "apm.h" - it was not used. 2001-01-19 13:53:54 +00:00
sos
c33caa8ae0 When blocksize is set to 2352, alwas read 2352 bytes.
This means it might read more than just data, but that is exactly
what we want here (for reading VCD's fx)
2001-01-18 15:20:18 +00:00
sos
70f7bdb079 Add first cut support for the ATA100 capable VIA82c686b. 2001-01-17 09:22:13 +00:00
sos
0feaf5cc8a Use prober atomic operations when test&set'ing ->active.
This turns some of my lockups under SMP into spontanious reboots...
2001-01-14 19:36:20 +00:00
sos
71db843991 Add session argument to *close_disk, allowing to set session type on fixate.
Add support for different blank/erase types.

Update headers.
2001-01-10 19:19:47 +00:00
sos
74fb2ac9f3 Back out the "close tray on open" feature, its not clear what
color it should have...
2001-01-08 21:34:25 +00:00
sos
6efbd08cc6 Try better this time at a patch that properly backspeeds on the Acer chips. 2001-01-07 17:00:09 +00:00
sos
d30bf90c25 On open try to close the drivetray and wait for drive ready.
Idea from PR24109 but implemented differently
2001-01-07 16:48:56 +00:00
sos
446e8349b4 Oops the test in the Acer code should be >= not >. 2001-01-05 15:23:06 +00:00
sos
a0dfbca3a8 Add support for using BurnProff(tm) on drives that support it.
This is experimental as I dont have such a drive, reports welcome!!
2001-01-04 12:43:39 +00:00
sos
9e93a7456b Proberly calculate the RAID structure on the Promise Fasttrak. 2001-01-04 09:11:00 +00:00
sos
1b1f7bb479 Use M_ZERO flag on malloc when approbiate. 2000-12-26 12:05:49 +00:00
sos
d65168d03e Update the burncd interface a bit, dont block the ATA channel on
blank & fixate commands and provide a progress interface for the
blank command (for now)
2000-12-26 11:55:44 +00:00
sos
8db92e907c Use diskerr for printing disk hard/soft errors. 2000-12-26 11:49:57 +00:00
sos
787bf26011 Proberly back down DMA modes on the Acer Aladdin. 2000-12-19 10:37:03 +00:00
phk
c3f2ee9700 Staticize some malloc M_ instances. 2000-12-08 20:09:00 +00:00
sos
dd1e6b9d4b Fix a braino .. 2000-11-18 12:14:35 +00:00
sos
a21e334aaa Put the probe verboseness behind bootverbose 2000-11-16 10:52:00 +00:00
sos
615c8b9aa9 Only offset raid disks > 1 on the HPT, this should solve the
boot problems..
However this demands that dangerously dedicated disks use an
offset of at least 10 from the start to not overwrite the
raid config sector on the HPT...
2000-11-12 20:45:14 +00:00
sos
c2971789cc Better handling of immediate commands, mainly to solve timeouts
in the atapi-tape code...
2000-11-12 20:41:24 +00:00
sos
d17388a5b2 Hopefully fix the probing problems that caused lost slaves etc.. 2000-11-12 20:40:05 +00:00
sos
1831e285db Rearrange the timeouts in the reset code a bit, some ATAPI devices
are picky about this.
2000-11-08 21:25:43 +00:00
sos
e9a27b9db9 Hopefully solve the lost slave problem. 2000-11-08 19:31:39 +00:00
sos
4db8e6376f Fix breakage on some ATA chips that dont have busmastering set.
Tidy up the probe a bit..
2000-11-03 17:09:34 +00:00
sos
2fb0de9467 Update the config gathering code for both Promise & HPT 2000-11-01 17:35:44 +00:00
sos
0b40116611 Try a bit harder to test for ATA/ATAPI HW to probe, this is to avoid
some of the false comrades some devices fakes...
2000-10-30 20:45:24 +00:00
sos
32aa560075 Update the Promise RAID code, there are differences between BIOS
version unfortunately...
2000-10-30 17:11:40 +00:00
sos
cc816837b4 Fix the PCCARD ATA breakage..
This is due to a bug that has been in there since Warneer did the
PCCARD stuff, the altioaddr is not offset 8 its offset 14 from
the base address.
Also only probe the master device, no known PCCARD ATA thingies
has a slave AFAIK..
2000-10-30 09:36:40 +00:00
phk
ff5cdfae2d Move suser() and suser_xxx() prototypes and a related #define from
<sys/proc.h> to <sys/systm.h>.

Correctly document the #includes needed in the manpage.

Add one now needed #include of <sys/systm.h>.
Remove the consequent 48 unused #includes of <sys/proc.h>.
2000-10-29 16:06:56 +00:00