Home | History | Annotate | Download | only in pci
History log of /src/sys/dev/pci/amdpmvar.h
RevisionDateAuthorComments
 1.12  22-Dec-2019  thorpej Cleanup i2c bus acquire / release, centralizing all of the logic into
iic_acquire_bus() / iic_release_bus(). "acquire" and "release" hooks
no longer need to be provided by back-end controller drivers (only if
they need special handling, e.g. powering on the i2c controller).
This results in the removal of a bunch of rendundant code from each
back-end controller driver.

Assert that we are not in hard interrupt context in iic_acquire_bus(),
iic_exec(), and iic_release_bus().
 1.11  13-Apr-2015  riastradh branches: 1.11.18;
Convert sys/dev to use <sys/rndsource.h>.
 1.10  13-Jun-2013  tls branches: 1.10.10;
Convert the entropy pool framework from pseudo-callout-driven to
soft interrupt driven operation.

Add a polling mode of operation -- now we can ask hardware random number
generators to top us up just when we need it (bcm2835_rng and amdpm
converted as examples).

Fix a stall noticed with repeated reads from /dev/random while testing.
 1.9  27-Oct-2012  chs split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.8  14-Feb-2012  pgoyette branches: 1.8.6;
Replace the xxx_acquire()/xxx_release() rwlocks with mutexes. There are
only RW_WRITERs for these, and no RW_READERs, so no need to incur the
extra overhead of allowing for both. As discussed on tech-kern.

For piixpm and ichsmb, the acquire/release protocol needs to be used,
even if the request is I2C_F_POLL'd (or if the device supports only
polled mode). Otherwise multiple requests can be running at the same
time, and they stomp on each other and create anomolous results.

Part 2 addresses my PR kern/45889

3 ACKs from releng
 1.7  19-Nov-2011  tls branches: 1.7.2;
First step of random number subsystem rework described in
<20111022023242.BA26F14A158@mail.netbsd.org>. This change includes
the following:

An initial cleanup and minor reorganization of the entropy pool
code in sys/dev/rnd.c and sys/dev/rndpool.c. Several bugs are
fixed. Some effort is made to accumulate entropy more quickly at
boot time.

A generic interface, "rndsink", is added, for stream generators to
request that they be re-keyed with good quality entropy from the pool
as soon as it is available.

The arc4random()/arc4randbytes() implementation in libkern is
adjusted to use the rndsink interface for rekeying, which helps
address the problem of low-quality keys at boot time.

An implementation of the FIPS 140-2 statistical tests for random
number generator quality is provided (libkern/rngtest.c). This
is based on Greg Rose's implementation from Qualcomm.

A new random stream generator, nist_ctr_drbg, is provided. It is
based on an implementation of the NIST SP800-90 CTR_DRBG by
Henric Jungheim. This generator users AES in a modified counter
mode to generate a backtracking-resistant random stream.

An abstraction layer, "cprng", is provided for in-kernel consumers
of randomness. The arc4random/arc4randbytes API is deprecated for
in-kernel use. It is replaced by "cprng_strong". The current
cprng_fast implementation wraps the existing arc4random
implementation. The current cprng_strong implementation wraps the
new CTR_DRBG implementation. Both interfaces are rekeyed from
the entropy pool automatically at intervals justifiable from best
current cryptographic practice.

In some quick tests, cprng_fast() is about the same speed as
the old arc4randbytes(), and cprng_strong() is about 20% faster
than rnd_extract_data(). Performance is expected to improve.

The AES code in src/crypto/rijndael is no longer an optional
kernel component, as it is required by cprng_strong, which is
not an optional kernel component.

The entropy pool output is subjected to the rngtest tests at
startup time; if it fails, the system will reboot. There is
approximately a 3/10000 chance of a false positive from these
tests. Entropy pool _input_ from hardware random numbers is
subjected to the rngtest tests at attach time, as well as the
FIPS continuous-output test, to detect bad or stuck hardware
RNGs; if any are detected, they are detached, but the system
continues to run.

A problem with rndctl(8) is fixed -- datastructures with
pointers in arrays are no longer passed to userspace (this
was not a security problem, but rather a major issue for
compat32). A new kernel will require a new rndctl.

The sysctl kern.arandom() and kern.urandom() nodes are hooked
up to the new generators, but the /dev/*random pseudodevices
are not, yet.

Manual pages for the new kernel interfaces are forthcoming.
 1.6  28-Apr-2008  martin branches: 1.6.34;
Remove clause 3 and 4 from TNF licenses
 1.5  27-Aug-2007  xtraeme branches: 1.5.22; 1.5.24; 1.5.26;
Use rwlock(9) rather than lockmgr(9).
 1.4  05-Feb-2007  jmcneill branches: 1.4.6; 1.4.14; 1.4.18;
Disgusting Xbox hack;

The "pci0 dev 1 function 2" aka "System Management" on the nForce chipset
isn't detected on the Xbox. If XBOX is defined and arch_i386_is_xbox is
true, force intrline to 12 and map the system management IO space at
0x8000. We can now call iic_smbus_intr when a system management interrupt
takes place.

While we're here, make amdpm_smbus honour the I2C_F_POLL flag.

The Xbox no longer resets when you press the eject button.
 1.3  06-Jan-2007  jmcneill Add nVidia nForce support, tested on Xbox.
 1.2  30-Apr-2006  xtraeme branches: 1.2.6; 1.2.10; 1.2.12;
PR kern/32913: amdpm(4) smbus/i2cbus needs locking. Apply patch
from Nicolas Joly.
 1.1  19-Feb-2006  tls branches: 1.1.2; 1.1.4; 1.1.6; 1.1.8; 1.1.10; 1.1.12;
Add support for i2c bus on AMD-8111 used on many Opteron server motherboards,
and ADT 7463c thermal and voltage monitor found on the Tyan S2881 and S2882-D
(and probably other boards as well). We do not currently support any kind
of detection of the i2c address of the thermal monitor; it appears to be
at 0x2D on the S2881 and 0x2E on the S2882-D (kernel config examples
forthcoming).

From PR kern/32463 submitted by Anil Gopinath, anil_public@yahoo.com.
 1.1.12.3  01-Jun-2006  kardel Sync with head.
 1.1.12.2  22-Apr-2006  simonb Sync with head.
 1.1.12.1  19-Feb-2006  simonb file amdpmvar.h was added on branch simonb-timecounters on 2006-04-22 11:39:13 +0000
 1.1.10.1  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.1.8.1  11-May-2006  elad sync with head
 1.1.6.1  24-May-2006  yamt sync with head.
 1.1.4.2  01-Mar-2006  yamt sync with head.
 1.1.4.1  19-Feb-2006  yamt file amdpmvar.h was added on branch yamt-uio_vmspace on 2006-03-01 09:28:21 +0000
 1.1.2.2  20-Feb-2006  tron Pull up following revision(s) (requested by tls in ticket #1179):
sys/dev/pci/amdpm.c: revision 1.11
sys/dev/i2c/files.i2c: revision 1.7
sys/dev/i2c/adt7463.c: revision 1.1
sys/dev/pci/files.pci: revision 1.242 via patch
sys/dev/pci/amdpmvar.h: revision 1.1
sys/dev/i2c/adt7463reg.h: revision 1.1
sys/dev/DEVNAMES: revision 1.192 via patch
sys/dev/pci/amdpm_smbus.c: revision 1.1
sys/dev/pci/amdpm_smbusreg.h: revision 1.1
Add support for i2c bus on AMD-8111 used on many Opteron server motherboards,
and ADT 7463c thermal and voltage monitor found on the Tyan S2881 and S2882-D
(and probably other boards as well). We do not currently support any kind
of detection of the i2c address of the thermal monitor; it appears to be
at 0x2D on the S2881 and 0x2E on the S2882-D (kernel config examples
forthcoming).
From PR kern/32463 submitted by Anil Gopinath, anil_public@yahoo.com.
 1.1.2.1  19-Feb-2006  tron file amdpmvar.h was added on branch netbsd-3 on 2006-02-20 23:00:27 +0000
 1.2.12.2  09-Sep-2006  rpaulo sync with head
 1.2.12.1  30-Apr-2006  rpaulo file amdpmvar.h was added on branch rpaulo-netinet-merge-pcb on 2006-09-09 02:52:16 +0000
 1.2.10.2  09-Feb-2007  ad Sync with HEAD.
 1.2.10.1  12-Jan-2007  ad Sync with head.
 1.2.6.4  03-Sep-2007  yamt sync with head.
 1.2.6.3  26-Feb-2007  yamt sync with head.
 1.2.6.2  21-Jun-2006  yamt sync with head.
 1.2.6.1  30-Apr-2006  yamt file amdpmvar.h was added on branch yamt-lazymbuf on 2006-06-21 15:05:03 +0000
 1.4.18.1  03-Sep-2007  jmcneill Sync with HEAD.
 1.4.14.1  03-Sep-2007  skrll Sync with HEAD.
 1.4.6.1  09-Oct-2007  ad Sync with head.
 1.5.26.1  16-May-2008  yamt sync with head.
 1.5.24.1  18-May-2008  yamt sync with head.
 1.5.22.1  02-Jun-2008  mjf Sync with HEAD.
 1.6.34.3  22-May-2014  yamt 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")
 1.6.34.2  30-Oct-2012  yamt sync with head
 1.6.34.1  17-Apr-2012  yamt sync with head
 1.7.2.1  18-Feb-2012  mrg merge to -current.
 1.8.6.3  03-Dec-2017  jdolecek update from HEAD
 1.8.6.2  23-Jun-2013  tls resync from head
 1.8.6.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.10.10.1  06-Jun-2015  skrll Sync with HEAD
 1.11.18.1  08-Apr-2020  martin Merge changes from current as of 20200406

RSS XML Feed