Hi Jarkko, On Wed, 17 Apr 2019 14:54:02 +0300, Jarkko Nikula wrote: > I didn't contact yet HW folks but managed to check here with the same > chipset and DDR4 having ee1004 that decode-dimms appear to work fine. > Details below. > > Then I have another set of DDR4 dimms that have either 24c02 and > temperature sensor or something else. i2cdetect detects devices at I don't think DDR4 is allowed to have anything but EE1004-compliant EEPROMs. All DDR4 modules are supposed to be interchangeable. > 0x50-0x51 and 0x35-0x36 (when no 24c02 or ee1004 loaded) and chips probe > fine as 24c02. decode-dimms don't find anything but "hexdump -C Anything will "probe fine as 24c02", as there is no way to detect such chips. The driver will accept anything that is present at the I2C address in question. > /sys/bus/i2c/devices/i2c-0/0-0050/eeprom" dumps some data. > > If I try to probe them as ee1004 they probe but hexdump over them fails > with "Failed to select page 1 (-6)". That sounds very similar to the problem reported by Dreamcat4. > ------------- > DDR4 without ee1004 and using 24c02 > > # echo "24c02 0x50" >/sys/bus/i2c/devices/i2c-0/new_device > [ 162.175316][ T412] i2c i2c-0: new_device: Instantiated device 24c02 > at 0x50 > [ 162.188728][ T418] at24 0-0050: 256 byte 24c02 EEPROM, writable, 1 > bytes/write > > # echo "24c02 0x51" >/sys/bus/i2c/devices/i2c-0/new_device > [ 167.112140][ T412] at24 0-0051: 256 byte 24c02 EEPROM, writable, 1 > bytes/write > [ 167.119614][ T412] i2c i2c-0: new_device: Instantiated device 24c02 > at 0x51 > > # ./decode-dimms > # decode-dimms version $Revision$ > > Memory Serial Presence Detect Decoder > By Philip Edelbrock, Christian Zuckschwerdt, Burkart Lingner, > Jean Delvare, Trent Piepho and others > > > Number of SDRAM DIMMs detected and decoded: 0 The EEPROMs are most likely sitting on page 1, while the most important information (including memory module type = DDR4, which is the key to decode the rest properly) is not accessible. Plus the CRC check for page 0 fails if page 1 is selected instead. That's why decode-dimms prints nothing. > ------------- > DDR4 with ee1004 > > ~# lspci -nn | grep SMBus > 00:1f.4 SMBus [0c05]: Intel Corporation 200 Series/Z370 Chipset Family > SMBus Controller [8086:a2a3] > > # i2cdetect -y 0 > 0 1 2 3 4 5 6 7 8 9 a b c d e f > 00: -- -- -- -- -- 08 -- -- -- -- -- -- -- > 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 30: 30 31 32 33 34 -- -- -- -- -- -- -- -- -- -- -- > 40: -- -- -- -- 44 -- -- -- -- -- -- -- -- -- -- -- > 50: 50 51 -- -- -- -- 56 -- -- -- -- -- -- -- -- -- > 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 6e -- > 70: -- -- -- -- -- -- -- -- > > # echo ee1004 0x50 > /sys/bus/i2c/devices/i2c-0/new_device > [ 394.278283][ T390] ee1004 0-0050: 512 byte EE1004-compliant SPD > EEPROM, read-only > [ 394.286011][ T390] i2c i2c-0: new_device: Instantiated device ee1004 > at 0x50 > # echo ee1004 0x51 > /sys/bus/i2c/devices/i2c-0/new_device > [ 402.085416][ T390] ee1004 0-0051: 512 byte EE1004-compliant SPD > EEPROM, read-only > [ 402.093037][ T390] i2c i2c-0: new_device: Instantiated device ee1004 > at 0x51 > > # i2cdetect -y 0 > 0 1 2 3 4 5 6 7 8 9 a b c d e f > 00: -- -- -- -- -- 08 -- -- -- -- -- -- -- > 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > 30: 30 31 32 33 34 -- UU UU -- -- -- -- -- -- -- -- > 40: -- -- -- -- 44 -- -- -- -- -- -- -- -- -- -- -- > 50: UU UU -- -- -- -- 56 -- -- -- -- -- -- -- -- -- > 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 6e -- > 70: -- -- -- -- -- -- -- -- > > # ./decode-dimms > # 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/0-0050 > Guessing DIMM is in bank 1 > > ---=== SPD EEPROM Information ===--- > EEPROM CRC of bytes 0-125 OK (0x7174) > # of bytes written to SDRAM EEPROM 384 > Total number of bytes in EEPROM 512 > Fundamental Memory type DDR4 SDRAM > SPD Revision 1.1 > Module Type UDIMM > EEPROM CRC of bytes 128-253 OK (0x1733) > > ---=== Memory Characteristics ===--- > Maximum module speed 2400 MHz (PC4-19200) > Size 4096 MB > Banks x Rows x Columns x Bits 8 x 16 x 10 x 64 > SDRAM Device Width 16 bits > Ranks 1 > Primary Bus Width 64 bits > AA-RCD-RP-RAS (cycles) 17-17-17-39 > Supported CAS Latencies 21T, 20T, 19T, 18T, > 17T, 16T, 15T, 14T, 13T, 12T, 11T, 10T > > ---=== Timings at Standard Speeds ===--- > AA-RCD-RP-RAS (cycles) as DDR4-2400 17-17-17-39 > AA-RCD-RP-RAS (cycles) as DDR4-2133 15-15-15-35 > AA-RCD-RP-RAS (cycles) as DDR4-1866 13-13-13-30 > AA-RCD-RP-RAS (cycles) as DDR4-1600 11-11-11-26 > > ---=== Timing Parameters ===--- > Minimum Cycle Time (tCKmin) 0.833 ns > Maximum Cycle Time (tCKmax) 1.600 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) 32.000 ns > Minimum Active to Auto-Refresh Delay (tRC) 45.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) 30.000 ns > Minimum Row Active to Row Active Delay (tRRD_S) 5.300 ns > Minimum Row Active to Row Active Delay (tRRD_L) 6.400 ns > Minimum CAS to CAS Delay (tCCD_L) 5.000 ns > Minimum Write Recovery Time (tWR) 15.000 ns > Minimum Write to Read Time (tWTR_S) 2.500 ns > Minimum Write to Read Time (tWTR_L) 7.500 ns > > ---=== Other Information ===--- > Package Type Monolithic > Maximum Activate Count Unlimited > Post Package Repair One row per bank group > Soft PPR Supported > Module Nominal Voltage 1.2 V > Thermal Sensor No > > ---=== Physical Characteristics ===--- > Module Height 32 mm > Module Thickness 2 mm front, 1 mm back > Module Reference Card C revision 0 > > ---=== Manufacturer Data ===--- > Module Manufacturer Micron Technology > DRAM Manufacturer Micron Technology > Manufacturing Location Code 0x0F > Manufacturing Date 2016-W35 > Assembly Serial Number 0x13C5C25F > Part Number 4ATF51264AZ-2G3B1 > Revision Code 0x31 > > Decoding EEPROM: /sys/bus/i2c/drivers/ee1004/0-0051 > Guessing DIMM is in bank 2 > > ---=== SPD EEPROM Information ===--- > EEPROM CRC of bytes 0-125 OK (0x7174) > # of bytes written to SDRAM EEPROM 384 > Total number of bytes in EEPROM 512 > Fundamental Memory type DDR4 SDRAM > SPD Revision 1.1 > Module Type UDIMM > EEPROM CRC of bytes 128-253 OK (0x1733) > > ---=== Memory Characteristics ===--- > Maximum module speed 2400 MHz (PC4-19200) > Size 4096 MB > Banks x Rows x Columns x Bits 8 x 16 x 10 x 64 > SDRAM Device Width 16 bits > Ranks 1 > Primary Bus Width 64 bits > AA-RCD-RP-RAS (cycles) 17-17-17-39 > Supported CAS Latencies 21T, 20T, 19T, 18T, > 17T, 16T, 15T, 14T, 13T, 12T, 11T, 10T > > ---=== Timings at Standard Speeds ===--- > AA-RCD-RP-RAS (cycles) as DDR4-2400 17-17-17-39 > AA-RCD-RP-RAS (cycles) as DDR4-2133 15-15-15-35 > AA-RCD-RP-RAS (cycles) as DDR4-1866 13-13-13-30 > AA-RCD-RP-RAS (cycles) as DDR4-1600 11-11-11-26 > > ---=== Timing Parameters ===--- > Minimum Cycle Time (tCKmin) 0.833 ns > Maximum Cycle Time (tCKmax) 1.600 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) 32.000 ns > Minimum Active to Auto-Refresh Delay (tRC) 45.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) 30.000 ns > Minimum Row Active to Row Active Delay (tRRD_S) 5.300 ns > Minimum Row Active to Row Active Delay (tRRD_L) 6.400 ns > Minimum CAS to CAS Delay (tCCD_L) 5.000 ns > Minimum Write Recovery Time (tWR) 15.000 ns > Minimum Write to Read Time (tWTR_S) 2.500 ns > Minimum Write to Read Time (tWTR_L) 7.500 ns > > ---=== Other Information ===--- > Package Type Monolithic > Maximum Activate Count Unlimited > Post Package Repair One row per bank group > Soft PPR Supported > Module Nominal Voltage 1.2 V > Thermal Sensor No > > ---=== Physical Characteristics ===--- > Module Height 32 mm > Module Thickness 2 mm front, 1 mm back > Module Reference Card C revision 0 > > ---=== Manufacturer Data ===--- > Module Manufacturer Micron Technology > DRAM Manufacturer Micron Technology > Manufacturing Location Code 0x0F > Manufacturing Date 2016-W35 > Assembly Serial Number 0x13C5C264 > Part Number 4ATF51264AZ-2G3B1 > Revision Code 0x31 > > > Number of SDRAM DIMMs detected and decoded: 2 This looks perfectly right. Did you test the 2 memory module kits on the same system, or different systems? If same system, please let us know what modules works and what modules failed. If different systems, please check (when loading the i2c-i801 driver) whether each has the SPD protection bit enabled or not. Thanks, -- Jean Delvare SUSE L3 Support