Перейти к содержанию
    

PCIe сбоит в слоте для видеокарты

Добрый вечер.

 

Прошу помощи.

Есть устройство PCIe 4x v1.0 работает нормально во всех слотах, кроме слота для видео в платах с интегрированным видео.

Система запускается, устройство видится, но через некоторое время отваливается.

Конфигурационное пространство читается, но весь обмен запрещен. Биты разрешения сброшены.

Если в диспетчере устройств отключить/включить устройство начинает работать, но потом опять отваливается.

Не пойму в чём засада.

Можно как-то узнать что не нравиться винде(мосту) и почему отключается устройство?

 

P.S. Проблема чаще на новых материнках с Intel процом, есть старая c AMD там тоже было, но буквально 3 раза за полгода работы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тут может быть что угодно начиная от compliance-masks на физическом интерфейсе, и заканчивая отваливающимися completion-транзакциями.

составьте чеклист и отсекайте по одному, гачиная с самого нижнего уровня - с физики. потом проверьте есть ли переключение стейтов типа L0s и прочих странных и подозрительных режимов ну и так выше и выше к софту

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за совет.

Ситуация немного проясняется. Похоже дело в физике.

Одна плата нормально работает в данном слоте, остальные кто чаще, кто реже сбоит.

Забыл сказать это Sparat6 FG(G)484

Понял, что поставил не те кондеры по питанию GTP стоит 0.1 в ug386 минимум 0.22

Курил ераты нашел http://www.xilinx.com/support/answers/35237.htm

Как специально почти все ноги в 0 банке использую как выход (VCCO = 3.3) . Буду уменьшать токи, может поможет.

Может кто подсказать правильность задания атрибутов для GTP, может что подкрутить?

Не пойму только почему глюки проявляются в одном слоте :05: (ближнем к процу/мосту)

 

       --PLL Attributes
        CLKINDC_B_0                             =>     (TRUE),
        CLKRCV_TRST_0                           =>     (TRUE),
        OOB_CLK_DIVIDER_0                       =>     (4),
        PLL_COM_CFG_0                           =>     (x"21680a"),
        PLL_CP_CFG_0                            =>     (x"00"),
        PLL_RXDIVSEL_OUT_0                      =>     (1),
        PLL_SATA_0                              =>     (FALSE),
        PLL_SOURCE_0                            =>     "PLL0",
        PLL_TXDIVSEL_OUT_0                      =>     (1),
        PLLLKDET_CFG_0                          =>     (b"111"),
       --
        CLKINDC_B_1                             =>     (TRUE),
        CLKRCV_TRST_1                           =>     (TRUE),
        OOB_CLK_DIVIDER_1                       =>     (4),
        PLL_COM_CFG_1                           =>     (x"21680a"),
        PLL_CP_CFG_1                            =>     (x"00"),
        PLL_RXDIVSEL_OUT_1                      =>     (1),
        PLL_SATA_1                              =>     (FALSE),
        PLL_SOURCE_1                            =>     "PLL0",
        PLL_TXDIVSEL_OUT_1                      =>     (1),
        PLLLKDET_CFG_1                          =>     (b"111"),
        PMA_COM_CFG_EAST                        =>     (x"000008000"),
        PMA_COM_CFG_WEST                        =>     (x"000008000"),
        TST_ATTR_0                              =>     (x"00000000"),
        TST_ATTR_1                              =>     (x"00000000"),
       --TX Interface Attributes
        CLK_OUT_GTP_SEL_0                       =>     ("TXOUTCLK0"),
        TX_TDCC_CFG_0                           =>     (b"11"),
        CLK_OUT_GTP_SEL_1                       =>     ("REFCLKPLL1"),
        TX_TDCC_CFG_1                           =>     (b"11"),
       --TX Buffer and Phase Alignment Attributes
        PMA_TX_CFG_0                            =>     (x"00082"),        --x"80082"
        TX_BUFFER_USE_0                         =>     (TRUE),
        TX_XCLK_SEL_0                           =>     ("TXOUT"),
        TXRX_INVERT_0                           =>     (b"011"),
        PMA_TX_CFG_1                            =>     (x"00082"),        --x"80082"
        TX_BUFFER_USE_1                         =>     (TRUE),
        TX_XCLK_SEL_1                           =>     ("TXOUT"),
        TXRX_INVERT_1                           =>     (b"011"),
       --TX Driver and OOB signalling Attributes
        CM_TRIM_0                               =>     (b"00"),            --"10"
        TX_IDLE_DELAY_0                         =>     (b"011"),            --"010"
        CM_TRIM_1                               =>     (b"00"),            --"10"
        TX_IDLE_DELAY_1                         =>     (b"011"),            --"010"
       --TX PIPE/SATA Attributes
        COM_BURST_VAL_0                         =>     (b"1111"),
        COM_BURST_VAL_1                         =>     (b"1111"),
       --RX Driver,OOB signalling,Coupling and Eq,CDR Attributes
        AC_CAP_DIS_0                            =>     (false),
        OOBDETECT_THRESHOLD_0                   =>     (b"111"),
        PMA_CDR_SCAN_0                          =>     (x"6404040"),
        PMA_RX_CFG_0                            =>     (x"05ce048"),
        PMA_RXSYNC_CFG_0                        =>     (x"00"),
        RCV_TERM_GND_0                          =>     (true),
        RCV_TERM_VTTRX_0                        =>     (false),
        RXEQ_CFG_0                              =>     (b"01111011"),
        TERMINATION_CTRL_0                      =>     (b"10100"),
        TERMINATION_OVRD_0                      =>     (FALSE),
        TX_DETECT_RX_CFG_0                      =>     (x"1832"),
        AC_CAP_DIS_1                            =>     (FALSE),
        OOBDETECT_THRESHOLD_1                   =>     (b"111"),
        PMA_CDR_SCAN_1                          =>     (x"6404040"),
        PMA_RX_CFG_1                            =>     (x"05ce048"),
        PMA_RXSYNC_CFG_1                        =>     (x"00"),
        RCV_TERM_GND_1                          =>     (true),
        RCV_TERM_VTTRX_1                        =>     (FALSE),
        RXEQ_CFG_1                              =>     (b"01111011"),
        TERMINATION_CTRL_1                      =>     (b"10100"),
        TERMINATION_OVRD_1                      =>     (FALSE),
        TX_DETECT_RX_CFG_1                      =>     (x"1832"),
--synthesis translate_off                
      --PRBS Detection Attributes      11.3 не знает
--        RXPRBSERR_LOOPBACK_0                    =>     ('0'),
--        RXPRBSERR_LOOPBACK_1                    =>     ('0'),
--synthesis translate_on                
       --Comma Detection and Alignment Attributes
        ALIGN_COMMA_WORD_0                      =>     (1),
        COMMA_10B_ENABLE_0                      =>     (b"1111111111"),
        DEC_MCOMMA_DETECT_0                     =>     (TRUE),
        DEC_PCOMMA_DETECT_0                     =>     (TRUE),
        DEC_VALID_COMMA_ONLY_0                  =>     (TRUE),
        MCOMMA_10B_VALUE_0                      =>     (b"1010000011"),
        MCOMMA_DETECT_0                         =>     (TRUE),
        PCOMMA_10B_VALUE_0                      =>     (b"0101111100"),
        PCOMMA_DETECT_0                         =>     (TRUE),
        RX_SLIDE_MODE_0                         =>     ("PCS"),
        ALIGN_COMMA_WORD_1                      =>     (1),
        COMMA_10B_ENABLE_1                      =>     (b"1111111111"),
        DEC_MCOMMA_DETECT_1                     =>     (TRUE),
        DEC_PCOMMA_DETECT_1                     =>     (TRUE),
        DEC_VALID_COMMA_ONLY_1                  =>     (TRUE),
        MCOMMA_10B_VALUE_1                      =>     (b"1010000011"),
        MCOMMA_DETECT_1                         =>     (TRUE),
        PCOMMA_10B_VALUE_1                      =>     (b"0101111100"),
        PCOMMA_DETECT_1                         =>     (TRUE),
        RX_SLIDE_MODE_1                         =>     ("PCS"),
       --RX Loss-of-sync State Machine Attributes
        RX_LOS_INVALID_INCR_0                   =>     (8),
        RX_LOS_THRESHOLD_0                      =>     (128),
        RX_LOSS_OF_SYNC_FSM_0                   =>     (FALSE),
        RX_LOS_INVALID_INCR_1                   =>     (8),
        RX_LOS_THRESHOLD_1                      =>     (128),
        RX_LOSS_OF_SYNC_FSM_1                   =>     (FALSE),
       --RX Elastic Buffer and Phase alignment Attributes
        RX_BUFFER_USE_0                         =>     (TRUE),
        RX_EN_IDLE_RESET_BUF_0                  =>     (TRUE),
        RX_IDLE_HI_CNT_0                        =>     (b"1000"),
        RX_IDLE_LO_CNT_0                        =>     (b"0000"),
        RX_XCLK_SEL_0                           =>     ("RXREC"),
        RX_BUFFER_USE_1                         =>     (TRUE),
        RX_EN_IDLE_RESET_BUF_1                  =>     (TRUE),
        RX_IDLE_HI_CNT_1                        =>     (b"1000"),
        RX_IDLE_LO_CNT_1                        =>     (b"0000"),
        RX_XCLK_SEL_1                           =>     ("RXREC"),
       --Clock Correction Attributes
        CLK_COR_ADJ_LEN_0                       =>     (1),
        CLK_COR_DET_LEN_0                       =>     (1),
        CLK_COR_INSERT_IDLE_FLAG_0              =>     (FALSE),
        CLK_COR_KEEP_IDLE_0                     =>     (FALSE),
        CLK_COR_MAX_LAT_0                       =>     (20),
        CLK_COR_MIN_LAT_0                       =>     (18),
        CLK_COR_PRECEDENCE_0                    =>     (TRUE),
        CLK_COR_REPEAT_WAIT_0                   =>     (0),
        CLK_COR_SEQ_1_1_0                       =>     (b"0100011100"),
        CLK_COR_SEQ_1_2_0                       =>     (b"0000000000"),
        CLK_COR_SEQ_1_3_0                       =>     (b"0000000000"),
        CLK_COR_SEQ_1_4_0                       =>     (b"0000000000"),
        CLK_COR_SEQ_1_ENABLE_0                  =>     (b"0001"),
        CLK_COR_SEQ_2_1_0                       =>     (b"0000000000"),
        CLK_COR_SEQ_2_2_0                       =>     (b"0000000000"),
        CLK_COR_SEQ_2_3_0                       =>     (b"0000000000"),
        CLK_COR_SEQ_2_4_0                       =>     (b"0000000000"),
        CLK_COR_SEQ_2_ENABLE_0                  =>     (b"0000"),
        CLK_COR_SEQ_2_USE_0                     =>     (FALSE),
        CLK_CORRECT_USE_0                       =>     (TRUE),
        RX_DECODE_SEQ_MATCH_0                   =>     (TRUE),
        CLK_COR_ADJ_LEN_1                       =>     (1),
        CLK_COR_DET_LEN_1                       =>     (1),
        CLK_COR_INSERT_IDLE_FLAG_1              =>     (FALSE),
        CLK_COR_KEEP_IDLE_1                     =>     (FALSE),
        CLK_COR_MAX_LAT_1                       =>     (20),
        CLK_COR_MIN_LAT_1                       =>     (18),
        CLK_COR_PRECEDENCE_1                    =>     (TRUE),
        CLK_COR_REPEAT_WAIT_1                   =>     (0),
        CLK_COR_SEQ_1_1_1                       =>     (b"0100011100"),
        CLK_COR_SEQ_1_2_1                       =>     (b"0000000000"),
        CLK_COR_SEQ_1_3_1                       =>     (b"0000000000"),
        CLK_COR_SEQ_1_4_1                       =>     (b"0000000000"),
        CLK_COR_SEQ_1_ENABLE_1                  =>     (b"0001"),
        CLK_COR_SEQ_2_1_1                       =>     (b"0000000000"),
        CLK_COR_SEQ_2_2_1                       =>     (b"0000000000"),
        CLK_COR_SEQ_2_3_1                       =>     (b"0000000000"),
        CLK_COR_SEQ_2_4_1                       =>     (b"0000000000"),
        CLK_COR_SEQ_2_ENABLE_1                  =>     (b"0000"),
        CLK_COR_SEQ_2_USE_1                     =>     (FALSE),
        CLK_CORRECT_USE_1                       =>     (TRUE),
        RX_DECODE_SEQ_MATCH_1                   =>     (TRUE),
       --Channel Bonding Attributes
        CHAN_BOND_1_MAX_SKEW_0                  =>     (1),
        CHAN_BOND_2_MAX_SKEW_0                  =>     (1),
        CHAN_BOND_KEEP_ALIGN_0                  =>     (FALSE),
        CHAN_BOND_SEQ_1_1_0                     =>     (b"0001001010"),
        CHAN_BOND_SEQ_1_2_0                     =>     (b"0001001010"),
        CHAN_BOND_SEQ_1_3_0                     =>     (b"0001001010"),
        CHAN_BOND_SEQ_1_4_0                     =>     (b"0110111100"),
        CHAN_BOND_SEQ_1_ENABLE_0                =>     (b"0000"),
        CHAN_BOND_SEQ_2_1_0                     =>     (b"0100111100"),
        CHAN_BOND_SEQ_2_2_0                     =>     (b"0100111100"),
        CHAN_BOND_SEQ_2_3_0                     =>     (b"0110111100"),
        CHAN_BOND_SEQ_2_4_0                     =>     (b"0100011100"),
        CHAN_BOND_SEQ_2_ENABLE_0                =>     (b"0000"),
        CHAN_BOND_SEQ_2_USE_0                   =>     (FALSE),
        CHAN_BOND_SEQ_LEN_0                     =>     (1),
        RX_EN_MODE_RESET_BUF_0                  =>     (TRUE),
        CHAN_BOND_1_MAX_SKEW_1                  =>     (1),
        CHAN_BOND_2_MAX_SKEW_1                  =>     (1),
        CHAN_BOND_KEEP_ALIGN_1                  =>     (FALSE),
        CHAN_BOND_SEQ_1_1_1                     =>     (b"0001001010"),
        CHAN_BOND_SEQ_1_2_1                     =>     (b"0001001010"),
        CHAN_BOND_SEQ_1_3_1                     =>     (b"0001001010"),
        CHAN_BOND_SEQ_1_4_1                     =>     (b"0110111100"),
        CHAN_BOND_SEQ_1_ENABLE_1                =>     (b"0000"),
        CHAN_BOND_SEQ_2_1_1                     =>     (b"0100111100"),
        CHAN_BOND_SEQ_2_2_1                     =>     (b"0100111100"),
        CHAN_BOND_SEQ_2_3_1                     =>     (b"0110111100"),
        CHAN_BOND_SEQ_2_4_1                     =>     (b"0100011100"),
        CHAN_BOND_SEQ_2_ENABLE_1                =>     (b"0000"),
        CHAN_BOND_SEQ_2_USE_1                   =>     (FALSE),
        CHAN_BOND_SEQ_LEN_1                     =>     (1),
        RX_EN_MODE_RESET_BUF_1                  =>     (TRUE),
       --RX PCI Express Attributes
        CB2_INH_CC_PERIOD_0                     =>     (8),
        CDR_PH_ADJ_TIME_0                       =>     (b"01010"),
        PCI_EXPRESS_MODE_0                      =>     (TRUE),
        RX_EN_IDLE_HOLD_CDR_0                   =>     (TRUE),
        RX_EN_IDLE_RESET_FR_0                   =>     (TRUE),
        RX_EN_IDLE_RESET_PH_0                   =>     (TRUE),
        RX_STATUS_FMT_0                         =>     ("PCIE"),
        TRANS_TIME_FROM_P2_0                    =>     (x"03c"),
        TRANS_TIME_NON_P2_0                     =>     (x"19"),
        TRANS_TIME_TO_P2_0                      =>     (x"064"),
        CB2_INH_CC_PERIOD_1                     =>     (8),
        CDR_PH_ADJ_TIME_1                       =>     (b"01010"),
        PCI_EXPRESS_MODE_1                      =>     (TRUE),
        RX_EN_IDLE_HOLD_CDR_1                   =>     (TRUE),
        RX_EN_IDLE_RESET_FR_1                   =>     (TRUE),
        RX_EN_IDLE_RESET_PH_1                   =>     (TRUE),
        RX_STATUS_FMT_1                         =>     ("PCIE"),
        TRANS_TIME_FROM_P2_1                    =>     (x"03c"),
        TRANS_TIME_NON_P2_1                     =>     (x"19"),
        TRANS_TIME_TO_P2_1                      =>     (x"064"),
       --RX SATA Attributes
        SATA_BURST_VAL_0                        =>     (b"100"),
        SATA_IDLE_VAL_0                         =>     (b"100"),
        SATA_MAX_BURST_0                        =>     (9),
        SATA_MAX_INIT_0                         =>     (27),
        SATA_MAX_WAKE_0                         =>     (9),
        SATA_MIN_BURST_0                        =>     (5),
        SATA_MIN_INIT_0                         =>     (15),
        SATA_MIN_WAKE_0                         =>     (5),
        SATA_BURST_VAL_1                        =>     (b"100"),
        SATA_IDLE_VAL_1                         =>     (b"100"),
        SATA_MAX_BURST_1                        =>     (9),
        SATA_MAX_INIT_1                         =>     (27),
        SATA_MAX_WAKE_1                         =>     (9),
        SATA_MIN_BURST_1                        =>     (5),
        SATA_MIN_INIT_1                         =>     (15),
        SATA_MIN_WAKE_1                         =>     (5)

Изменено пользователем VasiaMVR

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый вечер.

 

Прошу помощи.

Есть устройство PCIe 4x v1.0 работает нормально во всех слотах, кроме слота для видео в платах с интегрированным видео.

Система запускается, устройство видится, но через некоторое время отваливается.

Конфигурационное пространство читается, но весь обмен запрещен. Биты разрешения сброшены.

Если в диспетчере устройств отключить/включить устройство начинает работать, но потом опять отваливается.

Не пойму в чём засада.

Можно как-то узнать что не нравиться винде(мосту) и почему отключается устройство?

 

P.S. Проблема чаще на новых материнках с Intel процом, есть старая c AMD там тоже было, но буквально 3 раза за полгода работы.

 

Какая емкость AC-coupling конденсаторов?

Как питаете MGT? Отдельным линейным?

Есть ньюансы с разводкой 50-омного резисторы на пинах MGTRREF_101 и MGTAVTTRCAL_101.

Ищите на Xilinx.

Кстати, можно на досуге и с его номиналом поиграться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть устройство PCIe 4x v1.0 работает нормально во всех слотах, кроме слота для видео в платах с интегрированным видео.

Система запускается, устройство видится, но через некоторое время отваливается.

 

Если есть возможность, посмотрите статистику по ошибкам физического уровня.

Слот видео на современных платах с интегрированным в интеловский процессор видео хитро мультиплексируется, на линиях стоит дополнительный аналоговый переключатель, что потенциально может ухудшить пограничную ситуацию с SI.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Какая емкость AC-coupling конденсаторов?

0.1 взято с SP605, единствено REFCLK не через ICS874001, а напрямую через 0.1. (может тут собака порылась надо глянуть. спасибо )

Как питаете MGT? Отдельным линейным?

Так точно.

Есть ньюансы с разводкой 50-омного резисторы на пинах MGTRREF_101 и MGTAVTTRCAL_101.

Ищите на Xilinx.

Кстати, можно на досуге и с его номиналом поиграться.

ньюансы видели, соблюдены.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

0.1 взято с SP605, единствено REFCLK не через ICS874001, а напрямую через 0.1. (может тут собака порылась надо глянуть. спасибо )

 

Так точно.

 

ньюансы видели, соблюдены.

 

А посмотрите на всяк случай или слот клок не отключает...

вообще за клоком понаблюдать...

И еще SSC (spread-spectrum) я бы тоже выключил (если возможно) на время расследования.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

помнится, для Virtex6 для дизайнов под x4 и x8 требовался клок на GTXREF 250 МГц, а не 100.

ICS874001 как раз умножал на 5 и делил на 2, чистил джитер и поддерживал SSC.

если вы его убрали - обязательно отключите SSC.

И я бы внимательно проверил, поддерживается ли режим x4 при тактировании 100 МГц, а то может придется работать в x1.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

помнится, для Virtex6 для дизайнов под x4 и x8 требовался клок на GTXREF 250 МГц, а не 100.

ICS874001 как раз умножал на 5 и делил на 2, чистил джитер и поддерживал SSC.

если вы его убрали - обязательно отключите SSC.

И я бы внимательно проверил, поддерживается ли режим x4 при тактировании 100 МГц, а то может придется работать в x1.

Вот это и смущает, что на всех отладках стоит внешний фапч, однако на SP605 можно убрать/поставить 2 нулевых резистора и подать на прямую.

x4 x1 PLL все равно, там 1.25 гига в любом случае.

единственно использую 1 PLL на 2 линии.

с SSC пока не игрались, обязательно проверим.

После тестов оказалось, что из 20 плат не хотят работать 2 причем одна в верхнем слоте, другая в верхнем и иногда ниже. Отваливается, когда запускаем обмен под максимум при этом переключается более 60% ножек в том числе и в 0 банке.

Пока основная мысль помеха на REFCLK.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

помнится, для Virtex6 для дизайнов под x4 и x8 требовался клок на GTXREF 250 МГц, а не 100.

ICS874001 как раз умножал на 5 и делил на 2, чистил джитер и поддерживал SSC.

если вы его убрали - обязательно отключите SSC.

И я бы внимательно проверил, поддерживается ли режим x4 при тактировании 100 МГц, а то может придется работать в x1.

 

Для IP PCIe что для х1, х4 или х8 указывается опорная частота 100 или 250МГц. Работает и так, и так.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для IP PCIe что для х1, х4 или х8 указывается опорная частота 100 или 250МГц. Работает и так, и так.

2 года назад, когда я собирал и отлаживал аналогичную плату, требования были именно такие, как я описал.

В какой момент и почему они изменились, к сожалению не знаю - уже как год плотно сижу на альтере и слабо слежу за тонкостями других платформ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...