Home | History | Annotate | Download | only in ic
History log of /src/sys/dev/ic/spdmem.c
RevisionDateAuthorComments
 1.38  02-Feb-2022  nakayama Fix misplaced comma.
 1.37  29-Jan-2022  msaitoh Add code for DDR5 a little. I have no datasheet.
 1.36  29-Jan-2022  msaitoh Add LPDDR4X and DDR5. Not decoded yet.
 1.35  24-Mar-2020  msaitoh Calculate DDR3's tRAS correctly.
 1.34  24-Mar-2020  msaitoh - Define some new parameters of DDR3 SPD ROM.
- Use fine timebase parameters for time calculation on DDR3. This change
makes PC3-XXXX vaule more correctly on newer DDR3.
 1.33  24-Mar-2020  msaitoh KNF. No functional change.
 1.32  20-Mar-2020  msaitoh Print DDR3's row and column correctly.
 1.31  07-Apr-2019  pgoyette branches: 1.31.4;
Fix spelling of symeti^Hric
 1.30  27-Dec-2018  msaitoh Print rank on DDR4.
 1.29  26-Dec-2018  msaitoh - Fix DDR4's rows and columns value.
- Print "banks/group" instead of "banks" because it's not the total bank
number.
 1.28  24-Oct-2017  msaitoh branches: 1.28.2; 1.28.4;
Print "ECC" or "no ECC" for DDR4.
 1.27  16-Oct-2017  christos simplify previous.
 1.26  16-Oct-2017  christos dedup
 1.25  16-Oct-2017  msaitoh A part number field of DDR3 and DDR4 is not NUL terminated. All unused chars
are filled by 0x20. Print it correctly.

Before:
spdmem0 at iic0 addr 0x50: 8KTF51264AZ-1G6E1 E1M^@,DPAFEQZ021
spdmem1 at iic0 addr 0x51: ACR256X64D3U1333C9BA^AM^X
spdmem2 at iic0 addr 0x52: KP223C-ELD BA^BM-~

After:
spdmem0 at iic0 addr 0x50: 8KTF51264AZ-1G6E1
spdmem1 at iic0 addr 0x51: ACR256X64D3U1333C9
spdmem2 at iic0 addr 0x52: KP223C-ELD
 1.24  18-Jan-2017  msaitoh branches: 1.24.6;
- Move __DDR4_VALUE()'s comment to the correct position.
- s/ftp/ftb/. No functional change.
 1.23  11-Jan-2017  maya branches: 1.23.2;
fix off by one.

ok riastradh
 1.22  09-Sep-2016  msaitoh 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.
 1.21  05-Jan-2016  msaitoh branches: 1.21.2;
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.
 1.20  24-Dec-2015  msaitoh - Add DDR4E, LPDDR3 and LPDDR4.
- Check NVDIMM hybrid.
- add DDR4's tWR and tWTR.
- Print cycle time with aprint_verbose on DDR4 as DDR[23].
 1.19  08-Dec-2015  pgoyette Update calculations for DDR4 devices. This gets 1066MHz modules to
report as PC4-17000.

XXX Due to insufficient precision in the SPD ROM data, we still report
XXX these modules with a DDR speed of 2132MHz, not 2133. :( (The
XXX cycle time is really 937.5ps, but is stored in the ROM as 938.0ps)
 1.18  07-Dec-2015  msaitoh Bugfixes
- Calculate cycle_time correctly. _ftb is from +127 to -128.
- Print latency in correct order.
- Don't print the size twice.
- KNF
 1.17  06-Dec-2015  msaitoh KNF.
 1.16  05-Dec-2015  pgoyette Use the DDR4 rows and columns fields when printing DDR4 data
 1.15  05-Dec-2015  msaitoh Calculated CRC is for bytes from 0 to 125 on DDR4. Now we can attach spdmem
driver for DDR4.
 1.14  15-May-2015  msaitoh Print operable voltage with aprint_verbose(). OK'ed by pgoyette@.
 1.13  20-Apr-2015  pgoyette Initial pass at supporting decode for DDR4.

XXX I fully expect that reporting of PC4-xxxxx values is incorrect.
XXX Please report this, or any other errors that you may see.
 1.12  01-Apr-2015  matt Add missing ,
constify the arrays of string pointers.
 1.11  27-Mar-2015  msaitoh Add DDR4 support a bit.
 1.10  14-Apr-2014  pooka branches: 1.10.4;
Remove extraneous sysctl setup calls now done as part of regular attach.
 1.9  25-Feb-2014  pooka branches: 1.9.2;
Ensure that the top level sysctl nodes (kern, vfs, net, ...) exist before
the sysctl link sets are processed, and remove redundancy.

Shaves >13kB off of an amd64 GENERIC, not to mention >1k duplicate
lines of code.
 1.8  19-Jul-2013  soren Print the part number for DDR3 modules.

Also closes PR kern/44665.
 1.7  27-Oct-2012  chs branches: 1.7.2; 1.7.8;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.6  31-May-2012  pgoyette branches: 1.6.2;
Update handling of sysctl stuff when built as modules
 1.5  19-Aug-2011  wiz branches: 1.5.2; 1.5.6;
Remove semicolon at end of #define line to fix build.
 1.4  19-Aug-2011  christos fix non-literal format strings (Paul Goyette)
 1.3  01-Aug-2011  pgoyette Modularize the spdmem(4) driver
 1.2  29-Jun-2010  pgoyette branches: 1.2.2;
Fix logic error in detecting length of DDR3 SPD covered by CRC check.

Reported by Jonathan Gray in private email - thanks!
 1.1  24-Mar-2010  pgoyette branches: 1.1.2; 1.1.4;
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.
 1.1.4.3  03-Jul-2010  rmind sync with head
 1.1.4.2  30-May-2010  rmind sync with head
 1.1.4.1  24-Mar-2010  rmind file spdmem.c was added on branch rmind-uvmplock on 2010-05-30 05:17:26 +0000
 1.1.2.3  17-Aug-2010  uebayasi Sync with HEAD.
 1.1.2.2  30-Apr-2010  uebayasi Sync with HEAD.
 1.1.2.1  24-Mar-2010  uebayasi file spdmem.c was added on branch uebayasi-xip on 2010-04-30 14:43:23 +0000
 1.2.2.2  11-Aug-2010  yamt sync with head.
 1.2.2.1  29-Jun-2010  yamt file spdmem.c was added on branch yamt-nfs-mp on 2010-08-11 22:53:32 +0000
 1.5.6.1  02-Jun-2012  mrg sync to latest -current.
 1.5.2.2  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.5.2.1  30-Oct-2012  yamt sync with head
 1.6.2.3  03-Dec-2017  jdolecek update from HEAD
 1.6.2.2  20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.2.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.7.8.1  23-Jul-2013  riastradh sync with HEAD
 1.7.2.2  18-May-2014  rmind sync with head
 1.7.2.1  28-Aug-2013  rmind sync with head
 1.9.2.1  10-Aug-2014  tls Rebase.
 1.10.4.6  05-Feb-2017  skrll Sync with HEAD
 1.10.4.5  05-Oct-2016  skrll Sync with HEAD
 1.10.4.4  19-Mar-2016  skrll Sync with HEAD
 1.10.4.3  27-Dec-2015  skrll Sync with HEAD (as of 26th Dec)
 1.10.4.2  06-Jun-2015  skrll Sync with HEAD
 1.10.4.1  06-Apr-2015  skrll Sync with HEAD
 1.21.2.1  20-Mar-2017  pgoyette Sync with HEAD
 1.23.2.1  21-Apr-2017  bouyer Sync with HEAD
 1.24.6.3  14-Apr-2020  martin Pull up following revision(s) (requested by msaitoh in ticket #1528):

sys/dev/ic/spdmemvar.h: revision 1.15
sys/dev/ic/spdmemvar.h: revision 1.16
sys/dev/ic/spdmem.c: revision 1.31
sys/dev/ic/spdmem.c: revision 1.32
sys/dev/ic/spdmem.c: revision 1.33
sys/dev/ic/spdmem.c: revision 1.34
sys/dev/ic/spdmem.c: revision 1.35

Fix spelling of symeti^Hric

Print DDR3's row and column correctly.

KNF. No functional change.

- Define some new parameters of DDR3 SPD ROM.
- Use fine timebase parameters for time calculation on DDR3. This change
makes PC3-XXXX value more correctly on newer DDR3.

Calculate DDR3's tRAS correctly.

Fix unused area size found by pgoyette@.
 1.24.6.2  03-Jan-2019  martin Pull up following revision(s) (requested by msaitoh in ticket #1153):

sys/dev/ic/spdmemvar.h: revision 1.14
sys/dev/ic/spdmem.c: revision 1.30
sys/dev/ic/spdmem.c: revision 1.29

- Fix DDR4's rows and columns value.
- Print "banks/group" instead of "banks" because it's not the total bank
number.

-

Print rank on DDR4.
 1.24.6.1  22-Nov-2017  martin Pull up following revision(s) (requested by msaitoh in ticket #369):
sys/dev/ic/spdmem.c: revision 1.25
sys/dev/ic/spdmem.c: revision 1.26
sys/dev/ic/spdmem.c: revision 1.27
sys/dev/ic/spdmem.c: revision 1.28
A part number field of DDR3 and DDR4 is not NUL terminated. All unused chars
are filled by 0x20. Print it correctly.
Before:
spdmem0 at iic0 addr 0x50: 8KTF51264AZ-1G6E1 E1M^@,DPAFEQZ021
spdmem1 at iic0 addr 0x51: ACR256X64D3U1333C9BA^AM^X
spdmem2 at iic0 addr 0x52: KP223C-ELD BA^BM-~
After:
spdmem0 at iic0 addr 0x50: 8KTF51264AZ-1G6E1
spdmem1 at iic0 addr 0x51: ACR256X64D3U1333C9
spdmem2 at iic0 addr 0x52: KP223C-ELD
dedup
simplify previous.
Print "ECC" or "no ECC" for DDR4.
 1.28.4.2  08-Apr-2020  martin Merge changes from current as of 20200406
 1.28.4.1  10-Jun-2019  christos Sync with HEAD
 1.28.2.1  18-Jan-2019  pgoyette Synch with HEAD
 1.31.4.1  14-Apr-2020  martin Pull up following revision(s) (requested by msaitoh in ticket #832):

sys/dev/ic/spdmemvar.h: revision 1.15
sys/dev/ic/spdmemvar.h: revision 1.16
sys/dev/ic/spdmem.c: revision 1.32
sys/dev/ic/spdmem.c: revision 1.33
sys/dev/ic/spdmem.c: revision 1.34
sys/dev/ic/spdmem.c: revision 1.35

Print DDR3's row and column correctly.

KNF. No functional change.

- Define some new parameters of DDR3 SPD ROM.
- Use fine timebase parameters for time calculation on DDR3. This change
makes PC3-XXXX value more correctly on newer DDR3.

Calculate DDR3's tRAS correctly.

Fix unused area size found by pgoyette@.

RSS XML Feed