[PATCH i2c-tools v4 0/8] decode-dimms: Implement DDR5 decoding

Stephen Horvath <[email protected]> Thu, 23 Jul 2026 13:40:11 +0000
Newsgroups org.kernel.vger.linux-i2c
Message-ID <[email protected]>
Hi, this series of patches adds DDR5 support to decode-dimms.

I'm not too experienced with perl or the JEDEC specs, so there's
probably going to be some questionable choices here, but I'd love to
hear feedback.

The first 4 patches (1, 2, 3, 4) add the essential DDR5 information to
decode-dimms.

The patches 5 & 7 haven't been tested on hardware implementations so I'm
happy for them to be dropped if they're not useful. However they add
type specific information and error log support.

Patch 8 adds XMP and EXPO support for DDR5, though I don't have access
to the datasheet for either, so I'm fine if they get dropped as well.
Though I may also implement XMP for DDR3 and DDR4 in another series if
these are well received.

Patch 6 just adds a new function `prints2`, to print a subheading,
used for the error logs, XMP and EXPO.

Signed-off-by: Stephen Horvath <[email protected]>
---
Changes in v4:
- Change the nominal VPP to 1.8V
- Fix SPD length calculation
- Add truncation to the rounding calculation
- Simplify `ddr5_round_twr` function
- Use DDR5 rounding algorithm for "Timings at Standard Speeds"
- Remove some unnecessary nanosecond conversions
- Reformat the cover letter with b4's change style
- Link to v3: https://patch.msgid.link/[email protected]

Changes in v3:
V3 has again been rebased onto master, as well as:
- The density calculation has been fixed so it no longer provides
incorrect results for >48GB modules
- tCCD_L_WR, tCCD_L_WR2, tRTP, tCCD_M, tCCD_M_WR, tCCD_M_WTR timings
have been added
- VDDQ and VPP voltages added
- Usages of DDR4 rounding has been replaced with correct DDR5 rounding
- Added a standard speed (9200) found in JESD400-5D.01
- The timings have been rearranged in order of address
- The text for the timings has been updated to more accurately reflect
the JEDEC spec
- Patches 6 and 8 have been added (`prints2` + XMP/EXPO support)
- Error log support (previously patch 6, now 7) has been improved
- Comments in patch 1 have been updated with DDR5 info
- Some patch messages have been changed slightly
- Link to v2: https://patch.msgid.link/[email protected]

Changes in v2:
V2 has been rebased onto master, and patch 1 has been updated to check
byte 2 for DDR5 identification, not just byte 0, and the commit
messages have been made more formal.
- Link to v1: https://patch.msgid.link/[email protected]

---
Stephen Horvath (8):
      decode-dimms: Implement DDR5 checksum parsing
      decode-dimms: Decode DDR5 Manufacturer Data
      decode-dimms: Decode timings and other data for DDR5
      decode-dimms: Decode DDR5 common module information
      decode-dimms: Add basic decoding of type specific information for DDR5
      decode-dimms: Add second level separator
      decode-dimms: Decode DDR5 error log
      decode-dimms: Add DDR5 XMP 3.0 and EXPO decoding

 eeprom/decode-dimms | 840 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 834 insertions(+), 6 deletions(-)
---
base-commit: 5852f5375eea6ca9dabf31f4772cb8b8ecc905d8
change-id: 20260624-ddr5-8f35700a6a50

Best regards,
--  
Stephen Horvath <[email protected]>