Hans Müller
Hans Müller

Reputation: 81

Intel Z370 - SMBus on PCIe

I have here a card that fits in an PCIe slot, with some SMBus controllable chips on it. The card is self layouted and works fine in some older mainboard. In a newer mainboard (ASUS PRIME Z370-A) it is not working.

The card is not using the PCIe Interface only the PCIe Slot. There is no connection between PRSNT1 and 2 and moreover no connection to the differential data lines. The PCIe Slot is only used for power supply (Pins A9, A19, B8 (+3.3V) - A4, A12, A15, A18, B4, B7, B13, B26, B18(GND)) and SMBus interface (B5 (SMCLK), B6 (SMDAT)).

With not working I mean that I can not talk to it via SMBus. I'm trying this with the i2c-dev kernel module. The output of i2cdetect -l is: (shortened, I removed the i2c devs of the nvidia card)

i2c-3   i2c             i915 gmbus dpd                          I2C adapter
i2c-1   i2c             i915 gmbus dpc                          I2C adapteradapter
i2c-4   i2c             DPDDC-B                                 I2C adapter
i2c-2   i2c             i915 gmbus dpb                          I2C adapter
i2c-0   smbus           SMBus I801 adapter at f040              SMBus adapter

In my opinion the i2c-0 device is the right one. When I run i2cdetect on Interface 0 some chips are detected, but not the right one (they have addr 0x70 and 0x72). To sum up I'm trying to talk via the SMBus master in the Intel 200 PCH with my SMBus slave chips.

         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- 08 -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: 30 31 -- -- 34 35 -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- 44 -- -- -- -- -- -- -- -- -- -- -- 
50: -- 51 -- 53 -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --  

I tried also bus 1-4 but the same result. On the other mainboard the detection is working, as you see below.

Furthermore I measured with my oscilloscope on pin B5 and B6 of the PCIe connector. There is no clock or data signal on one of these pins on the new mainboard.

I think I have to configure somehow the kernel module that it also tries to communicate to SMBus devices on the PCIe Slots. Maybe somebody can give me a hint.

Although no warnings about overlapping memory regions have occurred, I set the kernel option acpi_enforce_resources=lax to ensure that no ACPI memory binding conflicts with the SMBus Controller.

Some outputs

dmesg modprobe i2c-i801 (Output of kernel module, that abstracts the Intel SMBus Controller)

[   81.667581] i801_smbus 0000:00:1f.4: SPD Write Disable is set
[   81.667639] i801_smbus 0000:00:1f.4: SMBus using PCI interrupt

i2cdetect 0 (Working mainboard, SMBus Controller on i2c-0)

         0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- 38 -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: 70 -- 72 -- -- -- -- --  

uname -a

Linux XY 4.16.0-1-amd64 #1 SMP Debian 4.16.5-1

Upvotes: 3

Views: 4358

Answers (2)

Hans Müller
Hans Müller

Reputation: 81

I've got an answer from Asus. The ASUS PRIME Z370-A has no SMBus connection on the PCIe Slots.

Upvotes: 3

0andriy
0andriy

Reputation: 4674

According to PCIe Card Electromechanical Specification, chapter 2 "Auxiliary Signals", the SMBus interface pins are collectively optional for both the add-in card and the system board. On the other hand PCIe M.2 specification mentiones (this ECN is incorporated in the standard) SMBus wires on boards to be helpful for sensors located on SSD devices.

So, in your case obviously old motherboard is more advanced than the newer one, it has those wirings done.

Upvotes: 0

Related Questions