Announcement

Collapse
No announcement yet.

Decode SPD information from MemTest86 log file

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Decode SPD information from MemTest86 log file

    MemTest writes the SPD information it reads from memory modules into the log file as raw hex bytes encoded in ASCII:
    Code:
    ...
    2024-05-12 16:41:10 - Raw SPD bytes for DIMM#0 (Channel -1, Slot -1):
    2024-05-12 16:41:10 - 11 11 24 05 00 80 B3 30 01 10 00 00 00 00 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 92 DA
    2024-05-12 16:41:10 - 23 11 0C 01 85 21 00 08 00 60 00 03 09 0B 80 00
    2024-05-12 16:41:10 - 00 00 07 0D F8 0F 00 00 6E 6E 6E 11 00 6E F0 0A
    2024-05-12 16:41:10 - 20 08 00 05 00 A8 1B 28 28 00 78 00 14 3C 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 00 00 00 00 00 00 0C 2C 0C 2C
    2024-05-12 16:41:10 - 0C 2C 0C 2C 0C 2C 0C 2C 0C 2C 0C 2C 0C 2C 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 9C B5 00 00 00 00 E7 D6 CD 47
    2024-05-12 16:41:10 - 11 11 24 05 00 80 B3 30 01 10 00 00 00 00 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:10 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 92 DA
    2024-05-12 16:41:10 - 23 11 0C 01 85 21 00 08 00 60 00 03 09 0B 80 00
    2024-05-12 16:41:10 - 00 00 07 0D F8 0F 00 00 6E 6E 6E 11 00 6E F0 0A
    2024-05-12 16:41:11 - 20 08 00 05 00 A8 1B 28 28 00 78 00 14 3C 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 0C 2C 0C 2C
    2024-05-12 16:41:11 - 0C 2C 0C 2C 0C 2C 0C 2C 0C 2C 0C 2C 0C 2C 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 9C B5 00 00 00 00 E7 D6 CD 47
    2024-05-12 16:41:11 - 11 11 24 05 00 80 B3 30 01 10 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 92 DA
    2024-05-12 16:41:11 - 23 11 0C 01 85 21 00 08 00 60 00 03 09 0B 80 00
    2024-05-12 16:41:11 - 00 00 07 0D F8 0F 00 00 6E 6E 6E 11 00 6E F0 0A
    2024-05-12 16:41:11 - 20 08 00 05 00 A8 1B 28 28 00 78 00 14 3C 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 0C 2C 0C 2C
    2024-05-12 16:41:11 - 0C 2C 0C 2C 0C 2C 0C 2C 0C 2C 0C 2C 0C 2C 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 9C B5 00 00 00 00 E7 D6 CD 47
    2024-05-12 16:41:11 - 11 11 24 05 00 80 B3 30 01 10 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 92 DA
    2024-05-12 16:41:11 - 23 11 0C 01 85 21 00 08 00 60 00 03 09 0B 80 00
    2024-05-12 16:41:11 - 00 00 07 0D F8 0F 00 00 6E 6E 6E 11 00 6E F0 0A
    2024-05-12 16:41:11 - 20 08 00 05 00 A8 1B 28 28 00 78 00 14 3C 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 0C 2C 0C 2C
    2024-05-12 16:41:11 - 0C 2C 0C 2C 0C 2C 0C 2C 0C 2C 0C 2C 0C 2C 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    2024-05-12 16:41:11 - 00 00 00 00 00 00 9C B5 00 00 00 00 E7 D6 CD 47
    2024-05-12 16:41:11 - Enumerating PCI bus...
    ...
    Is there a tool that can do an 'offline' decode of SPD info stored in a text file, as opposed to the actual SPD info read straight from the actual memory modules themselves?

    RAMMon, like CPU-Z, appears to only read the SPD data from the machine on which it is running.

    I found this spd_utils linux tool on Github, and it runs in Windows Subsystem for Linux, but it doesn't seem to return anything and I am not sure if I have encoded the data correctly.

    Does anyone know if there is anything else like this?

    It would be really great if RAMMon could be passed a MemTest logfile and it just decode it from that.

  • #2
    We aren't aware of anything that decodes a text file that was created on another machine.

    MemTest86 and RAMMon both do a full decode on a live machine however.

    Comment


    • #3
      Yeah, the SPD data I want to decode is taken from the logfile created by MemTest86. It's just that I am trying to create a report/spreadsheet with all the details of what MemTest86 found on another machine so as I can send it to the motherboard manufacturer for analysis.

      Can I perhaps suggest that an option be added to RAMMon that allows one to open a MemTest86 logfile and read and parse the raw hex SPD bytes from that (per the example above) instead of the SPD info from the current system on which RAMMon is running, and to display it in the same format as that which is used to display it in MemTest86 in the "System (I)nfo > View detailed RAM (SPD) info" pages? It would be good to allow that also to be saved to a text file as human readable SPD information.
      This would make it much easier to send this info to RAM vendors for support and analysis.
      I guess it would also make it easier for PassMark to provide support too?

      Alternatively, an option could be added to MemTest86 to export the SPD info as displayed in the "System (I)nfo > View detailed RAM (SPD) info" pages​ to a separate file on the USB.
      Last edited by memetic; May-25-2024, 06:22 AM.

      Comment


      • #4
        Why not just export the already decoded data from RAMMon?
        (why bother with the hex values at all, unless you think there is a decoding error, but in that case someone will need to hand decode a few bytes anyway)

        Comment


        • #5
          Originally posted by David (PassMark) View Post
          Why not just export the already decoded data from RAMMon?
          (why bother with the hex values at all, unless you think there is a decoding error, but in that case someone will need to hand decode a few bytes anyway)
          This is a TrueNAS server, not a Windows system. Can't run RAMMon (AFAIK you don't have a version that runs on TrueNAS/FreeBSD, correct?)

          Comment


          • #6
            RAMMon is Windows only.

            But Memtest86 doesn't use the operating system. It boots before the O/S does. So it doesn't matter what O/S you run.
            We do only support UEFI BIOS however. Not sure what BIOS your NAS has.

            Comment


            • #7
              Thanks, yes, I know MemTest86 is itself a small OS dedicated to testing memory modules.
              (BIOS is UEFI).

              But I still think you have not understood what I mean, or at least why I want to be able to do what I want to do.

              Both RAMMon and MemTest86 can only read SPD data from the physical memory modules on the system they are being executed on.
              There is no way to decode SPD data that is stored as hex characters in an ASCII formatted text file that is taken from another system, a system that is NOT the system RAMMon/MemTest86 are running on.

              I would like to see a function added to RAMMon called something like "load memory details from MemTest86 log file", where, instead of interrogating the memory on the system it is installed and running on, it would open a file dialog in which I would pick a previously generated MenTest86 log file, and it would then read that textual log file and decode all the memory and SPD data and display that instead.

              Why is this a good idea?
              Consider an OEM builder who wants to run MemTest86 on every machine they build as a quality check prior to shipping. They want to be able check all the SPD and memory info of each machine, but they want to do that on a separate PC where they store and track all build info for each product they build and ship.
              Another case could be if you can't boot into the OS for some reason (critical files have become corrupt?) but you are able to run MemTest86, but you want to be able to do further analysis of the MemTest86 log file on another machine.
              In all my testing it became quite apparent to me that often when I rebooted the system I was testing, for whatever reason, the SPD data would be misread differently. I wanted to be be able to easily recall exactly what the SPD data 'looked' like on a particular test pass or boot session to see if I could detect patterns (to see, for example, if the same bits kept getting misread). This is harder to do manually.

              This could be a Premium feature or a free feature - up the PassMark.

              I hope I have explained this properly now.

              Comment


              • #8
                Click image for larger version

Name:	image.png
Views:	165
Size:	219.5 KB
ID:	57172
                I like pictures. Hopefully this illustrates it well.

                Comment


                • #9
                  We totally understand your request.
                  But,
                  1) No one else has asked for it
                  2) If they are already running Memtest86 to get the SPD hex values, then they can already do the decode in the GUI, or get the decode from the same log file. So no huge need for a separate decoder application. The function already happens automatically.
                  3) We already have a separate Product database app, that already gets the decoded SPD information. So again, no need for something new as solution already exists.

                  If you had a great need for it we could totally do it as a custom (paid) software development project. But I am guessing it isn't important enough for someone to pay for.

                  Comment


                  • #10
                    Example SPD hex & decode in the MemTest86 log file.

                    Click image for larger version

Name:	image.png
Views:	143
Size:	152.1 KB
ID:	57175

                    Comment

                    Working...
                    X