CVS log for src/sys/dev/ata/atavar.h
Up to [cvs.NetBSD.org] / src / sys / dev / ata
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
Revision 1.103.4.1: download - view: text, markup, annotated - select for diffs
Fri Dec 30 14:39:10 2022 UTC (2 years, 4 months ago) by martin
Branches: netbsd-9
CVS tags: netbsd-9-4-RELEASE
Diff to: previous 1.103: preferred, colored; next MAIN 1.104: preferred, colored
Changes since revision 1.103: +6 -4
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.109: download - view: text, markup, annotated - select for diffs
Tue Oct 5 08:01:05 2021 UTC (3 years, 7 months ago) by rin
Branches: MAIN
CVS tags: thorpej-ifq-base,
thorpej-ifq,
thorpej-altq-separation-base,
thorpej-altq-separation,
perseant-exfatfs-base-20240630,
perseant-exfatfs-base,
perseant-exfatfs,
netbsd-10-base,
netbsd-10-1-RELEASE,
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,
bouyer-sunxi-drm-base,
bouyer-sunxi-drm,
HEAD
Diff to: previous 1.108: preferred, colored
Changes since revision 1.108: +4 -2
lines
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.108: download - view: text, markup, annotated - select for diffs
Mon May 25 18:29:25 2020 UTC (4 years, 11 months ago) by jdolecek
Branches: MAIN
CVS tags: 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,
cjep_sun2x-base1,
cjep_sun2x-base,
cjep_sun2x,
cjep_staticlib_x-base1,
cjep_staticlib_x-base,
cjep_staticlib_x
Diff to: previous 1.107: preferred, colored
Changes since revision 1.107: +1 -4
lines
make ata_downgrade_mode() static, it's not used anywhere else
Revision 1.107: download - view: text, markup, annotated - select for diffs
Sat May 2 19:09:56 2020 UTC (5 years ago) by thorpej
Branches: MAIN
Diff to: previous 1.106: preferred, colored
Changes since revision 1.106: +3 -9
lines
Back out changes to use a threadpool for now; it's causing trouble
for some folks on Thinkpads.
Revision 1.104.2.2: download - view: text, markup, annotated - select for diffs
Sat Apr 25 11:23:59 2020 UTC (5 years ago) by bouyer
Branches: bouyer-xenpvh
Diff to: previous 1.104.2.1: preferred, colored; branchpoint 1.104: preferred, colored; next MAIN 1.105: preferred, colored
Changes since revision 1.104.2.1: +10 -4
lines
Sync with bouyer-xenpvh-base2 (HEAD)
Revision 1.106: download - view: text, markup, annotated - select for diffs
Sat Apr 25 00:07:27 2020 UTC (5 years ago) by thorpej
Branches: MAIN
CVS tags: bouyer-xenpvh-base2
Diff to: previous 1.105: preferred, colored
Changes since revision 1.105: +10 -4
lines
Rather than creating a kthread-per-channel, use a threadpool and a
threadpool-job-per-channel for the in-thread-context work that needs
to be done (which is rare).
On one of my test systems, this results in the total number of LWPs
after multi-user boot dropping from 116 to 78.
Revision 1.97.2.3: download - view: text, markup, annotated - select for diffs
Tue Apr 21 18:42:15 2020 UTC (5 years ago) by martin
Branches: phil-wifi
Diff to: previous 1.97.2.2: preferred, colored; branchpoint 1.97: preferred, colored; next MAIN 1.98: preferred, colored
Changes since revision 1.97.2.2: +2 -2
lines
Sync with HEAD
Revision 1.104.2.1: download - view: text, markup, annotated - select for diffs
Mon Apr 20 11:29:03 2020 UTC (5 years ago) by bouyer
Branches: bouyer-xenpvh
Diff to: previous 1.104: preferred, colored
Changes since revision 1.104: +3 -3
lines
Sync with HEAD
Revision 1.105: download - view: text, markup, annotated - select for diffs
Mon Apr 13 10:49:34 2020 UTC (5 years, 1 month ago) by jdolecek
Branches: MAIN
CVS tags: phil-wifi-20200421,
bouyer-xenpvh-base1
Diff to: previous 1.104: preferred, colored
Changes since revision 1.104: +3 -3
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.97.2.2: download - view: text, markup, annotated - select for diffs
Wed Apr 8 14:08:03 2020 UTC (5 years, 1 month ago) by martin
Branches: phil-wifi
Diff to: previous 1.97.2.1: preferred, colored; branchpoint 1.97: preferred, colored
Changes since revision 1.97.2.1: +2 -2
lines
Merge changes from current as of 20200406
Revision 1.104: download - view: text, markup, annotated - select for diffs
Sat Apr 4 21:36:15 2020 UTC (5 years, 1 month ago) by jdolecek
Branches: MAIN
CVS tags: phil-wifi-20200411,
phil-wifi-20200406,
bouyer-xenpvh-base
Branch point for: bouyer-xenpvh
Diff to: previous 1.103: preferred, colored
Changes since revision 1.103: +2 -2
lines
fix deadlock in wdcwait() when xfer timeout happens while the atabus
thread sleeps in wdcwait() - check current lwp rather than relying
on global ATACH_TH_RUN channel flag
should fix the hang part of the problem reported in
http://mail-index.netbsd.org/netbsd-users/2020/03/12/msg024249.html
thanks to Paul Ripke for providing extensive debugging info
Revision 1.97.2.1: download - view: text, markup, annotated - select for diffs
Mon Jun 10 22:07:06 2019 UTC (5 years, 11 months ago) by christos
Branches: phil-wifi
Diff to: previous 1.97: preferred, colored
Changes since revision 1.97: +68 -47
lines
Sync with HEAD
Revision 1.103: download - view: text, markup, annotated - select for diffs
Fri Apr 5 21:31:44 2019 UTC (6 years, 1 month ago) by bouyer
Branches: MAIN
CVS tags: phil-wifi-20191119,
phil-wifi-20190609,
netbsd-9-base,
netbsd-9-3-RELEASE,
netbsd-9-2-RELEASE,
netbsd-9-1-RELEASE,
netbsd-9-0-RELEASE,
netbsd-9-0-RC2,
netbsd-9-0-RC1,
isaki-audio2-base,
isaki-audio2,
is-mlppp-base,
is-mlppp,
ad-namecache-base3,
ad-namecache-base2,
ad-namecache-base1,
ad-namecache-base,
ad-namecache
Branch point for: netbsd-9
Diff to: previous 1.102: preferred, colored
Changes since revision 1.102: +1 -2
lines
drop AT_RST_NOCMD, it's a cut'n'paste side effect
Revision 1.102: download - view: text, markup, annotated - select for diffs
Fri Apr 5 20:44:09 2019 UTC (6 years, 1 month ago) by christos
Branches: MAIN
Diff to: previous 1.101: preferred, colored
Changes since revision 1.101: +16 -15
lines
unbreak the build, someone forgot to commit more stuff :-)
Revision 1.95.2.4: download - view: text, markup, annotated - select for diffs
Mon Nov 26 01:52:30 2018 UTC (6 years, 5 months ago) by pgoyette
Branches: pgoyette-compat
CVS tags: pgoyette-compat-merge-20190127
Diff to: previous 1.95.2.3: preferred, colored; branchpoint 1.95: preferred, colored; next MAIN 1.96: preferred, colored
Changes since revision 1.95.2.3: +50 -33
lines
Sync with HEAD, resolve a couple of conflicts
Revision 1.101: download - view: text, markup, annotated - select for diffs
Wed Oct 24 19:38:00 2018 UTC (6 years, 6 months ago) by jdolecek
Branches: MAIN
CVS tags: pgoyette-compat-20190127,
pgoyette-compat-20190118,
pgoyette-compat-1226,
pgoyette-compat-1126
Diff to: previous 1.100: preferred, colored
Changes since revision 1.100: +6 -5
lines
detach the controller itself on shutdown; adjust to not detach already
detached atabus/channel
Revision 1.100: download - view: text, markup, annotated - select for diffs
Mon Oct 22 20:13:47 2018 UTC (6 years, 6 months ago) by jdolecek
Branches: MAIN
Diff to: previous 1.99: preferred, colored
Changes since revision 1.99: +48 -32
lines
Merge jdolecek-ncqfixes branch
- ata_xfer's are dynamicall allocated as needed using a pool, no longer
limited to number of possible openings supported by controller; dump
and recovery paths use dedicated pre-allocated storage
- moved callouts and condvars from ata_xfer to queue or channel, so that
ata_xfer does not need special initialization
- slot allocation now done when xfer is being activated, uncoupled
from memory allocation; active slots are no longer tracked by controller
code
- channel and drive reset is done always via the atabus thread, and
now executes with channel locked the whole time
- NCQ recovery moved to shared function, and run via the thread also
- added some workarounds for buggy error recovery AHCI emulation in QEMU
and Parallels
designed to primarily fix kern/52614, but might also help with kern/47041
and kern/53183
Revision 1.99.2.12: download - view: text, markup, annotated - select for diffs
Mon Oct 15 21:18:53 2018 UTC (6 years, 7 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.99.2.11: preferred, colored; branchpoint 1.99: preferred, colored; next MAIN 1.100: preferred, colored
Changes since revision 1.99.2.11: +10 -7
lines
change the SATA/NCQ recovery to run in the atabus thread
Revision 1.99.2.11: download - view: text, markup, annotated - select for diffs
Thu Oct 11 20:57:51 2018 UTC (6 years, 7 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.99.2.10: preferred, colored; branchpoint 1.99: preferred, colored
Changes since revision 1.99.2.10: +8 -1
lines
refactor shared parts of the SATA error recovery into new function
ata_recovery_resume() and use for ahcisata/siisata/mvsata, also replace
per-controller hold/unhold with generic version
move the shared recovery code into separate file ata_recovery.c
Revision 1.99.2.10: download - view: text, markup, annotated - select for diffs
Sat Oct 6 21:19:55 2018 UTC (6 years, 7 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.99.2.9: preferred, colored; branchpoint 1.99: preferred, colored
Changes since revision 1.99.2.9: +2 -3
lines
actually, just make dump use the same queue skip as recovery, and remove the
no longer necessary ata_queue_reset() call from wd(4)
also for PR kern/47041
Revision 1.99.2.9: download - view: text, markup, annotated - select for diffs
Sat Oct 6 20:27:36 2018 UTC (6 years, 7 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.99.2.8: preferred, colored; branchpoint 1.99: preferred, colored
Changes since revision 1.99.2.8: +1 -8
lines
remove AT_RST_EMERG, do the queue reset explicitly in wd(4)
this should explicitly fix PR kern/47041 with sync during heavy
disk activity, even thought it was actually already implicitly fixed by calling
ata_thread_run() for drive reset in previous commit already, since the
function already called ata_queue_reset()
drop now unused ch_reset_flags and drive_reset_flags
Revision 1.99.2.8: download - view: text, markup, annotated - select for diffs
Wed Oct 3 19:20:48 2018 UTC (6 years, 7 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.99.2.7: preferred, colored; branchpoint 1.99: preferred, colored
Changes since revision 1.99.2.7: +7 -2
lines
change channel reset and drive reset for all ATA controllers to always
run via thread, and with channel lock held the whole time; the queue is
frozen while reset is pending
for this repurpose ata_reset_channel() into new ata_thread_run()
also adjust some device printfs to not leak xfer pointer, and avoid
aprint_* for non-autoconf messages
Revision 1.99.2.7: download - view: text, markup, annotated - select for diffs
Sat Sep 22 17:50:09 2018 UTC (6 years, 7 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.99.2.6: preferred, colored; branchpoint 1.99: preferred, colored
Changes since revision 1.99.2.6: +1 -3
lines
remove explicit ata_channel_start() calls, it's no longer necessary
now that ata_xfer's are allocated via pool and not really limited;
replace by just a callout to restart the processing for rare cases
where system runs out of memory
Revision 1.99.2.6: download - view: text, markup, annotated - select for diffs
Sat Sep 22 16:14:25 2018 UTC (6 years, 7 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.99.2.5: preferred, colored; branchpoint 1.99: preferred, colored
Changes since revision 1.99.2.5: +2 -1
lines
fix use-after-free in wd(4) dump, detected by switch to the pool
change code in wd_dumpblocks() to use it's own non-pool ata_xfer,
which skips the deallocation step and thus keeps the contents when the I/O
is finished
Revision 1.99.2.5: download - view: text, markup, annotated - select for diffs
Sat Sep 22 09:22:59 2018 UTC (6 years, 7 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.99.2.4: preferred, colored; branchpoint 1.99: preferred, colored
Changes since revision 1.99.2.4: +5 -6
lines
separate ata_xfer slot allocation and the memory allocation, so that
there can be more queued xfers than number of supported slots by controller,
and use a pool instead of custom pre-allocation
primarily to help PR kern/52614
remove no longer needed custom wd(4) logic for flush cache
switch also wd(4) trim/suspend/setcache/wdioctlstrategy to sleep waiting
for the memory, they are all called from process context and this
avoids spurious failures
Revision 1.99.2.4: download - view: text, markup, annotated - select for diffs
Mon Sep 17 19:30:25 2018 UTC (6 years, 7 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.99.2.3: preferred, colored; branchpoint 1.99: preferred, colored
Changes since revision 1.99.2.3: +8 -5
lines
move ATAPI-only members of ata_xfer to an union struct to further save space
Revision 1.99.2.3: download - view: text, markup, annotated - select for diffs
Mon Sep 17 19:00:43 2018 UTC (6 years, 7 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.99.2.2: preferred, colored; branchpoint 1.99: preferred, colored
Changes since revision 1.99.2.2: +3 -3
lines
switch from TAILQ to SIMPLEQ for ata_xfer pending queue to save
space, don't need doubly linked queue
Revision 1.99.2.2: download - view: text, markup, annotated - select for diffs
Mon Sep 17 18:36:13 2018 UTC (6 years, 7 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.99.2.1: preferred, colored; branchpoint 1.99: preferred, colored
Changes since revision 1.99.2.1: +6 -1
lines
move low-level protocol handlers hooks from ata_xfer to separate struct,
initialized statically
primarily to reduce ata_xfer struct size, but also improves readibility,
and enforces consistency
Revision 1.95.2.3: download - view: text, markup, annotated - select for diffs
Thu Sep 6 06:55:48 2018 UTC (6 years, 8 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.95.2.2: preferred, colored; branchpoint 1.95: preferred, colored
Changes since revision 1.95.2.2: +6 -2
lines
Sync with HEAD
Resolve a couple of conflicts (result of the uimin/uimax changes)
Revision 1.99.2.1: download - view: text, markup, annotated - select for diffs
Fri Aug 31 19:08:03 2018 UTC (6 years, 8 months ago) by jdolecek
Branches: jdolecek-ncqfixes
Diff to: previous 1.99: preferred, colored
Changes since revision 1.99: +10 -7
lines
refactor ata_xfer to be just dumb structure; move all callouts/condvars out
retry callout to wd(4); reset callout and the active/cmd finish condvars
to channel queue; change code using the condvars so it works if there
are multiple waiters
simplify the async wait code for cmds, replace ata_wait_xfer()/ata_wake_xfer()
with ata_wait_cmd()
fix the callout_invoking/ack race handling code for timeouts to
actually have chance to work; change mvsata(4) to use generic timeout func
towards resolution of kern/52614
Revision 1.99: download - view: text, markup, annotated - select for diffs
Fri Aug 10 22:43:22 2018 UTC (6 years, 9 months ago) by jdolecek
Branches: MAIN
CVS tags: pgoyette-compat-1020,
pgoyette-compat-0930,
pgoyette-compat-0906,
jdolecek-ncqfixes-base
Branch point for: jdolecek-ncqfixes
Diff to: previous 1.98: preferred, colored
Changes since revision 1.98: +2 -2
lines
fix race in wd_lastclose() on systems with two ide disks on same
channel, which happened when one disk had pending I/O while the other
disk executed the final disk flush - need to restart bufq processing
once xfer is freed in this case
it could happen e.g. on boot when system executes fsck on different
partitions on the two drives in parallell and hence open and closes
the disk devices repeatedly
add KASSERT() for empty bufq on wd_lastclose(), and fix similar issue
also on suspend/standby path
this was introduced by the NCQ merge and not dksubr - before the merge
each drive had their own xfer, so they could not block each other
fixes PR kern/52783 by Onno van der Linden; many thanks for extensive
help with tracking this down
Revision 1.98: download - view: text, markup, annotated - select for diffs
Mon Aug 6 20:07:05 2018 UTC (6 years, 9 months ago) by jdolecek
Branches: MAIN
Diff to: previous 1.97: preferred, colored
Changes since revision 1.97: +5 -1
lines
add wddebug() which dumps some status for attached disks; indended for
debugging of PR kern/52783
Revision 1.95.2.2: download - view: text, markup, annotated - select for diffs
Mon Jun 25 07:25:49 2018 UTC (6 years, 10 months ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.95.2.1: preferred, colored; branchpoint 1.95: preferred, colored
Changes since revision 1.95.2.1: +2 -1
lines
Sync with HEAD
Revision 1.97: download - view: text, markup, annotated - select for diffs
Fri Jun 1 18:13:30 2018 UTC (6 years, 11 months ago) by macallan
Branches: MAIN
CVS tags: phil-wifi-base,
pgoyette-compat-0728,
pgoyette-compat-0625
Branch point for: phil-wifi
Diff to: previous 1.96: preferred, colored
Changes since revision 1.96: +2 -1
lines
add a flag to start DMA before issuing commands - needed to work around a bug
in some SATA chips which get confused if the disk responds too fast
Mostly for K2 SATA / svwsata found in G5 Macs
adapted from OpenBSD
Revision 1.95.2.1: download - view: text, markup, annotated - select for diffs
Sun Apr 22 07:20:20 2018 UTC (7 years ago) by pgoyette
Branches: pgoyette-compat
Diff to: previous 1.95: preferred, colored
Changes since revision 1.95: +2 -2
lines
Sync with HEAD
Revision 1.96: download - view: text, markup, annotated - select for diffs
Mon Apr 16 22:33:28 2018 UTC (7 years, 1 month ago) by jdolecek
Branches: MAIN
CVS tags: pgoyette-compat-0521,
pgoyette-compat-0502,
pgoyette-compat-0422
Diff to: previous 1.95: preferred, colored
Changes since revision 1.95: +2 -2
lines
remove superfluous semicolon
Revision 1.90.2.2: download - view: text, markup, annotated - select for diffs
Sun Dec 3 11:36:59 2017 UTC (7 years, 5 months ago) by jdolecek
Branches: tls-maxphys
Diff to: previous 1.90.2.1: preferred, colored; branchpoint 1.90: preferred, colored; next MAIN 1.91: preferred, colored
Changes since revision 1.90.2.1: +242 -133
lines
update from HEAD
Revision 1.95: download - view: text, markup, annotated - select for diffs
Tue Oct 17 18:52:50 2017 UTC (7 years, 6 months ago) by jdolecek
Branches: MAIN
CVS tags: tls-maxphys-base-20171202,
pgoyette-compat-base,
pgoyette-compat-0415,
pgoyette-compat-0407,
pgoyette-compat-0330,
pgoyette-compat-0322,
pgoyette-compat-0315
Branch point for: pgoyette-compat
Diff to: previous 1.94: preferred, colored
Changes since revision 1.94: +2 -1
lines
reintroduce ATACH_IRQ_WAIT flag for attachments using wdcintr(), only
process the interrupt when the flag is set - this fixes spurious interrupt
during post-reset drive setup in wdc_ata_bio_start(), and wdc_atapi_start()
while those functions set WDCTL_IDS, this seems to be ignored by certain
(maybe all) PCI-IDE controllers; usually the implicit KERNEL_LOCK() would
prevent the interrupt anyway, but not when the start routine is started
from the atabus thread, which doesn't take it
fixes 'panic: wdc_ata_bio_intr: bad state' reported on current-users
by Chavdar Ivanov
Revision 1.94: download - view: text, markup, annotated - select for diffs
Tue Oct 10 17:19:38 2017 UTC (7 years, 7 months ago) by jdolecek
Branches: MAIN
Diff to: previous 1.93: preferred, colored
Changes since revision 1.93: +4 -1
lines
split off functions used by 'wd* at umass?' into separate file, unfortunately
the previous approach with NATABUS doesn't work for kernels which include
MODULAR, but not atabus - such as macppc and evbarm
Revision 1.93: download - view: text, markup, annotated - select for diffs
Sat Oct 7 16:05:32 2017 UTC (7 years, 7 months ago) by jdolecek
Branches: MAIN
Diff to: previous 1.92: preferred, colored
Changes since revision 1.92: +226 -121
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.92.8.29: download - view: text, markup, annotated - select for diffs
Fri Sep 29 20:05:07 2017 UTC (7 years, 7 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.28: preferred, colored; branchpoint 1.92: preferred, colored; next MAIN 1.93: preferred, colored
Changes since revision 1.92.8.28: +4 -2
lines
introduce ATA_BSIZE and use it instead of DEV_BSIZE for get params and
recovery, where they are by spec 512 bytes and not negotiable
Revision 1.92.8.28: download - view: text, markup, annotated - select for diffs
Wed Sep 27 19:05:57 2017 UTC (7 years, 7 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.27: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.27: +8 -1
lines
restore the atac_claim_hw and atac_free_hw hooks, they are used on atari
Revision 1.92.8.27: download - view: text, markup, annotated - select for diffs
Tue Sep 26 20:15:36 2017 UTC (7 years, 7 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.26: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.26: +2 -2
lines
make compile without NATA_DMA
Revision 1.92.8.26: download - view: text, markup, annotated - select for diffs
Tue Sep 19 21:06:25 2017 UTC (7 years, 7 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.25: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.25: +7 -3
lines
replace all remaining tsleep()/wakeup() calls with condition variables, or
calls to ata_delay(), as appropriate; change ata_delay() to require the
channel lock on entry, and pass the lock to kpause() for unlocking while
sleeping
Revision 1.92.8.25: download - view: text, markup, annotated - select for diffs
Sun Sep 10 19:31:15 2017 UTC (7 years, 8 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.24: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.24: +12 -3
lines
refactor code so that xfer c_start() hook is called with channel mutex held,
and hence the controller submit code no longer relies on spl
tested all the affected drivers - wdc (via piixide), ahci, mvsata, siisata,
both disk and atapi I/O
Revision 1.92.8.24: download - view: text, markup, annotated - select for diffs
Sat Aug 12 22:12:04 2017 UTC (7 years, 9 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.23: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.23: +2 -1
lines
do not reset drive after successful NCQ error recovery
Revision 1.92.8.23: download - view: text, markup, annotated - select for diffs
Sat Aug 12 14:41:54 2017 UTC (7 years, 9 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.22: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.22: +3 -1
lines
convert the atabus thread to use the channel lock and a condvar, adjust
code which sets the relevant channel flags to take the lock while doing so
Revision 1.92.8.22: download - view: text, markup, annotated - select for diffs
Sat Aug 12 09:52:28 2017 UTC (7 years, 9 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.21: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.21: +2 -9
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.92.8.21: download - view: text, markup, annotated - select for diffs
Tue Aug 1 21:39:51 2017 UTC (7 years, 9 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.20: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.20: +4 -4
lines
move the drive recovery block to drive struct, it's inherently per-drive
Revision 1.92.8.20: download - view: text, markup, annotated - select for diffs
Sat Jul 29 12:58:29 2017 UTC (7 years, 9 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.19: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.19: +11 -7
lines
reserve the highest slot for error recovery, and also have ata_channel
include space for the READ LOG EXT sector, so that it's not necessary
to allocate memory on the error handling path; now ata_read_log_ext_ncq()
will never fail due to resource shortage
Revision 1.92.8.19: download - view: text, markup, annotated - select for diffs
Sat Jul 22 22:02:21 2017 UTC (7 years, 9 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.18: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.18: +2 -1
lines
provide channel flag when executing NCQ commands, so that e.g. intr
handler can use this for handling decisions without checking xfer
Revision 1.92.8.18: download - view: text, markup, annotated - select for diffs
Fri Jul 21 17:32:27 2017 UTC (7 years, 9 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.17: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.17: +2 -1
lines
KASSERT() that chaosed xfer actually ends up with error; might end up being
returned as successful due to bugs in error recovery code
Revision 1.92.8.17: download - view: text, markup, annotated - select for diffs
Wed Jul 19 19:39:28 2017 UTC (7 years, 9 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.16: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.16: +24 -7
lines
tighen and expand error handling, mostly for NCQ use cases:
- make retry timeout callout per xfer, i.e. retry separately
- zero whole bio struct on retry to avoid more stale state
- add a REQUEUE option, which doesn't bump retry count
- add ata_read_log_ext_ncq() for NCQ recovery
- adjust logic for activating xfers - allow next command only when
it's for same drive, several concurrent are only supported when HBA
and driver support FIS-based switching
- add new ata_timeout() which handles race between callout_stop()
and the invokation, add appropriate handling on deactivate/free paths
- stop using ch_status/ch_error in non-wdc code; later it will be dropped
completely
Revision 1.92.8.16: download - view: text, markup, annotated - select for diffs
Tue Jun 27 18:36:03 2017 UTC (7 years, 10 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.15: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.15: +5 -6
lines
attend error paths, more strict asserts and code consistency
- atastart() and ata_kill_pending() now KASSERT() that all xfers on queue
have same channel
- inactive xfers are killed via new reason KILL_GONE_INACTIVE, controller
code must not call any resource deactivation in that case
- c_intr() must call ata_waitdrain_xfer_check() as first thing, and must not
further touch any xfer structures on exit path; any resource cleanup
is supposed to be done in c_kill_xfer()
- c_kill_xfer() should never call atastart()
- ata_waitdrain_check() removed, replaced by ata_waitdrain_xfer_check()
- ATA_DRIVE_WAITDRAIN handling converted to use condvar
- removed unused ata_c callback
Revision 1.92.8.15: download - view: text, markup, annotated - select for diffs
Fri Jun 23 20:40:51 2017 UTC (7 years, 10 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.14: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.14: +4 -2
lines
restart I/O processing after freeing xfer, i.e. now even after commands
like cache flush or standby; the command handling no longer use on-stack xfer,
hence use queue slot and compete with normal I/O for the xfers
the restart give change to all drives attached to the same channel
in round-robin fashion, for fair usage and to recover from situation
when disk is idle due to all xfers being consumed by other drives
make special concession for flush cache - ignore any new I/O requests
on the particular disk while the flush cache is waiting for xfer,
so that I/O queue won't starve the flush cache and the flush cache would
be done ASAP
tested on piixide(4), ahci(4), siisata(4)
Revision 1.92.8.14: download - view: text, markup, annotated - select for diffs
Wed Jun 21 22:40:43 2017 UTC (7 years, 10 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.13: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.13: +2 -2
lines
hold channel lock for ata_exec_xfer() and most of atastart(), convert
C_WAITACT handling to use condvar
add comment for the code block with C_FREE and ata_free_xfer() explaining
why it's not abstraction layer violation
Revision 1.92.8.13: download - view: text, markup, annotated - select for diffs
Wed Jun 21 19:38:43 2017 UTC (7 years, 10 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.12: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.12: +3 -3
lines
change ata_queue_hwslot_to_xfer() and ata_queue_get_active_xfer() to take
ata_channel instead of ata_queue as parameter, and lock the channel while
traversing the queue
Revision 1.92.8.12: download - view: text, markup, annotated - select for diffs
Wed Jun 21 19:21:25 2017 UTC (7 years, 10 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.11: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.11: +5 -3
lines
actually remove the KASSERT() for queue_active in wdc.c as it's superfluous,
and make struct ata_queue completly opaque to attachment code; fix two other
places which were not converted to ata_queue_alloc() which were surfaced
by this change
Revision 1.92.8.11: download - view: text, markup, annotated - select for diffs
Tue Jun 20 20:58:22 2017 UTC (7 years, 10 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.10: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.10: +16 -9
lines
remove ata queue downsizing - every device, attached to the same channel,
uses slots according to it's own limits
wdc code changed to expect maximum one active xfer, and not check number
of openings in the channel; this is to facilitate using wdc functions
for e.g. handling of atapi commands for drivers which support both ATAPI
and NCQ
Revision 1.92.8.10: download - view: text, markup, annotated - select for diffs
Mon Jun 19 21:00:00 2017 UTC (7 years, 10 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.9: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.9: +13 -9
lines
add ata_channel lock, use it to protect queue manipulation (only that for now);
add ata_channel_detach() to destroy the locks
change ata_get_xfer() so that it can wait for xfer, convert all on-stack
xfer code to use the blocking variant
fix siisata_reset_drive() to use polled reset and not try ata_activate_xfer(),
convert drive probe code also over from slot0 XXX to ata_get_xfer()
drive reset and PMP now works on siisata(4) too; changes tested also
on piixide(4), ahci(4), mvsata(4)
Revision 1.92.8.9: download - view: text, markup, annotated - select for diffs
Fri Jun 16 20:40:49 2017 UTC (7 years, 11 months ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.8: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.8: +5 -4
lines
adjust reset channel and dump paths
- channel reset now always kills active transfer, even on dump path, but
now doesn't touch the queued waiting transfers; also kill_xfer hook is
always called, so that HBA can free any private xfer resources and thus
the dump request has chance to work
- kill_xfer routines now always call ata_deactivate_xfer(); added KASSERT()s
to ata_free_xfer() to expect deactivated xfer
- when called during channel reset before dump, ata_kill_active() drops
any queued waiting transfers without processing
- do not (re)queue any transfers in wddone() when dumping
- kill AT_RST_NOCMD flag
This should also hopefully fix the 'polled command has been queued' panic
as reported in:
PR kern/11811 by John Hawkinson
PR kern/47041 by Taylor R Campbell
PR kern/51979 by Martin Husemann
dump tested working with piixide(4) and ahci(4). mvsata(4) dump times out,
but otherwise tested working, will be fixed separately. siisata(4) mechanically
changed and not tested.
Revision 1.92.8.8: download - view: text, markup, annotated - select for diffs
Mon Apr 24 22:20:23 2017 UTC (8 years ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.7: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.7: +4 -2
lines
set NCQ priority field to 'high' for BPRIO_TIMECRITICAL transfers if drive
supports it
Revision 1.92.8.7: download - view: text, markup, annotated - select for diffs
Thu Apr 20 20:14:42 2017 UTC (8 years ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.6: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.6: +2 -2
lines
use a fake ata_channel struct in umass_isdata.c so that the wd(4) calls
to ata_{get,free}_xfer() can work, adjust to ata interface changes
compile tested only
Revision 1.92.8.6: download - view: text, markup, annotated - select for diffs
Wed Apr 19 21:42:39 2017 UTC (8 years ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.5: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.5: +2 -1
lines
add ATA FUA support
Revision 1.92.8.5: download - view: text, markup, annotated - select for diffs
Wed Apr 19 20:49:17 2017 UTC (8 years ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.4: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.4: +18 -6
lines
adjust ata code to support more than one active command, including the
timeout handling, add support for NCQ commands
move probe for NCQ and number of tags to middle layer, negotiate mutual
support between drive and controller
implement NCQ support in ahci(4)
Revision 1.92.8.4: download - view: text, markup, annotated - select for diffs
Sat Apr 15 17:14:11 2017 UTC (8 years, 1 month ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.3: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.3: +66 -59
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.92.8.3: download - view: text, markup, annotated - select for diffs
Sat Apr 15 12:01:23 2017 UTC (8 years, 1 month ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.2: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.2: +54 -47
lines
make ata_xfer's allocated as part of ata_queue and make it include ata_bio;
they are pre-allocated on attach and ata_get_xfer() now never sleep, drop the
pool
modify wd(4) to file the bio requests using the xfers and hence
make it possible to have more than one active I/O request in flight;
ata_bio callback doesn't need to allocate any memory any more,
require it to never return ATACMD_TRY_AGAIN
move lp, badsect, multi from ata_bio to ata_drive_datas, as they are per-drive,
not per transfer
drop unused drv atac_claim_hw/atac_free_hw hooks, and also drop again ata_bio
c_hwslot
Revision 1.92.8.2: download - view: text, markup, annotated - select for diffs
Tue Apr 11 18:15:03 2017 UTC (8 years, 1 month ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92.8.1: preferred, colored; branchpoint 1.92: preferred, colored
Changes since revision 1.92.8.1: +3 -1
lines
hide active_xfer from drivers
Revision 1.92.8.1: download - view: text, markup, annotated - select for diffs
Mon Apr 10 22:57:02 2017 UTC (8 years, 1 month ago) by jdolecek
Branches: jdolecek-ncq
Diff to: previous 1.92: preferred, colored
Changes since revision 1.92: +22 -4
lines
ATA infrastructure improvements to eventually support more outstanding
commands
patch by Matt Thomas
Revision 1.92: download - view: text, markup, annotated - select for diffs
Wed Sep 10 07:04:48 2014 UTC (10 years, 8 months ago) by matt
Branches: MAIN
CVS tags: 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,
matt-nb8-mediatek-base,
matt-nb8-mediatek,
localcount-20160914,
jdolecek-ncq-base,
bouyer-socketcan-base1,
bouyer-socketcan-base,
bouyer-socketcan
Branch point for: jdolecek-ncq
Diff to: previous 1.91: preferred, colored
Changes since revision 1.91: +19 -19
lines
g/u_int[0-9]*_t/ s/u_int/uint/g
Revision 1.83.2.3: download - view: text, markup, annotated - select for diffs
Thu May 22 11:40:20 2014 UTC (10 years, 11 months ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.83.2.2: preferred, colored; branchpoint 1.83: preferred, colored; next MAIN 1.84: preferred, colored
Changes since revision 1.83.2.2: +3 -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.90.2.1: download - view: text, markup, annotated - select for diffs
Sun Jun 23 06:20:16 2013 UTC (11 years, 10 months ago) by tls
Branches: tls-maxphys
Diff to: previous 1.90: preferred, colored
Changes since revision 1.90: +3 -2
lines
resync from head
Revision 1.91: download - view: text, markup, annotated - select for diffs
Wed Apr 3 17:15:07 2013 UTC (12 years, 1 month ago) by bouyer
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,
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,
khorben-n900
Diff to: previous 1.90: preferred, colored
Changes since revision 1.90: +3 -2
lines
Fix kernel dump on ahci controller, by making sure we won't sleep
while dumping:
- introduce ata_delay() which either use delay() or kpause()
depending on flags. use it in sata_reset_interface() and
some ahci functions
- kill ATA_NOSLEEP, it was tested but never set. use ATA_POLL instead.
- reduce delay while polling in ahci, to speed up the dump
Should fix PR kern/41095
Revision 1.83.2.2: download - view: text, markup, annotated - select for diffs
Tue Oct 30 17:20:53 2012 UTC (12 years, 6 months ago) by yamt
Branches: yamt-pagecache
CVS tags: yamt-pagecache-tag8
Diff to: previous 1.83.2.1: preferred, colored; branchpoint 1.83: preferred, colored
Changes since revision 1.83.2.1: +25 -25
lines
sync with head
Revision 1.90: download - view: text, markup, annotated - select for diffs
Tue Jul 31 15:50:34 2012 UTC (12 years, 9 months ago) by bouyer
Branches: MAIN
CVS tags: yamt-pagecache-base8,
yamt-pagecache-base7,
yamt-pagecache-base6,
agc-symver-base,
agc-symver
Branch point for: tls-maxphys
Diff to: previous 1.89: preferred, colored
Changes since revision 1.89: +25 -22
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.89: download - view: text, markup, annotated - select for diffs
Sun Jul 29 21:10:50 2012 UTC (12 years, 9 months ago) by jakllsch
Branches: MAIN
Diff to: previous 1.88: preferred, colored
Changes since revision 1.88: +1 -4
lines
Remove ata_channel->ata_drives, it's redundant with the pointer in
ata_drive_datas. Originally part of a commit by bouyer@.
Revision 1.88: download - view: text, markup, annotated - select for diffs
Thu Jul 26 20:49:47 2012 UTC (12 years, 9 months ago) by jakllsch
Branches: MAIN
Diff to: previous 1.87: preferred, colored
Changes since revision 1.87: +25 -25
lines
Revert, with intention of restoring in a less invasive way, the SATA Port
Multiplier code.
ok christos@
Revision 1.87: download - view: text, markup, annotated - select for diffs
Tue Jul 24 14:04:29 2012 UTC (12 years, 9 months ago) by jakllsch
Branches: MAIN
Diff to: previous 1.86: preferred, colored
Changes since revision 1.86: +15 -15
lines
Revert dsl@'s changes of Sun, 15 Jul 2012 10:55:35 +0000 and
Sun, 15 Jul 2012 10:56:50 +0000, excepting the kernel version bump.
First step in reverting regressions to ata(4) subsystem during the addition of
port multiplier support.
Revision 1.86: download - view: text, markup, annotated - select for diffs
Sun Jul 15 10:55:29 2012 UTC (12 years, 10 months ago) by dsl
Branches: MAIN
Diff to: previous 1.85: preferred, colored
Changes since revision 1.85: +16 -16
lines
Some namespace protection (and add greppablity).
Prefix the DRIVE_ and DRIVET_ constants from atavar.h with ATA_.
Don't use an enum for drive_type - you don't know how big it will be.
Move driver_type to avoid implicit structure padding (esp on arm).
This change is purely lexical and mechanical.
Update to 6.99.9 - this wasn't done when the SATA PMP changes
were made - I'm sure they warranted a bump.
Revision 1.85: download - view: text, markup, annotated - select for diffs
Mon Jul 2 18:15:46 2012 UTC (12 years, 10 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.84: preferred, colored
Changes since revision 1.84: +25 -25
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.83.2.1: download - view: text, markup, annotated - select for diffs
Tue Apr 17 00:07:28 2012 UTC (13 years, 1 month ago) by yamt
Branches: yamt-pagecache
Diff to: previous 1.83: preferred, colored
Changes since revision 1.83: +19 -11
lines
sync with head
Revision 1.83.6.1: download - view: text, markup, annotated - select for diffs
Sat Feb 18 07:34:08 2012 UTC (13 years, 3 months ago) by mrg
Branches: jmcneill-usbmp
Diff to: previous 1.83: preferred, colored; next MAIN 1.84: preferred, colored
Changes since revision 1.83: +19 -11
lines
merge to -current.
Revision 1.84: download - view: text, markup, annotated - select for diffs
Tue Jan 24 20:04:07 2012 UTC (13 years, 3 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.83: preferred, colored
Changes since revision 1.83: +19 -11
lines
Rework struct ata_command to support LBA28 and LBA48-protocol commands.
Implement 28- and 48-bit command issuance and parameter read-back in the
various ATA host drivers. Add LBA28-protocol support to ATAIOCCOMMAND ioctl.
Revision 1.83: download - view: text, markup, annotated - select for diffs
Sat Oct 29 18:43:58 2011 UTC (13 years, 6 months ago) by jakllsch
Branches: MAIN
CVS tags: yamt-pagecache-base3,
yamt-pagecache-base2,
yamt-pagecache-base,
jmcneill-usbmp-pre-base2,
jmcneill-usbmp-base,
jmcneill-audiomp3-base,
jmcneill-audiomp3
Branch point for: yamt-pagecache,
jmcneill-usbmp
Diff to: previous 1.82: preferred, colored
Changes since revision 1.82: +3 -3
lines
Some comment improvements; spelling and grammar.
Revision 1.80.6.1: download - view: text, markup, annotated - select for diffs
Mon Jun 6 09:07:45 2011 UTC (13 years, 11 months ago) by jruoho
Branches: jruoho-x86intr
Diff to: previous 1.80: preferred, colored; next MAIN 1.81: preferred, colored
Changes since revision 1.80: +2 -7
lines
Sync with HEAD.
Revision 1.80.4.2: download - view: text, markup, annotated - select for diffs
Tue May 31 03:04:34 2011 UTC (13 years, 11 months ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.80.4.1: preferred, colored; branchpoint 1.80: preferred, colored; next MAIN 1.81: preferred, colored
Changes since revision 1.80.4.1: +1 -0
lines
sync with head
Revision 1.82: download - view: text, markup, annotated - select for diffs
Sat Apr 30 00:34:03 2011 UTC (14 years ago) by jakllsch
Branches: MAIN
CVS tags: rmind-uvmplock-nbase,
rmind-uvmplock-base,
cherry-xenmp-base,
cherry-xenmp
Diff to: previous 1.81: preferred, colored
Changes since revision 1.81: +2 -1
lines
Add simplistic atabus(4) rescan support.
Revision 1.80.4.1: download - view: text, markup, annotated - select for diffs
Thu Apr 21 01:41:45 2011 UTC (14 years ago) by rmind
Branches: rmind-uvmplock
Diff to: previous 1.80: preferred, colored
Changes since revision 1.80: +1 -7
lines
sync with head
Revision 1.81: download - view: text, markup, annotated - select for diffs
Mon Apr 18 01:47:28 2011 UTC (14 years, 1 month ago) by rmind
Branches: MAIN
Diff to: previous 1.80: preferred, colored
Changes since revision 1.80: +1 -7
lines
Replace few simple_lock and ltsleep/wakeup uses with mutex(9) and condvar(9).
Note to all: please replace old primitives in your code! Thanks.
Revision 1.76.4.2: download - view: text, markup, annotated - select for diffs
Thu Mar 11 15:03:24 2010 UTC (15 years, 2 months ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.76.4.1: preferred, colored; branchpoint 1.76: preferred, colored; next MAIN 1.77: preferred, colored
Changes since revision 1.76.4.1: +1 -6
lines
sync with head
Revision 1.80: download - view: text, markup, annotated - select for diffs
Mon Oct 19 18:41:12 2009 UTC (15 years, 6 months ago) by bouyer
Branches: MAIN
CVS tags: yamt-nfs-mp-base9,
yamt-nfs-mp-base11,
yamt-nfs-mp-base10,
uebayasi-xip-base4,
uebayasi-xip-base3,
uebayasi-xip-base2,
uebayasi-xip-base1,
uebayasi-xip-base,
uebayasi-xip,
matt-premerge-20091211,
matt-mips64-premerge-20101231,
jym-xensuspend-nbase,
jruoho-x86intr-base,
bouyer-quota2-nbase,
bouyer-quota2-base,
bouyer-quota2
Branch point for: rmind-uvmplock,
jruoho-x86intr
Diff to: previous 1.79: preferred, colored
Changes since revision 1.79: +1 -6
lines
Remove closes 3 & 4 from my licence. Lots of thanks to Soren Jacobsen
for the booring work !
Revision 1.76.4.1: download - view: text, markup, annotated - select for diffs
Sat May 16 10:41:19 2009 UTC (16 years ago) by yamt
Branches: yamt-nfs-mp
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +4 -4
lines
sync with head
Revision 1.78.4.1: download - view: text, markup, annotated - select for diffs
Wed May 13 17:19:11 2009 UTC (16 years ago) by jym
Branches: jym-xensuspend
Diff to: previous 1.78: preferred, colored; next MAIN 1.79: preferred, colored
Changes since revision 1.78: +4 -4
lines
Sync with HEAD.
Commit is split, to avoid a "too many arguments" protocol error.
Revision 1.79: download - view: text, markup, annotated - select for diffs
Tue May 12 14:16:53 2009 UTC (16 years ago) by cegger
Branches: MAIN
CVS tags: yamt-nfs-mp-base8,
yamt-nfs-mp-base7,
yamt-nfs-mp-base6,
yamt-nfs-mp-base5,
yamt-nfs-mp-base4,
jymxensuspend-base,
jym-xensuspend-base
Diff to: previous 1.78: preferred, colored
Changes since revision 1.78: +4 -4
lines
struct device * -> device_t, no functional changes intended.
Revision 1.77.2.1: download - view: text, markup, annotated - select for diffs
Mon Jan 19 13:17:52 2009 UTC (16 years, 3 months ago) by skrll
Branches: nick-hppapmap
Diff to: previous 1.77: preferred, colored; next MAIN 1.78: preferred, colored
Changes since revision 1.77: +2 -1
lines
Sync with HEAD.
Revision 1.75.10.3: download - view: text, markup, annotated - select for diffs
Sat Jan 17 13:28:52 2009 UTC (16 years, 4 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.75.10.2: preferred, colored; branchpoint 1.75: preferred, colored; next MAIN 1.76: preferred, colored
Changes since revision 1.75.10.2: +1 -0
lines
Sync with HEAD.
Revision 1.76.10.2: download - view: text, markup, annotated - select for diffs
Sat Dec 13 01:14:13 2008 UTC (16 years, 5 months ago) by haad
Branches: haad-dm
Diff to: previous 1.76.10.1: preferred, colored; branchpoint 1.76: preferred, colored; next MAIN 1.77: preferred, colored
Changes since revision 1.76.10.1: +2 -1
lines
Update haad-dm branch to haad-dm-base2.
Revision 1.77.4.1: download - view: text, markup, annotated - select for diffs
Thu Nov 20 02:45:36 2008 UTC (16 years, 5 months ago) by snj
Branches: netbsd-5
CVS tags: 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,
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
Diff to: previous 1.77: preferred, colored; next MAIN 1.78: preferred, colored
Changes since revision 1.77: +2 -1
lines
Pull up following revision(s) (requested by bouyer in ticket #67):
sys/dev/ic/wdc.c: revision 1.256
sys/dev/ata/ata.c: revision 1.102
sys/dev/scsipi/atapi_wdc.c: revision 1.109
sys/dev/ata/atavar.h: revision 1.78
sys/dev/ata/ata_wdc.c: revision 1.91
cpu_intr_p() doesn't account for software interrupts (e.g. callouts) so
we can't use it here. Rssurect ATACH_TH_RUN, backing out
src/sys/dev/ata/ata.c 1.101
src/sys/dev/ata/ata_wdc.c 1.90
src/sys/dev/ata/atavar.h 1.77
src/sys/dev/ic/wdc.c 1.255
src/sys/dev/scsipi/atapi_wdc.c 1.108
Should fix kern/39927 and kern/39725.
Revision 1.78: download - view: text, markup, annotated - select for diffs
Sun Nov 16 19:31:21 2008 UTC (16 years, 6 months ago) by bouyer
Branches: MAIN
CVS tags: yamt-nfs-mp-base3,
nick-hppapmap-base4,
nick-hppapmap-base3,
nick-hppapmap-base2,
nick-hppapmap-base,
mjf-devfs2-base,
haad-nbase2,
haad-dm-base2,
haad-dm-base,
ad-audiomp2-base,
ad-audiomp2
Branch point for: jym-xensuspend
Diff to: previous 1.77: preferred, colored
Changes since revision 1.77: +1 -0
lines
cpu_intr_p() doesn't account for software interrupts (e.g. callouts) so
we can't use it here. Rssurect ATACH_TH_RUN, backing out
src/sys/dev/ata/ata.c 1.101
src/sys/dev/ata/ata_wdc.c 1.90
src/sys/dev/ata/atavar.h 1.77
src/sys/dev/ic/wdc.c 1.255
src/sys/dev/scsipi/atapi_wdc.c 1.108
Should fix kern/39927 and kern/39725.
Revision 1.76.10.1: download - view: text, markup, annotated - select for diffs
Sun Oct 19 22:16:19 2008 UTC (16 years, 6 months ago) by haad
Branches: haad-dm
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +1 -2
lines
Sync with HEAD.
Revision 1.76.6.1: download - view: text, markup, annotated - select for diffs
Fri Oct 10 22:30:58 2008 UTC (16 years, 7 months ago) by skrll
Branches: wrstuden-revivesa
Diff to: previous 1.76: preferred, colored; next MAIN 1.77: preferred, colored
Changes since revision 1.76: +1 -2
lines
Sync with HEAD.
Revision 1.75.10.2: download - view: text, markup, annotated - select for diffs
Sun Oct 5 20:11:28 2008 UTC (16 years, 7 months ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.75.10.1: preferred, colored; branchpoint 1.75: preferred, colored
Changes since revision 1.75.10.1: +0 -1
lines
Sync with HEAD.
Revision 1.77: download - view: text, markup, annotated - select for diffs
Thu Oct 2 21:05:17 2008 UTC (16 years, 7 months ago) by bouyer
Branches: MAIN
CVS tags: wrstuden-revivesa-base-4,
netbsd-5-base,
matt-mips64-base2,
haad-dm-base1
Branch point for: nick-hppapmap,
netbsd-5
Diff to: previous 1.76: preferred, colored
Changes since revision 1.76: +1 -2
lines
Kill ATACH_TH_RUN and use cpu_intr_p() instead.
Revision 1.75.10.1: download - view: text, markup, annotated - select for diffs
Thu Apr 3 12:42:38 2008 UTC (17 years, 1 month ago) by mjf
Branches: mjf-devfs2
Diff to: previous 1.75: preferred, colored
Changes since revision 1.75: +4 -4
lines
Sync with HEAD.
Revision 1.69.2.5: download - view: text, markup, annotated - select for diffs
Mon Mar 24 09:38:46 2008 UTC (17 years, 1 month ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.69.2.4: preferred, colored; branchpoint 1.69: preferred, colored; next MAIN 1.70: preferred, colored
Changes since revision 1.69.2.4: +4 -4
lines
sync with head.
Revision 1.75.6.1: download - view: text, markup, annotated - select for diffs
Mon Mar 24 07:15:15 2008 UTC (17 years, 1 month ago) by keiichi
Branches: keiichi-mipv6
Diff to: previous 1.75: preferred, colored; next MAIN 1.76: preferred, colored
Changes since revision 1.75: +4 -4
lines
sync with head.
Revision 1.74.8.2: download - view: text, markup, annotated - select for diffs
Sun Mar 23 02:04:36 2008 UTC (17 years, 1 month ago) by matt
Branches: matt-armv6
Diff to: previous 1.74.8.1: preferred, colored; branchpoint 1.74: preferred, colored; next MAIN 1.75: preferred, colored
Changes since revision 1.74.8.1: +4 -4
lines
sync with HEAD
Revision 1.76: download - view: text, markup, annotated - select for diffs
Tue Mar 18 20:46:36 2008 UTC (17 years, 2 months ago) by cube
Branches: MAIN
CVS tags: yamt-pf42-baseX,
yamt-pf42-base4,
yamt-pf42-base3,
yamt-pf42-base2,
yamt-pf42-base,
yamt-pf42,
yamt-nfs-mp-base2,
yamt-nfs-mp-base,
yamt-lazymbuf-base15,
yamt-lazymbuf-base14,
wrstuden-revivesa-base-3,
wrstuden-revivesa-base-2,
wrstuden-revivesa-base-1,
wrstuden-revivesa-base,
simonb-wapbl-nbase,
simonb-wapbl-base,
simonb-wapbl,
matt-armv6-nbase,
keiichi-mipv6-nbase,
keiichi-mipv6-base,
hpcarm-cleanup-nbase,
ad-socklock-base1
Branch point for: yamt-nfs-mp,
wrstuden-revivesa,
haad-dm
Diff to: previous 1.75: preferred, colored
Changes since revision 1.75: +4 -4
lines
Split device_t and softc for ATA devices, as well as wd(4). Other
cosmetic changes where appropriate.
Revision 1.69.2.4: download - view: text, markup, annotated - select for diffs
Mon Jan 21 09:42:37 2008 UTC (17 years, 3 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.69.2.3: preferred, colored; branchpoint 1.69: preferred, colored
Changes since revision 1.69.2.3: +1 -2
lines
sync with head
Revision 1.74.8.1: download - view: text, markup, annotated - select for diffs
Wed Jan 9 01:52:25 2008 UTC (17 years, 4 months ago) by matt
Branches: matt-armv6
Diff to: previous 1.74: preferred, colored
Changes since revision 1.74: +1 -2
lines
sync with HEAD
Revision 1.74.16.1: download - view: text, markup, annotated - select for diffs
Wed Dec 26 19:46:03 2007 UTC (17 years, 4 months ago) by ad
Branches: vmlocking2
Diff to: previous 1.74: preferred, colored; next MAIN 1.75: preferred, colored
Changes since revision 1.74: +1 -2
lines
Sync with head.
Revision 1.74.18.1: download - view: text, markup, annotated - select for diffs
Tue Dec 11 15:25:29 2007 UTC (17 years, 5 months ago) by yamt
Branches: yamt-kmem
Diff to: previous 1.74: preferred, colored; next MAIN 1.75: preferred, colored
Changes since revision 1.74: +1 -2
lines
sync with head.
Revision 1.75: download - view: text, markup, annotated - select for diffs
Sun Dec 9 20:27:54 2007 UTC (17 years, 5 months ago) by jmcneill
Branches: MAIN
CVS tags: yamt-kmem-base3,
yamt-kmem-base2,
vmlocking2-base3,
nick-net80211-sync-base,
nick-net80211-sync,
mjf-devfs-base,
matt-armv6-base,
hpcarm-cleanup-base,
cube-autoconf-base,
cube-autoconf,
bouyer-xeni386-nbase,
bouyer-xeni386-merge1,
bouyer-xeni386-base,
bouyer-xeni386
Branch point for: mjf-devfs2,
keiichi-mipv6
Diff to: previous 1.74: preferred, colored
Changes since revision 1.74: +1 -2
lines
Merge jmcneill-pm branch.
Revision 1.74.6.2: download - view: text, markup, annotated - select for diffs
Tue Nov 6 14:27:14 2007 UTC (17 years, 6 months ago) by joerg
Branches: jmcneill-pm
Diff to: previous 1.74.6.1: preferred, colored; branchpoint 1.74: preferred, colored; next MAIN 1.75: preferred, colored
Changes since revision 1.74.6.1: +1 -2
lines
Refactor PNP API:
- Make suspend/resume directly a device functionality. It consists of
three layers (class logic, device logic, bus logic), all of them being
optional. This replaces D0/D3 transitions.
- device_is_active returns true if the device was not disabled and was
not suspended (even partially), device_is_enabled returns true if the
device was enabled.
- Change pnp_global_transition into pnp_system_suspend and
pnp_system_resume. Before running any suspend/resume handlers, check
that all currently attached devices support power management and bail
out otherwise. The latter is not done for the shutdown/panic case.
- Make the former bus-specific generic network handlers a class handler.
- Make PNP message like volume up/down/toogle PNP events. Each device
can register what events they are interested in and whether the handler
should be global or not.
- Introduce device_active API for devices to mark themselve in use from
either the system or the device. Use this to implement the idle handling
for audio and input devices. This is intended to replace most ad-hoc
watchdogs as well.
- Fix somes situations in which audio resume would lose mixer settings.
- Make USB host controllers better deal with suspend in the light of
shared interrupts.
- Flush filesystem cache on suspend.
- Flush disk caches on suspend. Put ATA disks into standby on suspend as
well.
- Adopt drivers to use the new PNP API.
- Fix a critical bug in the generic cardbus layer that made D0->D3
break.
- Fix ral(4) to set if_stop.
- Convert cbb(4) to the new PNP API.
- Apply the PCI Express SCI fix on resume again.
Revision 1.69.2.3: download - view: text, markup, annotated - select for diffs
Mon Sep 3 14:33:27 2007 UTC (17 years, 8 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.69.2.2: preferred, colored; branchpoint 1.69: preferred, colored
Changes since revision 1.69.2.2: +2 -2
lines
sync with head.
Revision 1.74.6.1: download - view: text, markup, annotated - select for diffs
Fri Aug 3 22:17:16 2007 UTC (17 years, 9 months ago) by jmcneill
Branches: jmcneill-pm
Diff to: previous 1.74: preferred, colored
Changes since revision 1.74: +2 -2
lines
Pull in power management changes from private branch.
Revision 1.73.10.1: download - view: text, markup, annotated - select for diffs
Wed Jul 11 20:05:19 2007 UTC (17 years, 10 months ago) by mjf
Branches: mjf-ufs-trans
Diff to: previous 1.73: preferred, colored; next MAIN 1.74: preferred, colored
Changes since revision 1.73: +2 -2
lines
Sync with head.
Revision 1.74: download - view: text, markup, annotated - select for diffs
Mon Jul 9 21:00:31 2007 UTC (17 years, 10 months ago) by ad
Branches: MAIN
CVS tags: yamt-x86pmap-base4,
yamt-x86pmap-base3,
yamt-x86pmap-base2,
yamt-x86pmap-base,
yamt-x86pmap,
yamt-kmem-base,
vmlocking2-base2,
vmlocking2-base1,
vmlocking-nbase,
vmlocking-base,
reinoud-bufcleanup-nbase,
reinoud-bufcleanup-base,
nick-csl-alignment-base5,
nick-csl-alignment-base,
nick-csl-alignment,
mjf-ufs-trans-base,
mjf-devfs,
matt-mips64-base,
matt-mips64,
matt-armv6-prevmlocking,
jmcneill-pm-base,
jmcneill-base,
hpcarm-cleanup,
bouyer-xenamd64-base2,
bouyer-xenamd64-base,
bouyer-xenamd64
Branch point for: yamt-kmem,
vmlocking2,
matt-armv6,
jmcneill-pm
Diff to: previous 1.73: preferred, colored
Changes since revision 1.73: +2 -2
lines
Merge some of the less invasive changes from the vmlocking branch:
- kthread, callout, devsw API changes
- select()/poll() improvements
- miscellaneous MT safety improvements
Revision 1.73.8.1: download - view: text, markup, annotated - select for diffs
Mon Apr 9 22:09:55 2007 UTC (18 years, 1 month ago) by ad
Branches: vmlocking
Diff to: previous 1.73: preferred, colored; next MAIN 1.74: preferred, colored
Changes since revision 1.73: +2 -2
lines
- Add two new arguments to kthread_create1: pri_t pri, bool mpsafe.
- Fork kthreads off proc0 as new LWPs, not new processes.
Revision 1.69.2.2: download - view: text, markup, annotated - select for diffs
Sat Dec 30 20:47:54 2006 UTC (18 years, 4 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.69.2.1: preferred, colored; branchpoint 1.69: preferred, colored
Changes since revision 1.69.2.1: +25 -1
lines
sync with head.
Revision 1.72.2.1: download - view: text, markup, annotated - select for diffs
Sat Nov 18 21:34:04 2006 UTC (18 years, 6 months ago) by ad
Branches: newlock2
Diff to: previous 1.72: preferred, colored; next MAIN 1.73: preferred, colored
Changes since revision 1.72: +21 -1
lines
Sync with head.
Revision 1.72.4.1: download - view: text, markup, annotated - select for diffs
Sun Oct 22 06:05:32 2006 UTC (18 years, 6 months ago) by yamt
Branches: yamt-splraiseipl
Diff to: previous 1.72: preferred, colored; next MAIN 1.73: preferred, colored
Changes since revision 1.72: +21 -1
lines
sync with head
Revision 1.73: download - view: text, markup, annotated - select for diffs
Sat Sep 30 15:56:18 2006 UTC (18 years, 7 months ago) by itohy
Branches: MAIN
CVS tags: yamt-splraiseipl-base5,
yamt-splraiseipl-base4,
yamt-splraiseipl-base3,
yamt-splraiseipl-base2,
yamt-idlelwp-base8,
yamt-idlelwp,
wrstuden-fixsa-newbase,
wrstuden-fixsa-base-1,
wrstuden-fixsa-base,
wrstuden-fixsa,
thorpej-atomic-base,
thorpej-atomic,
reinoud-bufcleanup,
post-newlock2-merge,
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,
matt-nb4-arm-base,
matt-nb4-arm,
ad-audiomp-base,
ad-audiomp
Branch point for: vmlocking,
mjf-ufs-trans
Diff to: previous 1.72: preferred, colored
Changes since revision 1.72: +21 -1
lines
A little effort against kernel bloat....
Exclude ATA DMA support if no ATA DMA capable drivers are compiled in.
Revision 1.71.8.1: download - view: text, markup, annotated - select for diffs
Thu Sep 14 12:31:27 2006 UTC (18 years, 8 months ago) by yamt
Branches: yamt-pdpolicy
Diff to: previous 1.71: preferred, colored; next MAIN 1.72: preferred, colored
Changes since revision 1.71: +5 -1
lines
sync with head.
Revision 1.71.4.1: download - view: text, markup, annotated - select for diffs
Sat Sep 9 02:49:44 2006 UTC (18 years, 8 months ago) by rpaulo
Branches: rpaulo-netinet-merge-pcb
Diff to: previous 1.71: preferred, colored; next MAIN 1.72: preferred, colored
Changes since revision 1.71: +5 -1
lines
sync with head
Revision 1.72: download - view: text, markup, annotated - select for diffs
Thu Sep 7 12:34:42 2006 UTC (18 years, 8 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.71: preferred, colored
Changes since revision 1.71: +5 -1
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.69.2.1: download - view: text, markup, annotated - select for diffs
Wed Jun 21 15:02:45 2006 UTC (18 years, 10 months ago) by yamt
Branches: yamt-lazymbuf
Diff to: previous 1.69: preferred, colored
Changes since revision 1.69: +2 -2
lines
sync with head.
Revision 1.71: download - view: text, markup, annotated - select for diffs
Sat Dec 24 20:27:29 2005 UTC (19 years, 4 months ago) by perry
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.70: preferred, colored
Changes since revision 1.70: +2 -2
lines
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
Revision 1.70: download - view: text, markup, annotated - select for diffs
Sun Dec 11 12:21:14 2005 UTC (19 years, 5 months ago) by christos
Branches: MAIN
Diff to: previous 1.69: preferred, colored
Changes since revision 1.69: +1 -1
lines
merge ktrace-lwp.
Revision 1.26.6.9: download - view: text, markup, annotated - select for diffs
Thu Nov 10 14:03:54 2005 UTC (19 years, 6 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.26.6.8: preferred, colored; branchpoint 1.26: preferred, colored; next MAIN 1.27: preferred, colored
Changes since revision 1.26.6.8: +5 -3
lines
Sync with HEAD. Here we go again...
Revision 1.69: download - view: text, markup, annotated - select for diffs
Tue Jun 7 13:45:11 2005 UTC (19 years, 11 months ago) by peter
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
Branch point for: yamt-lazymbuf
Diff to: previous 1.68: preferred, colored
Changes since revision 1.68: +2 -2
lines
Fix typos.
Revision 1.67.2.1: download - view: text, markup, annotated - select for diffs
Fri May 27 23:10:52 2005 UTC (19 years, 11 months ago) by riz
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.67: preferred, colored; next MAIN 1.68: preferred, colored
Changes since revision 1.67: +4 -2
lines
Pull up revision 1.68 (requested by bouyer in ticket #328):
Add a ata_queue_idle() function, which freeze a queue and tsleep() until the
controller is idle.
Change the powerhook function to call ata_queue_idle() on standby/suspend,
and ata_reset_channel() on resume (to wake up the disks and start from a
clean state).
Fix PR kern/30194 by Lubomir Sedlacik.
Revision 1.68: download - view: text, markup, annotated - select for diffs
Mon May 16 21:43:33 2005 UTC (20 years ago) by bouyer
Branches: MAIN
Diff to: previous 1.67: preferred, colored
Changes since revision 1.67: +4 -2
lines
Add a ata_queue_idle() function, which freeze a queue and tsleep() until the
controller is idle.
Change the powerhook function to call ata_queue_idle() on standby/suspend,
and ata_reset_channel() on resume (to wake up the disks and start from a
clean state).
Fix PR kern/30194 by Lubomir Sedlacik.
Revision 1.65.4.1: download - view: text, markup, annotated - select for diffs
Fri Apr 29 11:28:45 2005 UTC (20 years ago) by kent
Branches: kent-audio2
Diff to: previous 1.65: preferred, colored; next MAIN 1.66: preferred, colored
Changes since revision 1.65: +9 -7
lines
sync with -current
Revision 1.40.2.2.2.2: download - view: text, markup, annotated - select for diffs
Sat Apr 16 10:59:39 2005 UTC (20 years, 1 month ago) by tron
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.40.2.2.2.1: preferred, colored; branchpoint 1.40.2.2: preferred, colored; next MAIN 1.41: preferred, colored
Changes since revision 1.40.2.2.2.1: +4 -1
lines
Pull up revision 1.65 via patch (requested by bouyer in ticket #1105):
Allow polled commands to be queued, if ata_exec_xfer() is called in thread
context. For this introduce 3 new xfer tags:
- C_WAIT, equivalent of AT_WAIT
- C_WAITACT, when there is a thread waiting on this xfer to become the active
one (that is, to be at the head of the queue)
- C_FREE, set by ata_free_xfer() when it can't free the xfer because it's
still in use. The holder should then free the xfer ASAP.
If ata_exec_xfer() is called with (C_POLL | C_WAIT), and there is already
xfers to be processed, assert C_WAITACT and sleep.
atastart() checks for C_WAITACT, and wakeup the thread waiting for this xfer
to become active if set. atastart() won't process this xfer, it's the
responsability of the thread waked up to handle it.
Fix (the right way) kern/27421 by Martin Husemann.
Revision 1.65.6.2: download - view: text, markup, annotated - select for diffs
Sat Mar 19 08:33:55 2005 UTC (20 years, 2 months ago) by yamt
Branches: yamt-km
Diff to: previous 1.65.6.1: preferred, colored; branchpoint 1.65: preferred, colored; next MAIN 1.66: preferred, colored
Changes since revision 1.65.6.1: +7 -7
lines
sync with head. xen and whitespace. xen part is not finished.
Revision 1.40.2.2.2.1: download - view: text, markup, annotated - select for diffs
Wed Mar 16 18:36:59 2005 UTC (20 years, 2 months ago) by jmc
Branches: netbsd-2
Diff to: previous 1.40.2.2: preferred, colored
Changes since revision 1.40.2.2: +1 -2
lines
Pullup rev 1.43 (requested by mycroft in ticket #1018)
Only downgrade modes due to an actual CRC error. Downgrading on other errors
is anti-social -- especially given that there's no way to upgrade again short
of rebooting.
Also, downgrade UDMA modes more slowly. It's entirely possible that they're
using an 80-wire cable, but it's just too long for the higher modes, or there
is minor crosstalk.
Revision 1.26.6.8: download - view: text, markup, annotated - select for diffs
Fri Mar 4 16:41:02 2005 UTC (20 years, 2 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.26.6.7: preferred, colored; branchpoint 1.26: preferred, colored
Changes since revision 1.26.6.7: +7 -7
lines
Sync with HEAD.
Hi Perry!
Revision 1.67: download - view: text, markup, annotated - select for diffs
Sun Feb 27 00:26:59 2005 UTC (20 years, 2 months ago) by perry
Branches: MAIN
CVS tags: yamt-km-base4,
yamt-km-base3,
netbsd-3-base,
kent-audio2-base
Branch point for: netbsd-3
Diff to: previous 1.66: preferred, colored
Changes since revision 1.66: +7 -7
lines
nuke trailing whitespace
Revision 1.65.6.1: download - view: text, markup, annotated - select for diffs
Sat Feb 12 18:17:42 2005 UTC (20 years, 3 months ago) by yamt
Branches: yamt-km
Diff to: previous 1.65: preferred, colored
Changes since revision 1.65: +3 -1
lines
sync with head.
Revision 1.26.6.7: download - view: text, markup, annotated - select for diffs
Fri Feb 4 11:45:22 2005 UTC (20 years, 3 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.26.6.6: preferred, colored; branchpoint 1.26: preferred, colored
Changes since revision 1.26.6.6: +3 -1
lines
Sync with HEAD.
Revision 1.66: download - view: text, markup, annotated - select for diffs
Wed Jan 26 21:51:40 2005 UTC (20 years, 3 months ago) by jmcneill
Branches: MAIN
CVS tags: yamt-km-base2
Diff to: previous 1.65: preferred, colored
Changes since revision 1.65: +3 -1
lines
Add powerhook for atabus.
Revision 1.26.6.6: download - view: text, markup, annotated - select for diffs
Tue Nov 2 07:51:19 2004 UTC (20 years, 6 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.26.6.5: preferred, colored; branchpoint 1.26: preferred, colored
Changes since revision 1.26.6.5: +5 -2
lines
Sync with HEAD.
Revision 1.65: download - view: text, markup, annotated - select for diffs
Sat Oct 30 23:10:37 2004 UTC (20 years, 6 months ago) by bouyer
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.64: preferred, colored
Changes since revision 1.64: +5 -2
lines
Allow polled commands to be queued, if ata_exec_xfer() is called in thread
context. For this introduce 3 new xfer tags:
- C_WAIT, equivalent of AT_WAIT
- C_WAITACT, when there is a thread waiting on this xfer to become the active
one (that is, to be at the head of the queue)
- C_FREE, set by ata_free_xfer() when it can't free the xfer because it's
still in use. The holder should then free the xfer ASAP.
If ata_exec_xfer() is called with (C_POLL | C_WAIT), and there is already
xfers to be processed, assert C_WAITACT and sleep.
atastart() checks for C_WAITACT, and wakeup the thread waiting for this xfer
to become active if set. atastart() won't process this xfer, it's the
responsability of the thread waked up to handle it.
Fix (the right way) kern/27421 by Martin Husemann.
Revision 1.26.6.5: download - view: text, markup, annotated - select for diffs
Tue Sep 21 13:27:23 2004 UTC (20 years, 7 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.26.6.4: preferred, colored; branchpoint 1.26: preferred, colored
Changes since revision 1.26.6.4: +1 -1
lines
Fix the sync with head I botched.
Revision 1.26.6.4: download - view: text, markup, annotated - select for diffs
Sat Sep 18 14:45:25 2004 UTC (20 years, 8 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.26.6.3: preferred, colored; branchpoint 1.26: preferred, colored
Changes since revision 1.26.6.3: +1 -1
lines
Sync with HEAD.
Revision 1.26.6.3: download - view: text, markup, annotated - select for diffs
Wed Aug 25 06:57:34 2004 UTC (20 years, 8 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.26.6.2: preferred, colored; branchpoint 1.26: preferred, colored
Changes since revision 1.26.6.2: +135 -10
lines
Sync with HEAD.
Revision 1.64: download - view: text, markup, annotated - select for diffs
Fri Aug 20 23:26:54 2004 UTC (20 years, 8 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.63: preferred, colored
Changes since revision 1.63: +4 -2
lines
- Add an (*ata_reset_channel)() member to ata_bustype.
- Add an ata_reset_channel() function that performs the common parts
of resetting an ATA channel, which uses the (*ata_reset_channel)()
callback to do the heavy lifting. Adjust callers to use ata_reset_channel()
instead of wdc_reset_channel().
This removes the last wdc-specific code from ata.c!
Revision 1.63: download - view: text, markup, annotated - select for diffs
Fri Aug 20 22:17:06 2004 UTC (20 years, 8 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.62: preferred, colored
Changes since revision 1.62: +2 -1
lines
Move common parts of attaching an ata_channel to a new ata_channel_attach()
function.
Revision 1.62: download - view: text, markup, annotated - select for diffs
Fri Aug 20 20:52:31 2004 UTC (20 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.61: preferred, colored
Changes since revision 1.61: +4 -1
lines
- Add an atac_bustype_ata member to atac_softc to hold a pointer to
the ata_bustype for the controller. Fill it in and use it instead
of referencing wdc_ata_bustype directly.
- Add an atac_atapibus_attach member to atac_softc to hold a pointer
to the function that attaches the ATAPI bus for the controller. Fill
it in and use it instead of referencing wdc_atapibus_attach directly.
Revision 1.61: download - view: text, markup, annotated - select for diffs
Fri Aug 20 17:19:44 2004 UTC (20 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.60: preferred, colored
Changes since revision 1.60: +3 -3
lines
Rename the ata_bustype "ata_reset_channel" member to "ata_reset_drive"
to reflect the new reality after Manuel added the bus reset ioctls.
Revision 1.60: download - view: text, markup, annotated - select for diffs
Fri Aug 20 06:39:38 2004 UTC (20 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.59: preferred, colored
Changes since revision 1.59: +54 -2
lines
Move most of wdc_softc into a new atac_softc structure that contains
info common to all types of ATA controllers.
Revision 1.59: download - view: text, markup, annotated - select for diffs
Sat Aug 14 15:08:04 2004 UTC (20 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.58: preferred, colored
Changes since revision 1.58: +66 -12
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.58: download - view: text, markup, annotated - select for diffs
Fri Aug 13 02:16:40 2004 UTC (20 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.57: preferred, colored
Changes since revision 1.57: +2 -1
lines
Move wdcstart() to ata.c and rename it to atastart().
Revision 1.57: download - view: text, markup, annotated - select for diffs
Fri Aug 13 02:10:43 2004 UTC (20 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.56: preferred, colored
Changes since revision 1.56: +2 -1
lines
Move wdc_exec_xfer() to ata.c and rename it ata_exec_xfer().
Revision 1.56: download - view: text, markup, annotated - select for diffs
Thu Aug 12 22:39:41 2004 UTC (20 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.55: preferred, colored
Changes since revision 1.55: +3 -1
lines
Move wdc_addref() and wdc_delref() to ata.c and rename them to
ata_*.
Revision 1.55: download - view: text, markup, annotated - select for diffs
Thu Aug 12 22:33:46 2004 UTC (20 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.54: preferred, colored
Changes since revision 1.54: +3 -1
lines
Move wdc_kill_pending() to ata.c and rename it ata_kill_pending().
Revision 1.54: download - view: text, markup, annotated - select for diffs
Thu Aug 12 21:34:52 2004 UTC (20 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.53: preferred, colored
Changes since revision 1.53: +6 -1
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.53: download - view: text, markup, annotated - select for diffs
Thu Aug 12 21:10:18 2004 UTC (20 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.52: preferred, colored
Changes since revision 1.52: +2 -1
lines
Move wdc_probe_caps() to ata.c and rename it ata_probe_caps().
Revision 1.52: download - view: text, markup, annotated - select for diffs
Thu Aug 12 21:05:09 2004 UTC (20 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.51: preferred, colored
Changes since revision 1.51: +2 -3
lines
Move wdc_downgrade_mode() to ata.c and rename it to ata_downgrade_mode().
Revision 1.51: download - view: text, markup, annotated - select for diffs
Thu Aug 12 20:59:27 2004 UTC (20 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.50: preferred, colored
Changes since revision 1.50: +3 -1
lines
Move wdc_print_modes() into ata.c and rename it ata_print_modes().
Revision 1.26.6.2: download - view: text, markup, annotated - select for diffs
Thu Aug 12 11:41:22 2004 UTC (20 years, 9 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.26.6.1: preferred, colored; branchpoint 1.26: preferred, colored
Changes since revision 1.26.6.1: +11 -8
lines
Sync with HEAD.
Revision 1.50: download - view: text, markup, annotated - select for diffs
Thu Aug 12 05:02:50 2004 UTC (20 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.49: preferred, colored
Changes since revision 1.49: +4 -4
lines
Rename some constants:
WDC_COMPLETE -> ATACMD_COMPLETE
WDC_QUEUED -> ATACMD_QUEUED
WDC_TRY_AGAIN -> ATACMD_TRY_AGAIN
Revision 1.49: download - view: text, markup, annotated - select for diffs
Thu Aug 12 04:57:19 2004 UTC (20 years, 9 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.48: preferred, colored
Changes since revision 1.48: +3 -3
lines
Rename "struct wdc_command" to "struct ata_command".
Revision 1.40.2.2: download - view: text, markup, annotated - select for diffs
Wed Aug 11 19:44:05 2004 UTC (20 years, 9 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.40.2.1: preferred, colored; branchpoint 1.40: preferred, colored; next MAIN 1.41: preferred, colored
Changes since revision 1.40.2.1: +15 -3
lines
Pullup rev 1.44 (requested by bouyer in ticket #733)
Implement asynchronous channel reset.
Use this to reset the channel before doing a dump, instead of the hack in
wdc_exec_xfer() based on C_POLL. This hack was causing problems on
controllers with a shared queue, because we now can have C_POLL set during
concurent channels probes
Revision 1.48: download - view: text, markup, annotated - select for diffs
Wed Aug 11 17:49:27 2004 UTC (20 years, 9 months ago) by mycroft
Branches: MAIN
Diff to: previous 1.47: preferred, colored
Changes since revision 1.47: +2 -1
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.47: download - view: text, markup, annotated - select for diffs
Wed Aug 4 22:44:04 2004 UTC (20 years, 9 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.46: preferred, colored
Changes since revision 1.46: +2 -1
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.46: download - view: text, markup, annotated - select for diffs
Wed Aug 4 18:24:11 2004 UTC (20 years, 9 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.45: preferred, colored
Changes since revision 1.45: +4 -3
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.26.6.1: download - view: text, markup, annotated - select for diffs
Tue Aug 3 10:45:46 2004 UTC (20 years, 9 months ago) by skrll
Branches: ktrace-lwp
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +229 -124
lines
Sync with HEAD
Revision 1.45: download - view: text, markup, annotated - select for diffs
Sun Aug 1 21:40:41 2004 UTC (20 years, 9 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.44: preferred, colored
Changes since revision 1.44: +3 -1
lines
Implement an atabus control device, and define some ATA bus control
IOCTLS. Implement ATABUSIORESET, which will reset the given ATA bus.
Revision 1.44: download - view: text, markup, annotated - select for diffs
Sat Jul 31 21:26:43 2004 UTC (20 years, 9 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.43: preferred, colored
Changes since revision 1.43: +15 -3
lines
Implement asynchronous channel reset.
Use this to reset the channel before doing a dump, instead of the hack in
wdc_exec_xfer() based on C_POLL. This hack was causing problems on
controllers with a shared queue, because we now can have C_POLL set during
concurent channels probes (problem found and analysed on sparc64 by
Martin Husemann).
This should even make core dumps marginally more reliable on ATA drives.
Revision 1.43: download - view: text, markup, annotated - select for diffs
Tue Jun 1 19:32:30 2004 UTC (20 years, 11 months ago) by mycroft
Branches: MAIN
Diff to: previous 1.42: preferred, colored
Changes since revision 1.42: +1 -2
lines
Only downgrade modes due to an actual CRC error. Downgrading on other errors
is anti-social -- especially given that there's no way to upgrade again short
of rebooting.
Also, downgrade UDMA modes more slowly. It's entirely possible that they're
using an 80-wire cable, but it's just too long for the higher modes, or there
is minor crosstalk.
Revision 1.42: download - view: text, markup, annotated - select for diffs
Thu May 27 02:23:12 2004 UTC (20 years, 11 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.41: preferred, colored
Changes since revision 1.41: +2 -2
lines
Clean-up of use of "precomp". It is used as "features" everywhere, so
rename the fields in wdc_command as appropriate.
Revision 1.25.4.1: download - view: text, markup, annotated - select for diffs
Wed May 12 11:37:30 2004 UTC (21 years ago) by tron
Branches: netbsd-1-6
Diff to: previous 1.25: preferred, colored; next MAIN 1.26: preferred, colored
Changes since revision 1.25: +2 -2
lines
Pull up revision 1.41 via patch (requested by bouyer in ticket #1689):
Change the value of DRIVE_ATAPIST which was same as that of DRIVE_DMAERR.
Ok'd by bouyer.
Revision 1.40.2.1: download - view: text, markup, annotated - select for diffs
Fri Apr 16 07:56:34 2004 UTC (21 years, 1 month ago) by tron
Branches: netbsd-2-0
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +2 -2
lines
Pull up revision 1.41 (requested by minoura in ticket #137):
Change the value of DRIVE_ATAPIST which was same as that of DRIVE_DMAERR.
Ok'd by bouyer.
Revision 1.41: download - view: text, markup, annotated - select for diffs
Wed Apr 14 05:26:29 2004 UTC (21 years, 1 month ago) by minoura
Branches: MAIN
Diff to: previous 1.40: preferred, colored
Changes since revision 1.40: +2 -2
lines
Change the value of DRIVE_ATAPIST which was same as that of DRIVE_DMAERR.
Ok'd by bouyer.
Revision 1.40: download - view: text, markup, annotated - select for diffs
Sat Jan 3 01:50:53 2004 UTC (21 years, 4 months ago) by thorpej
Branches: MAIN
CVS tags: netbsd-2-0-base
Branch point for: netbsd-2-0
Diff to: previous 1.39: preferred, colored
Changes since revision 1.39: +6 -6
lines
Rename "struct channel_softc" to "struct wdc_channel".
Revision 1.39: download - view: text, markup, annotated - select for diffs
Thu Jan 1 17:18:54 2004 UTC (21 years, 4 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.38: preferred, colored
Changes since revision 1.38: +38 -1
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.38: download - view: text, markup, annotated - select for diffs
Tue Dec 30 19:12:24 2003 UTC (21 years, 4 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.37: preferred, colored
Changes since revision 1.37: +1 -72
lines
SMART info is logically part of the register set; move it from atavar.h
to atareg.h
Revision 1.37: download - view: text, markup, annotated - select for diffs
Tue Dec 30 16:28:37 2003 UTC (21 years, 4 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.36: preferred, colored
Changes since revision 1.36: +28 -4
lines
Move most of the atabus layer into ata.c.
Revision 1.36: download - view: text, markup, annotated - select for diffs
Sat Dec 20 19:53:54 2003 UTC (21 years, 5 months ago) by lha
Branches: MAIN
Diff to: previous 1.35: preferred, colored
Changes since revision 1.35: +26 -2
lines
add more fields to ata_smart_attr, add structures for selftest log
Revision 1.35: download - view: text, markup, annotated - select for diffs
Sun Dec 14 05:33:29 2003 UTC (21 years, 5 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.34: preferred, colored
Changes since revision 1.34: +4 -1
lines
Instead of calling wddone() directly, set a (*drv_done)() callback in
the ata_drive_datas structure and invoke that.
Revision 1.34: download - view: text, markup, annotated - select for diffs
Sun Dec 14 05:14:39 2003 UTC (21 years, 5 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.33: preferred, colored
Changes since revision 1.33: +12 -1
lines
Move struct ata_device from wdvar.h to atavar.h.
Revision 1.33: download - view: text, markup, annotated - select for diffs
Sun Dec 14 05:10:19 2003 UTC (21 years, 5 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.32: preferred, colored
Changes since revision 1.32: +30 -1
lines
Move struct ata_bustype from wdvar.h to atavar.h.
Revision 1.32: download - view: text, markup, annotated - select for diffs
Sun Dec 14 05:03:28 2003 UTC (21 years, 5 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.31: preferred, colored
Changes since revision 1.31: +33 -1
lines
Move struct ata_bio from wdvar.h to atavar.h.
Revision 1.31: download - view: text, markup, annotated - select for diffs
Sun Dec 14 04:59:40 2003 UTC (21 years, 5 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.30: preferred, colored
Changes since revision 1.30: +70 -54
lines
Tidy up the whitespace.
Revision 1.30: download - view: text, markup, annotated - select for diffs
Sun Dec 14 02:45:48 2003 UTC (21 years, 5 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.29: preferred, colored
Changes since revision 1.29: +5 -7
lines
De-__P and use ANSI-style function decls.
Revision 1.29: download - view: text, markup, annotated - select for diffs
Wed Oct 8 10:58:12 2003 UTC (21 years, 7 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.28: preferred, colored
Changes since revision 1.28: +4 -14
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.28: download - view: text, markup, annotated - select for diffs
Sun Oct 5 17:48:49 2003 UTC (21 years, 7 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.27: preferred, colored
Changes since revision 1.27: +3 -4
lines
Remove references to University of California from my copyright notices.
Revision 1.27: download - view: text, markup, annotated - select for diffs
Tue Jul 8 10:06:28 2003 UTC (21 years, 10 months ago) by itojun
Branches: MAIN
Diff to: previous 1.26: preferred, colored
Changes since revision 1.26: +6 -6
lines
function prototype must not have variable name
Revision 1.18.4.1: download - view: text, markup, annotated - select for diffs
Thu Jan 23 08:21:51 2003 UTC (22 years, 3 months ago) by msaitoh
Branches: netbsd-1-5
Diff to: previous 1.18: preferred, colored; next MAIN 1.19: preferred, colored
Changes since revision 1.18: +6 -5
lines
Pull up revision 1.24 (requested by Manuel Bouyer):
read status after data commands in wdc_exec_command(). Mandatory for data out
commands (nonw are used for now), and doesn't hurt for data in. Also keep
track if we did transfer data. Makes the probe more robust and solves
kern/16159
Revision 1.19.2.3: download - view: text, markup, annotated - select for diffs
Fri Sep 6 08:43:56 2002 UTC (22 years, 8 months ago) by jdolecek
Branches: kqueue
Diff to: previous 1.19.2.2: preferred, colored; branchpoint 1.19: preferred, colored; next MAIN 1.20: preferred, colored
Changes since revision 1.19.2.2: +51 -1
lines
sync kqueue branch with HEAD
Revision 1.25.2.1: download - view: text, markup, annotated - select for diffs
Thu Aug 29 05:22:21 2002 UTC (22 years, 8 months ago) by gehenna
Branches: gehenna-devsw
Diff to: previous 1.25: preferred, colored; next MAIN 1.26: preferred, colored
Changes since revision 1.25: +51 -1
lines
catch up with -current.
Revision 1.18.6.5: download - view: text, markup, annotated - select for diffs
Tue Aug 13 02:19:20 2002 UTC (22 years, 9 months ago) by nathanw
Branches: nathanw_sa
CVS tags: nathanw_sa_end
Diff to: previous 1.18.6.4: preferred, colored; branchpoint 1.18: preferred, colored; next MAIN 1.19: preferred, colored
Changes since revision 1.18.6.4: +51 -1
lines
Catch up to -current.
Revision 1.26: download - view: text, markup, annotated - select for diffs
Mon Aug 5 23:29:30 2002 UTC (22 years, 9 months ago) by soren
Branches: MAIN
CVS tags: nathanw_sa_before_merge,
nathanw_sa_base,
kqueue-beforemerge,
kqueue-base,
kqueue-aftermerge,
gmcgarry_ucred_base,
gmcgarry_ucred,
gmcgarry_ctxsw_base,
gmcgarry_ctxsw,
gehenna-devsw-base,
fvdl_fs64_base
Branch point for: ktrace-lwp
Diff to: previous 1.25: preferred, colored
Changes since revision 1.25: +51 -1
lines
Add ATA SMART reporting support from Ben Collver in kern/12787.
Revision 1.19.2.2: download - view: text, markup, annotated - select for diffs
Sun Jun 23 17:45:53 2002 UTC (22 years, 10 months ago) by jdolecek
Branches: kqueue
Diff to: previous 1.19.2.1: preferred, colored; branchpoint 1.19: preferred, colored
Changes since revision 1.19.2.1: +7 -7
lines
catch up with -current on kqueue branch
Revision 1.18.6.4: download - view: text, markup, annotated - select for diffs
Thu Jun 20 03:44:20 2002 UTC (22 years, 11 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.18.6.3: preferred, colored; branchpoint 1.18: preferred, colored
Changes since revision 1.18.6.3: +2 -3
lines
Catch up to -current.
Revision 1.25: download - view: text, markup, annotated - select for diffs
Tue Apr 23 20:41:14 2002 UTC (23 years ago) by bouyer
Branches: MAIN
CVS tags: netbsd-1-6-base,
netbsd-1-6-RELEASE,
netbsd-1-6-RC3,
netbsd-1-6-RC2,
netbsd-1-6-RC1,
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,
netbsd-1-6-PATCH001-RELEASE,
netbsd-1-6-PATCH001-RC3,
netbsd-1-6-PATCH001-RC2,
netbsd-1-6-PATCH001-RC1,
netbsd-1-6-PATCH001
Branch point for: netbsd-1-6,
gehenna-devsw
Diff to: previous 1.24: preferred, colored
Changes since revision 1.24: +2 -3
lines
More copyright fixes, pointed out by Thomas. Thanks !
Revision 1.18.6.3: download - view: text, markup, annotated - select for diffs
Wed Apr 17 00:05:24 2002 UTC (23 years, 1 month ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.18.6.2: preferred, colored; branchpoint 1.18: preferred, colored
Changes since revision 1.18.6.2: +6 -5
lines
Catch up to -current.
Revision 1.24: download - view: text, markup, annotated - select for diffs
Tue Apr 9 21:17:54 2002 UTC (23 years, 1 month ago) by bouyer
Branches: MAIN
Diff to: previous 1.23: preferred, colored
Changes since revision 1.23: +6 -5
lines
In wdc_exec_command(), for data commands, read the status register after
the data transfer. This is mandatory for data out commands (although none are
used for now), and not forbiddend for data in commands. Also record if we
did transfers any data.
May solve kern/16159 by making the probe more robust in face of fake identify.
Revision 1.19.2.1: download - view: text, markup, annotated - select for diffs
Thu Jan 10 19:53:39 2002 UTC (23 years, 4 months ago) by thorpej
Branches: kqueue
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +3 -33
lines
Sync kqueue branch with -current.
Revision 1.18.6.2: download - view: text, markup, annotated - select for diffs
Tue Jan 8 00:29:22 2002 UTC (23 years, 4 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.18.6.1: preferred, colored; branchpoint 1.18: preferred, colored
Changes since revision 1.18.6.1: +3 -33
lines
Catch up to -current.
Revision 1.23: download - view: text, markup, annotated - select for diffs
Mon Dec 3 00:20:23 2001 UTC (23 years, 5 months ago) by bouyer
Branches: MAIN
CVS tags: newlock-base,
newlock,
ifpoll-base,
eeh-devprop-base,
eeh-devprop
Diff to: previous 1.22: preferred, colored
Changes since revision 1.22: +2 -2
lines
Update my copyrigth.
Revision 1.22: download - view: text, markup, annotated - select for diffs
Mon Dec 3 00:11:16 2001 UTC (23 years, 5 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.21: preferred, colored
Changes since revision 1.21: +1 -14
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.21: download - view: text, markup, annotated - select for diffs
Sun Dec 2 22:44:32 2001 UTC (23 years, 5 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.20: preferred, colored
Changes since revision 1.20: +1 -19
lines
Clean up attach of wd/atapibus:
kill ata_atapi_attach. Change atapibus to use a struct scsipi_channel instead
of ata_atapi_attach as attach arch. Create a ata_device, compatible with
scsipi_channel, to attach wd.
Revision 1.20: download - view: text, markup, annotated - select for diffs
Sat Dec 1 00:00:30 2001 UTC (23 years, 5 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.19: preferred, colored
Changes since revision 1.19: +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.18.6.1: download - view: text, markup, annotated - select for diffs
Thu Jun 21 20:01:18 2001 UTC (23 years, 11 months ago) by nathanw
Branches: nathanw_sa
Diff to: previous 1.18: preferred, colored
Changes since revision 1.18: +2 -2
lines
Catch up to -current.
Revision 1.19: download - view: text, markup, annotated - select for diffs
Wed Apr 25 17:53:27 2001 UTC (24 years ago) by bouyer
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.18: preferred, colored
Changes since revision 1.18: +2 -2
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.13.8.3: download - view: text, markup, annotated - select for diffs
Tue Mar 27 13:06:09 2001 UTC (24 years, 1 month ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.13.8.2: preferred, colored; branchpoint 1.13: preferred, colored; next MAIN 1.14: preferred, colored
Changes since revision 1.13.8.2: +2 -2
lines
Kill scsipi_link from comment.
Revision 1.13.8.2: download - view: text, markup, annotated - select for diffs
Mon Nov 20 11:39:50 2000 UTC (24 years, 6 months ago) by bouyer
Branches: thorpej_scsipi
Diff to: previous 1.13.8.1: preferred, colored; branchpoint 1.13: preferred, colored
Changes since revision 1.13.8.1: +38 -17
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.13.2.2: download - view: text, markup, annotated - select for diffs
Fri Jul 7 17:33:47 2000 UTC (24 years, 10 months ago) by he
Branches: netbsd-1-4
CVS tags: netbsd-1-4-PATCH003
Diff to: previous 1.13.2.1: preferred, colored; branchpoint 1.13: preferred, colored; next MAIN 1.14: preferred, colored
Changes since revision 1.13.2.1: +32 -14
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.18: download - view: text, markup, annotated - select for diffs
Mon May 15 08:32:07 2000 UTC (25 years ago) by bouyer
Branches: MAIN
CVS tags: thorpej_scsipi_nbase,
thorpej_scsipi_beforemerge,
thorpej_scsipi_base,
netbsd-1-5-base,
netbsd-1-5-RELEASE,
netbsd-1-5-PATCH003,
netbsd-1-5-PATCH002,
netbsd-1-5-PATCH001,
netbsd-1-5-BETA2,
netbsd-1-5-BETA,
netbsd-1-5-ALPHA2,
minoura-xpg4dl-base,
minoura-xpg4dl
Branch point for: netbsd-1-5,
nathanw_sa
Diff to: previous 1.17: preferred, colored
Changes since revision 1.17: +11 -12
lines
Sync my copyrigth notice
Revision 1.17: download - view: text, markup, annotated - select for diffs
Sun Apr 2 17:25:52 2000 UTC (25 years, 1 month ago) by augustss
Branches: MAIN
Diff to: previous 1.16: preferred, colored
Changes since revision 1.16: +9 -2
lines
Change the initial field in struct ata_atapi_attach and struct scsipi_link
slightly to allow scsibus and atapibus to attach to the same device.
Furthermore, only attach a scsibus when the bus type is BUS_SCSI.
Revision 1.16: download - view: text, markup, annotated - select for diffs
Sat Apr 1 14:32:25 2000 UTC (25 years, 1 month ago) by bouyer
Branches: MAIN
Diff to: previous 1.15: preferred, colored
Changes since revision 1.15: +14 -2
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.13.2.1: download - view: text, markup, annotated - select for diffs
Sun Jan 23 12:26:30 2000 UTC (25 years, 3 months ago) by he
Branches: netbsd-1-4
CVS tags: netbsd-1-4-PATCH002
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +7 -4
lines
Pull up revision 1.15 (requested by bouyer):
Improve the downgrade logic to work better in some cases (especially
for Acer Labs M5229 controllers with Ultra-DMA/66 disks).
Revision 1.15: download - view: text, markup, annotated - select for diffs
Mon Jan 17 00:01:00 2000 UTC (25 years, 4 months ago) by bouyer
Branches: MAIN
CVS tags: chs-ubc2-newbase
Diff to: previous 1.14: preferred, colored
Changes since revision 1.14: +7 -4
lines
Improve the downgrade logic:
- If UDMA 2 is failing try UDMA 1 first, it helps in some cases
- downgrade if we get an error in the first 4000 xfers, or if we get
4 errors in 4000 xfers if the first 4000 went without troubles.
While I'm there commit a local change I have since some time to get my CD
probed: issue a "blanck" IDENTIFY before the one used to detect slave ghosts,
with my drive the first IDENTIFY following a controller reset fails with an
aborted command ...
Revision 1.13.12.2: download - view: text, markup, annotated - select for diffs
Mon Dec 27 18:34:35 1999 UTC (25 years, 4 months ago) by wrstuden
Branches: wrstuden-devbsize
Diff to: previous 1.13.12.1: preferred, colored; branchpoint 1.13: preferred, colored; next MAIN 1.14: preferred, colored
Changes since revision 1.13.12.1: +2 -1
lines
Pull up to last week's -current.
Revision 1.13.12.1: download - view: text, markup, annotated - select for diffs
Tue Dec 21 23:19:52 1999 UTC (25 years, 5 months ago) by wrstuden
Branches: wrstuden-devbsize
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +4 -1
lines
Initial commit of recent changes to make DEV_BSIZE go away.
Runs on i386, needs work on other arch's. Main kernel routines should be
fine, but a number of the stand programs need help.
cd, fd, ccd, wd, and sd have been updated. sd has been tested with non-512
byte block devices. vnd, raidframe, and lfs need work.
Non 2**n block support is automatic for LKM's and conditional for kernels
on "options NON_PO2_BLOCKS".
Revision 1.13.10.1: download - view: text, markup, annotated - select for diffs
Mon Nov 15 00:40:13 1999 UTC (25 years, 6 months ago) by fvdl
Branches: fvdl-softdep
Diff to: previous 1.13: preferred, colored; next MAIN 1.14: preferred, colored
Changes since revision 1.13: +2 -1
lines
Sync with -current
Revision 1.13.8.1: download - view: text, markup, annotated - select for diffs
Wed Oct 20 22:03:14 1999 UTC (25 years, 7 months ago) by thorpej
Branches: thorpej_scsipi
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +2 -1
lines
Sync w/ trunk.
Revision 1.14: download - view: text, markup, annotated - select for diffs
Wed Oct 20 15:22:25 1999 UTC (25 years, 7 months ago) by enami
Branches: MAIN
CVS tags: wrstuden-devbsize-base,
wrstuden-devbsize-19991221,
fvdl-softdep-base,
comdex-fall-1999-base,
comdex-fall-1999
Diff to: previous 1.13: preferred, colored
Changes since revision 1.13: +2 -1
lines
Cancel active transfers on aic/wdc detach.
Also makes LS-120 drive works for me again.
Revision 1.13: download - view: text, markup, annotated - select for diffs
Wed Mar 10 13:11:43 1999 UTC (26 years, 2 months ago) by bouyer
Branches: MAIN
CVS tags: netbsd-1-4-base,
netbsd-1-4-RELEASE,
netbsd-1-4-PATCH001,
kame_14_19990705,
kame_14_19990628,
kame_141_19991130,
kame,
chs-ubc2-base,
chs-ubc2
Branch point for: wrstuden-devbsize,
thorpej_scsipi,
netbsd-1-4,
fvdl-softdep
Diff to: previous 1.12: preferred, colored
Changes since revision 1.12: +11 -10
lines
Add a new disk flag: DRIVE_OLD for pre-ATA disks. probe routine will now set
DRIVE_OLD, DRIVE_ATA or DRIVE_ATAPI based on register signatures.
The attach routine will issue a IDENTIFY command for ATA/ATAPI disk,
to detect flase matches by the probe routine.
probe/attach should now be fully compliant with ata-4/ata-5. As a side
effect, ATAPI drives which improperly use ATA register signatures should now
be attached as ATAPI.
Revision 1.12: download - view: text, markup, annotated - select for diffs
Sun Mar 7 14:02:53 1999 UTC (26 years, 2 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.11: preferred, colored
Changes since revision 1.11: +2 -1
lines
Keep track of CRC errors in Ultra-DMA mode. If we noticed a CRC error and we
need to downgrade, downgrade to PIO, as it has been shown if we got CRC errors
in Ultra-DMA mode, we will have silent data corruption in multiword DMA mode
(isn't IDE wonderfull ? :).
Set timeout to 1s for "normal" ata I/O, to minimise the effects of missed
interrupts.
Revision 1.11: download - view: text, markup, annotated - select for diffs
Fri Jan 29 11:36:20 1999 UTC (26 years, 3 months ago) by bouyer
Branches: MAIN
CVS tags: bouyer-ide-last-dist
Diff to: previous 1.10: preferred, colored
Changes since revision 1.10: +2 -2
lines
Cosmetic changes, from Soren S. Jorvan.
Revision 1.10: download - view: text, markup, annotated - select for diffs
Mon Jan 18 20:06:24 1999 UTC (26 years, 4 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.9: preferred, colored
Changes since revision 1.9: +4 -1
lines
move wd.c:print_wderror() to ata.c:ata_perror().
In wdc_probe_caps() add code to guess the ATA revision supported (if
ATA4 if Ultra-DMA, ATA2 if PIO mode > 2). We can't rely on param.atap_ata_major
here, at last one Ultra-DMA drive claims to support only ATA-3.
Use the ATA version in ata_perror(), and to try a flush cache command
in a shutdown hook for IDE drives.
Revision 1.9: download - view: text, markup, annotated - select for diffs
Wed Dec 16 13:02:03 1998 UTC (26 years, 5 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.8: preferred, colored
Changes since revision 1.8: +7 -1
lines
Keep track of DMA errors, and downgrade the transert mode (UDMA ->DMA,
DMA->PIO) in case of 2 consecutive errors. Don't downgrade if the
PIO/DMA/UDMA modes were forced by a config flag.
Revision 1.8: download - view: text, markup, annotated - select for diffs
Fri Dec 4 11:17:54 1998 UTC (26 years, 5 months ago) by bouyer
Branches: MAIN
CVS tags: kenh-if-detach-base,
kenh-if-detach
Diff to: previous 1.7: preferred, colored
Changes since revision 1.7: +4 -4
lines
AT_ERROR should be different from AT_TIMEOUT. pointed out by Matthias Drochner.
Revision 1.7: download - view: text, markup, annotated - select for diffs
Wed Dec 2 10:52:24 1998 UTC (26 years, 5 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.6: preferred, colored
Changes since revision 1.6: +19 -5
lines
- change drive_flags from u_int8_t to u_int16_t
- keep the modes supported by the drive in struct ata_drive_datas (will be
later used for downgrading the DMA/PIO mode on error)
- use config flags to force/disable PIO/DMA/UDMA modes
- For the CMD PCI0643/6 setup DMA mode to DMA Read multiple.
Revision 1.6: download - view: text, markup, annotated - select for diffs
Mon Nov 23 23:00:26 1998 UTC (26 years, 5 months ago) by kenh
Branches: MAIN
Diff to: previous 1.5: preferred, colored
Changes since revision 1.5: +2 -1
lines
Add a new flag to wdc_command: ATA_READREG. This will indicate that all
device registers should be read back into the wdc_command structure after
successfull command completion. Use this this in wdioctl() for
ATAIOCCOMMAND.
Revision 1.5: download - view: text, markup, annotated - select for diffs
Fri Nov 20 01:23:52 1998 UTC (26 years, 6 months ago) by thorpej
Branches: MAIN
Diff to: previous 1.4: preferred, colored
Changes since revision 1.4: +4 -1
lines
Implement controller reference counting on ATA devices.
Revision 1.4: download - view: text, markup, annotated - select for diffs
Tue Oct 20 17:00:25 1998 UTC (26 years, 7 months ago) by bouyer
Branches: MAIN
CVS tags: chs-ubc-base,
chs-ubc
Diff to: previous 1.3: preferred, colored
Changes since revision 1.3: +2 -1
lines
Donc reset the disk state to 0 in wd.c, set a flag which will cause it
to be reset to 0 at wdcstart(). This fixes a race condition between
normal I/O and wdioclt().
Revision 1.3: download - view: text, markup, annotated - select for diffs
Tue Oct 13 15:18:47 1998 UTC (26 years, 7 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.2: preferred, colored
Changes since revision 1.2: +2 -1
lines
Add a new drive flag, DRIVE_MODE, set when the drive properly reported its
PIO/DMA modes. Don't try a SET_FEATURE if it didn't report its mode.
Revision 1.2: download - view: text, markup, annotated - select for diffs
Mon Oct 12 16:09:15 1998 UTC (26 years, 7 months ago) by bouyer
Branches: MAIN
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +135 -0
lines
Merge bouyer-ide
Revision 1.1.2.5: download - view: text, markup, annotated - select for diffs
Sun Oct 4 15:01:54 1998 UTC (26 years, 7 months ago) by bouyer
Branches: bouyer-ide
CVS tags: bouyer-ide-merge
Diff to: previous 1.1.2.4: preferred, colored; branchpoint 1.1: preferred, colored; next MAIN 1.2: preferred, colored
Changes since revision 1.1.2.4: +2 -2
lines
atavar.h: drv_softc is a struct device * instead of void*, as it's mostly
used for dv_xname
wd.c: convert for drv_softc type change, printf cleanup
wdc.c: always call ata_get_params() (params was used initialised with
non-32bit controllers, leaving to bogus PIO/DMA mode report).
Cleaup of the PIO/DMA mode message.
pciide_piix_reg.h: Fix definition of PIIX_IDETIM_CLEAR (unused before)
pciide.c: add a method do disable a channel on know device. If a channel
doesn't have any drive, we disable it and free its resources if disable
was successfull. This should help with laptops where the second channel
of the PIIX4 is unused but not disabled by BIOS. On such laptops,
irq15 can be used for PCMCIA but it was claimed by pciide.
Misc printf cleanup.
wdc_isa.c: printf cleanup.
Revision 1.1.2.4: download - view: text, markup, annotated - select for diffs
Sun Sep 20 19:00:14 1998 UTC (26 years, 8 months ago) by bouyer
Branches: bouyer-ide
Diff to: previous 1.1.2.3: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.3: +1 -2
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.1.2.3: download - view: text, markup, annotated - select for diffs
Sun Sep 20 13:16:15 1998 UTC (26 years, 8 months ago) by bouyer
Branches: bouyer-ide
Diff to: previous 1.1.2.2: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.2: +2 -1
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.1.2.2: download - view: text, markup, annotated - select for diffs
Thu Aug 13 14:27:48 1998 UTC (26 years, 9 months ago) by bouyer
Branches: bouyer-ide
Diff to: previous 1.1.2.1: preferred, colored; branchpoint 1.1: preferred, colored
Changes since revision 1.1.2.1: +2 -1
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.1.2.1: download - view: text, markup, annotated - select for diffs
Thu Jun 4 16:52:35 1998 UTC (26 years, 11 months ago) by bouyer
Branches: bouyer-ide
Diff to: previous 1.1: preferred, colored
Changes since revision 1.1: +134 -0
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.1
Thu Jun 4 16:52:35 1998 UTC (26 years, 11 months ago) by bouyer
Branches: MAIN
CVS tags: bouyer-ide-base
Branch point for: bouyer-ide
FILE REMOVED
file atavar.h was initially added on branch bouyer-ide.
CVSweb <webmaster@jp.NetBSD.org>