Intel Z370 - SMBus на PCIe

У меня есть карта, которая вставляется в слот PCIe, на ней есть несколько управляемых микросхем SMBus. Карта имеет самостоятельную компоновку и отлично работает на некоторых старых материнских платах. На более новой плате (ASUS PRIME Z370-A) он не работает.

Карта не использует интерфейс PCIe, а только слот PCIe. Нет связи между PRSNT1 и 2 и, тем более, нет подключения к дифференциальным линиям передачи данных. Слот PCIe используется только для источника питания (контакты A9, A19, B8 (+ 3,3 В) - A4, A12, A15, A18, B4, B7, B13, B26, B18 (GND)) и интерфейса SMBus (B5 (SMCLK). ), B6 ​​(SMDAT)).

При неработающем я имею в виду, что не могу с ним разговаривать через SMBus. Я пробую это с модулем ядра i2c-dev. Вывод i2cdetect -l: (сокращено, я удалил разработчики i2c карты nvidia)

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

На мой взгляд, устройство i2c-0 правильное. Когда я запускаю i2cdetect на интерфейсе 0, обнаруживаются некоторые микросхемы, но не тот (у них есть адреса 0x70 и 0x72). Подводя итог, я пытаюсь разговаривать через мастер SMBus в Intel 200 PCH с моими подчиненными микросхемами SMBus.

         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: -- -- -- -- -- -- -- --  

Я пробовал также шину 1-4, но результат тот же. На другой материнской плате обнаружение работает, как вы видите ниже.

Кроме того, я измерил своим осциллографом контакты B5 и B6 разъема PCIe. На одном из этих контактов новой материнской платы нет тактового сигнала или сигнала данных.

Я думаю, мне нужно как-то настроить модуль ядра, чтобы он также пытался взаимодействовать с устройствами SMBus в слотах PCIe. Может, кто-нибудь мне подскажет.

Хотя предупреждений о перекрытии областей памяти не было, я установил параметр ядра acpi_enforce_resources = lax, чтобы гарантировать, что привязка памяти ACPI не конфликтует с контроллером SMBus.

Некоторые результаты

dmesg modprobe i2c-i801 (вывод модуля ядра, который абстрагирует контроллер Intel SMBus)

[   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 (рабочая материнская плата, контроллер SMBus на 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

person Hans Müller    schedule 08.05.2018    source источник
comment
Внешние карты PCIe никогда не начинаются с 0000:00:. Вы разговариваете с одним, интегрированным в ваш мобо. Вам нужно понять, почему ваше ядро ​​не распознает / не перечисляет вашу карту. Также дайте ссылку на описание карты. Что касается аппаратных проблем, попробуйте по возможности поставить его в другой слот.   -  person 0andriy    schedule 12.05.2018
comment
Я не пытаюсь разговаривать с интерфейсом PCIe карты, так как у него его нет. Он использует только слот PCIe для подключения SMBus и некоторого источника питания. @ 0000: 00: 1f.4 - это подмодуль моего чипсета - контроллер smbus. Модуль ядра находится в контроллере smbus, который должен взаимодействовать с подчиненным устройством smbus на моей карте PCIe.   -  person Hans Müller    schedule 13.05.2018
comment
Вы меня полностью сбиваете с толку. В сообщении вы заявили, что у вас есть карта PCIe, здесь в комментарии вы заявляете обратное. Пожалуйста, приведите в порядок свой вопрос и проясните его.   -  person 0andriy    schedule 14.05.2018
comment
Я изменил вопрос, чтобы прояснить разницу между аппаратным слотом PCIe и связью по линии PCIe Lane.   -  person Hans Müller    schedule 14.05.2018
comment
Хорошо, я понял, вы используете разъем PCIe в качестве разъема питания. Устройство на плате является подчиненным устройством SMBUS, которое подключено дополнительными проводами к бортовому контроллеру. Правильный? Можете ли вы также поместить информацию из обнаружения I2C для рабочего случая?   -  person 0andriy    schedule 14.05.2018
comment
Никаких дополнительных проводов нет. В слоте PCIe есть контакты SMCLK (B5) и SMDAT (B6). Имена в скобках - это сторона (A или B) и номер контакта. Я добавил i2cdetect рабочего корпуса   -  person Hans Müller    schedule 14.05.2018
comment
Теперь становится яснее. Итак, похоже, что ваш mobo не выполняет настоящую проводку для этих сигналов. Я не знаю, обязательно ли их наличие в соответствии со спецификацией PCIe, и если ваш mobo действительно соответствует им.   -  person 0andriy    schedule 15.05.2018
comment
pcisig.com/sites/default/files/specification в этом документе речь идет только о разъемах типа M.2. Итак, Википедия также относится только к мини-карте PCIe (когда речь идет о SMBus).   -  person 0andriy    schedule 15.05.2018
comment
Это часть электромеханической спецификации карты PCIe (см. read.pudn.com /downloads166/ebook/758109/PCI_Express_CEM_1.1.pdf стр. 53). Но этого не требует стандарт. Конечно, это могло быть проблемой. Я устал связываться с производителем материнской платы по этому поводу, но ответа не получил.   -  person Hans Müller    schedule 15.05.2018


Ответы (2)


Получил ответ от Асуса. ASUS PRIME Z370-A не имеет подключения SMBus к слотам PCIe.

person Hans Müller    schedule 01.06.2018

Согласно электромеханическим характеристикам карты PCIe, глава 2 «Вспомогательные сигналы» ", контакты интерфейса SMBus являются необязательными как для карты расширения, так и для системной платы. С другой стороны, спецификация PCIe M.2 упоминает (этот ECN является включены в стандарт) провода SMBus на платах, чтобы быть полезными для датчиков, расположенных на устройствах SSD.

Итак, в вашем случае, очевидно, старая материнская плата более продвинута, чем новая, у нее есть эти проводки.

person 0andriy    schedule 16.05.2018