Сейчас на форуме: hgdagon, asfa, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› Flash BIOS
Посл.ответ Сообщение

Ранг: 7.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 ноября 2006 09:21
· Личное сообщение · #1

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




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 15 ноября 2006 09:38 · Поправил: s0larian
· Личное сообщение · #2

Найди data sheet для железа - он должен быть на сайте производителя. В этой спецификации будут команды, которые понимает чип. Потом выясни где в адрессном пространстве этот чип, сколько страниц mapped и как их переключать.

Саму прогу писать можно и на С и на С++, логика всё равно одна и та же. Вот пример шагов для intel strata flash (и совместимых с ними micron):

for (int page = 0; page < TotalPages; ++page)
{
SelectPage(page);
Write16(mappedStart, ERASE_PAGE_COMMAND);

Write16(mappedStart, PROGRAM_COMMAND);

// move 2 bytes at a time
for (short int *p = (short int *)mappedStart; p < (short int *)(mappedStart+PageSize); ++p)
{
Write16(p, newImageData[xxxx]);
}

Write16(mappedStart, RESET_COMMAND);
}


P.S. только енто... когда начнёшь отлаживать прогу помни, что стерев одну страницу flash ты попадаешь - комп больше не будет грузиться (если разговор идёт про bios)

P.P.S. из windows user mode этого не сделать.



Ранг: 1.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 ноября 2006 09:40
· Личное сообщение · #3

kirillxskynet пишет:
как производится чтение-запись микросхемы

посмотри исходники Win95.CIH



Ранг: 7.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 ноября 2006 09:59
· Личное сообщение · #4

Dunkan_Cracking_Team пишет:
посмотри исходники Win95.CIH

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



Ранг: 7.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 ноября 2006 10:03
· Личное сообщение · #5

s0larian пишет:
Найди data sheet для железа - он должен быть на сайте производителя. В этой спецификации будут команды, которые понимает чип

заначит в даташите на чипсет описываются команды программирования микросхемы, я правильно понял?



Ранг: 1.3 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 ноября 2006 10:23
· Личное сообщение · #6

kirillxskynet пишет:
т.к. сейчас все зависит от кокретного чипсета

насколько я знаю,под FLASH BIOS идут практически одинаковые микросхемы (конфигурация ножек абсолютно одинаковая)



Ранг: 72.3 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 15 ноября 2006 13:32
· Личное сообщение · #7

вопрос: а что ты хочеш туда(в биос) зашить? свою прошивку или что?
Можно отреверсить какую-нить тулзу от производителя мат. платы magicbios или ещё что-нибудь, посмотреть как она переписывает прошивку...




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 15 ноября 2006 14:21 · Поправил: s0larian
· Личное сообщение · #8

kirillxskynet пишет:
заначит в даташите на чипсет описываются команды программирования микросхемы, я правильно понял?

Конечно. А иначе как драйвер-то писать?




Ранг: 85.5 (постоянный), 16thx
Активность: 0.040.05
Статус: Участник

Создано: 16 ноября 2006 04:09
· Личное сообщение · #9

можно на vmware отлаживать, наскока я знаю, там биос тоже перепрошивается обычными способами




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 16 ноября 2006 09:07 · Поправил: s0larian
· Личное сообщение · #10

RAMZEZzz, то есть? VmWare имеет реализует виртуальный flash? Хмм... ну, образ bios-а там-то будет, иначе DOS бы не грузился.... но flash?....



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 16 ноября 2006 23:01
· Личное сообщение · #11

RAMZEZzz пишет:
можно на vmware отлаживать, наскока я знаю, там биос тоже перепрошивается обычными способами

Долго думал ?! В VmWare биос - это отдельный файл и перепрошивается : ..... как два пальца В VmWare из железа близко к реальному COM-порты, LPT и USB, все остальное очень "виртуальное".




Ранг: 109.2 (ветеран)
Активность: 0.090
Статус: Участник
Cardinal

Создано: 16 ноября 2006 23:24
· Личное сообщение · #12

kirillxskynet пишет:
какую литературу, документацию почитать

Посмотри по этой ссылке wasm.ru/forum/viewtopic.php?id=9740 , там есть неплохая статья: Руководство Pinczakko к исследованию принципов работы Award BIOS, плюс еще много полезной литературы.

-----
– Почему ты работаешь по ночам ? – Так удобнее... В одну смену с чертями...




Ранг: 7.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 ноября 2006 13:26
· Личное сообщение · #13

В общем насколько я понимаю перезапись микросхемы будет происходить следующим образом (поправьте если я не прав):
1.перепрограммировать северный хаб, чтобы отключить затенение BIOS (Shadow ROM).
это необходимо чтобы данные посылаемые по адресам BIOS'а писались не в оперативку, а посылались южному хабу для записи в микросхему Flash ROM (как это сделать должно быть в даташите на чипсет написано)
2.перепрограммировать микросхему Flash ROM путем посыла определенных команд по ее адресам (команды и адреса указаны в даташите на микросхему)

А существует ли какой-нибудь универсальный способ?
Или может я все не так понимаю?




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 22 ноября 2006 16:22 · Поправил: s0larian
· Личное сообщение · #14

kirillxskynet пишет:
перепрограммировать микросхему Flash ROM путем посыла определенных команд по ее адресам (команды и адреса указаны в даташите на микросхему)

Ээ... ну, не совсем... но близко. Flash обычно цепляется к центральной шине используя PLD (programmable logic device) который смотрит то что летает по шине и перенаправляет reads в устройство flash. Этим методом в адресное пространство проецируется одна или несколько страниц из flash. CPU, имея такой mapping, может читать из чипа почти так же так же как из RAM. (короче можно сделать mov eax, offset word [FFF00000] если, скажем, страница проецируется в первые 128К последнего мегабайта адресного пространства). Теперь поводу стирания - каждый чип реализует свою систему команд, которые обычно можно писать в любой адрес, попадающий в этот чип. Всё это зависит от конкретного силикона.

kirillxskynet пишет:
А существует ли какой-нибудь универсальный способ?

Увы. Каждая материнка проектируется в конкретной компинии, где они сами выбирают чипы и создают свой собственный address map (где какая переферия в адресном пространстве). Поэтому универсальность может появится только при наличии драйвера производителя если они все согласятся поддерживать какой-нить инттерфейс.

[голосом Добрыни (Соловьева)] ...я понятно излагаю?



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 23 ноября 2006 03:38 · Поправил: tundra37
· Личное сообщение · #15

kirillxskynet пишет:
А существует ли какой-нибудь универсальный способ?
Или может я все не так понимаю?

Если бы существовал универсальный способ, то был бы прошивальшик на дискете от Микрософт.
А так в проге зашит набор алгоритмов для разных типов чипсетов и типов флешек - они и по ножкам тоже разные бывают, не говоря уже о интерфейсе - параллельный и последовательный, например.
Берешь и реверсишь, сверяясь с даташитами. Несовместимость же прошивальшиков AMI, Award и прочих из вредности только, чтобы не смогли распаковать БИОС.


 eXeL@B —› Программирование —› Flash BIOS
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати