Делаем проект SATA Rev. 2.0 на
Arria II GX Dev. Kit +
SATA/SAS Daughter Card платах. Используем ALTGX-мегафункцию для доступа к трансиверам (настраивали так, как указывается в
AN635). На моделях отладили - все работает. Проблема на физическом уровне, OOB-последовательность. ALTERA
указывает, что в микросхемах Arria 2 GX, есть аппаратный баг, при котором "в железе" сигнал
rx_signaldetect от ALTGX корректно не работает (все время в лог. '1'). По
этой ссылке они советуют пользователям Quartus 11.0 и выше (мы используем Quartus 11.0 SP1) добавить в qsf-файл строки :
Код
set_instance_assignment -name ARRIAIIGX_RX_CDR_LOCKUP_FIX_OVERRIDE ON -to rx_datain[0]
Where rx_datain[0] is the RX channel net name using rx_signaldetect signal (e.g. SAS/SATA channel).
Добавляем - НЕ помогает, rx_signaldetect все также в лог. '1'. Потерся на alteraforum'e,
там у человека возникла такая же проблема, он применил указанное решение и говорит, что все заработало. Нам это не помогло. Читая доки на Arria 2 GX трансиверы на странице 596 Arria 2 GX Handbook нашел следующее:
Цитата
For other functional modes that do not have the rx_signaldetect output port but require hot socketing, you have several options available to determine the link status. You can logically AND together any combinations of these options and use them alternatively as a loss-
of-link status indicator.
.........
Option 2: Implement a Digital Loss of Signal detector by enabling the Run Length Violation option in the Word Aligner to detect bit transitions in a predetermined sliding window length.
...........
Вообщем предлагают использовать сигнал rx_rlv. Вывел. Судя по моделированию ведет он себя примерно как инверсия нужного мне сигнала rx_signaldetect.
Собрал проект с Хостом и Девайсом внутри ПЛИС, замкнул друг на друга Хост с Девайсом на SATA/SAS Daughter Card - хорошо, OOB-механизм отрабатывает и устанавливает Link.
Далее соединяю Хост внутри ПЛИС с реальным Девайсом (жестким диском) - хорошо, OOB-механизм также отрабатывает и устанавливает Link.
Далее соединяю Девайс внутри ПЛИС с реальным Хостом (компьютером на Intel ICH10, Intel H67 - чипсетах) - плохо. OOB-механизм не отрабатывает, потому что сигнал rx_rlv, который я пытаюсь использовать как rx_signaldetect не ведет себя так, как надо во время OOB. И в этом проблема, не могу связаться с Хостом.
Всвязи с этим есть такие вопросы:
1. Кто-нибудь пользовал ALTGX трансиверы в Basic-режиме на микросхемах Arria 2 GX ? Как боролись с аппаратным багом сигнала rx_signaldetect ? Как все-таки заставить его работать корректно ?
2. Пока не решен вопрос 1, в чем может быть проблема в установлении соединения с Хостом ?