
| Процессоры | Системные платы | Видеосистема | Носители информации | Мультимедиа | Периферия | Коммуникации | Поиск по сайту |
Самостоятельное исправление ошибок в CPUДанная статья предназначена для сильно продвинутых пользователей, понимающих, что они делают и каковы последствия в случае неудачи. Материал подаётся по принципу "As Is", и автор не несёт никакой ответственности за моральный или материальный ущерб, могущий возникнуть как у читателя после прочтения данного материала, так и у третьей стороны от действий читателя после прочтения данного материала. Максимально возможная техническая неприятность в случае неграмотных действий пользователя или воздействия внешних причин вызовет необходимость перепрошивки флеш-памяти с образом BIOS на внешнем программаторе. Прочитав статью "Исправление ошибок в CPU", я выполнил указанные в ней действия, загрузив тем самым в область DMI 2-килобайтный блок программного исправления ошибок микроядра CPU. Однако попытка получить спустя полгода новую базу исправлений ошибок (PEP15.PDB) как от изготовителя процессора (фирмы Intel), так и от продавца не увенчались успехом: продавец (фирма "IQ Computers") отвечает, что у него нет доступа к интеловской базе (что в общем-то странно и может означать, на мой взгляд, только то, что торговля процессорами этим продавцом осуществляется по "серым" каналам, не имеюшим официального выхода на Intel), а техсаппорт изготовителя отвечает буквально следующее:
Анализируя возможные пути и способы получения этой базы по неофициальным
каналам, я обратил внимание на блоки CPUCODE в Award-BIOS'ах различных
фирм-изготовителей материнских плат. Более пристальный анализ формата этих
блоков показал, что он либо полностью совпадает с форматом PEP15.PDB (как в
BIOS'ах от A-Bit, например; имя файла -- CPUCODE.BIN), либо блокам из
PEP15.PDB предшествует некий заголовок неизвестного мне формата (как в
BIOS'ах от ASUS; имя файла -- CPUCODE.EXE, хотя никакого отношения к
исполнимым файлам формата *.EXE он не имеет). Каждый 2-килобайтный (2048
байт) блок файла PEP15.PDB (или, что то же самое, CPUCODE.BIN) содержит
заголовок следующего, насколько мне удалось разобрать сравнительным
анализом, формата:
Для тех, кто не знает: в слове -- 2 байта, в двойном слове -- 4 байта, информация записывается в файле "задом наперёд", т.е. сначала идёт младший байт, а за ним -- старший. Число 1 в файле представляется в виде двойного слова как 0x01000000. Руководствуясь вышеизложенным, я вычленил из оригинальной январской 1999 года базы PEP15.PDB такие 2-килобайтные блоки и записал их в отдельные файлы, дав каждому из них имя aaaabbcc.BIN, где aaaa -- CPUID из заголовка (+C), bb -- номер модификации (?) процессора из заголовка (+18), cc -- версия блока для данного CPUID из заголовка (+4). Дату на файлы поставил также по информации из заголовков блоков (+8). После этого я взял файл CPUCODE.EXE ("CBROM имя_файла_с_прошивкой /CPUCODE EXTRACT", на вопрос ответить "CPUCODE.EXE" без кавычек) из последнего BIOS'а от ASUS (v1010 от 16.07.99 для мамок P2B), отрезанием от него заголовка получил CPUCODE.BIN и "распотрошил" его таким же образом в другой директории. В ту же директорию добавил ещё два блока, найденные в DMI-области прошивки (для ASUS'а -- по смещениям 0x37000 и 0x37800 относительно начала файла с прошивкой). После этого объединил эти две директории в третьей, оставив из файлов с одинаковыми "aaaabb" в названии только более новые (с бОльшим номером "cc"). Оставшиеся в итоге в третьей директории 2-килобайтные файлы *.BIN я отсортировал по имени и объединил их в одну базу с помощью стандартной команды "COPY": "COPY /b xxx1+xxx2+...xxxN PEP15.PDB" (без кавычек, разумеется). Эту базу следует использовать вместо оригинальной январской 1999 года базы. Проверено на материнской плате A-Bit i440BX-6 Rev1.0 с процессором Celeron-333 (CPUID 0x0660). Следует иметь в виду, что запись корректирующих микрокод блоков с использованием базы PEP15.PDB производится в область DMI флеш-памяти только для установленных в материнскую плату на момент запуска утилиты процессоров. После замены процессора на процессор с другим CPUID утилиту необходимо запускать повторно. Также необходим повторный запуск утилиты после очистки DMI (запуск AWDFLASH.EXE с ключом /CD). Однако для 2-мегабитных (256-килобайтных) BIOS'ов существует способ прописать всю базу непосредственно в файл прошивки. Для того надо переименовать файл PEP15.PDB в CPUCODE.BIN и выполнить следующую команду: "CBROM имя_файла_с_прошивкой /CPUCODE CPUCODE.BIN", без кавычек. К сожалению, этот способ не подходит для 1-мегабитных (128-килобайтных) BIOS'ов, поскольку вся база просто не влезает в этот BIOS (как я понимаю, именно этим обстоятельством и был вызван переход на 2-мегабитные BIOS'ы). Невозможно также применить этот способ и для Award-BIOS'ов от ASUS, ибо файл должен называться не CPUCODE.BIN, а CPUCODE.EXE, и в нём базе должен предшествовать заголовок, формата которого я не знаю. Работоспособность этого способа в части подмены оригинального CPUCODE проверено на файле прошивки от материнской платы A-Bit i440BX-6 Rev2.0, но саму прошивку я никуда не заливал (за неимением такой мамки). Как называется файл в вашем BIOS'е, вы можете посмотреть командой "CBROM имя_файла_с_прошивкой /D". Позднее я таким же методом распотрошил более новую базу версии 5.01 и обнаружил два новых процессора, не вошедших в предыдущую мою сборку.
Для наглядности я привожу ниже таблицу поддерживаемых процессоров (таблица идёт на
замену аналогичной в документации к утилите заливки изменений микрокода от
Intel), отсортированную по CPUID/Mod.
Знаками "!" отмечены изменения относительно собранной мною базы предыдущей (26/08/99) версии. Изменения взяты из BIOS'а 1011 Beta 002 мамки P2B-F от ASUS. Вопросами отмечены модели, которых нет в официальных базах от Intel, но которые (изменения ядра для них) присутствуют в BIOS'ах ряда материнских плат. К данной статье прилагаются следующие файлы: Pep15.zip (28.2 Kb) -- на основе базы 5.01 от апреля 1999. content.zip (52.3 Kb) -- 2-килобайтные блоки, входящие в состав этой базы. Можете их использовать при формировании новой базы по алгоритму, описанному выше, когда у вас появится доступ к BIOS'у с более новой версией CPUCODE. Ссылку на утилиту CBROM смотрите в материале по замене Logo в BIOS'е.
Список выявленных ошибок процессоров Intel с отметками, исправлены ли они,
будут ли исправлены или исправления не планируются, смотрите по ссылкам с
официального сайта компании Intel: www.intel.com
Сергей Озеров (ozr@cnt.ru)
Опубликовано -- 25 августа 1999 года Последнее обновление -- 27 сентября 1999 года |

| Процессоры | Системные платы | Видеосистема | Носители информации | Мультимедиа | Периферия | Коммуникации | Поиск по сайту |
Copyright (c) by iXBT, 1998. Produced by pavel@ixbt.com & gavric@ixbt.com Дизайн (с) 1998 студия РусАрт |