Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: PCIe сбоит в слоте для видеокарты
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > ISA/PCI/PCI-X/PCI Express
VasiaMVR
Добрый вечер.

Прошу помощи.
Есть устройство PCIe 4x v1.0 работает нормально во всех слотах, кроме слота для видео в платах с интегрированным видео.
Система запускается, устройство видится, но через некоторое время отваливается.
Конфигурационное пространство читается, но весь обмен запрещен. Биты разрешения сброшены.
Если в диспетчере устройств отключить/включить устройство начинает работать, но потом опять отваливается.
Не пойму в чём засада.
Можно как-то узнать что не нравиться винде(мосту) и почему отключается устройство?

P.S. Проблема чаще на новых материнках с Intel процом, есть старая c AMD там тоже было, но буквально 3 раза за полгода работы.
krux
тут может быть что угодно начиная от compliance-masks на физическом интерфейсе, и заканчивая отваливающимися completion-транзакциями.
составьте чеклист и отсекайте по одному, гачиная с самого нижнего уровня - с физики. потом проверьте есть ли переключение стейтов типа L0s и прочих странных и подозрительных режимов ну и так выше и выше к софту
VasiaMVR
Спасибо за совет.
Ситуация немного проясняется. Похоже дело в физике.
Одна плата нормально работает в данном слоте, остальные кто чаще, кто реже сбоит.
Забыл сказать это Sparat6 FG(G)484
Понял, что поставил не те кондеры по питанию GTP стоит 0.1 в ug386 минимум 0.22
Курил ераты нашел http://www.xilinx.com/support/answers/35237.htm
Как специально почти все ноги в 0 банке использую как выход (VCCO = 3.3) . Буду уменьшать токи, может поможет.
Может кто подсказать правильность задания атрибутов для GTP, может что подкрутить?
Не пойму только почему глюки проявляются в одном слоте 05.gif (ближнем к процу/мосту)

Код
       --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)
Victor®
Цитата(VasiaMVR @ Oct 14 2012, 19:31) *
Добрый вечер.

Прошу помощи.
Есть устройство PCIe 4x v1.0 работает нормально во всех слотах, кроме слота для видео в платах с интегрированным видео.
Система запускается, устройство видится, но через некоторое время отваливается.
Конфигурационное пространство читается, но весь обмен запрещен. Биты разрешения сброшены.
Если в диспетчере устройств отключить/включить устройство начинает работать, но потом опять отваливается.
Не пойму в чём засада.
Можно как-то узнать что не нравиться винде(мосту) и почему отключается устройство?

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


Какая емкость AC-coupling конденсаторов?
Как питаете MGT? Отдельным линейным?
Есть ньюансы с разводкой 50-омного резисторы на пинах MGTRREF_101 и MGTAVTTRCAL_101.
Ищите на Xilinx.
Кстати, можно на досуге и с его номиналом поиграться.
Flood
Цитата(VasiaMVR @ Oct 14 2012, 20:31) *
Есть устройство PCIe 4x v1.0 работает нормально во всех слотах, кроме слота для видео в платах с интегрированным видео.
Система запускается, устройство видится, но через некоторое время отваливается.


Если есть возможность, посмотрите статистику по ошибкам физического уровня.
Слот видео на современных платах с интегрированным в интеловский процессор видео хитро мультиплексируется, на линиях стоит дополнительный аналоговый переключатель, что потенциально может ухудшить пограничную ситуацию с SI.
VasiaMVR
Цитата
Какая емкость AC-coupling конденсаторов?

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

Так точно.
Цитата
Есть ньюансы с разводкой 50-омного резисторы на пинах MGTRREF_101 и MGTAVTTRCAL_101.
Ищите на Xilinx.
Кстати, можно на досуге и с его номиналом поиграться.

ньюансы видели, соблюдены.
Victor®
Цитата(VasiaMVR @ Oct 15 2012, 23:01) *
0.1 взято с SP605, единствено REFCLK не через ICS874001, а напрямую через 0.1. (может тут собака порылась надо глянуть. спасибо )

Так точно.

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


А посмотрите на всяк случай или слот клок не отключает...
вообще за клоком понаблюдать...
И еще SSC (spread-spectrum) я бы тоже выключил (если возможно) на время расследования.
krux
помнится, для Virtex6 для дизайнов под x4 и x8 требовался клок на GTXREF 250 МГц, а не 100.
ICS874001 как раз умножал на 5 и делил на 2, чистил джитер и поддерживал SSC.
если вы его убрали - обязательно отключите SSC.
И я бы внимательно проверил, поддерживается ли режим x4 при тактировании 100 МГц, а то может придется работать в x1.
VasiaMVR
Цитата
помнится, для 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.
ivanoffer
Цитата(VasiaMVR @ Oct 17 2012, 23:58) *
помнится, для Virtex6 для дизайнов под x4 и x8 требовался клок на GTXREF 250 МГц, а не 100.
ICS874001 как раз умножал на 5 и делил на 2, чистил джитер и поддерживал SSC.
если вы его убрали - обязательно отключите SSC.
И я бы внимательно проверил, поддерживается ли режим x4 при тактировании 100 МГц, а то может придется работать в x1.


Для IP PCIe что для х1, х4 или х8 указывается опорная частота 100 или 250МГц. Работает и так, и так.
krux
Цитата(ivanoffer @ Oct 18 2012, 20:19) *
Для IP PCIe что для х1, х4 или х8 указывается опорная частота 100 или 250МГц. Работает и так, и так.

2 года назад, когда я собирал и отлаживал аналогичную плату, требования были именно такие, как я описал.
В какой момент и почему они изменились, к сожалению не знаю - уже как год плотно сижу на альтере и слабо слежу за тонкостями других платформ.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.