• Overclocking Lab
  • My Arduino-based RAM SPD reader/writer (free and open source) (p.16)
2022/12/15 03:56:08
ryanly88
 
Can DDR5 SPD read/write operations be supported ?
 
DDR5 UDIMM SPD :  SPD5118
8 Kbit SPD (Serial Presence Detect) EEPROM with Hub function (SPD Hub) and integrated Temperature Sensor (TS)
Package: DFN8(2x3)    2.00x3.00x0.75 mm      0.50mm Pitch
 
NVM Map(8 Bits wide):
Device name       Device address        Buffer address            Describe
SPD5118             0x0000 – 0x03FF   0x0000 – 0x03FF         non-volatile memory
 
SPD5118  PINOUT
PIN1: LSDA
PIN2: HSDA
PIN3: HSCL
PIN4: LSCL
PIN5: VDDSPD 1.8V
PIN6: VSS GND
PIN7: VDDIO 1.0V
PIN8: HSA
 
2022/12/15 04:01:17
ryanly88
DDR5  UDIMM  SPD related pins
PIN1,145,146: PMIC VIN  5.0V
PIN148: HSA
PIN4:    HSCL
PIN5:    HSDA
PIN151: PWR_EN 3.3V
PIN147: PWR_GOOD
2022/12/15 05:33:57
Mr. Fox
Wow, this is amazing. I had not seen it until now. Great job. I am glad to see it works for DDR5. Will work for programming user-defined XMP profiles too?
2022/12/15 15:33:07
a213m
Currently SPD-RW has limited software DDR5 support (Vendor, Model, and CRC information).
 
Arduino DDR5 support will be updated once I get my hands on DDR5 modules. (No ETA yet). I have a prototype ready, but schematics and firmware won't be published until it is tested.
 
As for SMBus DDR5 reading/writing there's no support for now. If you have an Intel or AMD DDR5 system and can run test on your system to speed up DDR5 support, let me know via PM or here.
2022/12/31 15:34:22
a213m
Happy new year, everyone!
 
Here's a new version with quite a changelog: 20221231
 
GUI
  • Fixed: Not responding to save shortcuts keys (Ctrl+S) unless the File menu was opened prior to saving loaded data
  • Fixed: Imported SPD CRC status information not being updated after closing previously edited SPD without saving
  • Fixed: Program closing when selecting to save changes before exiting and closing Save File dialog without saving
  • Fixed: Error after clicking on an empty ASCII area, if loaded data size wasn't a factor of number of bytes per row
  • Fixed: Editor preview not reflecting "Highlight similar bytes" option change in real time in the Settings window
  • Fixed: Mouse back and forward buttons activating panel under the pointer when navigation history is empty
  • Fixed: Menu and toolbar Save buttons becoming unavailable for imported data after opening the File menu
  • Fixed: Screenshot tool not capturing updated window contents after restoring down the maximized window
  • Fixed: Editor not scrolling to cursor position outside of visible area when manually going to the same offset
  • Fixed: New Name text field position in the Rename Arduino device dialog window after it was being resized
  • Fixed: Navigation history losing first cursor position and active panel when going back after going forward
  • Fixed: All right-aligned check boxes in the Settings window are perfectly aligned regardless of DPI settings
  • Fixed: Navigation menu items showing up as available under the Edit menu after clearing editor contents
  • Fixed: Check RSWP Status window displaying incorrect device name when connected to SMBus controller
  • Fixed: Edits made to imported or pasted data were not saved when saving to a local file for the first time
  • Fixed: Duplicate log entries showing up in the event log when importing SPD data from non binary files
  • Fixed: Screenshot tool capturing black borders around the maximized window in Windows 7, 8, and 8.1
  • Fixed: Program not starting in Windows XP, Vista, 7, 8, and 8.1 if custom DPI font settings were used
  • Redesigned: Arduino and Smbus related settings moved to Hardware tab in the Settings window
  • Redesigned: Replaced device type selection with a drop-down menu in the Select Device dialog
  • Redesigned: Dragging file onto the editor will activate and bring the main window forward
  • Redesigned: Data editor side offset numbers are not shown, when no data is loaded
  • Added: Status displaying the number of unsaved changes in the Settings window
  • Added: Revert button to undo unsaved changes in the Settings window
  • Added: Option to hide copy preview in the Settings window
  • Added: Option to toggle main toolbar buttons captions
  • Added: Pascal and Java byte array data copy formats
  • Added: CPU-Z text report SPD import support
  • Added: DDR5 XMP & EXPO CRC validation
  • Improved: Arduino connection time
  • Improved: Startup loading time
  • Improved: Performance
  • Improved: Stability

CLI

  • Updated: Compatibility
 



Although the changelog is huge, most of the fixes are related to the the new editor I introduced in the last version. I also fixed UI scaling under non standard DPI settings.
 
There are a couple of new features I'd like to point out: CPU-Z text report import and additional DDR5 CRC validation.
 
To use CPU-Z report import feature, start CPU-Z, save report as a text file (click Tools and select "Save report as TXT"). Then open the text file in SPD-RW. If you have multiple SPDs present, you'll be asked to choose SPD number, just like as if you were to read SPD from Arduino or Smbus with multiple devices on the same bus.
 
DDR5 SPDs can feature up to 5 XMP profiles, and/or 2 Expo profiles. Unlike DDR4, which used 2 CRCs to validate base configuration and block 1 data, DDR5 uses 1 CRC to validate base data. However, this time around, XMP 3.0 and AMD Expo profiles, if present, are also validated using the same algorithm to ensure data integrity. This release will validate all CRCs present in DDR5 SPD dumps.
2023/01/20 15:05:49
a213m
New version: 20230120
 
Reuploaded: minor fix - explorer wasn't opening after saving firmware, download again. :)

GUI

  • Added: Drag & drop file support under admin privileges in Windows Vista and higher w/ UAC enabled
  • Added: Found Arduinos firmware version number in Select Device window
  • Added: Scroll lock functionality
  • Improved: Restored originally used default non-ASCII placeholder
  • Improved: Performance when handling large file size errors
  • Improved: Arduino RSWP operations performance
  • Fixed: False file import entry added to event log after cancelling CPU-Z text report SPD importing
  • Fixed: Pressing save shortcut keys (Ctrl+S) saving opened file when no edits have been made
  • Fixed: Not responding to mouse navigation buttons, if pointer was outside of editable area
  • Fixed: Error message not displaying Arduino identifier upon EEPROM write failure
  • Fixed: Delay during closing program when Arduino auto connection is enabled
  • Fixed: Arduino RSWP capabilities polling while no slave devices are present
  • Fixed: New or reset Arduino name validation upon initial connection
  • Fixed: Misaligned characters in editor when using odd font sizes
  • Fixed: Cursor resetting position when changing font settings
  • Fixed: DDR5 SPD manufacturer ID and name detection

CLI

  • Added: Optional /nocolor command line switch to display SPD contents in monochrome
  • Added: Error messages are displayed when accessing SMBus without admin privileges
  • Fixed: Command line /scan ignoring specified SMBus bus number
  • Improved: SPD reading and writing performance
  • Updated: Info and help contents

SMBus

  • Fixed: Driver file extracting when running program without admin privileges
  • Fixed: Driver not stopping after quitting program
 
Notable improvements:
 
Starting with Windows Vista, Microsoft introduced UAC feature to improve OS security. When enabled, applications launched with higher privileges prevent drag-and-drop operation from applications launched with lower privileges. (You can try it yourself by launching notepad as admin, and trying to drag and drop a file from desktop or explorer into the main window - you will notice the operation is blocked.) This release modifies the behavior of the editor using ChangeWindowMessageFilterEx and ChangeWindowMessageFilter APIs to allow drag-and-drop operations under admin, which is required to access SMBus.
 
I also added a Scroll Lock functionality. When scroll lock is off, arrow keys move the cursor within the document. With scroll lock on arrow keys will keep cursor in place and will scroll document up and down, like in MS Excel.
 
Good things will come to those who wait. 🕔
 
Edit: typos
2023/01/21 17:36:16
Cool GTX
Thank you for continuing to post updates
2023/02/03 20:59:16
Delirious
Thanks!
2023/02/05 16:14:45
a213m
The update you all have been waiting for: 20230205
 

Core

  • Added: DDR5 support

GUI

  • Improved: RSWP report accuracy when multiple devices are present on the same bus
  • Fixed: Delay when switching between Arduino and SMBus in Select Device window
  • Fixed: Freeze when reading SPD from Arduino with multiple bus addresses
  • Improved: stability and performance in virtualized environments

CLI

  • Added: Mandatory address parameter when working with RSWP switches

Firmware

  • Improved: Performance and stability

Schematic

  • Improved: Stability and reliability
  • Removed: Optional modules
 
This release adds DDR5 support. This will let you read, edit, and write DDR5 SPDs, as well as toggle individual block write protection. The update requires new firmware, even if you don't need DDR5 support, because I updated protocol. The firmware is fully compatible with old schematic. The updated schematic will let you use DDR5 and any other RAM of previous generation simultaneously.
 

 
Stay tuned for updated guide.
2023/02/23 05:26:47
noisy ghost
hello, friend a213m thank you for the application and even more for its interface, tell you that I had a problem trying to modify the SPD,
I must clarify that I do not use arduino, to connect I use the mother gigabyte "GA Z77 -D3H",
the memories that I try to modify have RSWP activated, in the interface the button "CLEAR RSWP" appears in gray, and I can't click!!
I read all the comments in the thread and I did not find any information that would help me.
I also clarify that I was able to modify ram memories that have RSWP disabled and it was a complete success.
so I wonder, can you disable RSWP and thus modify the SPD only with arduino? sorry for my English, I hope you understand my question...
I await your contribution, thank you very much.
I'm using version 20230205!!!

Use My Existing Forum Account

Use My Social Media Account