Dimidrol 0 25 января, 2013 Опубликовано 25 января, 2013 · Жалоба Всем привет. Нашел недавно сабж от автора Ashwin Mendon, и попробовал поотлаживать для приведения его в рабочий вид и дальнейшего использования в корыстных целях. Предлагаю тут пообсуждать работу (а точнее не работу) данного ядра. В принципе написано оно ужасно, но за не имением ничего другого и понимание что с нуля писать будет долго, ничего не остается. Target Platform: ML605 Xilinx Virtex-6 240T Первое что меня интересует это алгоритм выравнивания, или ловли точки. GTX у автора настроен так, что шина данных у него 32 бита. Это удобно, потому что передача в sata происходит двойными словами. Но это только снаружи. Внутри самого GTX данные 16/20 бит. Теперь представим что к нам от жесткого диска приходит примитив ALIGNp. А точнее 2, потому что их всегда приходит 2. Сумеет ли GTX правильно выполнить выравнивание данных при такой внешей шине? Никто не наблюдал в этом ядре каких–либо проблем с выравниванием данных? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimidrol 0 28 января, 2013 Опубликовано 28 января, 2013 · Жалоба Собственно меня смутила таблица из даташита ug366 на GTX. Не совсем понятно что авторы имели ввиду, и когда это может понадобится. После манипуляций с тактовой частотой корка завелась, и даже поехала. По крайней мере на запись, на чтение еще не проверял. Правда работает не со всеми жесткими дисками. C SSD OCZ Vertex 4 256G пишет нормально, с Seagate Barracuda 7200.10 глючит, на пол пути детектируются ошибки от диска. Копаем дальше. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mttphreak 0 2 февраля, 2013 Опубликовано 2 февраля, 2013 · Жалоба Всем привет. Нашел недавно сабж от автора Ashwin Mendon, и попробовал поотлаживать для приведения его в рабочий вид и дальнейшего использования в корыстных целях. Предлагаю тут пообсуждать работу (а точнее не работу) данного ядра. В принципе написано оно ужасно, но за не имением ничего другого и понимание что с нуля писать будет долго, ничего не остается. Target Platform: ML605 Xilinx Virtex-6 240T Такие стандратные вещи нужно покупать. Я знаю этих ребят и для каких целей разрабатывалось это ядро. Они явно указывают, что этот core поставляеться "AS IS", без каких-либо гарантий, скорее в образовательных целях. Установка таких вещей в коммерческие продукты сулит большой головной болью на этапе расширения проекта и поддержки покупателей. Для твоих "корыстных" целей ядро можно купить за $15k-20k для FPGA и $35k-$45k для ASIC. Лучшие имплементации предлагают Американские компании. Там и оптимизация по latency and throughput, и документация, RTL, Verification Environment, Integration Scripts, Use Case examples, полный цыкл тестирования в железе и даже support для ASIC Back-End. :beer: Если цены не очень доступны, можно посмотреть в сторону Индии или Китая. Покупать у Российских компаний не рекомендую, т.к у большинства вендоров цены американские, а вот качество, поддержка и опыт коммерческих проектов очень ограниченый. :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
FatRobot 0 2 февраля, 2013 Опубликовано 2 февраля, 2013 · Жалоба Верните мне 2 минуты, которые я потратил на прочтение предыдущего сообщения. Такие стандратные вещи нужно покупать. :laughing: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
myq 0 10 февраля, 2013 Опубликовано 10 февраля, 2013 · Жалоба Всем привет. Нашел недавно сабж от автора Ashwin Mendon, и попробовал поотлаживать для приведения его в рабочий вид и дальнейшего использования в корыстных целях. Предлагаю тут пообсуждать работу (а точнее не работу) данного ядра. В принципе написано оно ужасно, но за не имением ничего другого и понимание что с нуля писать будет долго, ничего не остается. Target Platform: ML605 Xilinx Virtex-6 240T Первое что меня интересует это алгоритм выравнивания, или ловли точки. GTX у автора настроен так, что шина данных у него 32 бита. Это удобно, потому что передача в sata происходит двойными словами. Но это только снаружи. Внутри самого GTX данные 16/20 бит. Теперь представим что к нам от жесткого диска приходит примитив ALIGNp. А точнее 2, потому что их всегда приходит 2. Сумеет ли GTX правильно выполнить выравнивание данных при такой внешей шине? Никто не наблюдал в этом ядре каких–либо проблем с выравниванием данных? Добрый день. У нас есть своя реализация SATA. Правда под Arria II GX. Портирование дело несложное, тем более, мы это так и так планируем. Если интересно, ответьте в личку. Дам датащит. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimidrol 0 10 февраля, 2013 Опубликовано 10 февраля, 2013 · Жалоба Добрый день. У нас есть своя реализация SATA. Правда под Arria II GX. Портирование дело несложное, тем более, мы это так и так планируем. Если интересно, ответьте в личку. Дам датащит. Если я правильно понял, это было что—то вроде коммерческого предложения. Так вот, покупать ничего не намерен, тем более что обсуждаемое ядро вполне работоспособно. Но если я не так все понял, то готов пообщаться на эту тему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
myq 0 10 февраля, 2013 Опубликовано 10 февраля, 2013 · Жалоба Если я правильно понял, это было что—то вроде коммерческого предложения. Так вот, покупать ничего не намерен, тем более что обсуждаемое ядро вполне работоспособно. Но если я не так все понял, то готов пообщаться на эту тему. Да, это было что-то вроде того :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mar_K 0 28 апреля, 2013 Опубликовано 28 апреля, 2013 (изменено) · Жалоба Недавно тоже ее скачал. Переписал phy под virtex5. Заработало. Пробовал на двух разных дисках sata2. Чтение сектора -- заработало. Сделал бесконечное чтение сектора по кнопке и вооружился чипскопом. Корка зависала рандомно в пределах 512 попыток. Я до последнего надеялся, что читать спеку и изучать код корки не придется. Понял как ошибался. Нашел причину и место, где поправить. Бага пропала, открылась следующая. Поизучав еще код link_layer'a в шоке до сих пор. Там на обработку ошибок вообще забили. Опять удар в бубен и чудо происходит! Корка начинает стабильно читать сектора/группы секторов в бесконечном цикле. Запись сектора в цикле также приводит к дедлокам, причина все таже. Мучаюсь уже месяц с этой коркой, знаю код и спецификацию уже почти наизусть. Мне так и не удалось найти легкого способа пофиксить зависание при циклической записи сектора на диск, просто потому что корка реализована идеологически неправильно и спецификации там практически ничего не соответсвует. Пришел к выводу, что проще стереть этот код и переписать. Так и поступил. Изменено 28 апреля, 2013 пользователем Mar_K Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimidrol 0 28 апреля, 2013 Опубликовано 28 апреля, 2013 · Жалоба Недавно тоже ее скачал. Переписал phy под virtex5. Заработало. Пробовал на двух разных дисках sata2. Чтение сектора -- заработало. Сделал бесконечное чтение сектора по кнопке и вооружился чипскопом. Корка зависала рандомно в пределах 512 попыток. Я до последнего надеялся, что читать спеку и изучать код корки не придется. Понял как ошибался. Нашел причину и место, где поправить. Бага пропала, открылась следующая. Поизучав еще код link_layer'a в шоке до сих пор. Там на обработку ошибок вообще забили. Опять удар в бубен и чудо происходит! Корка начинает стабильно читать сектора/группы секторов в бесконечном цикле. Запись сектора в цикле также приводит к дедлокам, причина все таже. Мучаюсь уже месяц с этой коркой, знаю код и спецификацию уже почти наизусть. Мне так и не удалось найти легкого способа пофиксить зависание при циклической записи сектора на диск, просто потому что корка реализована идеологически неправильно и спецификации там практически ничего не соответсвует. Пришел к выводу, что проще стереть этот код и переписать. Так и поступил. Плюсую. Максимум на что меня хватило это вставить чипоскоп. Что–то править в поделке индийских студентов желания не возникло. Шепну на ухо, где-то на просторах интернета есть замеательные исходники sata2 корки, и даже с реализованным NCQ. Причем совсем за бесплатно, правда под лицензией Intel (образовательные цели и тд...). Написал ее работник Intel. Правда ссылку дать не могу - потерял. Не могу сказать что она работает на 100%, но написана просто отменно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexPec 2 28 апреля, 2013 Опубликовано 28 апреля, 2013 · Жалоба Плюсую. Максимум на что меня хватило это вставить чипоскоп. Что–то править в поделке индийских студентов желания не возникло. Шепну на ухо, где-то на просторах интернета есть замеательные исходники sata2 корки, и даже с реализованным NCQ. Причем совсем за бесплатно, правда под лицензией Intel (образовательные цели и тд...). Написал ее работник Intel. Правда ссылку дать не могу - потерял. Не могу сказать что она работает на 100%, но написана просто отменно. Да бог с ней, с ссылкой, может корку-то выложите тут, в образовательных целях? :) Лично мне, действительно, просто ради интереса погонять, никакой коммерческой подоплеки... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 2 28 апреля, 2013 Опубликовано 28 апреля, 2013 · Жалоба ..+1, в образовательных целях и мне , ну пжалста ! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Tiro 0 28 апреля, 2013 Опубликовано 28 апреля, 2013 · Жалоба замеательные исходники sata2 корки, и даже с реализованным NCQ. Причем совсем за бесплатно, правда под лицензией Intel (образовательные цели и тд...). Написал ее работник Intel. Groundhog? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Lmx2315 2 29 апреля, 2013 Опубликовано 29 апреля, 2013 · Жалоба Groundhog? вот спасибо! гугл всё нашёл. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dimidrol 0 29 апреля, 2013 Опубликовано 29 апреля, 2013 · Жалоба Groundhog? Она. Правда у меня сразу не заработала, где-то косяк в логике работы. Но потенциал у нее очень большой, так как написана вменяемым программистом. Жалко, что автор решил сделать ее 16 битной, и кмк где-то там и скрывается косяк. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Mar_K 0 21 мая, 2013 Опубликовано 21 мая, 2013 (изменено) · Жалоба Она. Правда у меня сразу не заработала, где-то косяк в логике работы. Но потенциал у нее очень большой, так как написана вменяемым программистом. Жалко, что автор решил сделать ее 16 битной, и кмк где-то там и скрывается косяк. Запустил ее под Virtex5 VFX70T , попутно заменил трансы на GTX. Чтение секторов работает отменно, чего не скажешь о записи. Почему-то при переполнении выходного буфера(buffer outgoing traffic), когда сигнал wdata_full = block_outbuf_writes || buffer_out_overflow; принимает значение 1 по переполнению буфера buffer_out_overflow, то последнее записанное слово куда-то пропадает (дебажил линк -- там видно). Параметр OVERFLOWLIM (6) не сказал бы, что неправильно стоит. Но, если поменять на OVERFLOWLIM (5), то бага испаряется. Чтение/запись проверял только на командах CMD_READ_DMA_EXTENDED/CMD_WRITE_DMA_EXTENDED. А какую вы нашли ошибку? PS: Корка всяко лучше предидущей, однако не идеальная. Как-то странно там обрабатывается потеря связи. Если выдернуть и вставить кабель, то связь не восстанавливается. Но и на том спасибо...допилим. Изменено 21 мая, 2013 пользователем Mar_K Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться