Home | History | Annotate | Download | only in pci
History log of /src/sys/dev/pci/ld_twe.c
RevisionDateAuthorComments
 1.41  13-Apr-2025  rin ld(4): Convert blkno argument for sc_dump() to daddr_t

PR kern/59153

(1) For backends that accept 64-bit block address, i.e.,
nvme(4), virtio(4), aac(4), iop(4), and mainbus(usermode/4),
this should enable to dump beyond 2Gi blocks.

(2) sdmmc(4) backend allows to dump up to the last block.

(3) For other backends, block address is handled as `int`.
Some of them may support blocks up to 4Gi, but I do not have
enough time to examine datasheets. So, continue to reject >2Gi
blocks as before.

XXX
This is KABI change, and cannot be pulled up into netbsd-{10,9}.

XXX
Compile-test only (for amd64/ALL) due to lack of large SSDs ;)

Thanks mlelstv@ for discussion and careful review!!
 1.40  27-Feb-2017  jdolecek branches: 1.40.52;
refactor the ld(4) DIOCCACHESYNC hook into general ioctl hook, so that attachments
would be able to implement arbitrary other ioctls
 1.39  27-Sep-2016  pgoyette branches: 1.39.2;
Modularize the ld driver and all of its attachments. Ensure that all
parents are capable of rescan (or otherwise provide a means of attaching
children post-initialization).
 1.38  16-Sep-2016  jdolecek modify ldattach() to have default strategy as a parameter
 1.37  13-Apr-2015  riastradh branches: 1.37.2;
Convert sys/dev to use <sys/rndsource.h>.
 1.36  02-Feb-2012  tls branches: 1.36.6; 1.36.24;
Entropy-pool implementation move and cleanup.

1) Move core entropy-pool code and source/sink/sample management code
to sys/kern from sys/dev.

2) Remove use of NRND as test for presence of entropy-pool code throughout
source tree.

3) Remove use of RND_ENABLED in device drivers as microoptimization to
avoid expensive operations on disabled entropy sources; make the
rnd_add calls do this directly so all callers benefit.

4) Fix bug in recent rnd_add_data()/rnd_add_uint32() changes that might
have lead to slight entropy overestimation for some sources.

5) Add new source types for environmental sensors, power sensors, VM
system events, and skew between clocks, with a sample implementation
for each.

ok releng to go in before the branch due to the difficulty of later
pullup (widespread #ifdef removal and moved files). Tested with release
builds on amd64 and evbarm and live testing on amd64.
 1.35  13-Nov-2010  uebayasi branches: 1.35.8; 1.35.12;
Don't pull in the whole uvm(9) API to access only PAGE_SIZE and
some other constants. These are provided by sys/param.h now.
 1.34  12-May-2009  cegger branches: 1.34.4;
use device_private().
"looks good" ad@
XXX for the device_t/softc split, please check the driver that no cases have been missed.
 1.33  06-May-2009  cegger struct device * -> device_t, no functional changes intended.
 1.32  09-Sep-2008  tron branches: 1.32.8;
Complete device_t/softc split for the ld(4) attachments. This should
prevent crashes while attaching a drive.

Patch supplied by Juan RP in PR kern/39468.
 1.31  11-Aug-2008  simonb Add polling support to ld_twe_flush().

Fixes the "cpu_switcho: switching above IPL_SCHED" panic for ld@twe
disks on shutdown in kern/38655.
 1.30  28-Apr-2008  martin branches: 1.30.2; 1.30.4; 1.30.6;
Remove clause 3 and 4 from TNF licenses
 1.29  19-Oct-2007  ad branches: 1.29.16; 1.29.18; 1.29.20;
machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.28  29-Jul-2007  ad branches: 1.28.4; 1.28.6; 1.28.10; 1.28.12;
It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
 1.27  21-Jul-2007  ad Don't depend on uvm_extern.h pulling in proc.h.
 1.26  16-Nov-2006  christos branches: 1.26.8; 1.26.18;
__unused removal on arguments; approved by core.
 1.25  12-Oct-2006  christos - sprinkle __unused on function decls.
- fix a couple of unused bugs
- no more -Wno-unused for i386
 1.24  25-Mar-2006  thorpej branches: 1.24.8; 1.24.10;
Use device_parent().
 1.23  11-Dec-2005  christos branches: 1.23.4; 1.23.6; 1.23.8; 1.23.10; 1.23.12;
merge ktrace-lwp.
 1.22  08-Feb-2005  briggs branches: 1.22.6;
Use aprint_*() instead of printf() at attach time.
 1.21  28-Oct-2004  yamt branches: 1.21.4; 1.21.6;
move buffer queue related stuffs from buf.h to their own header, bufq.h.
 1.20  27-May-2004  thorpej Add a "flush" operation so the array's write cache is flushed on
close and at shutdown.
 1.19  22-Apr-2004  itojun sprintf -> snprintf
 1.18  26-Sep-2003  thorpej branches: 1.18.2;
Confirmed; don't need to query stripe size on TwinStor.
 1.17  23-Sep-2003  thorpej - Make CCB allocation slightly more efficient by changing how the
CCB is returned to the caller.
- Make code paths that can use twe_ccb_alloc_wait() use it, and assert
that a CCB is always returned from that function.
- Assert that a CCB is always returned when allocating the reserved CCB
for an AEN fetch.
 1.16  22-Sep-2003  thorpej Add support for dynamically attaching and detaching RAID array units.
 1.15  21-Sep-2003  thorpej Report the status of the logical drive (normal, degraded, etc.) at
attach time.
 1.14  21-Sep-2003  thorpej - Record more information about the array unit, including array
type and stripe depth.
- Report array type and stripe depth when attaching the logical drive.
 1.13  02-Oct-2002  thorpej branches: 1.13.6;
Add trailing ; to CFATTACH_DECL.
 1.12  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.11  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.10  24-May-2002  christos NBPG is not constant on the sparc, so don't use CPP tricks.
 1.9  18-May-2002  ad branches: 1.9.2;
- Use write barriers.
- NBPG -> PAGE_SIZE.
 1.8  13-Nov-2001  lukem branches: 1.8.8;
add RCSID
 1.7  10-Jun-2001  ad branches: 1.7.2; 1.7.8;
Centralise the geometry fudge.
 1.6  26-Jan-2001  ad branches: 1.6.2;
No need to submit before poll any more.
 1.5  22-Jan-2001  ad Nuke useless argument to ld_twe_dobio().
 1.4  22-Jan-2001  ad Minor optimisation.
 1.3  22-Jan-2001  ad opt_twe.h isn't needed any more.
 1.2  22-Jan-2001  ad Don't artificially clamp the maximum number of outstanding commands.
 1.1  26-Nov-2000  ad branches: 1.1.2;
lsu -> ld, by popular request.
 1.1.2.3  11-Feb-2001  bouyer Sync with HEAD.
 1.1.2.2  08-Dec-2000  bouyer Sync with HEAD.
 1.1.2.1  26-Nov-2000  bouyer file ld_twe.c was added on branch thorpej_scsipi on 2000-12-08 09:12:32 +0000
 1.6.2.4  18-Oct-2002  nathanw Catch up to -current.
 1.6.2.3  20-Jun-2002  nathanw Catch up to -current.
 1.6.2.2  14-Nov-2001  nathanw Catch up to -current.
 1.6.2.1  21-Jun-2001  nathanw Catch up to -current.
 1.7.8.2  25-Oct-2001  he Pull up revisions 1.1-1.7 (requested by ad):
Add Mylex DACC960, CAC-EISA, and I2O block/SCSI drivers.
 1.7.8.1  10-Jun-2001  he file ld_twe.c was added on branch netbsd-1-5 on 2001-10-25 17:54:07 +0000
 1.7.2.3  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.7.2.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.7.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.8.8.1  30-May-2002  gehenna Catch up with -current.
 1.9.2.1  26-May-2002  perry partially resolve 1.6 pullup ticket #29 from grant
pulls up revision 1.10
Original commit message (by christos):

> NBPG is not constant on the sparc, so don't use CPP tricks.
 1.13.6.5  09-Feb-2005  skrll Sync with HEAD.
 1.13.6.4  02-Nov-2004  skrll Sync with HEAD.
 1.13.6.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.13.6.2  18-Sep-2004  skrll Sync with HEAD.
 1.13.6.1  03-Aug-2004  skrll Sync with HEAD
 1.18.2.1  30-May-2004  tron Pull up revision 1.20 (requested by thorpej in ticket #411):
Add a "flush" operation so the array's write cache is flushed on
close and at shutdown.
 1.21.6.1  12-Feb-2005  yamt sync with head.
 1.21.4.1  29-Apr-2005  kent sync with -current
 1.22.6.4  27-Oct-2007  yamt sync with head.
 1.22.6.3  03-Sep-2007  yamt sync with head.
 1.22.6.2  30-Dec-2006  yamt sync with head.
 1.22.6.1  21-Jun-2006  yamt sync with head.
 1.23.12.1  28-Mar-2006  tron Merge 2006-03-28 NetBSD-current into the "peter-altq" branch.
 1.23.10.1  19-Apr-2006  elad sync with head.
 1.23.8.1  01-Apr-2006  yamt sync with head.
 1.23.6.1  22-Apr-2006  simonb Sync with head.
 1.23.4.1  09-Sep-2006  rpaulo sync with head
 1.24.10.2  10-Dec-2006  yamt sync with head.
 1.24.10.1  22-Oct-2006  yamt sync with head
 1.24.8.1  18-Nov-2006  ad Sync with head.
 1.26.18.1  15-Aug-2007  skrll Sync with HEAD.
 1.26.8.4  23-Oct-2007  ad Sync with head.
 1.26.8.3  19-Aug-2007  ad - Back out the biodone() changes.
- Eliminate B_ERROR (from HEAD).
 1.26.8.2  13-May-2007  ad - Pass the error number and residual count to biodone(), and let it handle
setting error indicators. Prepare to eliminate B_ERROR.
- Add a flag argument to brelse() to be set into the buf's flags, instead
of doing it directly. Typically used to set B_INVAL.
- Add a "struct cpu_info *" argument to kthread_create(), to be used to
create bound threads. Change "bool mpsafe" to "int flags".
- Allow exit of LWPs in the IDL state when (l != curlwp).
- More locking fixes & conversion to the new API.
 1.26.8.1  05-Apr-2007  ad Compile fixes.
 1.28.12.2  29-Jul-2007  ad It's not a good idea for device drivers to modify b_flags, as they don't
need to understand the locking around that field. Instead of setting
B_ERROR, set b_error instead. b_error is 'owned' by whoever completes
the I/O request.
 1.28.12.1  29-Jul-2007  ad file ld_twe.c was added on branch matt-mips64 on 2007-07-29 12:50:23 +0000
 1.28.10.1  25-Oct-2007  bouyer Sync with HEAD.
 1.28.6.1  06-Nov-2007  matt sync with HEAD
 1.28.4.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.29.20.3  16-May-2009  yamt sync with head
 1.29.20.2  04-May-2009  yamt sync with head.
 1.29.20.1  16-May-2008  yamt sync with head.
 1.29.18.1  18-May-2008  yamt sync with head.
 1.29.16.2  28-Sep-2008  mjf Sync with HEAD.
 1.29.16.1  02-Jun-2008  mjf Sync with HEAD.
 1.30.6.1  19-Oct-2008  haad Sync with HEAD.
 1.30.4.2  11-Jun-2008  simonb Revert my suggested fix for kern/38655 - that shouldn't have snuck in
to this branch.
 1.30.4.1  10-Jun-2008  simonb Initial commit of Wasabi System's WAPBL (Write Ahead Physical Block
Logging) journaling code. Originally written by Darrin B. Jewell
while at Wasabi and updated to -current by Antti Kantee, Andy Doran,
Greg Oster and Simon Burge.

Still a number of issues - look in doc/BRANCHES for "simonb-wapbl"
for more info.
 1.30.2.2  24-Sep-2008  wrstuden Merge in changes between wrstuden-revivesa-base-2 and
wrstuden-revivesa-base-3.
 1.30.2.1  18-Sep-2008  wrstuden Sync with wrstuden-revivesa-base-2.
 1.32.8.1  13-May-2009  jym Sync with HEAD.

Commit is split, to avoid a "too many arguments" protocol error.
 1.34.4.1  05-Mar-2011  rmind sync with head
 1.35.12.1  18-Feb-2012  mrg merge to -current.
 1.35.8.1  17-Apr-2012  yamt sync with head
 1.36.24.3  28-Aug-2017  skrll Sync with HEAD
 1.36.24.2  05-Oct-2016  skrll Sync with HEAD
 1.36.24.1  06-Jun-2015  skrll Sync with HEAD
 1.36.6.1  03-Dec-2017  jdolecek update from HEAD
 1.37.2.2  20-Mar-2017  pgoyette Sync with HEAD
 1.37.2.1  04-Nov-2016  pgoyette Sync with HEAD
 1.39.2.1  21-Apr-2017  bouyer Sync with HEAD
 1.40.52.1  02-Aug-2025  perseant Sync with HEAD

RSS XML Feed