nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 15 Apr 2024 21:08



Reply to topic  [ 21 posts ]  Go to page 1, 2  Next
ROM extension 
Author Message
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
сделал ещо одного монстрика :)

Image

http://shoorick.ho.ua/monsters/


07 Sep 2008 00:38
Profile WWW
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Мило!


Last edited by HardWareMan on 05 Jan 2014 04:37, edited 1 time in total.



07 Sep 2008 20:27
Profile
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
Post 
сделал еще одну платку попроще: http://shoorick.ho.ua/monsters/ex27256en.html :)


11 Sep 2008 00:02
Profile WWW
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Круто, но я не смог по твоему примеру понять алгоритм вычисления контрольной суммы EXT ROM'а. Ты бы не мог просвятить (С не предлагать, лучше уж АСМ или блоксхемой).


Last edited by HardWareMan on 05 Jan 2014 04:37, edited 1 time in total.



11 Sep 2008 00:44
Profile
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
Post 
вариант 1:
в коде ставлю:
correction db 0
компилирую
проверяю полученный образ утилитой bios_sum - она выдает значение для коррекции, например C7h
заменяю:
correction db 0C7h
компилирую снова

вариант 2:
в фасме самому может посчитать сумму всех байтов и получить значение для коррекции:
Code:
sum = 0
store byte 0 at $$+5
repeat $
  load a byte from $$ + % - 1
  sum = sum + a
end repeat
store byte (-sum) and $FF at $$+5
предложили здесь: http://board.flatassembler.net/topic.php?t=9181

алгоритм простой: все байты образа складываются (включая начальные 55 и АА), байт результата должен быть нулевым


11 Sep 2008 01:11
Profile WWW
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Я вот о чем подумал.... Иногда надо вывести наружу 2-4 или там 8 ячеек порта на ввод и вывод. Причем очень шустрые. Когда был ISA это было не проблема, можно даже было заюзать готовое решение - SCSI8, дававшая доступ к 8 битам данных, RD/WR и A0. И этого мне хватало. Теперь ISA нет. Но есть идея. Принцип таков: берем PCI девайс с панелькой под EXT ROM (например сетевушку). И делаем вывод нужного количества ячеек через сопрягающую логику. Чтобы этот EXT ROM проходил при загрузке POST делаем блокировку чтения маппированных портов по сбросу, пока не будет сделана определенная запись по определенному адресу этого пространства. Далее, оформить ROM правильно, повешать заглушки (например просто выход или вывод написи "Ext Port Ready at #xxxx", где ХХХХ - текущий адрес ПЗУ полученный при POST. Чисто визуально. Т.к. часть ROMа должна считываться всегда, то там же можно и держать сигнатуру, по которой программно выяснять где наше, а где нет. Далее, пишем какое-нибудь значение в определенную ячейку для разблокировки и работаем с этим массивом байт ОЗУ как с портами. Достоинство - простота и юзание шины PCI. Недостатки и подводные камни - обсуждаем здесь.
PS При включении отображения портов ROM в этом месте естественно отключается. Обычно карты позволяют навешать 32Кб микруху, что очень много, хватит даже на маппирование целой области наружу!
Какие мысли есть у вас?


Last edited by HardWareMan on 05 Jan 2014 04:36, edited 1 time in total.



20 Oct 2008 04:14
Profile
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
Post 
я о PCI не помышлял еще, так как у меня имеется стопка 286-386-486 (спасал от выбрасывания :D ). может, как нибудь и поизучаю (давно уж пора). насчет озушки на борту сетевухи - даже не помню, подключена ли она параллельно пзухе или нет, но в любом случае никто не запрещает повесить регистр (а то и не один) на шину данных параллельно пзу и вырезать для него кусок адресного пространства. чтоб избавиться от блокировки, думаю, достаточно выбрать дешифрацию адреса так, чтобы читабельные регистры (при наличии таковых) не попадали в адреса, по которым биус ищет сигнатуры АА55.

у меня следующий этап - хочу попробовать на 386 мамке без видео помигать в лпт. тока занят сейчас - дела, блин... ;)


20 Oct 2008 04:49
Profile WWW
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Решил плотнее изучить возможность подмены бутрома в сетевухе на собственный девайс. Буду думать.

* * *

Вот черт, с PCI картами трюк не проканает. :(

Quote:
Работа с модулями ПЗУ для карт PCI выполняется в соответствии с моделью DDIM(СМ. выше). POST определяет наличие ПЗУ по полю Expansion ROM Base Address в конфигурационном пространстве и назначает ему адрес в свободном пространстве памяти. После этого программированием регистра команд разрешается считывание ПЗУ, и в нем ищется сигнатура заголовка АА55Н. Когда сигнатура найдена, POST ищет подходящий образ (по типу кода и совпадающий по идентификаторам с обнаруженными устройствами PCI) и загружает его в ОЗУ (в область C0000-DFFFFh), оставляя разрешенной запись в эту область. Далее чтение ПЗУ запрещается (записью в поле Expansion ROM Base ^Address), и вызывается процедура инициализации (по адресу 3). При вызове процедуры POST сообщает номер шины (в регистре АН), номер устройства (AL[7:3]) и номер функции (AL[2:0]), благодаря чему процедура узнает точные координаты аппаратных средств. После этого определяется размер области, которую следует оставить в памяти (по байту 2, который может быть модифицирован процедурой инициализации), и для этой области запрещается запись. Если процедура инициализации «урезает» занимаемую память, она должна позаботиться о достоверности контрольной суммы области, описанной байтом 2. Если память освобождается полностью (процедура обнуляет байт 2), то контрольная сумма, естественно, не нужна. Расширение для VGA (определяется по коду класса) обрабатывается особым образом — загружается по адресу C0000h. Процедура инициализации может определить наличие PnP BIOS в системе, проверив значение контрольной структуры PnP по адресу, указанному в Е5: DI, и исполняться в зависимости от обнаруженного системного окружения.


Last edited by HardWareMan on 05 Jan 2014 04:37, edited 1 time in total.



06 Sep 2009 22:58
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
... раз уж тут эту тему затронули...
Действительно тяжело, когда ИСы нет,
но еще тяжелей, когда и ПиСиАй нет -
я имею ввиду ноутбуки.
Работаю на ноуте и если что-то сэкпери-
ментировать - так только внешние порты.
Хотел заюзать ПЦМЦИА (он же КАРД БАС),
по документации - его можно проецировать
как на ИСА так и на ПиСиАй, только если я
правильно всё понял, на внешней плате
должен быть минимум контроллер, который
сработает в диалоге обмена данными, чтобы
карта прицепилась...
Никто не знает - нет ли более простого решения,
типа, скажем, счетчика с ПЗУ и регистрами,
чтобы ИСУ через КАРД Бас вытащить наружу
из ноутбука ?


28 Oct 2009 09:39
Profile
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
Post 
если ноут совсем новый, то может лучше посмотреть в сторону UEFI (в смысле загрузки, конечно, с вытаскиванием ИСЫ это не поможет)


28 Oct 2009 22:49
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
2 shoorick

Слушай - а вот давно у меня есть такая мысль попробовать
старую плату без HDD но с флешкой вместо него.

На своём ноутбуке я в принципе это симитировал - вполне работает,
но дрова для флешки естестенно грузились с системной дискеты
после ДОС.

Не получится ли такая штука - зашить ДОС в ПЗУ - как ты это
делаешь со своими программами, и туда же добавить дрова
от флешки - после чего она становится полноценным HDD ?

В итоге получим фактически полноценный комп, питание некритичное,
поскольку нет флопа и диска, и - ПОЛНАЯ ТИШИНА при работе оного :)

(Это меня, кстати, жутко поражает, когда я работаю иногда на Спеце... Включаю... чего-то явно не хватает в ощущениях...
Да ничего же не шумит!!! Ноут у меня тоже тихий, но в ночи винт слышен, а вот Спец - ПОЛНАЯ ТИШИНА :- )


24 Nov 2009 08:57
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Я давно уже юзаю CF2IDE переходник, воткнутый в IDE, а в нем торчит CF на 4Гб.


Last edited by HardWareMan on 05 Jan 2014 04:38, edited 1 time in total.



24 Nov 2009 20:10
Profile
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
Post 
у меня была плата от двоечного ноута, в котором дос был зашит в 27010, но я её потёр. потому что подумал, что он испорченный, а потом оказалось, что у меня на программаторе один проводок был плохо припаян, и один бит периодически пропадал. но там была обычная фат 12. это я к тому, что все это вполне реально :) другое дело зачем это нужно - вряд ли на 128 кб долго просидишь ;)


24 Nov 2009 22:44
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
А почему 128? Не понял...
Я тестил на флешке 1 Гиг...
И на УСБ-винтах 40 Гиг и 120 Гиг...
правда 2 другие флешки по 512 не сработали -
ну по описанию на дрова, флешка должна быть
ДОС - форматированна, а это вроде как не все
поддерживают...
Винты специально разбивал Партишын Магиком-
чтобы подошли...


25 Nov 2009 08:30
Profile
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
Post 
я думал речь идет о старой плате с распространенной 128 кб флэшкой для биуса на борту.

у меня есть 4 флэшки по 128 кб, причем из них 2 одинаковые с блоковой организацией, одна древняя сплошная, как обычная ПЗУ, и одна с секторной организацией. вот из этого набора я и размышляю :)

у меня в таких делах на первом месте стоит вопрос доступности железа: покупать что-либо не очень хочется, хочется использовать то, что уже имеется, а в таких делах сложно находить единомышленников, так как имеется у всех обычно разное :)


25 Nov 2009 23:22
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 21 posts ]  Go to page 1, 2  Next

Who is online

Users browsing this forum: No registered users and 5 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:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.