Что то не то, девайс вроде и дергается, но детект не правильный. Во первых не показался его лейбл (между Detected и размером), а во вторых его геометрия определилась не правильно, получились одинаковые параметры cylinders/heads/sectors из за чего и размер определился не правильно.
Давай для начала попробуем проверить сам девайс, в нете есть линукс и/или бсд с поддержкой hdd (ну должны быть где то, ведь снимали видео же), если там все ок, то я накидаю новый драйвер уже с более детальным дебагом и будем разбираться уже что к чему.
накидай драйвер, можно самый простенький. вывод текущих состояний ата регистров.
заодно, если это будет внешний модуль, покажешь процесс создания и запуска.
далее, я бы мог чтонить дописать))
1) немного странно, почему он адрессуется по CHS а не по LBA?
2) какие сдесь ограничения по ёмкости винта в плане CHS как я понимаю это (65'535 C * 65'535 H * 65'535 S секторов по 512 байт)
3) что нужно от аппаратной части что-бы уйти с PIO на DMA?
1) - кто(что) по адресу? не совсем понял
2) - ограничения могут быть, если в драйвере была поддержка только 28 разрядного LBA, то надо дописывать 48-ми разрядную.
3) - не знаю, на дискретной логике это врятли собрать. по крайней мере не представляю как это сделать в рамках разумного)))
а на плис можно сделать. задействовать один из каналов DMA шины G2. протокол я ещё пока не разбирал толком. но в доках инфы детальной полно. как с аппаратной стороны так и софта. расписано по шагам))
с PIO уйти нельзя - т.к запись команд и чтение статусов по любому только через PIO.
с применением плис не надо никакой доп обвязки кот есть сейчас. и иметь возможность использовать различные простоколы шины G2 одновременно...
+ можно присобачить всеми любимую SD карту)) ну и ещё кучу всего)))
как раз у SWAT появится дэв-кит, вот сразу и в дамки))
(20.02.2012 12:53)cybdyn писал(а): [ -> ]1) - кто(что) по адресу? не совсем понял
Как я понял драйвер в дримшеле адрессует сектор кортеджем cylinders/heads/sectors (старый способ), а не одним единственным длинным адрессом сектора (LBA).
не могу точно судить, т.к не имею исходников перед глазами((((,
вроде данный способ адресации зависит от ATA команды.
но помоёму в любом случае и так должно работать. если нет других багов))
1) Для API адресация идет уже по LBA, а вот отправка команды в HDD идет в формате cylinders/heads/sectors, я не знаю почему так сделано, наверное потому что драйверу этому уже 10 лет (точнее порту на дрим, так как первая версия его была еще с 97 года в оригинальной kos для pc), тогда и не было других способов я думаю
В любом случае драйвер этот нужно переделывать конечно полностью, он там совсем very simple... Как появится время, я напишу его с нуля, мне даже интересно это сделать чисто с точки зрения опыта. Но прежде чем его отлаживать, нужно убедится в работоспособности девайса.
2) Да так и есть, ровно столько сколько ты написал, но это потом я думаю можно будет поправить.
3) Другая схема нужна
Драйвер этот я не трогал практически (только поменял функции задержки), т.е. он в первозданном виде, если он сейчас выдает ерунду, то скорее всего проблема в девайсе.
я бы воспользовался наработками по пс2 open loader. там исходники для ATA на С. я только дописывал поддержку под привода ATAPI.
Ну что надо собирать на ПЛИС а не росыпью это понятно, но как работать правильно с линиями DMA и IRQ(точно не уверен есть ли она на разьёме). Накидал бы кто схемку.
Можно ли бутаться через G2? Может используя свободные ячайки плиски можно сделать порт I/O для внешней флешки, что бы не впаивать её в дрим (просто тыкнул по G2 вместе с контроллером HDD), да и ещё порты не помешали бы в замен SPI.
Там же где и выкладывали проект клона BBA, была фота и схемма конвертора G2>PCI (на плиске), вот только файла проекта небыло выложенно. Как он там транслировал адресса, как там использовались DMA и IRQ линии? Может правильней будет сделать мост на PCI и использовать уже готовые контроллеры SATA, ETHERNET
Бутится нельзя, но в принципе можно подумать над хаком, там можно перехватить данные от AICA, может как то получится подменить что то на код и запустить его при старте, но это нужно все досконально исследовать.
Olegos - а вы уже конкретно собрались это делать, или просто вопрос по теории вероятности?
бутиться нельзя, но это не факт. может есть в биосе альтернативная загрузка апдейта для шела, это может сказать тот кто разбирал до винтика биос и оригиальный шел. т.к в консольках это стандартная фича, в пс1 это взломщик колодов через PIO, в пс2 это FMBC через карту памяти. мож и в дриме чёнить есть.
ктото давалл ссылочку или я сам нашёл непомню архивчик "Dreamcast Dev Docs"
в частности неплохой док по дриму DCDBSysArc990907E.pdf
с дма точно не знаю, там только запросы ( хххREQ ) шины, похоже что идёт в привязке к протоклу синхроному PCI-подобному.
со стороны софта тоже должно быть заранее спрограмировано. но по софту более подробно написано.
по сигналам может не все подробноти, но по названию можно догодаться для чего они, и поисследовав - установить истину. я по PCI-Express делал проект слэйв устройства , думаю в дрим эта шина не сильно замудрёная, судя по ногам. чисто самые основные такты.
а по железу, всё что хотите можно сделать. надо только время - это вообщемто основной враг прогресса.
IRQ есть, но это просто запрос прерывания. схема разьёма есть в пдф на дримку.
(21.02.2012 14:28)cybdyn писал(а): [ -> ]бутиться нельзя, но это не факт. может есть в биосе альтернативная загрузка апдейта для шела, это может сказать тот кто разбирал до винтика биос и оригиальный шел. т.к в консольках это стандартная фича, в пс1 это взломщик колодов через PIO, в пс2 это FMBC через карту памяти. мож и в дриме чёнить есть.
С карты памяти там можно загрузить только бэкграунд для оригинального шела и на этом все апдейты к сожалению заканчиваются.
Остается надежда на лазейку через G2, точнее через aica, так как он на этой шине сидит и можно перехватить данные от него к цпу.
2cybdyn: пока только мечтаю. Что бы конкретно заняться и сделать, надо будет капитально возобновить память и восполить пробелы в знаниях. При благоприятном стечении событий я мог бы организовать производство.
2olegos : в каком плане могбы производство наладить. какие есть возможности?
2SWAT: не совсем догоняю. какие данные, что исполняемый код храниться в аике и цпу его скачивает и выполняет??? а то если это звуковые данные то в них никакого смысла.
да и учитывая обращение к аике вродь тоже синхронное (PCI-like) чтобы перехватить надо знать о протоколе. а если узнаем о протоколе, то и аика не нужна будет
(21.02.2012 07:01)SWAT писал(а): [ -> ]скорее всего проблема в девайсе.
Я тут не причем) Девайс сделан в точности как на разработанной Kiyoshi Ikehara схеме, без ошибок и соплей.
если бы можно увидеть что в регистрах сидит. а так сказать сложно.
и SWAT советовал же найти нетбсд.
может есть какаято тонкость, которую нарошно недосказали. типа защита от копирывания или от дурака. ну чтобы знающий понял что к чему.
кстати не забудь перемычку на MASTER поставить.!!! а то не выбрано будет устройство.
както стрёмно висит в воздухе RESET. непорядок.
(22.02.2012 12:05)cybdyn писал(а): [ -> ]В каком плане могбы производство наладить. какие есть возможности?
Ну производство плат (устройств), производсто металических корпусов. Вот делать пластиковые корпуса и разьмы я не могу (точней очень дорого).