Re: [decode-dimms] Crucial Ballistix BLS2K16G4D30AESB, cannot decode / understand timings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Apr 16, 2019 at 8:45 PM Peter Rosin <peda@xxxxxxxxxx> wrote:
>
> On 2019-04-16 20:34, Jean Delvare wrote:
> > On Tue, 16 Apr 2019 18:13:00 +0100, Dreamcat4 wrote:
> >> [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 UU UU -- -- -- -- -- -- -- --
> >> 40: -- -- -- -- 44 -- -- -- -- -- -- -- -- -- -- --
> >> 50: UU -- UU -- -- -- -- -- -- -- -- -- -- -- -- --
> >> 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
> >> 70: -- -- -- -- -- -- -- --
> >> [root:/sys/bus/i2c/devices] #
> >> [root:/sys/bus/i2c/devices] # cd ~
> >> [root:~] # ./decode-dimms.new
> >> Cannot read /sys/bus/i2c/drivers/ee1004/2-0050/eeprom at
> >> ./decode-dimms.new line 2358.
> >> [root:~] 6 #
> >>
> >>
> >> See that? The UU was not there before I ran those 2 commands. So it is
> >> almost definately not something else blocking the port. Those UU are
> >> our driver. That is the only new information here. Everything else was
> >> same as before.
> >
> > This is correct, all UUs above are from the ee1004 driver. However it
> > doesn't mean that there isn't another device on the SMBus also
> > responding to I2C address 0x36. As long as it doesn't have a Linux
> > driver bound to it, it won't show as UU (busy) in the output of
> > i2cdetect.
>
> If there is some other device responding to 0x36/0x37, then it didn't
> respond in the first (elided) dump with no ee1004 driver bound. So, that
> seems unlikely. No?

That was also my assumption. All i really know is that these ASUS rog
boards have a lot of closed / proprietary custom outboard chips on
them for overclocking, controlling a lot of things in hardware. And
that there are a wealth of options in the BIOS. The main ones are
labelled TPU, and iROG 1,2,3 etc.

>
> For reference the elided dump I referred to was:
>
> > [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: -- -- -- -- -- -- -- --
>
> But why is there no response for those addresses when there is no
> driver bound? Will they only ack writes or something? I don't know
> anything about these DDR4 SPDs...
>
> Cheers,
> Peter
>
> > That would be stupid hardware design though, and would require extra
> > engineering effort because the BIOS *needs* to be able to access page 0
> > of the SPDs. So I'm not saying it's what is happening. But as we have
> > no other explanation at this point, all bets are off.
> >
> > BTW you have temperature sensors on these memory modules (I2C addresses
> > 0x18 and 0x1a). I don't know if the DDR4 module sensors are compatible
> > with DDR3 but if they are then maybe you can use the jc42 driver to get
> > the readings.

Thank you for this tip about the DDR4 temperature sensor Jean. I can
confirm that:

After doing these manual steps


# ======
# try to get ddr4 ram timimngs info / read spd
sudo bash -l

modprobe ee1004


cd /sys/bus/i2c/devices
ls

modprobe i2c-dev
modprobe i2c-i801
ls

i2cdetect 2

echo ee1004 0x50 > /sys/bus/i2c/devices/i2c-2/new_device
echo ee1004 0x52 > /sys/bus/i2c/devices/i2c-2/new_device

cd ~
./decode-dimms.new

# for tridentz memory sensors
# BTW you have temperature sensors on these memory modules (I2C addresses
# 0x18 and 0x1a). I don't know if the DDR4 module sensors are compatible
# with DDR3 but if they are then maybe you can use the jc42 driver to get
the readings
modprobe jc42
# then relaunch psensor

Then psensor will show 2 new sensors, both labelled 'temp1' and
'temp1'. It might be better recognized after another run of
'sensors-detect'. Anyhow the essential commands were:

modprobe ee1004
modprobe i2c-i801
echo ee1004 0x50 > /sys/bus/i2c/devices/i2c-2/new_device
echo ee1004 0x52 > /sys/bus/i2c/devices/i2c-2/new_device
modprobe jc42
# then relaunch psensor

And indeed the 2 new sensors readings values seem to be 'real' for
ram. updating independently of each other at about 39c or 40c. So it
does works for this Tridentz kit of DDR4, the full SKU of that on is:

F4-3200C15D-32GTZ
(red stripe / accent color, no RGB)

After we swapped it out, it is not the same initial kit of Crucial
Ballistix one mentioned in the Subject line of this email thread.
Maybe it helps others.



[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux