History log of /src/sys/dev/i2c/spdmem_i2c.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: perseant-exfatfs-base-20250801 netbsd-11-base netbsd-10-1-RELEASE perseant-exfatfs-base-20240630 perseant-exfatfs-base netbsd-10-0-RELEASE netbsd-10-0-RC6 netbsd-10-0-RC5 netbsd-10-0-RC4 netbsd-10-0-RC3 netbsd-10-0-RC2 thorpej-ifq-base thorpej-altq-separation-base netbsd-10-0-RC1 netbsd-10-base bouyer-sunxi-drm-base
# 1.26 30-Mar-2022 pgoyette

These modules need to depend on iic, not just on i2cexec. (They will
still recursively get i2cexec since the iic depends on it.)

Partial fix for kern/56772


# 1.25 06-Dec-2021 msaitoh

Check the return value correctly. Pointed out by pgoyette@.


# 1.24 06-Dec-2021 msaitoh

Carefully access to the I2C bus in the match function.


# 1.23 30-Nov-2021 msaitoh

Access byte2...


Revision tags: thorpej-i2c-spi-conf2-base thorpej-futex2-base thorpej-cfargs2-base thorpej-i2c-spi-conf-base
# 1.22 13-Jun-2021 mlelstv

branches: 1.22.6;
iic_acquire_bus can fail


Revision tags: cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base thorpej-cfargs-base thorpej-futex-base
# 1.21 27-Jan-2021 thorpej

branches: 1.21.4;
Use DEVICE_COMPAT_EOL.


# 1.20 25-Jan-2021 thorpej

Since we're using designated initialisers for compat data, we should
use a completely empty initializer for the sentinel.


# 1.19 17-Jan-2021 thorpej

Use designated initializers and a consistent termination style in
compat_data[].


Revision tags: bouyer-xenpvh-base2 phil-wifi-20200421 bouyer-xenpvh-base1 phil-wifi-20200411 bouyer-xenpvh-base is-mlppp-base phil-wifi-20200406 ad-namecache-base3 ad-namecache-base2 ad-namecache-base1 ad-namecache-base
# 1.18 23-Dec-2019 thorpej

branches: 1.18.8;
No need to use I2C_F_POLL here.


Revision tags: netbsd-9-2-RELEASE netbsd-9-1-RELEASE netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609 isaki-audio2-base pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020
# 1.17 20-Oct-2018 macallan

branches: 1.17.4;
match "i2c-at34c02", found in various sparc64 boxes


Revision tags: pgoyette-compat-0930
# 1.16 26-Sep-2018 jakllsch

match spdmem_i2c on "atmel,spd" compatible string


Revision tags: pgoyette-compat-0906 jdolecek-ncqfixes-base pgoyette-compat-0728 phil-wifi-base pgoyette-compat-0625
# 1.15 16-Jun-2018 thorpej

branches: 1.15.2;
More cleanup to i2c autoconfiguration:

- Get all of the drivers onto the new match quality constants.
- Introduce a new helper function, iic_use_direct_match(), that has
all of the logic for direct-config matching. If it returns true,
the driver returns the match result (which may be 0). If it returns
false, the driver does indirect-config matching.
- iic_compat_match() now returns a weighted match quality; matches to
lower-indexed "compatible" device property are more-specific matches,
and return a better match quality accordingly.


Revision tags: pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base
# 1.14 01-Mar-2018 pgoyette

branches: 1.14.2;
Use 1-byte data-buffers when writing to the "control" device for the
SPD ROMs (we do this for page-selection). The imcsmb doesn't support
zero-byte transfers.

With this, I'm able to get the data for all 8 of my DIMMs (on two
different imcsmb busses) using the spdmem(4) driver. And the data
decodes correctly using the decode-dimms utility (from the linux
i2ctools).


Revision tags: netbsd-8-1-RELEASE netbsd-8-1-RC1 netbsd-8-0-RELEASE netbsd-8-0-RC2 netbsd-8-0-RC1 tls-maxphys-base-20171202 matt-nb8-mediatek-base nick-nhusb-base-20170825 perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 jdolecek-ncq-base pgoyette-localcount-20170320 nick-nhusb-base-20170204 bouyer-socketcan-base pgoyette-localcount-20170107 nick-nhusb-base-20161204 pgoyette-localcount-20161104 nick-nhusb-base-20161004 localcount-20160914
# 1.13 09-Sep-2016 msaitoh

branches: 1.13.8;
Add code to select page "0" for DDR4 and newer SPD ROM. If the value read
is not suitable as SPD ROM, try to select page 0 and try again. The passed
arguments of iic_exec(SPDCTL_SPA) might not be correct and/or our API of
iic_exec() should be improved. See the comment for the detail.

Use this change until we find a better (or correct?) way.


Revision tags: pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base nick-nhusb-base-20160907 nick-nhusb-base-20160529 nick-nhusb-base-20160422 nick-nhusb-base-20160319
# 1.12 05-Jan-2016 msaitoh

Check whether iic_exec is failed or not.
- This change fixes a bug that a device that the checksum is really 0 fails
attaching.
- Reduce the number of access to one if a device doesn't exist. Without this
change and iic(4) does polling, it'll wait long time.


Revision tags: nick-nhusb-base-20151226
# 1.11 07-Dec-2015 mlelstv

Handle reading of 4kbit EEPROMs in SPD devices. This is needed for DDR4 DIMMs.


Revision tags: nick-nhusb-base-20150921 nick-nhusb-base-20150606 nick-nhusb-base-20150406
# 1.10 07-Mar-2015 jmcneill

i2c devices don't actually have a dependency on "iic" (the bus driver)
but on "i2cexec". Create an i2cexec module (i2c_exec.c) to mirror the
dependencies in files.i2c and switch device drivers to depend on "i2cexec"
module instead.

A kernel with a USB stack and no I2C controller / bus attachment would spit
out a bunch of "WARNING: module error: can't find builtin dependency `iic'"
messages at boot. This change solves that problem.


Revision tags: nick-nhusb-base netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base rmind-smpnet-nbase rmind-smpnet-base tls-maxphys-base
# 1.9 14-Apr-2014 pooka

branches: 1.9.2; 1.9.4;
Remove extraneous sysctl setup calls now done as part of regular attach.


Revision tags: riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3
# 1.8 07-Aug-2013 soren

branches: 1.8.2;
Allow i2c addr wildcard matching. Use with care!


# 1.7 28-Jul-2013 kiyohara

Call iic_exec() with I2C_F_POLL. Don't sleep in probe/attach time.


Revision tags: riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6
# 1.6 12-Sep-2012 pgoyette

branches: 1.6.2; 1.6.4;
Initialize the sysctl(9) stuff before configuring the spd(4) devices.

Otherwise, the devices do not create their own sysctl nodes!


Revision tags: jmcneill-usbmp-base10
# 1.5 31-May-2012 pgoyette

Update handling of sysctl stuff when built as modules


Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 yamt-pagecache-base5 jmcneill-usbmp-base9 yamt-pagecache-base4 jmcneill-usbmp-base8 jmcneill-usbmp-base7 jmcneill-usbmp-base6 jmcneill-usbmp-base5 jmcneill-usbmp-base4 jmcneill-usbmp-base3 jmcneill-usbmp-base2 netbsd-6-base
# 1.4 22-Jan-2012 nakayama

Add "dimm" found on Sun US-IIe based machines (eg. Netra X1, Blade 100).


Revision tags: jmcneill-usbmp-pre-base2 jmcneill-usbmp-base jmcneill-audiomp3-base yamt-pagecache-base3 yamt-pagecache-base2 yamt-pagecache-base
# 1.3 02-Oct-2011 jmcneill

branches: 1.3.2; 1.3.6;
now that iic is a module, add "iic" dependency to iic drivers


# 1.2 01-Aug-2011 pgoyette

Modularize the spdmem(4) driver


Revision tags: rmind-uvmplock-nbase cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base jruoho-x86intr-base matt-mips64-premerge-20101231 uebayasi-xip-base4 uebayasi-xip-base3 yamt-nfs-mp-base11 uebayasi-xip-base2 yamt-nfs-mp-base10 rmind-uvmplock-base uebayasi-xip-base1
# 1.1 24-Mar-2010 pgoyette

branches: 1.1.2; 1.1.4; 1.1.6;
Split spdmem driver into a bus attachment and a common back-end
probe and ROM decode, to follow similar changes made in OpenBSD:

http://article.gmane.org/gmane.os.openbsd.cvs/94948
http://article.gmane.org/gmane.os.openbsd.cvs/94956

There exists at least one alternative attachment (for SGI IP35
systems; see http://article.gmane.org/gmane.os.openbsd.cvs/94947),
and there could be more in the future.

Thanks to Christoph Egger for pointing out the OpenBSD activity.