Awesome thanks! Just to reminder that of my system specs, i have this ASUS maximus ix apex (z270) motherboard, and both my ram kits, one a crucial ballistix (BLS2K16G4D30AESB), the other a g.skill trident-z (F4-3200C15-16GTZ), neither decoded with this motherboard. Well compiled it, tried just tried now, and with the trident-z kit, and decode-dimms.new (my download of the newer online version of this script), and works! Will need to reboot and double check for the Cruicial kit, which will be coming shortly, in my next message. Here is the output from the trident-z kit $ sudo ./decode-dimms.new # decode-dimms version $Revision$ Memory Serial Presence Detect Decoder By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner, Jean Delvare, Trent Piepho and others Decoding EEPROM: /sys/bus/i2c/drivers/ee1004/2-0050 Guessing DIMM is in bank 1 ---=== SPD EEPROM Information ===--- EEPROM CRC of bytes 0-125 OK (0x7EAF) # of bytes written to SDRAM EEPROM 384 Total number of bytes in EEPROM 512 Fundamental Memory type DDR4 SDRAM SPD Revision 1.0 Module Type UDIMM EEPROM CRC of bytes 128-253 OK (0xDF74) ---=== Memory Characteristics ===--- Maximum module speed 2132 MHz (PC4-17000) Size 16384 MB Banks x Rows x Columns x Bits 16 x 16 x 10 x 64 SDRAM Device Width 8 bits Ranks 2 Rank Mix Symmetrical Primary Bus Width 64 bits AA-RCD-RP-RAS (cycles) 15-15-15-36 Supported CAS Latencies 16T, 15T, 14T, 13T, 12T, 11T, 10T ---=== Timings at Standard Speeds ===--- AA-RCD-RP-RAS (cycles) as DDR4-1866 13-13-13-31 AA-RCD-RP-RAS (cycles) as DDR4-1600 11-11-11-27 ---=== Timing Parameters ===--- Minimum Cycle Time (tCKmin) 0.938 ns Maximum Cycle Time (tCKmax) 1.500 ns Minimum CAS Latency Time (tAA) 13.750 ns Minimum RAS to CAS Delay (tRCD) 13.750 ns Minimum Row Precharge Delay (tRP) 13.750 ns Minimum Active to Precharge Delay (tRAS) 33.000 ns Minimum Active to Auto-Refresh Delay (tRC) 46.750 ns Minimum Recovery Delay (tRFC1) 350.000 ns Minimum Recovery Delay (tRFC2) 260.000 ns Minimum Recovery Delay (tRFC4) 160.000 ns Minimum Four Activate Window Delay (tFAW) 21.000 ns Minimum Row Active to Row Active Delay (tRRD_S) 3.700 ns Minimum Row Active to Row Active Delay (tRRD_L) 5.300 ns Minimum CAS to CAS Delay (tCCD_L) 5.625 ns ---=== Other Information ===--- Package Type Monolithic Maximum Activate Count Unlimited Post Package Repair One row per bank group Soft PPR Not Supported Module Nominal Voltage 1.2 V Thermal Sensor No ---=== Physical Characteristics ===--- Module Height 32 mm Module Thickness 2 mm front, 2 mm back Module Reference Card B revision 1 ---=== Manufacturer Data ===--- Module Manufacturer G Skill Intl DRAM Manufacturer Samsung Part Number F4-3200C15-16GTZ Decoding EEPROM: /sys/bus/i2c/drivers/ee1004/2-0052 Guessing DIMM is in bank 3 ---=== SPD EEPROM Information ===--- EEPROM CRC of bytes 0-125 OK (0x7EAF) # of bytes written to SDRAM EEPROM 384 Total number of bytes in EEPROM 512 Fundamental Memory type DDR4 SDRAM SPD Revision 1.0 Module Type UDIMM EEPROM CRC of bytes 128-253 OK (0xDF74) ---=== Memory Characteristics ===--- Maximum module speed 2132 MHz (PC4-17000) Size 16384 MB Banks x Rows x Columns x Bits 16 x 16 x 10 x 64 SDRAM Device Width 8 bits Ranks 2 Rank Mix Symmetrical Primary Bus Width 64 bits AA-RCD-RP-RAS (cycles) 15-15-15-36 Supported CAS Latencies 16T, 15T, 14T, 13T, 12T, 11T, 10T ---=== Timings at Standard Speeds ===--- AA-RCD-RP-RAS (cycles) as DDR4-1866 13-13-13-31 AA-RCD-RP-RAS (cycles) as DDR4-1600 11-11-11-27 ---=== Timing Parameters ===--- Minimum Cycle Time (tCKmin) 0.938 ns Maximum Cycle Time (tCKmax) 1.500 ns Minimum CAS Latency Time (tAA) 13.750 ns Minimum RAS to CAS Delay (tRCD) 13.750 ns Minimum Row Precharge Delay (tRP) 13.750 ns Minimum Active to Precharge Delay (tRAS) 33.000 ns Minimum Active to Auto-Refresh Delay (tRC) 46.750 ns Minimum Recovery Delay (tRFC1) 350.000 ns Minimum Recovery Delay (tRFC2) 260.000 ns Minimum Recovery Delay (tRFC4) 160.000 ns Minimum Four Activate Window Delay (tFAW) 21.000 ns Minimum Row Active to Row Active Delay (tRRD_S) 3.700 ns Minimum Row Active to Row Active Delay (tRRD_L) 5.300 ns Minimum CAS to CAS Delay (tCCD_L) 5.625 ns ---=== Other Information ===--- Package Type Monolithic Maximum Activate Count Unlimited Post Package Repair One row per bank group Soft PPR Not Supported Module Nominal Voltage 1.2 V Thermal Sensor No ---=== Physical Characteristics ===--- Module Height 32 mm Module Thickness 2 mm front, 2 mm back Module Reference Card B revision 1 ---=== Manufacturer Data ===--- Module Manufacturer G Skill Intl DRAM Manufacturer Samsung Part Number F4-3200C15-16GTZ Number of SDRAM DIMMs detected and decoded: 2 [id:~] $ A quick recap of what Jean has changed in the ee1004.c $ diff ee1004.c foo.c 59a60,76 > static int ee1004_get_current_page(void) > { > int err; > > err = i2c_smbus_read_byte(ee1004_set_page[0]); > if (err == -ENXIO) { > /* Nack means page 1 is selected */ > return 1; > } else if (err < 0) { > /* Anything else is a real error, bail out */ > return err; > } else { > /* Ack means page 0 is selected, returned value meaningless */ > return 0; > } > } > 108a126,135 > if (status == -ENXIO) { > /* > * Don't give up just yet. Some memory > * modules will select the page but not > * ack the command. Check which page is > * selected now. > */ > if (ee1004_get_current_page() == page) > status = 0; > } 193,198c220,221 < err = i2c_smbus_read_byte(ee1004_set_page[0]); < if (err == -ENXIO) { < /* Nack means page 1 is selected */ < ee1004_current_page = 1; < } else if (err < 0) { < /* Anything else is a real error, bail out */ --- > err = ee1004_get_current_page(); > if (err < 0) 200,203c223 < } else { < /* Ack means page 0 is selected, returned value meaningless */ < ee1004_current_page = 0; < } --- > ee1004_current_page = err; On Fri, Apr 19, 2019 at 7:39 PM Jean Delvare <jdelvare@xxxxxxx> wrote: > > On Thu, 18 Apr 2019 18:19:46 +0300, Jarkko Nikula wrote: > > Same system. Working set (two DIMMs) is Micron and failing set is > > Crucial. Interestingly decode-dimm was able to parse also Crucial when > > plugged in together with Micron and all of them probed with ee1004 but > > not when there were 2* or 4* Crusial DIMMs alone. > > Dreamcat4, I have put an updated ee1004 driver at: > > http://jdelvare.nerim.net/devel/lm-sensors/drivers/ee1004/ > > Please build it and give it a try. It includes a hack which may > workaround the weird behavior of your memory modules. > > You'll still need to instantiate the 2 ee1004 devices manually, as > before. You should be able to read from the eeprom files without error > now, and hopefully decode-dimms will even print sensible values. > > -- > Jean Delvare > SUSE L3 Support