The NetBSD Project

CVS log for src/sys/dev/ic/wdcvar.h

[BACK] Up to [cvs.NetBSD.org] / src / sys / dev / ic

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.98.10.2: download - view: text, markup, annotated - select for diffs
Fri Dec 30 14:39:10 2022 UTC (23 months, 1 week ago) by martin
Branches: netbsd-9
CVS tags: netbsd-9-4-RELEASE
Diff to: previous 1.98.10.1: preferred, colored; branchpoint 1.98: preferred, colored; next MAIN 1.99: preferred, colored
Changes since revision 1.98.10.1: +2 -2 lines
Pull up following revision(s) (requested by tsutsui in ticket #1557):

	sys/dev/ic/ahcisata_core.c: revision 1.83
	sys/dev/ic/ahcisata_core.c: revision 1.102
	sys/dev/ata/ata.c: revision 1.164
	sys/dev/ata/ata_wdc.c: revision 1.115
	sys/dev/ata/ata_recovery.c: revision 1.4
	sys/dev/ic/siisata.c: revision 1.42
	sys/dev/ic/wdc.c: revision 1.308
	sys/dev/ic/mvsata.c: revision 1.56
	sys/dev/scsipi/atapi_wdc.c: revision 1.138
	sys/dev/ic/siisata.c: revision 1.49
	sys/dev/ata/atavar.h: revision 1.105
	sys/dev/ata/wd.c: revision 1.460
	sys/dev/ata/ata.c: revision 1.155
	sys/dev/ata/wd.c: revision 1.462
	sys/dev/ata/atavar.h: revision 1.109
	sys/dev/ata/satapmp_subr.c: revision 1.16
	sys/dev/ic/wdc.c: revision 1.299
	sys/dev/ic/ahcisata_core.c: revision 1.93
	sys/dev/ata/ata_wdc.c: revision 1.120
	sys/dev/ic/wdcvar.h: revision 1.100
	sys/dev/scsipi/atapi_wdc.c: revision 1.141
	sys/dev/ic/mvsata.c: revision 1.61
	sys/dev/usb/umass_isdata.c	(apply patch)

drop wd lock in wdstart1() before calling the ata_bio hook; when called
from ata thread context, that can still need to sleep for wdc attachments
in wdcwait()

fix use-after-free for ata xfer on bio submission found by KASAN
driver ata_bio hooks read parts of the xfer after ata_exec_xfer()
call in order to determine return value, change so that the hook
doesn't return any value - callers do not care already,
as all I/O requests are asynchronous

this problem was uncovered by recent change for wd(4) to not hold
wd mutex during ata_bio call, the interrupt for the xfer might
thus actually fire immediately

adjust also ata_exec_command driver hooks similarily - remove all
completion and waiting logic from drivers, upper layer ata code
using AT_WAIT/AT_POLL changed to call ata_wait_cmd() itself
PR kern/55169 by Nick Hudson

Function declaration formating whitespace consistency.  NFCI.

PR kern/56403
Fix kernel freeze for wdc(4) variants with ATAC_CAP_NOIRQ:

(1) Change ata_xfer_ops:c_poll from void to int function. When it returns
    ATAPOLL_AGAIN, let ata_xfer_start() iterate itself again.
(2) Let wdc_ata_bio_poll() return ATAPOLL_AGAIN until ATA_ITSDONE is
    achieved.

A similar change has been made for mvsata(4) (see mvsata_bio_poll()),
and no functional changes for other devices.

This is how the drivers worked before jdolecek-ncq branch was merged.
Note that this changes are less likely to cause infinite recursion:

(1) wdc_ata_bio_intr() called from wdc_ata_bio_poll() asserts ATA_ITSDONE
    in its error handling paths via wdc_ata_bio_done().
(2) Return value from c_start (= wdc_ata_bio_start()) is checked in
    ata_xfer_start().

Therefore, errors encountered in ata_xfer_ops:c_poll and c_start routines
terminate the recursion for wdc(4). The situation is similar for mvsata(4).

Still, there is a possibility where ata_xfer_start() takes long time to
finish a normal operation. This can result in a delayed response for lower
priority interrupts. But, I've never observed such a situation, even when
heavy thrashing takes place for swap partition in wd(4).
"Go ahead" by jdolecek@.

Revision 1.98.4.2: download - view: text, markup, annotated - select for diffs
Tue Apr 21 18:42:16 2020 UTC (4 years, 7 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.98.4.1: preferred, colored; branchpoint 1.98: preferred, colored; next MAIN 1.99: preferred, colored
Changes since revision 1.98.4.1: +1 -1 lines
Sync with HEAD

Revision 1.99.6.1: download - view: text, markup, annotated - select for diffs
Mon Apr 20 11:29:03 2020 UTC (4 years, 7 months ago) by bouyer
Branches: bouyer-xenpvh
Diff to: previous 1.99: preferred, colored; next MAIN 1.100: preferred, colored
Changes since revision 1.99: +2 -2 lines
Sync with HEAD

Revision 1.100: download - view: text, markup, annotated - select for diffs
Mon Apr 13 10:49:34 2020 UTC (4 years, 8 months ago) by jdolecek
Branches: MAIN
CVS tags: thorpej-ifq-base, thorpej-ifq, thorpej-i2c-spi-conf2-base, thorpej-i2c-spi-conf2, thorpej-i2c-spi-conf-base, thorpej-i2c-spi-conf, thorpej-futex2-base, thorpej-futex2, thorpej-futex-base, thorpej-futex, thorpej-cfargs2-base, thorpej-cfargs2, thorpej-cfargs-base, thorpej-cfargs, thorpej-altq-separation-base, thorpej-altq-separation, phil-wifi-20200421, perseant-exfatfs-base-20240630, perseant-exfatfs-base, perseant-exfatfs, netbsd-10-base, netbsd-10-0-RELEASE, netbsd-10-0-RC6, netbsd-10-0-RC5, netbsd-10-0-RC4, netbsd-10-0-RC3, netbsd-10-0-RC2, netbsd-10-0-RC1, netbsd-10, cjep_sun2x-base1, cjep_sun2x-base, cjep_sun2x, cjep_staticlib_x-base1, cjep_staticlib_x-base, cjep_staticlib_x, bouyer-xenpvh-base2, bouyer-xenpvh-base1, bouyer-sunxi-drm-base, bouyer-sunxi-drm, HEAD
Diff to: previous 1.99: preferred, colored
Changes since revision 1.99: +2 -2 lines
fix use-after-free for ata xfer on bio submission found by KASAN

driver ata_bio hooks read parts of the xfer after ata_exec_xfer()
call in order to determine return value, change so that the hook
doesn't return any value - callers do not care already,
as all I/O requests are asynchronous

this problem was uncovered by recent change for wd(4) to not hold
wd mutex during ata_bio call, the interrupt for the xfer might
thus actually fire immediately

adjust also ata_exec_command driver hooks similarily - remove all
completion and waiting logic from drivers, upper layer ata code
using AT_WAIT/AT_POLL changed to call ata_wait_cmd() itself

PR kern/55169 by Nick Hudson

Revision 1.98.4.1: download - view: text, markup, annotated - select for diffs
Mon Apr 13 08:04:22 2020 UTC (4 years, 8 months ago) by martin
Branches: phil-wifi
Diff to: previous 1.98: preferred, colored
Changes since revision 1.98: +3 -1 lines
Mostly merge changes from HEAD upto 20200411

Revision 1.98.10.1: download - view: text, markup, annotated - select for diffs
Mon Sep 23 07:09:47 2019 UTC (5 years, 2 months ago) by martin
Branches: netbsd-9
CVS tags: netbsd-9-3-RELEASE, netbsd-9-2-RELEASE, netbsd-9-1-RELEASE, netbsd-9-0-RELEASE, netbsd-9-0-RC2, netbsd-9-0-RC1
Diff to: previous 1.98: preferred, colored
Changes since revision 1.98: +3 -1 lines
Pull up following revision(s) (requested by tsutsui in ticket #232):

	sys/arch/evbppc/mpc85xx/wdc_obio.c: revision 1.7
	sys/arch/dreamcast/dev/g1/wdc_g1.c: revision 1.4
	sys/arch/dreamcast/dev/g1/wdc_g1.c: revision 1.5
	sys/arch/mmeye/dev/wdc_mainbus.c: revision 1.7
	sys/dev/ic/wdcvar.h: revision 1.99
	sys/dev/ic/wdc.c: revision 1.292
	sys/arch/mips/adm5120/dev/wdc_extio.c: revision 1.11

adjust several missed drivers for wdcprobe() changes of ATA NCQ branch
for dreamcast g1 just drop the custom reset function, it doesn't seem to do
anything useful over the generic variant

PR kern/54538 by Izumi Tsutsui

Restore interface to pass a MD reset function to MI wdcprobe().

Fixes silent hang on G1IDE on Dreamcast. PR kern/54538
Should be pulled up to netbsd-9 with the previous changes.

Revision 1.99: download - view: text, markup, annotated - select for diffs
Sat Sep 14 17:11:39 2019 UTC (5 years, 2 months ago) by tsutsui
Branches: MAIN
CVS tags: phil-wifi-20200411, phil-wifi-20200406, phil-wifi-20191119, is-mlppp-base, is-mlppp, bouyer-xenpvh-base, ad-namecache-base3, ad-namecache-base2, ad-namecache-base1, ad-namecache-base, ad-namecache
Branch point for: bouyer-xenpvh
Diff to: previous 1.98: preferred, colored
Changes since revision 1.98: +3 -1 lines
Restore interface to pass a MD reset function to MI wdcprobe().

Fixes silent hang on G1IDE on Dreamcast. PR kern/54538
Should be pulled up to netbsd-9 with the previous changes.

Revision 1.95.2.2: download - view: text, markup, annotated - select for diffs
Sun Dec 3 11:37:04 2017 UTC (7 years ago) by jdolecek
Branches: tls-maxphys
Diff to: previous 1.95.2.1: preferred, colored; branchpoint 1.95: preferred, colored; next MAIN 1.96: preferred, colored
Changes since revision 1.95.2.1: +11 -11 lines
update from HEAD

Revision 1.98: download - view: text, markup, annotated - select for diffs
Sat Oct 7 16:05:32 2017 UTC (7 years, 2 months ago) by jdolecek
Branches: MAIN
CVS tags: tls-maxphys-base-20171202, phil-wifi-base, phil-wifi-20190609, pgoyette-compat-merge-20190127, pgoyette-compat-base, pgoyette-compat-20190127, pgoyette-compat-20190118, pgoyette-compat-1226, pgoyette-compat-1126, pgoyette-compat-1020, pgoyette-compat-0930, pgoyette-compat-0906, pgoyette-compat-0728, pgoyette-compat-0625, pgoyette-compat-0521, pgoyette-compat-0502, pgoyette-compat-0422, pgoyette-compat-0415, pgoyette-compat-0407, pgoyette-compat-0330, pgoyette-compat-0322, pgoyette-compat-0315, pgoyette-compat, netbsd-9-base, jdolecek-ncqfixes-base, jdolecek-ncqfixes, isaki-audio2-base, isaki-audio2
Branch point for: phil-wifi, netbsd-9
Diff to: previous 1.97: preferred, colored
Changes since revision 1.97: +11 -11 lines
Merge support for SATA NCQ (Native Command Queueing) from jdolecek-ncq branch

ATA subsystem was changed to support several outstanding commands, and use
NCQ xfers if supported by both the controller and the disk, including NCQ
error recovery. Set NCQ high priority for BPRIO_TIMECRITICAL xfers
if supported. Added FUA support.

Done some work towards MP-safe, all ATA code tsleep()/wakeup() replaced
by condvars, and switched most code from spl* to mutexes (separate
wd(4) and ata channel lock).

Introduced new option WD_CHAOS_MONKEY to facilitate testing of error
handling, fixed several uncovered issues. Also fixed several problems
with kernel dump to wd(4) disk.

Tested with ahcisata(4), mvsata(4), siisata(4), piixide(4) on amd64,
with and without port multiplier, both disk and ATAPI devices; other
drivers and archs mechanically adjusted and compile-tested. NCQ is
supported for ahcisata(4) and siisata(4) for any controller, for
mvsata(4) only Gen IIe ones for now. Also enabled ATAPI support in
mvsata(4).

Thanks to Matt Thomas for initial ATA infrastructure patch, and
Jonathan A.Kollasch for siisata(4) NCQ changes and general testing.

Also fixes PR kern/43169 (wd(4)); and PR kern/11811, PR kern/47041,
PR kern/51979 (kernel dump)

Revision 1.97.26.3: download - view: text, markup, annotated - select for diffs
Wed Sep 27 07:19:34 2017 UTC (7 years, 2 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.97.26.2: preferred, colored; branchpoint 1.97: preferred, colored; next MAIN 1.98: preferred, colored
Changes since revision 1.97.26.2: +3 -3 lines
change wdc_init_shadow_regs() to accept only struct wdc_regs, it doesn't
touch anything else

factor out the probe-only struct ata_channel initialization to wdcprobe(), to
reduce duplication of logic in individual drivers, and to actually work now
that more init is needed beyond the memset()

Revision 1.97.26.2: download - view: text, markup, annotated - select for diffs
Sat Aug 12 09:52:28 2017 UTC (7 years, 4 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.97.26.1: preferred, colored; branchpoint 1.97: preferred, colored
Changes since revision 1.97.26.1: +8 -8 lines
remove all logic around ATACH_IRQ_WAIT and channel-global ch_error/ch_status,
so that there is less hidden state shared by commands; primary intent is
to make the NCQ and non-NCQ paths more similar, and remove possibility
of incorrect handling for the NCQ commands

tested both disk and ATAPI - piixide(4) on QEMU, and siisata(4),
ahcisata(4), mvsata(4) on real hw

Revision 1.97.26.1: download - view: text, markup, annotated - select for diffs
Sat Apr 15 17:14:11 2017 UTC (7 years, 7 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.97: preferred, colored
Changes since revision 1.97: +2 -2 lines
pass also ata_command via ata_xfer, callers of ata_exec_command() is now
responsible for allocation/disposal of the structure

change code to allocate ata_xfer for commands on stack same way as previously
the ata_command were, using c_slot 0; adjust asserts so that it would allow
several xfers with same c_slot, as long as only one such transfer is active
at a time

Revision 1.91.8.4: download - view: text, markup, annotated - select for diffs
Thu May 22 11:40:22 2014 UTC (10 years, 6 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.91.8.3: preferred, colored; branchpoint 1.91: preferred, colored; next MAIN 1.92: preferred, colored
Changes since revision 1.91.8.3: +2 -2 lines
sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs.  ("Protocol error: too many arguments")

Revision 1.95.2.1: download - view: text, markup, annotated - select for diffs
Mon Feb 25 00:29:15 2013 UTC (11 years, 9 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.95: preferred, colored
Changes since revision 1.95: +4 -3 lines
resync with head

Revision 1.97: download - view: text, markup, annotated - select for diffs
Sun Feb 3 20:13:28 2013 UTC (11 years, 10 months ago) by jakllsch
Branches: MAIN
CVS tags: yamt-pagecache-base9, tls-maxphys-base, tls-earlyentropy-base, tls-earlyentropy, rmind-smpnet-nbase, rmind-smpnet-base, rmind-smpnet, riastradh-xf86-video-intel-2-7-1-pre-2-21-15, riastradh-drm2-base3, riastradh-drm2-base2, riastradh-drm2-base1, riastradh-drm2-base, riastradh-drm2, prg-localcount2-base3, prg-localcount2-base2, prg-localcount2-base1, prg-localcount2-base, prg-localcount2, pgoyette-localcount-base, pgoyette-localcount-20170426, pgoyette-localcount-20170320, pgoyette-localcount-20170107, pgoyette-localcount-20161104, pgoyette-localcount-20160806, pgoyette-localcount-20160726, pgoyette-localcount, perseant-stdc-iso10646-base, perseant-stdc-iso10646, nick-nhusb-base-20170825, nick-nhusb-base-20170204, nick-nhusb-base-20161204, nick-nhusb-base-20161004, nick-nhusb-base-20160907, nick-nhusb-base-20160529, nick-nhusb-base-20160422, nick-nhusb-base-20160319, nick-nhusb-base-20151226, nick-nhusb-base-20150921, nick-nhusb-base-20150606, nick-nhusb-base-20150406, nick-nhusb-base, nick-nhusb, netbsd-8-base, netbsd-8-3-RELEASE, netbsd-8-2-RELEASE, netbsd-8-1-RELEASE, netbsd-8-1-RC1, netbsd-8-0-RELEASE, netbsd-8-0-RC2, netbsd-8-0-RC1, netbsd-8, netbsd-7-nhusb-base-20170116, netbsd-7-nhusb-base, netbsd-7-nhusb, netbsd-7-base, netbsd-7-2-RELEASE, netbsd-7-1-RELEASE, netbsd-7-1-RC2, netbsd-7-1-RC1, netbsd-7-1-2-RELEASE, netbsd-7-1-1-RELEASE, netbsd-7-1, netbsd-7-0-RELEASE, netbsd-7-0-RC3, netbsd-7-0-RC2, netbsd-7-0-RC1, netbsd-7-0-2-RELEASE, netbsd-7-0-1-RELEASE, netbsd-7-0, netbsd-7, matt-nb8-mediatek-base, matt-nb8-mediatek, localcount-20160914, khorben-n900, jdolecek-ncq-base, bouyer-socketcan-base1, bouyer-socketcan-base, bouyer-socketcan, agc-symver-base, agc-symver
Branch point for: jdolecek-ncq
Diff to: previous 1.96: preferred, colored
Changes since revision 1.96: +2 -2 lines
Add argument to wdccommandext() to allow the entire contents of the
device/head register to be specified.  Needed for upcoming port multipler
support in mvsata(4).

Revision 1.91.8.3: download - view: text, markup, annotated - select for diffs
Wed Jan 16 05:33:16 2013 UTC (11 years, 10 months ago) by yamt
Branches: yamt-pagecache
CVS tags: yamt-pagecache-tag8
Diff to: previous 1.91.8.2: preferred, colored; branchpoint 1.91: preferred, colored
Changes since revision 1.91.8.2: +3 -2 lines
sync with (a bit old) head

Revision 1.96: download - view: text, markup, annotated - select for diffs
Mon Nov 19 22:22:56 2012 UTC (12 years ago) by rkujawa
Branches: MAIN
CVS tags: yamt-pagecache-base8, yamt-pagecache-base7
Diff to: previous 1.95: preferred, colored
Changes since revision 1.95: +3 -2 lines
Introduce WDC_CAPABILITY_NO_AUXCTL flag. For lame controllers that don't
have aux control registers (driver coming soon).

Revision 1.91.8.2: download - view: text, markup, annotated - select for diffs
Tue Oct 30 17:21:11 2012 UTC (12 years, 1 month ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.91.8.1: preferred, colored; branchpoint 1.91: preferred, colored
Changes since revision 1.91.8.1: +7 -3 lines
sync with head

Revision 1.95: download - view: text, markup, annotated - select for diffs
Tue Jul 31 15:50:35 2012 UTC (12 years, 4 months ago) by bouyer
Branches: MAIN
CVS tags: yamt-pagecache-base6
Branch point for: tls-maxphys
Diff to: previous 1.94: preferred, colored
Changes since revision 1.94: +7 -3 lines
Apply back changes that were reverted on Jul 24 and Jul 26 (general ata/wdc
cleanup and SATA PMP support), now that I'm back to fix the fallouts.

Revision 1.94: download - view: text, markup, annotated - select for diffs
Thu Jul 26 20:49:49 2012 UTC (12 years, 4 months ago) by jakllsch
Branches: MAIN
Diff to: previous 1.93: preferred, colored
Changes since revision 1.93: +2 -6 lines
Revert, with intention of restoring in a less invasive way, the SATA Port
Multiplier code.

ok christos@

Revision 1.93: download - view: text, markup, annotated - select for diffs
Mon Jul 2 18:15:47 2012 UTC (12 years, 5 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.92: preferred, colored
Changes since revision 1.92: +7 -3 lines
Add sata Port MultiPlier (PMP) support to the ata bus layer,
as described in
http://mail-index.netbsd.org/tech-kern/2012/06/23/msg013442.html
PMP support in integrated to the atabus layer.
struct ata_channel's ch_drive[] is not dynamically allocated, and ch_ndrive
(renamed to ch_ndrives) closely reflects the size of the ch_drive[] array.
Add helper functions atabus_alloc_drives() and atabus_free_drives()
to manage ch_drive[]/ch_ndrives.
Add wdc_maxdrives to struct wdc_softc so that bus front-end can specify
how much drive they really support (master/slave or single).
ata_reset_drive() callback gains a uint32_t *sigp argument which,
when not NULL, will contain the signature of the device being reset.
While there, some cosmetic changes:
- added a drive_type enum to ata_drive_datas, and stop encoding the
  probed drive type in drive_flags (we were out of drive flags anyway).
- rename DRIVE_ATAPIST to DRIVE_ATAPIDSCW to better reflect what this
  really is
- remove ata_channel->ata_drives, it's redundant with the pointer in
  ata_drive_datas
- factor out the interpretation of SATA signatures in sata_interpet_sig()

propagate these changes to the ATA HBA drivers, and add support for PMP
to ahcisata(4) and siisata(4).

Thanks to:
- Protocase (http://www.protocase.com/) which provided a system
  with lots of controllers, SATA PMP and drive slots
- Conservation Genomics Laboratory, Department of Biology, New Mexico State
  University for hosting the above system
- Brook Milligan, who set up remote access and has been very responsive
  when SATA cable move was needed

Revision 1.91.8.1: download - view: text, markup, annotated - select for diffs
Tue Apr 17 00:07:38 2012 UTC (12 years, 7 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.91: preferred, colored
Changes since revision 1.91: +2 -2 lines
sync with head

Revision 1.91.12.1: download - view: text, markup, annotated - select for diffs
Sat Feb 18 07:34:26 2012 UTC (12 years, 9 months ago) by mrg
Branches: jmcneill-usbmp
Diff to: previous 1.91: preferred, colored; next MAIN 1.92: preferred, colored
Changes since revision 1.91: +2 -2 lines
merge to -current.

Revision 1.92: download - view: text, markup, annotated - select for diffs
Mon Jan 9 01:01:49 2012 UTC (12 years, 11 months ago) by jakllsch
Branches: MAIN
CVS tags: yamt-pagecache-base5, yamt-pagecache-base4, netbsd-6-base, netbsd-6-1-RELEASE, netbsd-6-1-RC4, netbsd-6-1-RC3, netbsd-6-1-RC2, netbsd-6-1-RC1, netbsd-6-1-5-RELEASE, netbsd-6-1-4-RELEASE, netbsd-6-1-3-RELEASE, netbsd-6-1-2-RELEASE, netbsd-6-1-1-RELEASE, netbsd-6-1, netbsd-6-0-RELEASE, netbsd-6-0-RC2, netbsd-6-0-RC1, netbsd-6-0-6-RELEASE, netbsd-6-0-5-RELEASE, netbsd-6-0-4-RELEASE, netbsd-6-0-3-RELEASE, netbsd-6-0-2-RELEASE, netbsd-6-0-1-RELEASE, netbsd-6-0, netbsd-6, matt-nb6-plus-nbase, matt-nb6-plus-base, matt-nb6-plus, jmcneill-usbmp-base9, jmcneill-usbmp-base8, jmcneill-usbmp-base7, jmcneill-usbmp-base6, jmcneill-usbmp-base5, jmcneill-usbmp-base4, jmcneill-usbmp-base3, jmcneill-usbmp-base2, jmcneill-usbmp-base10
Diff to: previous 1.91: preferred, colored
Changes since revision 1.91: +2 -2 lines
Instead of assume that 'features' is 0 in wdccommandext(),
pass it as an argument, as is done for wdccommand().

Revision 1.90.4.1: download - view: text, markup, annotated - select for diffs
Sat Mar 5 20:53:23 2011 UTC (13 years, 9 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.90: preferred, colored; next MAIN 1.91: preferred, colored
Changes since revision 1.90: +3 -1 lines
sync with head

Revision 1.90.2.1: download - view: text, markup, annotated - select for diffs
Sat Nov 6 08:08:29 2010 UTC (14 years, 1 month ago) by uebayasi
Branches: uebayasi-xip
Diff to: previous 1.90: preferred, colored; next MAIN 1.91: preferred, colored
Changes since revision 1.90: +3 -1 lines
Sync with HEAD.

Revision 1.91: download - view: text, markup, annotated - select for diffs
Fri Nov 5 18:07:24 2010 UTC (14 years, 1 month ago) by jakllsch
Branches: MAIN
CVS tags: yamt-pagecache-base3, yamt-pagecache-base2, yamt-pagecache-base, uebayasi-xip-base4, rmind-uvmplock-nbase, rmind-uvmplock-base, matt-mips64-premerge-20101231, jruoho-x86intr-base, jruoho-x86intr, jmcneill-usbmp-pre-base2, jmcneill-usbmp-base, jmcneill-audiomp3-base, jmcneill-audiomp3, cherry-xenmp-base, cherry-xenmp, bouyer-quota2-nbase, bouyer-quota2-base, bouyer-quota2
Branch point for: yamt-pagecache, jmcneill-usbmp
Diff to: previous 1.90: preferred, colored
Changes since revision 1.90: +3 -1 lines
Pave the way for detachment of pciide(4)-family ATA controllers.

Revision 1.88.10.2: download - view: text, markup, annotated - select for diffs
Thu Mar 11 15:03:36 2010 UTC (14 years, 9 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.88.10.1: preferred, colored; branchpoint 1.88: preferred, colored; next MAIN 1.89: preferred, colored
Changes since revision 1.88.10.1: +1 -2 lines
sync with head

Revision 1.90: download - view: text, markup, annotated - select for diffs
Tue Dec 1 01:06:31 2009 UTC (15 years ago) by dyoung
Branches: MAIN
CVS tags: yamt-nfs-mp-base9, yamt-nfs-mp-base11, yamt-nfs-mp-base10, uebayasi-xip-base3, uebayasi-xip-base2, uebayasi-xip-base1, uebayasi-xip-base, matt-premerge-20091211
Branch point for: uebayasi-xip, rmind-uvmplock
Diff to: previous 1.89: preferred, colored
Changes since revision 1.89: +1 -2 lines
Delete wdcactivate() prototype, it's gone away for good.

Revision 1.88.6.1: download - view: text, markup, annotated - select for diffs
Mon Jun 2 13:23:28 2008 UTC (16 years, 6 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.88: preferred, colored; next MAIN 1.89: preferred, colored
Changes since revision 1.88: +1 -8 lines
Sync with HEAD.

Revision 1.88.8.1: download - view: text, markup, annotated - select for diffs
Sun May 18 12:33:46 2008 UTC (16 years, 6 months ago) by yamt
Branches: yamt-pf42
Diff to: previous 1.88: preferred, colored; next MAIN 1.89: preferred, colored
Changes since revision 1.88: +1 -8 lines
sync with head.

Revision 1.88.10.1: download - view: text, markup, annotated - select for diffs
Fri May 16 02:24:06 2008 UTC (16 years, 7 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.88: preferred, colored
Changes since revision 1.88: +1 -8 lines
sync with head.

Revision 1.89: download - view: text, markup, annotated - select for diffs
Mon Apr 28 20:23:51 2008 UTC (16 years, 7 months ago) by martin
Branches: MAIN
CVS tags: yamt-pf42-base4, yamt-pf42-base3, yamt-pf42-base2, yamt-nfs-mp-base8, yamt-nfs-mp-base7, yamt-nfs-mp-base6, yamt-nfs-mp-base5, yamt-nfs-mp-base4, yamt-nfs-mp-base3, yamt-nfs-mp-base2, wrstuden-revivesa-base-4, wrstuden-revivesa-base-3, wrstuden-revivesa-base-2, wrstuden-revivesa-base-1, wrstuden-revivesa-base, wrstuden-revivesa, simonb-wapbl-nbase, simonb-wapbl-base, simonb-wapbl, nick-hppapmap-base4, nick-hppapmap-base3, nick-hppapmap-base2, nick-hppapmap-base, nick-hppapmap, netbsd-5-base, netbsd-5-2-RELEASE, netbsd-5-2-RC1, netbsd-5-2-3-RELEASE, netbsd-5-2-2-RELEASE, netbsd-5-2-1-RELEASE, netbsd-5-2, netbsd-5-1-RELEASE, netbsd-5-1-RC4, netbsd-5-1-RC3, netbsd-5-1-RC2, netbsd-5-1-RC1, netbsd-5-1-5-RELEASE, netbsd-5-1-4-RELEASE, netbsd-5-1-3-RELEASE, netbsd-5-1-2-RELEASE, netbsd-5-1-1-RELEASE, netbsd-5-1, netbsd-5-0-RELEASE, netbsd-5-0-RC4, netbsd-5-0-RC3, netbsd-5-0-RC2, netbsd-5-0-RC1, netbsd-5-0-2-RELEASE, netbsd-5-0-1-RELEASE, netbsd-5-0, netbsd-5, mjf-devfs2-base, matt-nb5-pq3-base, matt-nb5-pq3, matt-nb5-mips64-u2-k2-k4-k7-k8-k9, matt-nb5-mips64-u1-k1-k5, matt-nb5-mips64-premerge-20101231, matt-nb5-mips64-premerge-20091211, matt-nb5-mips64-k15, matt-nb5-mips64, matt-nb4-mips64-k7-u2a-k9b, matt-mips64-base2, jymxensuspend-base, jym-xensuspend-nbase, jym-xensuspend-base, jym-xensuspend, hpcarm-cleanup-nbase, haad-nbase2, haad-dm-base2, haad-dm-base1, haad-dm-base, haad-dm, ad-audiomp2-base, ad-audiomp2
Diff to: previous 1.88: preferred, colored
Changes since revision 1.88: +1 -8 lines
Remove clause 3 and 4 from TNF licenses

Revision 1.87.24.1: download - view: text, markup, annotated - select for diffs
Sun Mar 23 02:04:40 2008 UTC (16 years, 8 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.87: preferred, colored; next MAIN 1.88: preferred, colored
Changes since revision 1.87: +4 -3 lines
sync with HEAD

Revision 1.87.30.1: download - view: text, markup, annotated - select for diffs
Mon Feb 18 21:05:41 2008 UTC (16 years, 9 months ago) by mjf
Branches: mjf-devfs
Diff to: previous 1.87: preferred, colored; next MAIN 1.88: preferred, colored
Changes since revision 1.87: +4 -3 lines
Sync with HEAD.

Revision 1.82.4.3: download - view: text, markup, annotated - select for diffs
Mon Jan 21 09:43:12 2008 UTC (16 years, 10 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.82.4.2: preferred, colored; branchpoint 1.82: preferred, colored; next MAIN 1.83: preferred, colored
Changes since revision 1.82.4.2: +4 -3 lines
sync with head

Revision 1.87.38.1: download - view: text, markup, annotated - select for diffs
Thu Jan 10 23:44:18 2008 UTC (16 years, 11 months ago) by bouyer
Branches: bouyer-xeni386
CVS tags: bouyer-xeni386-merge1
Diff to: previous 1.87: preferred, colored; next MAIN 1.88: preferred, colored
Changes since revision 1.87: +4 -3 lines
Sync with HEAD

Revision 1.88: download - view: text, markup, annotated - select for diffs
Thu Jan 10 07:44:08 2008 UTC (16 years, 11 months ago) by dyoung
Branches: MAIN
CVS tags: yamt-pf42-baseX, yamt-pf42-base, yamt-nfs-mp-base, yamt-lazymbuf-base15, yamt-lazymbuf-base14, nick-net80211-sync-base, nick-net80211-sync, mjf-devfs-base, matt-armv6-nbase, keiichi-mipv6-nbase, keiichi-mipv6-base, keiichi-mipv6, hpcarm-cleanup-base, bouyer-xeni386-nbase, bouyer-xeni386-base, ad-socklock-base1
Branch point for: yamt-pf42, yamt-nfs-mp, mjf-devfs2
Diff to: previous 1.87: preferred, colored
Changes since revision 1.87: +4 -3 lines
Let us detach atabus* from wdc*, and wdc* from isa*.

Use device_t, device_private().

Revision 1.82.4.2: download - view: text, markup, annotated - select for diffs
Sat Dec 30 20:48:04 2006 UTC (17 years, 11 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.82.4.1: preferred, colored; branchpoint 1.82: preferred, colored
Changes since revision 1.82.4.1: +28 -4 lines
sync with head.

Revision 1.85.4.2: download - view: text, markup, annotated - select for diffs
Sun Dec 10 07:17:07 2006 UTC (18 years ago) by yamt
Branches: yamt-splraiseipl
Diff to: previous 1.85.4.1: preferred, colored; branchpoint 1.85: preferred, colored; next MAIN 1.86: preferred, colored
Changes since revision 1.85.4.1: +12 -1 lines
sync with head.

Revision 1.85.2.1: download - view: text, markup, annotated - select for diffs
Sat Nov 18 21:34:15 2006 UTC (18 years ago) by ad
Branches: newlock2
Diff to: previous 1.85: preferred, colored; next MAIN 1.86: preferred, colored
Changes since revision 1.85: +14 -1 lines
Sync with head.

Revision 1.87: download - view: text, markup, annotated - select for diffs
Wed Oct 25 17:33:02 2006 UTC (18 years, 1 month ago) by bouyer
Branches: MAIN
CVS tags: yamt-x86pmap-base4, yamt-x86pmap-base3, yamt-x86pmap-base2, yamt-x86pmap-base, yamt-x86pmap, yamt-splraiseipl-base5, yamt-splraiseipl-base4, yamt-splraiseipl-base3, yamt-kmem-base3, yamt-kmem-base2, yamt-kmem-base, yamt-kmem, yamt-idlelwp-base8, yamt-idlelwp, wrstuden-fixsa-newbase, wrstuden-fixsa-base-1, wrstuden-fixsa-base, wrstuden-fixsa, vmlocking2-base3, vmlocking2-base2, vmlocking2-base1, vmlocking2, vmlocking-nbase, vmlocking-base, vmlocking, thorpej-atomic-base, thorpej-atomic, reinoud-bufcleanup-nbase, reinoud-bufcleanup-base, reinoud-bufcleanup, post-newlock2-merge, nick-csl-alignment-base5, nick-csl-alignment-base, nick-csl-alignment, newlock2-nbase, newlock2-base, netbsd-4-base, netbsd-4-0-RELEASE, netbsd-4-0-RC5, netbsd-4-0-RC4, netbsd-4-0-RC3, netbsd-4-0-RC2, netbsd-4-0-RC1, netbsd-4-0-1-RELEASE, netbsd-4-0, netbsd-4, mjf-ufs-trans-base, mjf-ufs-trans, matt-nb4-arm-base, matt-nb4-arm, matt-mips64-base, matt-mips64, matt-armv6-prevmlocking, matt-armv6-base, jmcneill-pm-base, jmcneill-pm, jmcneill-base, hpcarm-cleanup, cube-autoconf-base, cube-autoconf, bouyer-xenamd64-base2, bouyer-xenamd64-base, bouyer-xenamd64, ad-audiomp-base, ad-audiomp
Branch point for: mjf-devfs, matt-armv6, bouyer-xeni386
Diff to: previous 1.86: preferred, colored
Changes since revision 1.86: +12 -1 lines
Add sata registers to struct wdc_regs. Add wdc_sataprobe(), a function
probing drives using the standard SATA registers; taken from various
PCI sata drivers. Export wdc_drvprobe() too.

Revision 1.85.4.1: download - view: text, markup, annotated - select for diffs
Sun Oct 22 06:05:45 2006 UTC (18 years, 1 month ago) by yamt
Branches: yamt-splraiseipl
Diff to: previous 1.85: preferred, colored
Changes since revision 1.85: +3 -1 lines
sync with head

Revision 1.86: download - view: text, markup, annotated - select for diffs
Sat Sep 30 15:56:18 2006 UTC (18 years, 2 months ago) by itohy
Branches: MAIN
CVS tags: yamt-splraiseipl-base2
Diff to: previous 1.85: preferred, colored
Changes since revision 1.85: +3 -1 lines
A little effort against kernel bloat....
Exclude ATA DMA support if no ATA DMA capable drivers are compiled in.

Revision 1.84.8.1: download - view: text, markup, annotated - select for diffs
Thu Sep 14 12:31:30 2006 UTC (18 years, 3 months ago) by yamt
Branches: yamt-pdpolicy
Diff to: previous 1.84: preferred, colored; next MAIN 1.85: preferred, colored
Changes since revision 1.84: +15 -4 lines
sync with head.

Revision 1.84.4.1: download - view: text, markup, annotated - select for diffs
Sat Sep 9 02:50:03 2006 UTC (18 years, 3 months ago) by rpaulo
Branches: rpaulo-netinet-merge-pcb
Diff to: previous 1.84: preferred, colored; next MAIN 1.85: preferred, colored
Changes since revision 1.84: +15 -4 lines
sync with head

Revision 1.85: download - view: text, markup, annotated - select for diffs
Thu Sep 7 12:46:47 2006 UTC (18 years, 3 months ago) by itohy
Branches: MAIN
CVS tags: yamt-splraiseipl-base, yamt-pdpolicy-base9, rpaulo-netinet-merge-pcb-base
Branch point for: yamt-splraiseipl, newlock2
Diff to: previous 1.84: preferred, colored
Changes since revision 1.84: +15 -4 lines
Add PIOBM (busmastering transfer using ATA PIO mode) support.
The PIOBM is used by only one driver (will be added later,
stay tuned) and intruduce an attribute "ata_piobm" so that
it will be conditionally compiled in.
The "ata_dma" (busmastering transfer using ATA DMA mode) and
"ata_udma" (busmastering transfer using ATA Ultra DMA mode)
attributes are also added for consistency, but unused for now.

Revision 1.82.4.1: download - view: text, markup, annotated - select for diffs
Wed Jun 21 15:02:57 2006 UTC (18 years, 5 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.82: preferred, colored
Changes since revision 1.82: +5 -1 lines
sync with head.

Revision 1.84: download - view: text, markup, annotated - select for diffs
Sun Dec 11 12:21:29 2005 UTC (19 years ago) by christos
Branches: MAIN
CVS tags: yamt-uio_vmspace-base5, yamt-uio_vmspace, yamt-pdpolicy-base8, yamt-pdpolicy-base7, yamt-pdpolicy-base6, yamt-pdpolicy-base5, yamt-pdpolicy-base4, yamt-pdpolicy-base3, yamt-pdpolicy-base2, yamt-pdpolicy-base, simonb-timecounters-base, simonb-timecounters, simonb-timcounters-final, peter-altq-base, peter-altq, gdamore-uart-base, gdamore-uart, elad-kernelauth-base, elad-kernelauth, chap-midi-nbase, chap-midi-base, chap-midi, abandoned-netbsd-4-base, abandoned-netbsd-4
Branch point for: yamt-pdpolicy, rpaulo-netinet-merge-pcb
Diff to: previous 1.83: preferred, colored
Changes since revision 1.83: +1 -1 lines
merge ktrace-lwp.

Revision 1.36.2.8: download - view: text, markup, annotated - select for diffs
Thu Nov 10 14:04:16 2005 UTC (19 years, 1 month ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.36.2.7: preferred, colored; next MAIN 1.37: preferred, colored
Changes since revision 1.36.2.7: +5 -1 lines
Sync with HEAD. Here we go again...

Revision 1.82.2.1: download - view: text, markup, annotated - select for diffs
Thu Aug 18 20:02:40 2005 UTC (19 years, 3 months ago) by tron
Branches: netbsd-3
CVS tags: netbsd-3-1-RELEASE, netbsd-3-1-RC4, netbsd-3-1-RC3, netbsd-3-1-RC2, netbsd-3-1-RC1, netbsd-3-1-1-RELEASE, netbsd-3-1, netbsd-3-0-RELEASE, netbsd-3-0-RC6, netbsd-3-0-RC5, netbsd-3-0-RC4, netbsd-3-0-RC3, netbsd-3-0-RC2, netbsd-3-0-RC1, netbsd-3-0-3-RELEASE, netbsd-3-0-2-RELEASE, netbsd-3-0-1-RELEASE, netbsd-3-0
Diff to: previous 1.82: preferred, colored; next MAIN 1.83: preferred, colored
Changes since revision 1.82: +5 -1 lines
Pull up revision 1.83 (requested by bouyer in ticket #653):
Add an optionnal controller callback for channel reset. If the callback
is set to NULL, use the generic reset code.
Use this to work around a bug in some Acer IDE controllers (like the
one found in some sparc systems) where a controller disable/enable
is required after a reset to avoid data corruption when Ultra-DMA is
used. Workaround from opensolaris, thanks to Hiroki Sato for testing.

Revision 1.55.2.1.2.1: download - view: text, markup, annotated - select for diffs
Sun Aug 7 15:51:34 2005 UTC (19 years, 4 months ago) by riz
Branches: netbsd-2
CVS tags: netbsd-2-1-RELEASE, netbsd-2-1-RC6, netbsd-2-1-RC5, netbsd-2-1-RC4, netbsd-2-1-RC3, netbsd-2-1-RC2, netbsd-2-1-RC1, netbsd-2-1
Diff to: previous 1.55.2.1: preferred, colored; next MAIN 1.56: preferred, colored
Changes since revision 1.55.2.1: +4 -1 lines
Pull up revision 1.83 via patch (requested by bouyer in ticket #5555):
Add an optionnal controller callback for channel reset. If the callback
is set to NULL, use the generic reset code.
Use this to work around a bug in some Acer IDE controllers (like the
one found in some sparc systems) where a controller disable/enable
is required after a reset to avoid data corruption when Ultra-DMA is
used. Workaround from opensolaris, thanks to Hiroki Sato for testing.

Revision 1.83: download - view: text, markup, annotated - select for diffs
Sat Aug 6 22:07:24 2005 UTC (19 years, 4 months ago) by bouyer
Branches: MAIN
CVS tags: yamt-vop-base3, yamt-vop-base2, yamt-vop-base, yamt-vop, yamt-readahead-pervnode, yamt-readahead-perfile, yamt-readahead-base3, yamt-readahead-base2, yamt-readahead-base, yamt-readahead, thorpej-vnode-attr-base, thorpej-vnode-attr, ktrace-lwp-base
Diff to: previous 1.82: preferred, colored
Changes since revision 1.82: +5 -1 lines
Add an optionnal controller callback for channel reset. If the callback
is set to NULL, use the generic reset code.
Use this to work around a bug in some Acer IDE controllers (like the
one found in some sparc systems) where a controller disable/enable
is required after a reset to avoid data corruption when Ultra-DMA is
used. Workaround from opensolaris, thanks to Hiroki Sato for testing.

Revision 1.79.4.1: download - view: text, markup, annotated - select for diffs
Fri Apr 29 11:28:53 2005 UTC (19 years, 7 months ago) by kent
Branches: kent-audio2
Diff to: previous 1.79: preferred, colored; next MAIN 1.80: preferred, colored
Changes since revision 1.79: +5 -4 lines
sync with -current

Revision 1.79.6.2: download - view: text, markup, annotated - select for diffs
Sat Mar 19 08:34:04 2005 UTC (19 years, 8 months ago) by yamt
Branches: yamt-km
Diff to: previous 1.79.6.1: preferred, colored; branchpoint 1.79: preferred, colored; next MAIN 1.80: preferred, colored
Changes since revision 1.79.6.1: +4 -4 lines
sync with head.  xen and whitespace.  xen part is not finished.

Revision 1.36.2.7: download - view: text, markup, annotated - select for diffs
Fri Mar 4 16:41:35 2005 UTC (19 years, 9 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.36.2.6: preferred, colored
Changes since revision 1.36.2.6: +4 -4 lines
Sync with HEAD.

Hi Perry!

Revision 1.82: download - view: text, markup, annotated - select for diffs
Wed Mar 2 12:25:28 2005 UTC (19 years, 9 months ago) by mycroft
Branches: MAIN
CVS tags: yamt-km-base4, yamt-km-base3, netbsd-3-base, kent-audio2-base
Branch point for: yamt-lazymbuf, netbsd-3
Diff to: previous 1.81: preferred, colored
Changes since revision 1.81: +2 -2 lines
Copyright maintenance.

Revision 1.81: download - view: text, markup, annotated - select for diffs
Sun Feb 27 00:27:03 2005 UTC (19 years, 9 months ago) by perry
Branches: MAIN
Diff to: previous 1.80: preferred, colored
Changes since revision 1.80: +3 -3 lines
nuke trailing whitespace

Revision 1.36.2.6: download - view: text, markup, annotated - select for diffs
Tue Feb 15 21:33:12 2005 UTC (19 years, 10 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.36.2.5: preferred, colored
Changes since revision 1.36.2.5: +2 -1 lines
Sync with HEAD.

Revision 1.79.6.1: download - view: text, markup, annotated - select for diffs
Sat Feb 12 18:17:44 2005 UTC (19 years, 10 months ago) by yamt
Branches: yamt-km
Diff to: previous 1.79: preferred, colored
Changes since revision 1.79: +2 -1 lines
sync with head.

Revision 1.80: download - view: text, markup, annotated - select for diffs
Fri Feb 11 21:11:16 2005 UTC (19 years, 10 months ago) by rearnsha
Branches: MAIN
CVS tags: yamt-km-base2
Diff to: previous 1.79: preferred, colored
Changes since revision 1.79: +2 -1 lines
Add support for Artisea chips operating in DPA mode, which has a
16-bit view of the ATA command registers for extended commands.

Approved by briggs.

Revision 1.36.2.5: download - view: text, markup, annotated - select for diffs
Tue Sep 21 13:28:09 2004 UTC (20 years, 2 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.36.2.4: preferred, colored
Changes since revision 1.36.2.4: +1 -1 lines
Fix the sync with head I botched.

Revision 1.36.2.4: download - view: text, markup, annotated - select for diffs
Sat Sep 18 14:46:01 2004 UTC (20 years, 2 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.36.2.3: preferred, colored
Changes since revision 1.36.2.3: +1 -1 lines
Sync with HEAD.

Revision 1.36.2.3: download - view: text, markup, annotated - select for diffs
Wed Aug 25 06:57:35 2004 UTC (20 years, 3 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.36.2.2: preferred, colored
Changes since revision 1.36.2.2: +30 -121 lines
Sync with HEAD.

Revision 1.79: download - view: text, markup, annotated - select for diffs
Sat Aug 21 01:51:46 2004 UTC (20 years, 3 months ago) by thorpej
Branches: MAIN
CVS tags: yamt-km-base, kent-audio1-beforemerge, kent-audio1-base, kent-audio1
Branch point for: yamt-km, kent-audio2
Diff to: previous 1.78: preferred, colored
Changes since revision 1.78: +1 -7 lines
Make some functions referenced only in wdc.c private to that file.

Revision 1.78: download - view: text, markup, annotated - select for diffs
Fri Aug 20 22:02:40 2004 UTC (20 years, 3 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.77: preferred, colored
Changes since revision 1.77: +1 -5 lines
Move atabusconfig() to ata.c.

Revision 1.77: download - view: text, markup, annotated - select for diffs
Fri Aug 20 06:39:38 2004 UTC (20 years, 3 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +3 -34 lines
Move most of wdc_softc into a new atac_softc structure that contains
info common to all types of ATA controllers.

Revision 1.76: download - view: text, markup, annotated - select for diffs
Thu Aug 19 23:25:35 2004 UTC (20 years, 3 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.75: preferred, colored
Changes since revision 1.75: +7 -1 lines
- Add and use a CHAN_TO_WDC() macro to get the wdc_softc from an
  ata_channel.
- Add and use a CHAN_TO_WDC_REGS() macro to get the wdc_regs from an
  ata_channel.
- Add and use a CHAN_TO_PCIIDE() macro to get the pciide_softc from an
  ata_channel.
- Add and use a CHAN_TO_PCHAN() macro to get the pciide_channel from an
  ata_channel.  (This one just hides a cast, and is really just for
  consistency with the others.)

Revision 1.75: download - view: text, markup, annotated - select for diffs
Sat Aug 14 15:08:06 2004 UTC (20 years, 4 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.74: preferred, colored
Changes since revision 1.74: +27 -68 lines
- Split the register handles out of struct wdc_channel into a separate
  wdc_regs structure, and array of which (indexed per channel) is pointed
  to by struct wdc_softc.
- Move the resulting wdc_channel structure to atavar.h and rename it to
  ata_channel.  Rename the corresponding flags.
- Add a "ch_ndrive" member to struct ata_channel, which indicates the
  maximum number of drives that can be present on the channel.  For now,
  this is always 2.  Add an ATA_MAXDRIVES constant that places an upper
  limit on this value, also currently 2.

Revision 1.74: download - view: text, markup, annotated - select for diffs
Fri Aug 13 03:12:59 2004 UTC (20 years, 4 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.73: preferred, colored
Changes since revision 1.73: +8 -9 lines
Don't bother with bits that tell of the presence of optional callbacks;
just check the function pointers for NULL.

Revision 1.73: download - view: text, markup, annotated - select for diffs
Fri Aug 13 02:16:40 2004 UTC (20 years, 4 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.72: preferred, colored
Changes since revision 1.72: +1 -2 lines
Move wdcstart() to ata.c and rename it to atastart().

Revision 1.72: download - view: text, markup, annotated - select for diffs
Fri Aug 13 02:10:43 2004 UTC (20 years, 4 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.71: preferred, colored
Changes since revision 1.71: +1 -2 lines
Move wdc_exec_xfer() to ata.c and rename it ata_exec_xfer().

Revision 1.71: download - view: text, markup, annotated - select for diffs
Thu Aug 12 22:39:41 2004 UTC (20 years, 4 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.70: preferred, colored
Changes since revision 1.70: +1 -4 lines
Move wdc_addref() and wdc_delref() to ata.c and rename them to
ata_*.

Revision 1.70: download - view: text, markup, annotated - select for diffs
Thu Aug 12 22:33:45 2004 UTC (20 years, 4 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.69: preferred, colored
Changes since revision 1.69: +1 -2 lines
Move wdc_kill_pending() to ata.c and rename it ata_kill_pending().

Revision 1.69: download - view: text, markup, annotated - select for diffs
Thu Aug 12 21:34:52 2004 UTC (20 years, 4 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.68: preferred, colored
Changes since revision 1.68: +1 -6 lines
- Move wdc_xfer_pool, wdc_get_xfer(), wdc_free_xfer() to ata.c, and rename
  to ata_*.
- Use a static initializer for the ata_xfer_pool.

Revision 1.68: download - view: text, markup, annotated - select for diffs
Thu Aug 12 21:10:18 2004 UTC (20 years, 4 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.67: preferred, colored
Changes since revision 1.67: +1 -3 lines
Move wdc_probe_caps() to ata.c and rename it ata_probe_caps().

Revision 1.67: download - view: text, markup, annotated - select for diffs
Thu Aug 12 20:59:27 2004 UTC (20 years, 4 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.66: preferred, colored
Changes since revision 1.66: +1 -2 lines
Move wdc_print_modes() into ata.c and rename it ata_print_modes().

Revision 1.36.2.2: download - view: text, markup, annotated - select for diffs
Thu Aug 12 11:41:27 2004 UTC (20 years, 4 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.36.2.1: preferred, colored
Changes since revision 1.36.2.1: +24 -23 lines
Sync with HEAD.

Revision 1.66: download - view: text, markup, annotated - select for diffs
Thu Aug 12 05:02:50 2004 UTC (20 years, 4 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.65: preferred, colored
Changes since revision 1.65: +1 -4 lines
Rename some constants:
WDC_COMPLETE -> ATACMD_COMPLETE
WDC_QUEUED -> ATACMD_QUEUED
WDC_TRY_AGAIN -> ATACMD_TRY_AGAIN

Revision 1.65: download - view: text, markup, annotated - select for diffs
Thu Aug 12 04:57:19 2004 UTC (20 years, 4 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.64: preferred, colored
Changes since revision 1.64: +2 -2 lines
Rename "struct wdc_command" to "struct ata_command".

Revision 1.64: download - view: text, markup, annotated - select for diffs
Wed Aug 11 18:41:46 2004 UTC (20 years, 4 months ago) by mycroft
Branches: MAIN
Diff to: previous 1.63: preferred, colored
Changes since revision 1.63: +5 -2 lines
Make datain_pio and dataout_pio function pointers in wdc_softc, which can
be overridden by the backend if desired.  Add experimental code to wdc_pcmcia
to use this in memory-mapped mode, disabled by default.

Revision 1.63: download - view: text, markup, annotated - select for diffs
Wed Aug 11 17:49:27 2004 UTC (20 years, 4 months ago) by mycroft
Branches: MAIN
Diff to: previous 1.62: preferred, colored
Changes since revision 1.62: +19 -17 lines
Add two helper functions -- wdc_datain_pio() and wdc_dataout_pio() -- which
encapsulate the logic for the various methods of transferring data.  Use these
throughout.

Revision 1.62: download - view: text, markup, annotated - select for diffs
Wed Aug 4 22:44:04 2004 UTC (20 years, 4 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.61: preferred, colored
Changes since revision 1.61: +2 -2 lines
Change wdc_kill_pending() to take a struct ata_drive_datas * as argument,
and kill only pending requests for this drive.
Implement a DRIVE_WAITDRAIN flag, which will cause the active command to
be killed once complete.
Other minor fixes.
Now it's possible to detach a ATA or ATAPI device from ioctl even when
a dd on the raw char partition is running.

Revision 1.61: download - view: text, markup, annotated - select for diffs
Wed Aug 4 18:24:11 2004 UTC (20 years, 4 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.60: preferred, colored
Changes since revision 1.60: +1 -2 lines
Add
struct ata_xfer *active_xfer
to ata_queue. Now the active xfer isn't the head of the queue any more,
this makes a few things easier (this will also help for tagged queuing
support).
Remove the WDCF_ACTIVE flag, test active_xfer != NULL instead.
clean up wdc_free_xfer() and kill_xfer().
Clean up wdc_reset_channel(), and make it issue a ATAPI_SOFT_RESET if the
active command is ATAPI.
In wdc_atapi_get_params(), use AT_WAIT | AT_POLL for ATAPI_SOFT_RESET,
so that we'll use tsleep() instead of delay().
In wdc_atapi_start(), call wdc_dmawait() at the right place.

Revision 1.36.2.1: download - view: text, markup, annotated - select for diffs
Tue Aug 3 10:46:21 2004 UTC (20 years, 4 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +131 -107 lines
Sync with HEAD

Revision 1.60: download - view: text, markup, annotated - select for diffs
Mon Aug 2 22:20:54 2004 UTC (20 years, 4 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.59: preferred, colored
Changes since revision 1.59: +6 -1 lines
Make it possible for (*dma_finish)() to abort quietly a DMA op. Use this
in wdc_reset_channel().

Revision 1.59: download - view: text, markup, annotated - select for diffs
Mon Aug 2 22:02:35 2004 UTC (20 years, 4 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.58: preferred, colored
Changes since revision 1.58: +4 -1 lines
Clean up interraction between wdc_reset_channel and the kernel thread.
Move kill_xfer() after the reset, and stop the DMA engine if needed
(this will unload the DMA maps).

Revision 1.58: download - view: text, markup, annotated - select for diffs
Sun Aug 1 21:40:41 2004 UTC (20 years, 4 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.57: preferred, colored
Changes since revision 1.57: +3 -2 lines
Implement an atabus control device, and define some ATA bus control
IOCTLS. Implement ATABUSIORESET, which will reset the given ATA bus.

Revision 1.57: download - view: text, markup, annotated - select for diffs
Tue May 25 20:42:41 2004 UTC (20 years, 6 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.56: preferred, colored
Changes since revision 1.56: +8 -3 lines
Add the notion of "shadow registers" to the wdc driver.  These shadow
registers are registers that overlap with others on many controllers, but
which may actually be distinct on some controllers.  Right now, the two
shadows are:

- wd_status (usually overlaps wd_command)
- wd_features (usually overlaps wd_error)

Add a new helper function, wdc_init_shadow_regs(), used to initialize
the shadow register handles on controllers where they do actually overlap.

Partially from Jordan Rhody @ Wasabi Systems, Inc.

Revision 1.55.2.1: download - view: text, markup, annotated - select for diffs
Sun Apr 18 02:23:41 2004 UTC (20 years, 7 months ago) by jmc
Branches: netbsd-2-0
CVS tags: netbsd-2-base, netbsd-2-0-RELEASE, netbsd-2-0-RC5, netbsd-2-0-RC4, netbsd-2-0-RC3, netbsd-2-0-RC2, netbsd-2-0-RC1, netbsd-2-0-3-RELEASE, netbsd-2-0-2-RELEASE, netbsd-2-0-1-RELEASE
Branch point for: netbsd-2
Diff to: previous 1.55: preferred, colored; next MAIN 1.56: preferred, colored
Changes since revision 1.55: +2 -2 lines
Pullup rev 1.56 (requested by bouyer in ticket #149)

Make wdc_channel->ch_flags volatile, and cast it to (void *) when used
in tsleep()/wakeup() to appease gcc. Otherwise, the ch_flags value may
be cached in a register in atabus_thread(), and when it sets the WDCF_TH_RUN
bit after tsleep() it may loose loose the changes made by an interrupt handler
or another thread.

Revision 1.56: download - view: text, markup, annotated - select for diffs
Tue Apr 13 19:51:06 2004 UTC (20 years, 8 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.55: preferred, colored
Changes since revision 1.55: +2 -2 lines
Make wdc_channel->ch_flags volatile, and cast it to (void *) when used
in tsleep()/wakeup() to appease gcc. Otherwise, the ch_flags value may
be cached in a register in atabus_thread(), and when it sets the WDCF_TH_RUN
bit after tsleep() it may loose loose the changes made by an interrupt handler
or another thread.
Problem analysed by Jukka Andberg on tech-kern.

Revision 1.55: download - view: text, markup, annotated - select for diffs
Sat Jan 3 23:59:58 2004 UTC (20 years, 11 months ago) by thorpej
Branches: MAIN
CVS tags: netbsd-2-0-base
Branch point for: netbsd-2-0
Diff to: previous 1.54: preferred, colored
Changes since revision 1.54: +2 -2 lines
More structure member namespace cleanup: thread -> ch_thread

Revision 1.54: download - view: text, markup, annotated - select for diffs
Sat Jan 3 22:56:53 2004 UTC (20 years, 11 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.53: preferred, colored
Changes since revision 1.53: +3 -3 lines
More wdc_channel structure member namespace cleanup:
- channel -> ch_channel
- wdc -> ch_wdc

Revision 1.53: download - view: text, markup, annotated - select for diffs
Sat Jan 3 19:31:09 2004 UTC (20 years, 11 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.52: preferred, colored
Changes since revision 1.52: +37 -28 lines
More comment/whitespace tidy-up.

Revision 1.52: download - view: text, markup, annotated - select for diffs
Sat Jan 3 01:50:53 2004 UTC (20 years, 11 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.51: preferred, colored
Changes since revision 1.51: +23 -23 lines
Rename "struct channel_softc" to "struct wdc_channel".

Revision 1.51: download - view: text, markup, annotated - select for diffs
Thu Jan 1 20:25:22 2004 UTC (20 years, 11 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.50: preferred, colored
Changes since revision 1.50: +4 -4 lines
Prepend "wdc_" to wait_for_drq, wait_for_unbusy, and wait_for_ready.

Revision 1.50: download - view: text, markup, annotated - select for diffs
Thu Jan 1 20:18:33 2004 UTC (20 years, 11 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.49: preferred, colored
Changes since revision 1.49: +50 -38 lines
Tidy up this file somewhat.

Revision 1.49: download - view: text, markup, annotated - select for diffs
Thu Jan 1 17:18:53 2004 UTC (20 years, 11 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.48: preferred, colored
Changes since revision 1.48: +6 -38 lines
Rename:
- wdc_xfer to ata_xfer
- channel_queue to ata_queue
and move them to <dev/ata/atavar.h> so they can be used by non-wdc ATA
controllers.  Clean up the member names of these structures while at it.

Revision 1.48: download - view: text, markup, annotated - select for diffs
Tue Dec 30 17:18:11 2003 UTC (20 years, 11 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.47: preferred, colored
Changes since revision 1.47: +6 -6 lines
Move the drive probing code out of atabusconfig() and into a new
wdc_drvprobe() function.  wdc_drvprobe() is used if the controller
does not specify a custom one prior to calling wdcattach().  The
WDC_CAPABILITY_DRVPROBE bit is gone.

Revision 1.47: download - view: text, markup, annotated - select for diffs
Tue Dec 30 16:28:37 2003 UTC (20 years, 11 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +5 -6 lines
Move most of the atabus layer into ata.c.

Revision 1.46: download - view: text, markup, annotated - select for diffs
Mon Dec 15 00:27:13 2003 UTC (21 years ago) by thorpej
Branches: MAIN
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +5 -1 lines
Add a (*drv_probe)() optional callback into the driver to probe for
drives on a channel.  Drivers should provide this if they have some
sort of intelligent probing mechanism.

Revision 1.45: download - view: text, markup, annotated - select for diffs
Wed Dec 3 12:01:18 2003 UTC (21 years ago) by bouyer
Branches: MAIN
Diff to: previous 1.44: preferred, colored
Changes since revision 1.44: +3 -1 lines
Move WDC_NREG from wdcreg.h to wdcvar.h. First part of fix for
port-macppc/23604.

Revision 1.44: download - view: text, markup, annotated - select for diffs
Thu Nov 27 23:02:40 2003 UTC (21 years ago) by fvdl
Branches: MAIN
Diff to: previous 1.43: preferred, colored
Changes since revision 1.43: +4 -3 lines
There are some cards that map the ATA control and IDE DMA registers
in a different fashion. Individually, they have the same functionality,
but their layout is different. An example of such a chipset is
the Promise 203xx.

To be able to deal with this, transform the cmd and dma bus_space handles
into an array of handles, each seperately created with bus_space_subregion.
The code generated by using the extra indirection shouldn't change much,
since the extra indirection is negated by having the offset calculation
already done in bus_space_subregion. E.g.

	bus_space_write_4(tag, handle, offset, value)

becomes

	bus_space_write_4(tag, handles[offset], 0, value)

Reviewed by Manuel Bouyer. Tested on wdc_isa, wdc_pcmcia, viaide, piixide (i386)
and on cmdide (sparc64).

Revision 1.43: download - view: text, markup, annotated - select for diffs
Sun Nov 2 11:07:46 2003 UTC (21 years, 1 month ago) by wiz
Branches: MAIN
Diff to: previous 1.42: preferred, colored
Changes since revision 1.42: +2 -2 lines
Fix some typos. From Tom Cosgrove via jmc@openbsd.

Revision 1.42: download - view: text, markup, annotated - select for diffs
Wed Oct 29 22:05:15 2003 UTC (21 years, 1 month ago) by bouyer
Branches: MAIN
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +2 -2 lines
freese->freeze, as pointed out by Frederick Bruck.

Revision 1.41: download - view: text, markup, annotated - select for diffs
Wed Oct 8 10:58:12 2003 UTC (21 years, 2 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +30 -15 lines
Make the ATA mid-layer appears as atabus, as proposed in
http://mail-index.netbsd.org/tech-kern/2003/09/25/0006.html
This adds a device (atabus) between IDE controllers and wd or atapibus, to
have each ATA channel show up in the device tree. Later there will be atabus
devices in /dev, so that we can do IOCTL on them.
Each atabus has its own kernel thread, to handle operations that needs polling,
e.g. reset and others.

Device probing on each bus it defered to the atabus thread creation.
This allows to do the reset and basic device probes in parallel, which reduce
boot time on systems with several pciide controllers.

Revision 1.40: download - view: text, markup, annotated - select for diffs
Thu Sep 25 19:29:49 2003 UTC (21 years, 2 months ago) by mycroft
Branches: MAIN
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +2 -2 lines
Hide the use of config_interrupts() in one place.

Revision 1.39: download - view: text, markup, annotated - select for diffs
Tue Sep 23 09:19:23 2003 UTC (21 years, 2 months ago) by mycroft
Branches: MAIN
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +0 -1 lines
Fix more probe delay and/or failure problems:
1) Don't wait for DRQ on an IDENTIFY command -- if it's not set when we see
   BSY clear, abort the command and ignore the drive.  (Do this by testing
   for DRQ in the read/write cases in __wdccommand_intr().)
2) Don't wait for DRQ to deassert when we finish an IDENTIFY (or any other
   non-block command that reads data) -- we don't do this for block I/O, and
   empirically it doesn't clear on my CF cards at all, causing a pointless 1s
   delay.
3) Add comments to some of the delay()s, and add missing ones in wdcreset()
   and the WDCC_RECAL in the so-called "pre-ATA" probe.
4) Slightly simplify the reset sequence -- we were doing an extra I/O.
5) Modify the register writability test to make sure that registers are not
   overlapped -- this can happen in some weird cases with a missing device 1.
6) Check the error register value after the reset -- if it's not 01h or 81h,
   as appropriate (see ATA spec), punt.
Tested with a number of ATA-only, ATAPI-only, mixed ATA-ATAPI, CF, and IDE
disk configurations.

Also remove the SINGLE_DRIVE nonsense again.

Revision 1.38: download - view: text, markup, annotated - select for diffs
Sun Sep 21 11:14:01 2003 UTC (21 years, 2 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +2 -1 lines
Since we can't detect ghost drives in the wdc back-end, resurect
WDC_CAPABILITY_SINGLE_DRIVE.

Revision 1.37: download - view: text, markup, annotated - select for diffs
Fri Sep 19 21:36:03 2003 UTC (21 years, 2 months ago) by mycroft
Branches: MAIN
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +4 -4 lines
1) Use config_interrupts() to attach IDE and ATAPI drives.  This eliminates
   most polling.
2) Clean up some goofiness in pciide -- get rid of the whole "candisable" path
   (it's gratuitous) and simplify the code by calling pciide_map_compat_intr(),
   *_set_modes() and wdc_print_modes() from central locations.
3) Add a register writability and register ghost test to eliminate phantom
   drives more quickly.

Revision 1.34.10.1: download - view: text, markup, annotated - select for diffs
Mon Apr 28 06:25:50 2003 UTC (21 years, 7 months ago) by tron
Branches: netbsd-1-6
CVS tags: netbsd-1-6-PATCH002-RELEASE, netbsd-1-6-PATCH002-RC4, netbsd-1-6-PATCH002-RC3, netbsd-1-6-PATCH002-RC2, netbsd-1-6-PATCH002-RC1, netbsd-1-6-PATCH002
Diff to: previous 1.34: preferred, colored; next MAIN 1.35: preferred, colored
Changes since revision 1.34: +4 -3 lines
Pull up revision 1.36 (requested by nakayama in ticket #1275):
Make DMA mode works on Promise Ultra66/100 with 48-bit LBA drives.
Ok'ed by bouyer in tech-kern@netbsd.org.

Revision 1.36: download - view: text, markup, annotated - select for diffs
Mon Apr 28 05:20:30 2003 UTC (21 years, 7 months ago) by nakayama
Branches: MAIN
Branch point for: ktrace-lwp
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +4 -3 lines
Make DMA mode works on Promise Ultra66/100 with 48-bit LBA drives.
Ok'ed by bouyer in tech-kern@netbsd.org.

Revision 1.35: download - view: text, markup, annotated - select for diffs
Mon Jan 27 18:21:26 2003 UTC (21 years, 10 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +4 -1 lines
Experimental support for RAID volumes configured by ATA "RAID" controllers.
Such RAID controllers are actually just IDE controllers with a BIOS that
can create RAID volumes and write the configuration info to config blocks
on the disks.  The BIOS can do I/O to these volumes, and the OS must
understand the config blocks and implement RAID in software in order to be
able to use these volumes.

Only SPAN (simple concatenation) and RAID0 are supported at this time,
and writing back config blocks is also not supported at this time.  Currently,
only the Promise configuration scheme is supported, although supporting
the Highpoint scheme should not be too difficult.

In any case, this is sufficient to use the Promise RAID0 volume (thus
preserving the win2k AS installation) on this new Intel server I have.

Thanks to Soren Schmidt for doing the work in FreeBSD; it made this
task much easier.  The config block parsing code is adapted from his
work.

Revision 1.28.2.5: download - view: text, markup, annotated - select for diffs
Thu Feb 28 04:13:32 2002 UTC (22 years, 9 months ago) by nathanw
Branches: nathanw_sa
CVS tags: nathanw_sa_end
Diff to: previous 1.28.2.4: preferred, colored; branchpoint 1.28: preferred, colored; next MAIN 1.29: preferred, colored
Changes since revision 1.28.2.4: +1 -1 lines
Catch up to -current.

Revision 1.28.2.4: download - view: text, markup, annotated - select for diffs
Sat Feb 23 22:55:59 2002 UTC (22 years, 9 months ago) by gmcgarry
Branches: nathanw_sa
Diff to: previous 1.28.2.3: preferred, colored; branchpoint 1.28: preferred, colored
Changes since revision 1.28.2.3: +4 -2 lines
Merge up from -current.

Revision 1.30.2.2: download - view: text, markup, annotated - select for diffs
Mon Feb 11 20:09:49 2002 UTC (22 years, 10 months ago) by jdolecek
Branches: kqueue
Diff to: previous 1.30.2.1: preferred, colored; branchpoint 1.30: preferred, colored; next MAIN 1.31: preferred, colored
Changes since revision 1.30.2.1: +4 -2 lines
Sync w/ -current.

Revision 1.25.2.2: download - view: text, markup, annotated - select for diffs
Wed Jan 16 10:14:50 2002 UTC (22 years, 11 months ago) by he
Branches: netbsd-1-5
CVS tags: netbsd-1-5-PATCH003
Diff to: previous 1.25.2.1: preferred, colored; branchpoint 1.25: preferred, colored; next MAIN 1.26: preferred, colored
Changes since revision 1.25.2.1: +5 -1 lines
Pull up revision 1.33 (via patch, requested by dbj):
  Add UDMA support and allow separate DMA timings to be programmed
  for two different devices on the same wdc channel on the macppc.
  The machine-independent driver is updated to optionally use the
  WDC_CAPABILITY_SELECT callback whenever a target is selected on
  a channel.

Revision 1.34: download - view: text, markup, annotated - select for diffs
Sun Jan 13 17:24:29 2002 UTC (22 years, 11 months ago) by christos
Branches: MAIN
CVS tags: newlock-base, newlock, netbsd-1-6-base, netbsd-1-6-RELEASE, netbsd-1-6-RC3, netbsd-1-6-RC2, netbsd-1-6-RC1, netbsd-1-6-PATCH001-RELEASE, netbsd-1-6-PATCH001-RC3, netbsd-1-6-PATCH001-RC2, netbsd-1-6-PATCH001-RC1, netbsd-1-6-PATCH001, nathanw_sa_before_merge, nathanw_sa_base, kqueue-beforemerge, kqueue-base, kqueue-aftermerge, ifpoll-base, gmcgarry_ucred_base, gmcgarry_ucred, gmcgarry_ctxsw_base, gmcgarry_ctxsw, gehenna-devsw-base, gehenna-devsw, fvdl_fs64_base, eeh-devprop-base, eeh-devprop
Branch point for: netbsd-1-6
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +4 -2 lines
Add LBA48 support based on patches from Keisuke YOSHIDA. KNF a bit while
I am there.

Revision 1.28.2.3: download - view: text, markup, annotated - select for diffs
Fri Jan 11 23:39:01 2002 UTC (22 years, 11 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.28.2.2: preferred, colored; branchpoint 1.28: preferred, colored
Changes since revision 1.28.2.2: +5 -1 lines
More catchup.

Revision 1.30.2.1: download - view: text, markup, annotated - select for diffs
Thu Jan 10 19:55:10 2002 UTC (22 years, 11 months ago) by thorpej
Branches: kqueue
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +12 -1 lines
Sync kqueue branch with -current.

Revision 1.28.2.2: download - view: text, markup, annotated - select for diffs
Tue Jan 8 00:30:13 2002 UTC (22 years, 11 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.28.2.1: preferred, colored; branchpoint 1.28: preferred, colored
Changes since revision 1.28.2.1: +8 -1 lines
Catch up to -current.

Revision 1.33: download - view: text, markup, annotated - select for diffs
Mon Jan 7 22:11:18 2002 UTC (22 years, 11 months ago) by dbj
Branches: MAIN
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +5 -1 lines
Changes to the wdc(4) mi driver that add the WDC_CAPABILITY_SELECT
flag and a callback function which gets called whenever a target is
selected on a channel.

The macppc wdc driver needs to reprogram its timing register
differently for each target on a channel each time that target is
selected.  I also changed the ATA4_TIME_TO_TICK to use a divisor of
15, which brings our timing calculations consistent with darwin.

These patches fix problems on my dual usb ibook with combo dvd/cdrw
drive because the hard drive supports udma and the combo drive does
not.  Without turning off the udma timings in the configuration
register, I cannot access the non-udma combo drive.

Revision 1.25.2.1: download - view: text, markup, annotated - select for diffs
Thu Dec 27 12:28:39 2001 UTC (22 years, 11 months ago) by he
Branches: netbsd-1-5
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +2 -1 lines
Pull up revision 1.28 (requested by mycroft):
  Make DVD commands work on drives configured for DMA.

Revision 1.32: download - view: text, markup, annotated - select for diffs
Mon Dec 3 00:11:17 2001 UTC (23 years ago) by bouyer
Branches: MAIN
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +7 -1 lines
Allow wd to attach to something else than wdc/pciide (like USB<->ATA bridges):
- move some functions from ata.c to ata_wdc.c or wdc.c.
- add callbacks to struct ata_bustype so that wd.c doesn't call directly
  functions from the lower level driver.

Revision 1.31: download - view: text, markup, annotated - select for diffs
Sat Dec 1 00:00:30 2001 UTC (23 years ago) by bouyer
Branches: MAIN
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +2 -1 lines
For ATAPI tape drives, poll for DSC (using a callout), to get the real
status of the command, and make sure the drive is ready for the next one.

Revision 1.28.2.1: download - view: text, markup, annotated - select for diffs
Thu Jun 21 20:03:29 2001 UTC (23 years, 5 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +4 -3 lines
Catch up to -current.

Revision 1.30: download - view: text, markup, annotated - select for diffs
Wed Jun 13 18:17:39 2001 UTC (23 years, 6 months ago) by bjh21
Branches: MAIN
CVS tags: thorpej-mips-cache-base, thorpej-mips-cache, thorpej-devvp-base3, thorpej-devvp-base2, thorpej-devvp-base, thorpej-devvp, pre-chs-ubcperf, post-chs-ubcperf
Branch point for: kqueue
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +2 -1 lines
Add explicit support for IDE and SCSI adaptors which don't support interrupts.
On such adaptors, all transfers are done in polling mode.

OK'ed by Manuel on tech-kern.

Revision 1.29: download - view: text, markup, annotated - select for diffs
Wed Apr 25 17:53:35 2001 UTC (23 years, 7 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +3 -3 lines
Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
  ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
  to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
  peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
  recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
  scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
  (no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
  set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
  the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
  will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge

Revision 1.19.2.6: download - view: text, markup, annotated - select for diffs
Sun Feb 11 19:15:41 2001 UTC (23 years, 10 months ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.19.2.5: preferred, colored; next MAIN 1.20: preferred, colored
Changes since revision 1.19.2.5: +2 -1 lines
Sync with HEAD.

Revision 1.28: download - view: text, markup, annotated - select for diffs
Mon Jan 22 07:00:39 2001 UTC (23 years, 10 months ago) by mycroft
Branches: MAIN
CVS tags: thorpej_scsipi_nbase, thorpej_scsipi_beforemerge, thorpej_scsipi_base
Branch point for: nathanw_sa
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +2 -1 lines
Force certain commands (i.e. DVD authentication) to PIO mode.  They are
explicitly not supported in DMA mode, and generally return an `illegal field
in CDB' error.
This should have been done ages ago.

Revision 1.19.2.5: download - view: text, markup, annotated - select for diffs
Thu Jan 18 09:23:22 2001 UTC (23 years, 10 months ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.19.2.4: preferred, colored
Changes since revision 1.19.2.4: +1 -0 lines
Sync with head (for UBC+NFS fixes, mostly).

Revision 1.27: download - view: text, markup, annotated - select for diffs
Sat Jan 6 14:55:50 2001 UTC (23 years, 11 months ago) by takemura
Branches: MAIN
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +2 -1 lines
Add WDC_CAPABILITY_SINGLE_DRIVE to ignore secound drive. Wdc on pcmcia will
be attached with this flag.
Some CF Card (for ex. IBM MicroDrive and SanDisk) doesn't seem to implement
drive select command. In this case, you can't eliminate ghost drive properly.
So you should use this flag to ignore the ghost by force.

Revision 1.19.2.4: download - view: text, markup, annotated - select for diffs
Wed Nov 22 16:03:35 2000 UTC (24 years ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.19.2.3: preferred, colored
Changes since revision 1.19.2.3: +3 -1 lines
Sync with HEAD.

Revision 1.19.2.3: download - view: text, markup, annotated - select for diffs
Mon Nov 20 11:41:06 2000 UTC (24 years ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.19.2.2: preferred, colored
Changes since revision 1.19.2.2: +21 -11 lines
Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.

Revision 1.26: download - view: text, markup, annotated - select for diffs
Wed Nov 8 17:57:37 2000 UTC (24 years, 1 month ago) by wrstuden
Branches: MAIN
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +3 -1 lines
Move guts of pciide_print_modes() to wdc_print_modes() so that non-pciide
wdc drivers (like macppc's obio IDE interface) can use it. Also add
support to both wd attach line and to wdc_print_modes() to print
Ultra/{33,66,100} for respective UDMA modes (From Manuel Bouyer).

Revision 1.16.2.2: download - view: text, markup, annotated - select for diffs
Fri Jul 7 17:33:48 2000 UTC (24 years, 5 months ago) by he
Branches: netbsd-1-4
CVS tags: netbsd-1-4-PATCH003
Diff to: previous 1.16.2.1: preferred, colored; branchpoint 1.16: preferred, colored; next MAIN 1.17: preferred, colored
Changes since revision 1.16.2.1: +21 -12 lines
Apply patch (requested by bouyer):
  Add support for the following PCIIDE controllers:
   o AMD 756
   o CMD PCI0648 and PCI0649
   o Hightpoint HPT366
   o OPTi 82c621 (and a few of its derivatives)
   o Promise Ultra/33 and Ultra/66
   o Intel 82801 (ICH/ICH0)
  Also fix PR#10437 (detect more ATAPI devices).

Revision 1.24.2.1: download - view: text, markup, annotated - select for diffs
Thu Jun 22 17:07:02 2000 UTC (24 years, 5 months ago) by minoura
Branches: minoura-xpg4dl
Diff to: previous 1.24: preferred, colored; next MAIN 1.25: preferred, colored
Changes since revision 1.24: +5 -1 lines
Sync w/ netbsd-1-5-base.

Revision 1.25: download - view: text, markup, annotated - select for diffs
Mon Jun 12 21:10:41 2000 UTC (24 years, 6 months ago) by bouyer
Branches: MAIN
CVS tags: netbsd-1-5-base, netbsd-1-5-RELEASE, netbsd-1-5-PATCH002, netbsd-1-5-PATCH001, netbsd-1-5-BETA2, netbsd-1-5-BETA, netbsd-1-5-ALPHA2
Branch point for: netbsd-1-5
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +5 -1 lines
Add a callback (*irqack), for controllers that need special action to ack
the interrupt once it has been ack'd on the drive.

Revision 1.24: download - view: text, markup, annotated - select for diffs
Sat Apr 1 14:32:22 2000 UTC (24 years, 8 months ago) by bouyer
Branches: MAIN
CVS tags: minoura-xpg4dl-base
Branch point for: minoura-xpg4dl
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +13 -7 lines
- DMA code cleanup: pciide_dma_finish() doesn't stop/unload the current DMA op
  if an IRQ was not detected, unless the force flag was given. Use this to
  detect if the IRQ was for us (closer to shared IRQ for controllers which
  don't have their own IRQ handler in pciide.c) and to poll for DMA xfer.
  Also makes the timeout recovery code simpler.
- ATAPI cleanup: don't call controller-specific functions from atapiconf.c
  (wdc_*), so that it's possible to attach an atapibus to something else
  than a wdc/pciide (Hi Lennart :).
  Overload struct scsi_adapter with struct atapi_adapter, defined
  as struct scsi_adapter + atapi-specific callbacks. scsipi_link still points
  to an scsi_adapter, atapi code casts it to atapi_adapter if needed.
  Move atapi_softc to atapiconf.h so that it can be used by the underlying
  controller code (e.g. atapi_wdc.c).
  Add an atapi-specific callback *atapi_probedev(), which probe a drive
  in a controller-specific way, allocate the sc_link and fills in the
  ataparams if needed. It then calls atapi_probedev() (from atapiconf.c)
  to do the generic initialisations and attach the device.
- While I'm there merge and centralise the state definitions in atavar.h.
  It should now be possible to use a common ata/atapi routine to set the
  drive's modes (will do later).

Revision 1.23: download - view: text, markup, annotated - select for diffs
Thu Mar 23 08:20:06 2000 UTC (24 years, 8 months ago) by enami
Branches: MAIN
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +2 -2 lines
Fix a typo in comment in previous commit.

Revision 1.22: download - view: text, markup, annotated - select for diffs
Thu Mar 23 07:01:33 2000 UTC (24 years, 8 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +5 -1 lines
New callout mechanism with two major improvements over the old
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
  resource allocation.
- Insertion and removal of callouts is constant time, important as
  this facility is used quite a lot in the kernel.

The old timeout()/untimeout() API has been removed from the kernel.

Revision 1.21: download - view: text, markup, annotated - select for diffs
Mon Mar 20 22:53:36 2000 UTC (24 years, 8 months ago) by enami
Branches: MAIN
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +1 -2 lines
- Test the generic device active flag instead of home grown one.
- Test also it in wdcintr.

Revision 1.19.6.1: download - view: text, markup, annotated - select for diffs
Mon Dec 27 18:34:53 1999 UTC (24 years, 11 months ago) by wrstuden
Branches: wrstuden-devbsize
Diff to: previous 1.19: preferred, colored; next MAIN 1.20: preferred, colored
Changes since revision 1.19: +4 -1 lines
Pull up to last week's -current.

Revision 1.19.4.1: download - view: text, markup, annotated - select for diffs
Mon Nov 15 00:40:39 1999 UTC (25 years, 1 month ago) by fvdl
Branches: fvdl-softdep
Diff to: previous 1.19: preferred, colored; next MAIN 1.20: preferred, colored
Changes since revision 1.19: +4 -1 lines
Sync with -current

Revision 1.19.2.2: download - view: text, markup, annotated - select for diffs
Wed Oct 20 22:33:28 1999 UTC (25 years, 1 month ago) by thorpej
Branches: thorpej_scsipi
Diff to: previous 1.19.2.1: preferred, colored
Changes since revision 1.19.2.1: +4 -1 lines
Sync w/ trunk.

Revision 1.20: download - view: text, markup, annotated - select for diffs
Wed Oct 20 15:22:26 1999 UTC (25 years, 1 month ago) by enami
Branches: MAIN
CVS tags: wrstuden-devbsize-base, wrstuden-devbsize-19991221, fvdl-softdep-base, comdex-fall-1999-base, comdex-fall-1999, chs-ubc2-newbase
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +4 -1 lines
Cancel active transfers on aic/wdc detach.
Also makes LS-120 drive works for me again.

Revision 1.19.2.1: download - view: text, markup, annotated - select for diffs
Tue Oct 19 17:47:45 1999 UTC (25 years, 1 month ago) by thorpej
Branches: thorpej_scsipi
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +5 -2 lines
Adapt to scsipi API changes.

Revision 1.19: download - view: text, markup, annotated - select for diffs
Thu Sep 23 11:04:32 1999 UTC (25 years, 2 months ago) by enami
Branches: MAIN
Branch point for: wrstuden-devbsize, thorpej_scsipi, fvdl-softdep
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +5 -1 lines
Allow to detach wdc, atapibus, wd and cd.

Revision 1.18: download - view: text, markup, annotated - select for diffs
Mon Aug 9 09:56:00 1999 UTC (25 years, 4 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +6 -9 lines
Garbage-collect C_INUSE and C_NEEDDONE.

Revision 1.16.2.1.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 21 01:17:58 1999 UTC (25 years, 5 months ago) by thorpej
Branches: chs-ubc2
Diff to: previous 1.16.2.1: preferred, colored; next MAIN 1.16.2.2: preferred, colored
Changes since revision 1.16.2.1: +0 -0 lines
Sync w/ -current.

Revision 1.16.2.1: download - view: text, markup, annotated - select for diffs
Mon Apr 12 09:14:31 1999 UTC (25 years, 8 months ago) by bouyer
Branches: netbsd-1-4
CVS tags: netbsd-1-4-RELEASE, netbsd-1-4-PATCH002, netbsd-1-4-PATCH001, kame_14_19990705, kame_14_19990628, kame_141_19991130, kame
Branch point for: chs-ubc2
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +2 -1 lines
Sync with ic/wdc.c 1.67, ic/wdcvar.h 1.17, isa/wdc_isa.c 1.14:
Revert to a more conservative probe: it controller responded and we don't find
ATAPI signature, assume it and ATA or OLD drive (OLD is only set if the
wdc front end passed WDC_CAPABILITIES_OLD, only used for ISA front-end).
At attach time, issue an IDENTIFY to detect drives and eliminates ghosts.
If IDENTIFY failed and OLD is set, issue a RECAL to check for the presence
of old drives.
Should fix the 'disk dissapeared' problems reported by some users, including
port-arm32/7324.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Sun Apr 11 20:50:29 1999 UTC (25 years, 8 months ago) by bouyer
Branches: MAIN
CVS tags: chs-ubc2-base
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +2 -1 lines
Fix probe code for IDE devices:
- Don't rely on ATA signature: some ide controllers seems to not transmit it
  properly (SIMIDE on arm32 machines). Instead, when we guess a drive is here
  after reset, just mark it as ATA and OLD is it's not ATAPI.
- at attach time, use IDENTIFY to eliminate ghost from the probe. If the
  drive had the old flag and IDENTIFY failed, issue a WDCC_RECAL command
  to detect a pre-ATA disk. If IDENTIFY succeded, remove the OLD flag,
  it's obviously not a pre-ATA disk.
- add a new controller flag, WDC_CAPABILITY_PREATA, used to shorcut parts
  of the probe (not necessary, but makes the probe/attach faster). This is
  only set by the ISA front-end, all other controllers supported can't have
  pre-ATA drives attached.
The mechanism used are more or less the same as before, they have just been
reordered. Should solve port-arm32/7324 (waiting for feedback).

Revision 1.16: download - view: text, markup, annotated - select for diffs
Thu Apr 1 21:46:30 1999 UTC (25 years, 8 months ago) by bouyer
Branches: MAIN
CVS tags: netbsd-1-4-base
Branch point for: netbsd-1-4
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +2 -2 lines
- change the interrupt routines to take a 3rd arguments, set to 1 if we
  are called from the interrupt or timeout handler, 0 otherwise.
- use this to know if we can busy-wait for wait_for_unbusy or wait_for_ready
This fixes a bug where CDs withot the DRQ_INTR capability would not busy-wait
for the CMDOUT phase.
While I'm there change 2 delay() to DELAY() for consistency, and
garbage-collect some old code from wdcintr() which has been ifdef'd out
for some time now.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Mon Feb 8 15:22:29 1999 UTC (25 years, 10 months ago) by bouyer
Branches: MAIN
CVS tags: bouyer-ide-last-dist
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +4 -6 lines
There's no ATA draft where it is required for the drive to set DRDY | DSC when
the disk is ready to transfer data, and in ATA-5 the DSC has been obsoleted.
So only wait for DRQ to transfer data. This can be made conditional on the
ATA version if it's proven to break with some drives (worked with all the
drives I have access to).
While I'm there correct a few typos.

Revision 1.14: download - view: text, markup, annotated - select for diffs
Wed Dec 16 12:46:47 1998 UTC (26 years ago) by bouyer
Branches: MAIN
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +4 -1 lines
Add a callback to re-compute the modes used on a channel.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Thu Dec 3 18:24:31 1998 UTC (26 years ago) by bouyer
Branches: MAIN
CVS tags: kenh-if-detach-base, kenh-if-detach
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +4 -4 lines
Rename pio_mode, etc ...  to PIO_cap, etc ... for consistency with the
ata_drive_datas struct. Suggested by Soren S. Jorvan.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Thu Dec 3 15:38:59 1998 UTC (26 years ago) by bouyer
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +2 -1 lines
add a udma_mode field to wdc_softc, and use it the same way dma_mode is used
(higthest ultra-dma mode supported). There may be a higther ultra-dma mode
defined ...

Revision 1.11: download - view: text, markup, annotated - select for diffs
Wed Dec 2 15:53:35 1998 UTC (26 years ago) by bouyer
Branches: MAIN
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +3 -3 lines
In struct wdc_xfer, change 'channel' to a pointer to a channel_softc, to avoid
a double-pointer dereference at run-time. Suggested by Matthias Drochner.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Sat Nov 21 15:41:42 1998 UTC (26 years ago) by drochner
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +3 -3 lines
in wdc_softc: access the per-channel data via a pointer array instead of
an array of fixed-sized channel_softc elements. This way IDE controllers
which more than 1 channel (pciide) can extend the channel data easily
for private needs.
To avoid the double dereference at runtime, change the argument of
wdcstart() to the channel data pointer instead of the array index.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Fri Nov 20 01:22:37 1998 UTC (26 years ago) by thorpej
Branches: MAIN
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +4 -1 lines
Implement reference counting for ATA adapters.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Thu Nov 19 21:53:00 1998 UTC (26 years ago) by thorpej
Branches: MAIN
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +10 -1 lines
Adapt to the new scsipi_adapter interface.

Revision 1.7: download - view: text, markup, annotated - select for diffs
Tue Nov 17 14:14:52 1998 UTC (26 years, 1 month ago) by bouyer
Branches: MAIN
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +2 -1 lines
New IDE xfer flag: C_SENSE, set by the ATAPI back-end sense info needs to
be retrieved.

Revision 1.6: download - view: text, markup, annotated - select for diffs
Mon Oct 12 16:09:18 1998 UTC (26 years, 2 months ago) by bouyer
Branches: MAIN
CVS tags: chs-ubc-base, chs-ubc
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +131 -64 lines
Merge bouyer-ide

Revision 1.2.2.13: download - view: text, markup, annotated - select for diffs
Mon Oct 5 08:17:35 1998 UTC (26 years, 2 months ago) by bouyer
Branches: bouyer-ide
CVS tags: bouyer-ide-merge
Diff to: previous 1.2.2.12: preferred, colored; branchpoint 1.2: preferred, colored; next MAIN 1.3: preferred, colored
Changes since revision 1.2.2.12: +2 -2 lines
Rename WDC_CAPABILITY_PIO to WDC_CAPABILITY_MODE, as it's used to tell wether
the controller's driver can tell which timing mode it uses. Check this
before setting DMA modes too.
This allow the generic DMA code to work again.

Revision 1.2.2.12: download - view: text, markup, annotated - select for diffs
Sun Oct 4 15:50:23 1998 UTC (26 years, 2 months ago) by bouyer
Branches: bouyer-ide
Diff to: previous 1.2.2.11: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.2.11: +2 -1 lines
New flag for wdc_xfer: C_DMA, set when a cmd will use DMA. This reduce some
if() in ata_wdc.c and atapi_wdc.c from 3 tests to one.

Revision 1.2.2.11: download - view: text, markup, annotated - select for diffs
Fri Oct 2 19:37:20 1998 UTC (26 years, 2 months ago) by bouyer
Branches: bouyer-ide
Diff to: previous 1.2.2.10: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.2.10: +13 -15 lines
Cleanup a few error message, remove some dead code. Re-add a reset at end of
attach, unless we have WDC_NO_EXTRA_RESETS.
Add support for data32iot/data32ioh from -current: each controller pass
WDC_CAPABILITY_DATA32 if they can do 32bit, and WDC_CAPABILITY_DATA16 if they
can do 16bit. For controller that support both, the usual autodetect
mechanism is still used.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Tue Sep 22 00:21:16 1998 UTC (26 years, 2 months ago) by mark
Branches: MAIN
CVS tags: bouyer-ide-base
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +7 -7 lines
Add data32iot and data32ioh members to the wdc_attachment_data structure.
This bus space tag and handle is used for 32 bit data transfers i.e.
when WDC_CAPABILITY_DATA32 is enabled as the 32 bit data register may
not be part of the standard drive registers.

Revision 1.2.2.10: download - view: text, markup, annotated - select for diffs
Sun Sep 20 19:00:15 1998 UTC (26 years, 2 months ago) by bouyer
Branches: bouyer-ide
Diff to: previous 1.2.2.9: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.2.9: +9 -9 lines
Kill the 'old drive' flag. The probe for IDE controllers now looks
like this :
- if status = 0xff for both master and slave, no drive at all -> exit.
- issue a reset (timeout = 31s).
- test signatures: if ATAPI signature, flag a (possible) ATAPI devices here
  else test register writability, then wait for the drive to become
  ready, issue a diagnostic command and wait for the drive to become ready
  if ok, flag a real ATA device.
This looks more like the old probe.
For ATA devices, if IDENTIFY fails, then it's an old drive and use
a fake disklabel/geometry.

Revision 1.2.2.9: download - view: text, markup, annotated - select for diffs
Sun Sep 20 13:16:17 1998 UTC (26 years, 2 months ago) by bouyer
Branches: bouyer-ide
Diff to: previous 1.2.2.8: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.2.8: +6 -3 lines
- always call config_found() from wdcattach(), instead of printing our own
  the "not configured" message ourselve. When no atapibus is configured,
  use a fake ata_atapi_attach, else call wdc_atapibus_attach(). This way we
  don't have to include the whole atapi support in an ata-only config.
- the dma_* function pointers take a 'int flags' as last argument, instead
  of an 'int read'. The 2 valid flags are: WDC_DMA_READ (to select read/write)
  and WDC_DMA_POLL, to signal interrupt-less mode (for core dumps).
- Reworked wdcprobe() so look more like the old one. A status of 0xff is
  interpreted as "no drive" (freebsd does this); this this speed up
  the probe for non-IDE machines (a reset timeout has been bumped to 31s,
  to match the specs). The probe set ups the drive flags to either ATA or
  ATAPI (depend on register signature) or OLD (if register signature don't
  match, but a working drive appears to be there). Later the ATA code
  will look at the OLD flag to decide wether there is no drive, or an old
  (ST506) one if WDC_IDENTIFY fails.
- For known PCI chips, don't use the wdcprobe() heuristic to find wether
  a channel is enabled/disabled; use the chip's specific registers for this.
- Clear the command queue when we have a polled command. This allows dumps to
  work even if a command was being handled by the controller at panic time.
- Increase the number of available DMA segments by one, as user requests may
  not be aligned on a page boundary.

Revision 1.2.2.8: download - view: text, markup, annotated - select for diffs
Fri Sep 11 16:23:13 1998 UTC (26 years, 3 months ago) by bouyer
Branches: bouyer-ide
Diff to: previous 1.2.2.7: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.2.7: +2 -1 lines
Sync with HEAD.

Revision 1.4: download - view: text, markup, annotated - select for diffs
Thu Sep 10 19:24:45 1998 UTC (26 years, 3 months ago) by kenh
Branches: MAIN
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +5 -1 lines
Add support for passing device quirks from the attachment routine,
and add support for a NO_EXTRA_RESETS quirk (required by the TEAC
IDE Card/II, which the Vaio uses).

Revision 1.2.2.7: download - view: text, markup, annotated - select for diffs
Fri Aug 21 16:34:47 1998 UTC (26 years, 3 months ago) by bouyer
Branches: bouyer-ide
Diff to: previous 1.2.2.6: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.2.6: +23 -23 lines
Sync with -current

Revision 1.3: download - view: text, markup, annotated - select for diffs
Sat Aug 15 10:10:50 1998 UTC (26 years, 4 months ago) by mycroft
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +22 -22 lines
Assign my copyrights to TNF.

Revision 1.2.2.6: download - view: text, markup, annotated - select for diffs
Thu Aug 13 14:27:50 1998 UTC (26 years, 4 months ago) by bouyer
Branches: bouyer-ide
Diff to: previous 1.2.2.5: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.2.5: +11 -6 lines
 - sync with HEAD
 - better error detection and report for wd drives
 - better wddump() support
 - wdcwait() now takes a timout argument, so that we can honnor the
   timeout argument of scsipi cmds.

Revision 1.2.2.5: download - view: text, markup, annotated - select for diffs
Tue Jun 23 08:07:36 1998 UTC (26 years, 5 months ago) by leo
Branches: bouyer-ide
Diff to: previous 1.2.2.4: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.2.4: +2 -0 lines
Add necessary cruft to handle swapped byte-lanes on the data-register. It
basically boils down to the fact that there are 2 new options:
WDC_CAPABILITY_{ATA,ATAPI}_NOSTREAM with which you are able to control
the usage bus_space_read_multi_X() vs. bus_space_read_multi_stream_X().

Revision 1.2.2.4: download - view: text, markup, annotated - select for diffs
Fri Jun 19 22:07:23 1998 UTC (26 years, 6 months ago) by leo
Branches: bouyer-ide
Diff to: previous 1.2.2.3: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.2.3: +4 -4 lines
Kill typo

Revision 1.2.2.3: download - view: text, markup, annotated - select for diffs
Fri Jun 5 10:09:14 1998 UTC (26 years, 6 months ago) by bouyer
Branches: bouyer-ide
Diff to: previous 1.2.2.2: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.2.2: +5 -4 lines
A few bux fixes (untested):
 - If the PIO mode of the controller is unknown, put the drive in the
   hightest mode it supports. A drive in a faster mode than the controller
   should work.
 - Create DMA maps even for unknown controllers in pciide.

Revision 1.2.2.2: download - view: text, markup, annotated - select for diffs
Fri Jun 5 08:38:57 1998 UTC (26 years, 6 months ago) by bouyer
Branches: bouyer-ide
Diff to: previous 1.2.2.1: preferred, colored; branchpoint 1.2: preferred, colored
Changes since revision 1.2.2.1: +2 -1 lines
Patches from Leo Weppelman for IDE on atari, with minor fixes by me
(needed the addition of a void wdcrestart __P((void*)) function).
Quoting his words:
These diffs are preliminary because it looks like the free_hw() function
does not get called. This is only a problem on the atari falcon. I have not
yet been able to track this down.
Also, KNF wdc.c.

Revision 1.2.2.1: download - view: text, markup, annotated - select for diffs
Thu Jun 4 16:52:47 1998 UTC (26 years, 6 months ago) by bouyer
Branches: bouyer-ide
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +117 -58 lines
Commit changes to the IDE system in a branch. This allows a better separation
between higth-level and low-level (i.e. registers read/write) and generalize
the queue for all commands. This also add supports for IDE DMA.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Tue Apr 7 19:51:58 1998 UTC (26 years, 8 months ago) by leo
Branches: MAIN
CVS tags: eeh-paddr_t-base, eeh-paddr_t
Branch point for: bouyer-ide
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +8 -1 lines
Add hooks to make exclusive hardware locking possible. This is necessary
to make the driver suitable for the atari falcon.

Revision 1.1: download - view: text, markup, annotated - select for diffs
Wed Jan 14 23:42:04 1998 UTC (26 years, 11 months ago) by cgd
Branches: MAIN
Various cleanups and bug fixes to the wdc/wd code:
* Fix bug in wdc that would overflow ATAPI transfer length.
* Improve wdc probe code so that 'wdc' is probed in if present
  even if there are no drives attached, and so that it works
  properly even if the only device is an ATAPI slave.
* bus_space-ify.
* split the ISA attachment from the wdc driver, and remove
  ISA dependencies from non-ISA files.
* claim that wd and wdc are now machine-independent (probably not
  completely true, but mostly so; they at least work on arm32 and
  i386).
* Various other minor fixups and cleanups, some of which were pointed
  out by Kazuki Sakamoto.

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options

CVSweb <webmaster@jp.NetBSD.org>