On Mon, Apr 15, 2019 at 2:24 PM Jean Delvare <jdelvare@xxxxxxx> wrote: > > On Mon, 15 Apr 2019 14:47:12 +0300, Jarkko Nikula wrote: > > On 4/12/19 9:42 PM, Jean Delvare wrote: > > > Jarkko, are you aware of any setting of the Z370 SMBus controller that > > > would block writes to I2C address 0x36? I have a vague memory of some > > > setting that aimed at protecting SPD EEPROMs but as I remember it was > > > only for address range 0x50-0x57. But I don't remember the details to > > > be honest. > > > > Not sure but specification for SMBus Host Configuration register (0x40) > > bit SPD Write Disable (SPDWD) says only 0x50-0x57: > > > > "When this bit is set to 1, writes to SMBus addresses 50h – 57h are > > disabled. Note: This bit is R/WO and will be reset on PLTRST# assertion. > > This bit should be set by BIOS to ‘1’. Software can only program this > > bit when both the START bit and Host Busy bit are ‘0’; otherwise, the > > write may result in undefined behavior." > > Thanks Jarkko, that's what I found as well when looking specifically in > the datasheet of the Z370 chipset. > > From the dump provided by Dreamcat4: > > > 40: 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 > > The SPD protection is indeed enabled, as I would expect. But it should > not affect SPD page selection which is in address range 0x30-0x37. > > Anyway it's not possible to disable the SPD protection at run-time, as > the bit is Write-Once according to the spreadsheet. > > I'm out of idea, sorry. The only thing I can suggest is to try > different memory modules on this mainboard, and/or these memory modules > on another mainboard, to figure out if the problem comes from the > memory modules or the mainboard. Jean, I have just tried different ram kit in same motherboard. And it does not seem to be doing much differently, its same behaviour, same error messages. [root:~] # ./decode-dimms.new Cannot read /sys/bus/i2c/drivers/ee1004/2-0050/eeprom at ./decode-dimms.new line 2358. dmesg -w [ 763.518594] ee1004 2-0050: Failed to select page 0 (-6) decode-dimms (older version with ubuntu distribution): [root:/] # decode-dimms No EEPROM found, try loading the eeprom or at24 module [root:/] # decode-dimms No EEPROM found, try loading the eeprom or at24 module [root:/] # decode-dimms No EEPROM found, try loading the eeprom or at24 module [root:/] # decode-dimms No EEPROM found, try loading the eeprom or at24 module [root:/] # other command: [root:/] # modprobe i2c-dev [root:/] # i2cdetect 2 Error: Could not open file `/dev/i2c-2' or `/dev/i2c/2': No such file or directory [root:/] 1 # cd /sys/bus/i2c/devices/ [root:/sys/bus/i2c/devices] # ls i2c-0 i2c-1 [root:/sys/bus/i2c/devices] # sudo modprobe i2c-i801 [root:/sys/bus/i2c/devices] # ls i2c-0 i2c-1 i2c-2 [root:/sys/bus/i2c/devices] # modprobe ee1004 [root:/sys/bus/i2c/devices] # [root:/sys/bus/i2c/devices] # [root:/sys/bus/i2c/devices] # i2cdetect 2 WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-2. I will probe address range 0x03-0x77. Continue? [Y/n] y 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- 08 -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- 18 -- 1a -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: 30 31 -- -- 34 35 -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- 44 -- -- -- -- -- -- -- -- -- -- -- 50: 50 -- 52 -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- [root:/sys/bus/i2c/devices] # [root:/sys/bus/i2c/devices] # modprobe ee1004 [root:/sys/bus/i2c/devices] # dmesg -w [ 271.121124] i801_smbus 0000:00:1f.4: SPD Write Disable is set [ 271.121155] i801_smbus 0000:00:1f.4: SMBus using PCI interrupt [ 413.409031] ee1004 2-0050: 512 byte EE1004-compliant SPD EEPROM, read-only [ 413.409044] i2c i2c-2: new_device: Instantiated device ee1004 at 0x50 [ 425.137122] ee1004 2-0052: 512 byte EE1004-compliant SPD EEPROM, read-only [ 425.137139] i2c i2c-2: new_device: Instantiated device ee1004 at 0x52 [ 620.196055] ee1004 2-0050: Currently selected page: 1 [ 620.196056] ee1004 2-0050: 512 byte EE1004-compliant SPD EEPROM, read-only [ 620.196275] ee1004 2-0052: Currently selected page: 1 [ 620.196276] ee1004 2-0052: 512 byte EE1004-compliant SPD EEPROM, read-only > > You could also try your memory modules separately, in case the problem > is a bad interaction between the 2. The SPD page selection is kind of a > broadcast command, affecting all memory modules at once, and I'm not > really sure what would happen if one module behaves OK and the other > not. > > -- > Jean Delvare > SUSE L3 Support