FLASH & nForce2
Ну хорошо, есть же программатор, 'не проблема'. Увы, ничего не выйдет. В nForce2 применяются т.н. LPC (Low Pin Count) FLASH, у них используется синхронная шина с совмещением адреса и данных. До этого применяли микросхемы памяти со статическим доступом - отдельными шинами адреса и данных. Впрочем, отличился не только nForce - чаша сия не минула и Intel, для него используется похожая система с экономией выводов микросхем FWH (Firmware HUB). Если поставить такую микросхему в программатор, который их не понимает, то, в лучшем случае, она не сгорит. Прочитать, а уж тем более переписать, ее точно не удастся. Одноразовая mainboard за 100$, это не чересчур?
Вообще говоря, поддержка LPC FLASH реализована еще в самом первом chipset'е под К7 - Irongate, но LPC были слабо распространены. Т.е., сами фирмы разработчики mainboard могут принимать решение о типе используемого FLASH, ничего не мешает поставить обычную FLASH и в nForce2. Сделал выборочную проверку по другим фирмам для nForce2 - унылое однообразие, LPC.
В сложившейся ситуации надо обращаться в гарантийный ремонт, а это столько проблем и нервов - увидев сообщение о неправильной контрольной сумме любой ремонтник заявит о неправильной перепрошивке BIOS, т.е. конец гарантии. Обидно, но я ведь и не пытался ничего прошивать, это ошибка самой программы или, иначе говоря, самой EPOX.
За пару дней был сделан программатор на LPT и сама программа .

Считал BIOS из FLASH и сравнил с оригиналом, серьезное нарушение только в одном байте - было 82h, а должно 87h по адресу 25555h. Для тех, кто знает протокол FLASH, этим будет все сказано. Впрочем, большинство протокола не знает и я попробую восстановить случившееся.
реклама
В FLASH ничего нельзя записать простой командой записи по произвольному адресу, впрочем, как и выполнить другие команды деструктивного свойства - стирание, например. Для выдачи такой команды, а запись байта тоже команда, нужно выдать unlock последовательность.
Она состоит из набора записей некоторых чисел по некоторым адресам. Для приведенной FLASH unlock последовательность будет заключаться в записи 0AAh по адресу 5555h и 55h по адресу 2AAAh. Чтение типа FLASH также является командой и ей предшествует все та же unlock последовательность. А вот на команду чтения идентификатора сделана специальная ссылка - после нее обязательно нужно сделать сброс.
Программа awdflash при старте считывала тип FLASH и, естественно, не сделала сброс. Т.о., следующая же ее команда к FLASH должна была начинаться с unlock последовательности (а там 0AAh по адресу 5555h) и этот байт был ЗАПИСАН в FLASH. Если вернуться к приведенному ранее сбою в моем BIOS, то там была ошибка в адресе 25555h и число 82h вместо 87h.
У FLASH, как и у ее первоисточника EPROM, при перезаписи может записываться единичные биты в 0. (команда стирание устанавливает во всех битах единицы) Т.е. были сброшены нулевой и второй биты, а это как раз и произойдет при попытке записи числа 0AAh(битовое поле 10101010) на место 87h(битовое поле 10000111). Мне не повезло, если б в оригинальном BIOS там был нуль или 82h - я бы и не заметил. Очень грустно.
Теги
Лента материалов раздела
Соблюдение Правил конференции строго обязательно!
Флуд, флейм и оффтоп преследуются по всей строгости закона!
Комментарии, содержащие оскорбления, нецензурные выражения (в т.ч. замаскированный мат), экстремистские высказывания, рекламу и спам, удаляются независимо от содержимого, а к их авторам могут применяться меры вплоть до запрета написания комментариев и, в случае написания комментария через социальные сети, жалобы в администрацию данной сети.
Сейчас обсуждают