nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 28 Mar 2024 07:50



Reply to topic  [ 258 posts ]  Go to page Previous  1 ... 11, 12, 13, 14, 15, 16, 17, 18  Next
CGA и CF IDE адаптер на Altera MAX10 
Author Message
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Tronix wrote:
Приложил архивом в предыдущем посте.

Спасибо !

Схема несложная, но вижу проблему в эмуляции 8051 - почти однозначно есть что-то, завязанное на конкретные скорости обработки, а FPGA ядра точно будут работать не совсем идентично. Без исходников прошивки сложновато будет... Но попробовать можно


06 Nov 2017 23:16
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
newold86 wrote:
Но попробовать можно


Просто если эта хрень "в принципе" работать будет, то можно и клон саундбластера восьмибитного сделать, а то у людей какая-то проблема со звуком ISA 8.

_________________
https://t.me/tronix_blog


06 Nov 2017 23:21
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Правильнее, конечно, сразу на HDL мутить... Вообще я давно посматриваю на предмет утащить SB из проекта AO486, но это довольно непросто для меня - там все завязано на шину Avalon...


06 Nov 2017 23:46
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
newold86 wrote:
Подзадолбало пока выискивать причину зависания

Пришла смутная мысль в голову, копаться сильно не стал, просто заменил модуль работы с SD картой по SPI на другой (тоже мой, просто о нем я уже умудрился забыть), после чего вроде зависания прекратились...

Нужно бы DMA добавить, чтобы скорость поприличнее получилась. Никто меня носом не ткнет в код для копирования блока данных из порта в память ? А то я совсем разленился, неохота документацию читать и вспоминать :)


07 Nov 2017 23:00
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
newold86 wrote:
код для копирования блока данных из порта в память ?

В смысле код для CPU или FPGA?
Вот сетап DMA под чтение с флопа, выдернул из своего биоса.
Но это только сетап, дальше диску отправляется команда на обмен, и, собственно, происходит обмен :)
Code:
DMA_CH2_BASE      =      04h
DMA_CH2_CNTR      =      05h
DMA_MODE      =      0Bh
DMA_CLEAR_FF      =      0Ch
DMA_CH2_PAGE      =      81h
;------------------------------------------------------------------------------
;----- cf FDCSetupDMA(si = cmd, ES:di->dst, byte [bp]=sector count) -----------
;------------------------------------------------------------------------------
         align      2
FDCSetupDMA:      cli
         ;защелка и режим
         out      DMA_CLEAR_FF,al
         mov      ax,si
         out      DMA_MODE,al
         ;адрес
         mov      ax,ES
         mov      cl,4
         rol      ax,cl
         mov      ch,al
         and      al,0F0h
         add      ax,di
         adc      ch,0
         ;пишем
         push      ax
         out      DMA_CH2_BASE,al
         mov      al,ah
         out      DMA_CH2_BASE,al
         mov      al,ch
         out      DMA_CH2_PAGE,al
         ;кол-во
         mov      ah,[bp]
         mov      al,0
         shr      ax,1               ;sect*128
         push      ES
         push      di
         les      di,[1Eh*4]
         mov      cl,[ES:di+TFDC_DPT.BPS]
         pop      di
         pop      ES
         shl      ax,cl               ;sect*BPS
         dec      ax
         push      ax
         out      DMA_CH2_CNTR,al
         mov      al,ah
         out      DMA_CH2_CNTR,al
         sti
         pop      dx
         pop      ax
         add      ax,dx
         jnc      .1
         mov      [FDCRetCode],FDC_DMA_FAIL
.1:         retn


Если код для FPGA, то я вообще вопроса не понял. :)


08 Nov 2017 00:49
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Естественно, для CPU
Есть порт, из которого нужно прочитать 512 байт и положить в нужное место в памяти


08 Nov 2017 00:58
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
newold86 wrote:
Естественно, для CPU

Нифига не естественно, учитывая, что код кучи разных биосов у вас есть :) Не хотелось верить, что кто-то ленив больше, чем я. Думал удерживать первенство еще годков 20 как минимум :mrgreen:

newold86 wrote:
Есть порт, из которого нужно прочитать 512 байт и положить в нужное место в памяти

Инит ДМА, старт команды диску (512 байт "каг бэ" намекает, что порт из клана дисковых).
Собсна, все. Радуемся свеженькому сектору в памяти.


08 Nov 2017 05:15
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Vic3Dexe wrote:
старт команды диску

Ну, диска тут особо нет - это для SD карты, поэтому еще буду доделывать соответствующий модуль FPGA, чтобы нужные команды принимал и сигналы генерил... Хотя могу плюнуть и так и оставить с rep movsb - и так дает около 200KB/s чтения на стандартной XT. Хотя с DMA интереснее :)

P.S. Кстати, такое впечатление, что таинственные зависания происходили из-за метастабильности. Эх, пора полностью на синхронный дизайн переходить, но он так не вяжется с PC железом...


08 Nov 2017 05:35
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
newold86 wrote:
Ну, диска тут особо нет - это для SD карты

Интерфейс тоже называется "SD карта"? Или все-таки IDE? Или на суть команд влияет наличие вращающихся блинов? :)
newold86 wrote:
таинственные зависания происходили из-за метастабильности

Вэлкам ту клаб, как грицца.
Метастабильность как явление, я еще осилил. Но вот методы борьбы с оной, как и конкретные прописки по этому поводу в .sdc - увы. Маловато практики, учитывая, что ссыклон 4 быстрее всего забортного железа на порядок, а иногда и на два.

Ладно, это уже оффтоп, проехали.


08 Nov 2017 05:49
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Vic3Dexe wrote:
newold86 wrote:
Ну, диска тут особо нет - это для SD карты

Интерфейс тоже называется "SD карта"? Или все-таки IDE?

Интерфейс - мой собственный от начала и до конца (сама карта физически подключена по SPI), поэтому использую также собственный обработчик INT13 при обращениях к "жесткому диску".


08 Nov 2017 05:56
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
newold86 wrote:
Интерфейс - мой собственный от начала и до конца

Гмммм...
Ну так тогда вам и писать код от начала и до конца.

Тем более не понял исходного вопроса, если стандартный код не подходит.


08 Nov 2017 06:05
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Vic3Dexe wrote:
Тем более не понял исходного вопроса, если стандартный код не подходит.

Просто неохота заново разбираться с программированием 8237 (и прочего связанного). Я предполагаю, что где-то есть уже готовый кусок кода, который просто берет с помощью DMA из порта нужное количество байтов и запихивает их в память. На входе (условно говоря) - адрес порта, адрес памяти и количество байт.
Что обидно - я вообще все это писал, только было это около 25 лет назад...


08 Nov 2017 06:13
Profile
Doomed

Joined: 18 Nov 2013 02:38
Posts: 662
Location: Москва
Reply with quote
newold86 wrote:
Что обидно - я вообще все это писал, только было это около 25 лет назад...


Зачем? В смысле, что за разработка была? Интересно просто...

_________________
https://t.me/tronix_blog


08 Nov 2017 07:12
Profile
Doomed

Joined: 16 Dec 2014 11:58
Posts: 370
Location: Киев
Reply with quote
newold86 wrote:
Я предполагаю, что где-то есть уже готовый кусок кода,

Давайте определимся.
Либо междумордие стандартное, и тогда работают все куски кода из биоса, включая приведенное мной (по мотивам PC/ХТ, слегка причесаное под себя), либо оно ни разу не стандартное, и тогда (увы) это ваши персональные грабли. К чему надо быть готовым, рожая собственные интерфейсы.

"Готовых" на 100% кусков кода нет и быть не может, просто потому что их никто не писал. Потому что даже в стандартном PC биосе есть подпрограммы "setup_transfer", "send_fdc_cmd", "send_hdd_cmd" и т.п.

Их нужно просто просмотреть и адаптировать.

newold86 wrote:
Просто неохота

:)


08 Nov 2017 07:16
Profile
Devil

Joined: 30 Nov 2013 11:08
Posts: 706
Location: WWW
Reply with quote
Tronix wrote:
Зачем? В смысле, что за разработка была? Интересно просто...

Драйверы сетевых адаптеров


08 Nov 2017 09:57
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 258 posts ]  Go to page Previous  1 ... 11, 12, 13, 14, 15, 16, 17, 18  Next

Who is online

Users browsing this forum: No registered users and 10 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.